🚀 SambaLingo土耳其語聊天模型
SambaLingo土耳其語聊天模型是一個經過人類對齊訓練的聊天模型,支持土耳其語和英語。它基於基礎模型 SambaLingo-Turkish-Base,使用直接偏好優化(Direct Preference Optimization)方法進行訓練。基礎模型通過在 Cultura-X 數據集的土耳其語部分的420億個標記上進行訓練,將 Llama-2-7b 模型適配到土耳其語。你可以在 SambaLingo-chat-space 嘗試使用這個模型。
🚀 快速開始
使用Hugging Face加載模型
加載分詞器時,請確保設置 use_fast=False
。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Turkish-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Turkish-Chat", device_map="auto", torch_dtype="auto")
與模型管道進行交互
加載分詞器時,請確保設置 use_fast=False
。
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Turkish-Chat", device_map="auto", use_fast=False)
messages = [
{"role": "user", "content": {YOUR_QUESTION}},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt)[0]
outputs = outputs["generated_text"]
建議的推理參數
- 溫度(Temperature):0.8
- 重複懲罰(Repetition penalty):1.0
- 核採樣概率(Top-p):0.9
提示指南
要使用此模型進行提示,請使用以下聊天模板:
<|user|>\n{question}</s>\n<|assistant|>\n
✨ 主要特性
- 多語言支持:支持土耳其語和英語,適用於多語言場景。
- 人類對齊訓練:經過直接偏好優化訓練,生成的回覆更符合人類偏好。
📦 安裝指南
文檔未提及具體安裝步驟,可參考上述快速開始部分使用Hugging Face加載模型。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Turkish-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Turkish-Chat", device_map="auto", torch_dtype="auto")
高級用法
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Turkish-Chat", device_map="auto", use_fast=False)
messages = [
{"role": "user", "content": {YOUR_QUESTION}},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt)[0]
outputs = outputs["generated_text"]
📚 詳細文檔
模型描述
訓練詳情
對齊階段遵循 Zephyr-7B 的訓練方法,包括兩個階段:監督微調(SFT)和直接性能優化(DPO)。
SFT階段在 ultrachat_200k 數據集和其谷歌翻譯版本的混合數據集上進行。訓練一個週期,全局批次大小為512,最大序列長度為2048個標記。使用線性衰減學習率2e-5和10%的熱身。
DPO階段在 ultrafeedback 數據集和 cai-conversation-harmless 數據集上進行,混合了10%的谷歌翻譯數據。訓練三個週期,全局批次大小為32。使用線性衰減學習率5e-7,10%的熱身,β=0.1作為DPO的正則化因子。
分詞器詳情
通過添加來自新語言的最多25,000個非重疊標記,將基礎Llama模型的詞彙表從32,000個標記擴展到57,000個標記。
評估
評估結果請參考我們的論文:SambaLingo: Teaching Large Language Models New Languages
使用方式
直接使用
此模型的使用受Meta的 Llama 2社區許可協議 約束。請在下載模型權重之前查看並接受許可協議。
超出適用範圍的使用
SambaLingo不應用於以下場景:
- 關鍵任務應用程序
- 涉及他人安全的應用程序
- 做出非常重要決策的場景
偏差、風險和侷限性
與所有大語言模型一樣,SambaLingo存在一定的侷限性:
- 幻覺問題:模型有時可能生成聽起來合理但事實上不正確或不相關的回覆。
- 代碼切換:模型可能會在單個回覆中無意地在不同語言或方言之間切換,影響輸出的連貫性和可理解性。
- 重複問題:模型可能會產生重複的短語或句子,導致回覆的吸引力和信息量降低。
- 編碼和數學能力:模型在生成準確代碼或解決複雜數學問題方面的性能可能有限。
- 毒性問題:模型可能會無意中生成包含不適當或有害內容的回覆。
🔧 技術細節
- 對齊方法:遵循 Zephyr-7B 的訓練方法,包括監督微調(SFT)和直接性能優化(DPO)。
- 分詞器擴展:將基礎Llama模型的詞彙表從32,000個標記擴展到57,000個標記。
📄 許可證
此模型使用Llama2許可證。
致謝
我們衷心感謝開源AI社區;如果沒有開源,這項工作將無法完成。SambaNova支持開源社區,並希望積極為這一倡議做出貢獻。
我們特別感謝以下團體:
- Meta開源了LLama 2和FLORES-200數據集
- Nguyen等人開源了CulturaX數據集
- CohereAI發佈了AYA-101並開源了多語言指令調優數據集
- EleutherAI提供了開源評估框架
- Hugging Face-H4團隊開源了Zephyr訓練方法和對齊手冊倉庫
引用SambaLingo
@misc{csaki2024sambalingo,
title={SambaLingo: Teaching Large Language Models New Languages},
author={Zoltan Csaki and Bo Li and Jonathan Li and Qiantong Xu and Pian Pawakapan and Leon Zhang and Yun Du and Hengyu Zhao and Changran Hu and Urmish Thakker},
year={2024},
eprint={2404.05829},
archivePrefix={arXiv},
primaryClass={cs.CL}
}