license: apache-2.0
base_model: mistralai/Mistral-7B-Instruct-v0.2
inference: false
model_link: https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2
model_name: Mistral-7B-Instruct-v0.2
pipeline_tag: text-generation
quantized_by: FriendliAI
tags:
Mistral-7B-Instruct-v0.2 - FP8量化版
模型描述
本仓库包含由FriendliAI量化为FP8精度的Mistral-7B-Instruct-v0.2模型,在保持高精度的同时显著提升推理效率。请注意,FP8仅支持NVIDIA Ada、Hopper和Blackwell GPU架构。更多详情请参阅FriendliAI文档。
许可协议
请参考原始模型卡的许可条款。
兼容性
本模型兼容**Friendli容器**。
先决条件
准备个人访问令牌
PAT(个人访问令牌)是登录容器注册表的用户凭证。
- 登录Friendli套件。
- 进入**用户设置 > 令牌,点击'创建新令牌'**。
- 保存生成的令牌值。
准备容器密钥
容器密钥是启动Friendli容器镜像的凭证。需将密钥作为环境变量传入以运行容器镜像。
- 登录Friendli套件。
- 进入容器 > 容器密钥,点击**'创建密钥'**。
- 保存生成的密钥值。
拉取Friendli容器镜像
- 使用本指南创建的PAT登录Docker客户端:
export FRIENDLI_PAT="您的PAT"
docker login registry.friendli.ai -u $您的邮箱 -p $FRIENDLI_PAT
- 拉取镜像:
docker pull registry.friendli.ai/trial
运行Friendli容器
准备好容器镜像后,可启动容器创建服务端点:
docker run \
--gpus '"device=0"' \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-e FRIENDLI_CONTAINER_SECRET="您的容器密钥" \
registry.friendli.ai/trial \
--web-server-port 8000 \
--hf-model-name FriendliAI/Mistral-7B-Instruct-v0.2-fp8
原始模型卡:Mistral AI的Mistral-7B-Instruct-v0.2
Mistral-7B-Instruct-v0.2模型卡
Mistral-7B-Instruct-v0.2大语言模型是基于Mistral-7B-v0.2进行指令微调的版本。
相比Mistral-7B-v0.1,v0.2版本主要变更:
- 上下文窗口扩展至32k(原为8k)
- Rope-theta参数设为1e6
- 取消滑动窗口注意力机制
完整技术细节请参阅我们的论文和发布博客。
指令格式
为发挥指令微调效果,提示词需用[INST]
和[/INST]
标记包裹。首条指令应以句子起始符开头,后续指令则不需要。助手生成内容将以句子结束符终止。
示例:
text = "<s>[INST] 你最喜欢的调味品是什么? [/INST]"
"我个人特别喜欢新鲜柠檬汁,它为厨房料理增添了恰到好处的清爽风味!</s> "
"[INST] 你有蛋黄酱食谱吗? [/INST]"
此格式可通过apply_chat_template()
方法实现:
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
messages = [
{"role": "user", "content": "你最喜欢的调味品是什么?"},
{"role": "assistant", "content": "我个人特别喜欢新鲜柠檬汁,它为厨房料理增添了恰到好处的清爽风味!"},
{"role": "user", "content": "你有蛋黄酱食谱吗?"}
]
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
model.to(device)
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])
故障排查
若出现以下错误:
Traceback (most recent call last):
...
KeyError: 'mistral'
请通过源码安装transformers解决:
pip install git+https://github.com/huggingface/transformers
该问题在transformers-v4.33.4及以上版本已修复。
局限性
Mistral 7B Instruct模型展示了基础模型通过微调可获得优异性能,但当前版本未内置内容审核机制。我们期待与社区合作开发约束机制,使模型能应用于需要受控输出的环境。
Mistral AI团队
Albert Jiang, Alexandre Sablayrolles, Arthur Mensch, Blanche Savary, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Emma Bou Hanna, Florian Bressand, Gianna Lengyel, Guillaume Bour, Guillaume Lample, Lélio Renard Lavaud, Louis Ternon, Lucile Saulnier, Marie-Anne Lachaux, Pierre Stock, Teven Le Scao, Théophile Gervet, Thibaut Lavril, Thomas Wang, Timothée Lacroix, William El Sayed.