🚀 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}
}