🚀 SambaLingo阿拉伯语聊天模型70B
SambaLingo阿拉伯语聊天模型70B是一个经过人工对齐的聊天模型,支持阿拉伯语和英语。它基于基础模型 SambaLingo阿拉伯语基础模型70B,采用直接偏好优化方法进行训练。基础模型则是在 Llama-2-70b 的基础上,通过 Cultura-X 数据集阿拉伯语部分的280亿个标记进行训练,以适应阿拉伯语。你可以在 SambaLingo聊天空间 中尝试使用该模型。
🚀 快速开始
使用Hugging Face加载模型
加载分词器时,请确保设置 use_fast=False
。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat-70B", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat-70B", device_map="auto", torch_dtype="auto")
与模型管道进行交互
加载分词器时,请确保设置 use_fast=False
。
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Arabic-Chat-70B", 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
提示和生成示例
<|user|>
كيف تصف الالوان لشخص ولد أعمى</s>
<|assistant|>
ليس لدي القدرة على الرؤية، ولكن يمكنني تقديم وصف للألوان بناءً على ما تعلمته من البيانات.\n\nبالنسبة لشخص ولد أعمى، قد يكون من الصعب وصف الألوان لأنها لم تختبرها من قبل. ومع ذلك، يمكننا استخدام الاستعارات والمقارنات لمساعدة هذا الشخص على فهم الألوان. على سبيل المثال، يمكننا وصف اللون الأحمر بأنه دافئ وحيوي، مثل لهب النار أو ثمرة الفراولة الناضجة. يمكننا وصف اللون الأزرق بأنه هادئ ومهدئ، مثل السماء أو المحيط. يمكننا وصف اللون الأخضر بأنه منعش وطبيعي، مثل أوراق الشجر أو العشب. يمكننا وصف اللون الأصفر بأنه مشرق ومبهج، مثل الشمس أو زهرة عباد الشمس. يمكننا وصف اللون الأرجواني بأنه ملكي وفاخر، مثل لون الجواهر أو غروب الشمس. في النهاية، قد يكون من الصعب وصف الألوان لشخص ولد أعمى، ولكن باستخدام الاستعارات والمقارنات، يمكننا مساعدتهم على فهم الفروق الدقيقة في الألوان بشكل أفضل.
✨ 主要特性
- 多语言支持:支持阿拉伯语和英语,适用于更广泛的用户群体。
- 人工对齐:经过人工对齐处理,生成的回答更符合人类需求。
📦 安装指南
文档中未提及具体安装步骤,可参考快速开始部分的模型加载方法。
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat-70B", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat-70B", device_map="auto", torch_dtype="auto")
高级用法
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Arabic-Chat-70B", 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)。
分词器细节
通过添加新语言中最多25000个不重叠的标记,将基础Llama模型的词汇表从32000个标记扩展到57000个标记。
评估
评估结果请参考论文:SambaLingo: Teaching Large Language Models New Languages
使用方式
直接使用
使用此模型需遵守Meta的 Llama 2社区许可协议。请在下载模型权重前仔细阅读并接受该许可协议。
非适用场景
SambaLingo不应用于以下场景:
- 关键任务应用程序
- 涉及他人安全的应用程序
- 做出高度重要决策的场景
偏差、风险和局限性
与所有大语言模型一样,SambaLingo存在一定的局限性:
- 幻觉问题:模型有时可能会生成听起来合理但事实错误或无关的信息。
- 语言切换:模型可能会在单个回答中无意地在不同语言或方言之间切换,影响输出的连贯性和可理解性。
- 重复问题:模型可能会产生重复的短语或句子,导致回答的吸引力和信息量降低。
- 编码和数学能力:模型在生成准确代码或解决复杂数学问题方面的性能可能有限。
- 毒性问题:模型可能会无意中生成包含不适当或有害内容的回答。
🔧 技术细节
- 模型基于Transformer架构,在基础Llama模型上进行微调。
- 训练过程中使用了监督微调(SFT)和直接性能优化(DPO)两个阶段,以提高模型的性能和对齐度。
📄 许可证
本模型使用Llama 2许可证。
致谢
我们衷心感谢开源人工智能社区;没有开源,这项工作将无法完成。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}
}