🚀 Hugging Face Transformers對Mixtral - 8x7B - Instruct的轉換
Mixtral - 8x7B是一個預訓練的生成式稀疏專家混合大語言模型(LLM),在我們測試的大多數基準測試中,它的表現優於Llama 2 70B。
🚀 快速開始
若要了解該模型的完整細節,請閱讀我們的發佈博客文章。
✨ 主要特性
- 高性能:在多數基準測試中超越Llama 2 70B。
- 多語言支持:支持法語、意大利語、德語、西班牙語和英語。
📦 安裝指南
文檔未提及具體安裝步驟,暫不提供。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "mistralai/Mixtral-8x7B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
text = "Hello my name is"
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
高級用法
半精度運行
注意,float16
精度僅適用於GPU設備。
+ import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "mistralai/Mixtral-8x7B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
+ model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16).to(0)
text = "Hello my name is"
+ inputs = tokenizer(text, return_tensors="pt").to(0)
outputs = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
使用bitsandbytes
進行低精度(8位和4位)運行
+ import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "mistralai/Mixtral-8x7B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
+ model = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True)
text = "Hello my name is"
+ inputs = tokenizer(text, return_tensors="pt").to(0)
outputs = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
使用Flash Attention 2加載模型
+ import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "mistralai/Mixtral-8x7B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
+ model = AutoModelForCausalLM.from_pretrained(model_id, use_flash_attention_2=True)
text = "Hello my name is"
+ inputs = tokenizer(text, return_tensors="pt").to(0)
outputs = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
📚 詳細文檔
指令格式
必須嚴格遵守此格式,否則模型將生成不理想的輸出。
用於為指令模型構建提示的模板定義如下:
<s> [INST] 指令 [/INST] 模型回答</s> [INST] 後續指令 [/INST]
請注意,<s>
和</s>
是字符串開始(BOS)和字符串結束(EOS)的特殊標記,而[INST]
和[/INST]
是普通字符串。
作為參考,以下是微調期間用於對指令進行分詞的偽代碼:
def tokenize(text):
return tok.encode(text, add_special_tokens=False)
[BOS_ID] +
tokenize("[INST]") + tokenize(用戶消息1) + tokenize("[/INST]") +
tokenize(機器人消息1) + [EOS_ID] +
…
tokenize("[INST]") + tokenize(用戶消息N) + tokenize("[/INST]") +
tokenize(機器人消息N) + [EOS_ID]
在上述偽代碼中,請注意tokenize
方法不應自動添加BOS或EOS標記,但應添加前綴空格。
模型運行
見使用示例部分。
侷限性
Mixtral - 8x7B指令模型是一個快速演示,表明基礎模型可以輕鬆微調以實現出色的性能。它沒有任何審核機制。我們期待與社區合作,探索使模型嚴格遵守規則的方法,以便在需要審核輸出的環境中進行部署。
🔧 技術細節
文檔未提供足夠的技術實現細節,暫不展示。
📄 許可證
本項目採用Apache - 2.0許可證。
團隊信息
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。
⚠️ 重要提示
此倉庫包含與vLLM服務以及Hugging Face transformers庫兼容的權重。它基於原始的Mixtral 種子發佈,但文件格式和參數名稱不同。請注意,目前尚不能使用HF實例化該模型。