🚀 Mistral-NeMo-Minitron-8B-Instruct
Mistral-NeMo-Minitron-8B-Instruct 是一个用于文本生成任务的模型,可处理角色扮演、检索增强生成和函数调用等多种任务。它在文本生成方面具有高效、准确的特点,能为用户提供优质的文本回复。
🚀 快速开始
Mistral-NeMo-Minitron-8B-Instruct 是一个用于各种文本生成任务(包括角色扮演、检索增强生成和函数调用)生成回复的模型。它是 nvidia/Mistral-NeMo-Minitron-8B-Base 的微调版本,该基础模型是使用 我们的大语言模型压缩技术 从 Mistral-NeMo 12B 中剪枝和蒸馏而来。该模型使用 NeMo Aligner 通过多阶段监督微调(SFT)和基于偏好的对齐技术进行训练。有关对齐技术的详细信息,请参考 Nemotron-4 340B 技术报告。该模型支持 8192 个标记的上下文长度。
你可以在 build.nvidia.com 上试用此模型。
模型开发者:NVIDIA
模型训练时间:Mistral-NeMo-Minitron-8B-Instruct 于 2024 年 8 月至 2024 年 9 月期间进行训练。
✨ 主要特性
- 广泛的任务支持:可处理角色扮演、检索增强生成和函数调用等多种文本生成任务。
- 长上下文支持:支持 8192 个标记的上下文长度。
- 先进的训练技术:采用多阶段 SFT 和基于偏好的对齐技术进行训练。
📚 详细文档
许可证
NVIDIA 开放模型许可证
模型架构
Mistral-NeMo-Minitron-8B-Instruct 使用的模型嵌入大小为 4096,有 32 个注意力头,MLP 中间维度为 11520,总共 40 层。此外,它使用了分组查询注意力(GQA)和旋转位置嵌入(RoPE)。
属性 |
详情 |
架构类型 |
Transformer 解码器(自回归语言模型) |
网络架构 |
Mistral-NeMo |
提示格式
我们建议使用以下提示模板,该模板用于对模型进行微调。如果不使用该模板,模型可能无法达到最佳性能。
<extra_id_0>System
{系统提示}
<extra_id_1>User
{提示内容}
<extra_id_1>Assistant\n
- 注意,提示末尾应添加换行符
\n
。
- 建议使用
<extra_id_1>
作为停止标记。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("nvidia/Mistral-NeMo-Minitron-8B-Instruct")
model = AutoModelForCausalLM.from_pretrained("nvidia/Mistral-NeMo-Minitron-8B-Instruct")
messages = [
{
"role": "system",
"content": "You are a friendly chatbot who always responds in the style of a pirate",
},
{"role": "user", "content": "How many helicopters can a human eat in one sitting?"},
]
tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(tokenized_chat, stop_strings=["<extra_id_1>"], tokenizer=tokenizer)
print(tokenizer.decode(outputs[0]))
高级用法
你也可以使用 pipeline
,但需要手动创建一个分词器对象并将其分配给管道。
from transformers import AutoTokenizer
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("nvidia/Mistral-NeMo-Minitron-8B-Instruct")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe = pipeline("text-generation", model="nvidia/Mistral-NeMo-Minitron-8B-Instruct")
pipe(messages, max_new_tokens=64, stop_strings=["<extra_id_1>"], tokenizer=tokenizer)
🔧 技术细节
评估结果
类别 |
基准测试 |
样本数 |
Mistral-NeMo-Minitron-8B-Instruct |
通用 |
MMLU |
5 |
70.4 |
|
MT Bench (GPT4-Turbo) |
0 |
7.86 |
数学 |
GMS8K |
0 |
87.1 |
推理 |
GPQA |
0 |
31.5 |
代码 |
HumanEval |
0 |
71.3 |
|
MBPP |
0 |
72.5 |
指令遵循 |
IFEval |
0 |
84.4 |
工具使用 |
BFCL v2 Live |
0 |
67.6 |
AI 安全措施
Mistral-NeMo-Minitron-8B-Instruct 模型经过了 AI 安全评估,包括通过三种不同方法进行的对抗性测试:
- Garak:一种自动化的大语言模型漏洞扫描器,用于探测常见弱点,包括提示注入和数据泄露。
- AEGIS:一个内容安全评估数据集和基于大语言模型的内容安全分类器模型,遵循人类与大语言模型交互中 13 类关键风险的广泛分类法。
- 人工内容红队测试:利用人类对模型的回复进行交互和评估。
局限性
该模型在最初从互联网抓取的包含有毒语言和社会偏见的数据上进行训练。因此,模型可能会放大这些偏见并返回有毒回复,尤其是在使用有毒提示时。即使提示本身不包含任何明确的冒犯性内容,模型也可能生成不准确的答案、遗漏关键信息或包含无关或冗余的文本,从而产生社会不可接受或不良的文本。如果不使用推荐的提示模板,这个问题可能会更加严重。如果你打算在代理工作流中使用此模型,请确保导入的包来自可信来源,以确保端到端的安全性。
伦理考量
NVIDIA 认为可信 AI 是一项共同责任,我们已经制定了政策和实践,以支持广泛的 AI 应用开发。当按照我们的服务条款下载或使用该模型时,开发者应与内部模型团队合作,确保该模型满足相关行业和用例的要求,并解决不可预见的产品滥用问题。有关该模型伦理考量的更多详细信息,请参阅 模型卡片++。请 在此 报告安全漏洞或 NVIDIA AI 相关问题。
⚠️ 重要提示
该模型在含有毒语言和社会偏见的数据上训练,可能会放大这些问题,使用时需注意。不使用推荐提示模板可能会加重问题。若在代理工作流中使用,要确保导入包来自可信源。
💡 使用建议
建议使用推荐的提示模板以获得模型的最佳性能,并使用 <extra_id_1>
作为停止标记。