Model Overview
Model Features
Model Capabilities
Use Cases
🚀 Llama-3.1-Nemotron-70B-Instruct大语言模型
Llama-3.1-Nemotron-70B-Instruct是由NVIDIA定制的大语言模型,旨在提升大语言模型对用户查询生成回复的有效性。该模型在多个自动对齐基准测试中表现出色,能为用户提供更优质的文本生成服务。
🚀 快速开始
你可以使用Hugging Face Transformers库来使用此模型,需要2块或更多80GB的GPU(NVIDIA Ampere或更新版本),并至少有150GB的可用磁盘空间用于下载。
此代码已在Transformers v4.44.0、torch v2.4.0和2块A100 80GB GPU上进行了测试,但任何支持meta-llama/Llama-3.1-70B-Instruct
的设置也应支持此模型。如果你遇到问题,可以考虑执行pip install -U transformers
。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r in strawberry?"
messages = [{"role": "user", "content": prompt}]
tokenized_message = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt", return_dict=True)
response_token_ids = model.generate(tokenized_message['input_ids'].cuda(),attention_mask=tokenized_message['attention_mask'].cuda(), max_new_tokens=4096, pad_token_id = tokenizer.eos_token_id)
generated_tokens =response_token_ids[:, len(tokenized_message['input_ids'][0]):]
generated_text = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]
print(generated_text)
# See response at top of model card
✨ 主要特性
- 性能卓越:该模型在多个自动对齐基准测试中表现出色,截至2024年10月1日,在所有三个自动对齐基准测试中排名第一。
- 提升回复有效性:由NVIDIA定制,旨在提高大语言模型对用户查询生成回复的有效性。
📦 安装指南
你可以使用Hugging Face Transformers库来使用此模型,需要满足以下条件:
- 2块或更多80GB的GPU(NVIDIA Ampere或更新版本)
- 至少150GB的可用磁盘空间用于下载
此代码已在Transformers v4.44.0、torch v2.4.0和2块A100 80GB GPU上进行了测试,但任何支持meta-llama/Llama-3.1-70B-Instruct
的设置也应支持此模型。如果你遇到问题,可以考虑执行pip install -U transformers
。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r in strawberry?"
messages = [{"role": "user", "content": prompt}]
tokenized_message = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt", return_dict=True)
response_token_ids = model.generate(tokenized_message['input_ids'].cuda(),attention_mask=tokenized_message['attention_mask'].cuda(), max_new_tokens=4096, pad_token_id = tokenizer.eos_token_id)
generated_tokens =response_token_ids[:, len(tokenized_message['input_ids'][0]):]
generated_text = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]
print(generated_text)
# See response at top of model card
📚 详细文档
模型概述
Llama-3.1-Nemotron-70B-Instruct是由NVIDIA定制的大语言模型,用于提高大语言模型对用户查询生成回复的有效性。
该模型在以下基准测试中取得了优异成绩:
- Arena Hard:85.0
- AlpacaEval 2 LC:57.6
- GPT-4-Turbo MT-Bench:8.98
截至2024年10月1日,该模型在所有三个自动对齐基准测试中排名第一(AlpacaEval 2 LC的验证标签),超过了GPT-4o和Claude 3.5 Sonnet等强大的前沿模型。
截至2024年10月24日,该模型在ChatBot Arena排行榜上的Elo得分为1267(±7),排名第9,风格控制排名第26。
该模型使用RLHF(具体为REINFORCE)、Llama-3.1-Nemotron-70B-Reward和HelpSteer2-Preference prompts在Llama-3.1-70B-Instruct模型上进行训练,作为初始策略。
Llama-3.1-Nemotron-70B-Instruct-HF已从Llama-3.1-Nemotron-70B-Instruct转换而来,以支持在Hugging Face Transformers代码库中使用。请注意,评估结果可能与在NeMo-Aligner中评估的Llama-3.1-Nemotron-70B-Instruct略有不同,以下评估结果基于NeMo-Aligner。
你可以在build.nvidia.com上免费试用托管推理,它提供了与OpenAI兼容的API接口。
评估指标
截至2024年10月1日,Llama-3.1-Nemotron-70B-Instruct在Arena Hard、AlpacaEval 2 LC(验证标签)和MT Bench(GPT-4-Turbo)上表现最佳。
模型 | Arena Hard | AlpacaEval | MT-Bench | 平均回复长度 |
---|---|---|---|---|
详情 | (95% CI) | 2 LC (SE) | (GPT-4-Turbo) | (MT-Bench的字符数) |
Llama-3.1-Nemotron-70B-Instruct | 85.0 (-1.5, 1.5) | 57.6 (1.65) | 8.98 | 2199.8 |
Llama-3.1-70B-Instruct | 55.7 (-2.9, 2.7) | 38.1 (0.90) | 8.22 | 1728.6 |
Llama-3.1-405B-Instruct | 69.3 (-2.4, 2.2) | 39.3 (1.43) | 8.49 | 1664.7 |
Claude-3-5-Sonnet-20240620 | 79.2 (-1.9, 1.7) | 52.4 (1.47) | 8.81 | 1619.9 |
GPT-4o-2024-05-13 | 79.3 (-2.1, 2.0) | 57.5 (1.47) | 8.74 | 1752.2 |
模型架构
属性 | 详情 |
---|---|
架构类型 | Transformer |
网络架构 | Llama 3.1 |
输入
属性 | 详情 |
---|---|
输入类型 | 文本 |
输入格式 | 字符串 |
输入参数 | 一维 (1D) |
其他输入相关属性 | 最大128k个令牌 |
输出
属性 | 详情 |
---|---|
输出类型 | 文本 |
输出格式 | 字符串 |
输出参数 | 一维 (1D) |
其他输出相关属性 | 最大4k个令牌 |
软件集成
属性 | 详情 |
---|---|
支持的硬件微架构兼容性 | NVIDIA Ampere、NVIDIA Hopper、NVIDIA Turing |
支持的操作系统 | Linux |
模型版本
v1.0
训练与评估
对齐方法
- REINFORCE在NeMo Aligner中实现
数据集
- 数据收集方法:混合(人工、合成)
- 标注方法:人工
- 链接:HelpSteer2
- 属性(数量、数据集描述、传感器等):
- 21,362个提示 - 回复,旨在使更多模型更符合人类偏好,特别是更有帮助、事实准确、连贯,并可根据复杂性和冗长性进行定制。
- 20,324个提示 - 回复用于训练,1,038个用于验证。
推理
- 推理引擎:Triton
- 测试硬件:H100、A100 80GB、A100 40GB
伦理考量
NVIDIA认为可信AI是一项共同责任,我们已经制定了政策和实践,以支持广泛的AI应用开发。当根据我们的服务条款下载或使用时,开发人员应与他们的支持模型团队合作,确保该模型满足相关行业和用例的要求,并解决不可预见的产品滥用问题。有关此模型伦理考量的更多详细信息,请参阅模型卡片++可解释性、偏差、安全与保障以及隐私子卡片。请在此处报告安全漏洞或NVIDIA AI问题。
引用
如果你发现此模型有用,请引用以下作品:
@misc{wang2024helpsteer2preferencecomplementingratingspreferences,
title={HelpSteer2-Preference: Complementing Ratings with Preferences},
author={Zhilin Wang and Alexander Bukharin and Olivier Delalleau and Daniel Egert and Gerald Shen and Jiaqi Zeng and Oleksii Kuchaiev and Yi Dong},
year={2024},
eprint={2410.01257},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2410.01257},
}
📄 许可证
你使用此模型受NVIDIA开放模型许可证的约束。
附加信息:Llama 3.1社区许可协议。基于Llama构建。



