Sambalingo Serbian Chat
支持塞尔维亚语和英语的人类对齐聊天模型,基于Llama-2-7b适配并通过直接偏好优化训练
下载量 35
发布时间 : 2/15/2024
模型简介
该模型是一款支持塞尔维亚语和英语的聊天模型,通过直接偏好优化训练而成,适用于对话生成任务。
模型特点
多语言支持
同时支持塞尔维亚语和英语的对话生成
人类对齐
通过直接偏好优化(DPO)训练,使模型输出更符合人类偏好
扩展词汇表
在基础Llama模型上增加了25,000个新语言token,词汇表扩展到57,000个token
模型能力
塞尔维亚语对话生成
英语对话生成
多语言混合对话
使用案例
对话系统
塞尔维亚语聊天机器人
用于构建支持塞尔维亚语的聊天机器人
能够生成流畅自然的塞尔维亚语对话
双语客服助手
构建同时支持塞尔维亚语和英语的客服系统
可在两种语言间无缝切换回答用户问题
🚀 SambaLingo塞尔维亚语聊天模型
SambaLingo-Serbian-Chat是一个经过人类对齐的聊天模型,支持塞尔维亚语和英语。它基于基础模型 SambaLingo-Serbian-Base,使用直接偏好优化(Direct Preference Optimization)方法进行训练。基础模型通过在 Cultura-X 数据集的塞尔维亚语部分的170亿个标记上进行训练,将 Llama-2-7b 模型适配到塞尔维亚语。你可以在 SambaLingo-chat-space 尝试使用这个模型。
🚀 快速开始
使用Hugging Face加载模型
加载分词器时,请确保设置 use_fast=False
。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Serbian-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Serbian-Chat", device_map="auto", torch_dtype="auto")
与模型管道交互
加载分词器时,请确保设置 use_fast=False
。
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Serbian-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
示例提示和生成结果
<|user|>
Od kada datiraju prva naselja na prostoru danasnjeg Beograda, i kada je grad osnovan?</s>
<|assistant|>
Beograd su naseljavali ljudi još u praistoriji, a prva naselja datiraju iz neolitskih vremena, pre oko 7.000 godina. Međutim, grad Beograd nije osnovan upravo u to vreme, već u srednjem veku, kada su Srbi u 9. veku osnovali srednjovekovni grad Beograd, na mestu današnjeg Kalemegdana. Grad je kasnije pretrpeo razna oсвајања, razaranja i obnavljanja, da bi se na kraju razvio u značajnu evropsku metropolu.
✨ 主要特性
- 多语言支持:支持塞尔维亚语和英语,可在两种语言之间灵活切换。
- 人类对齐:经过直接偏好优化训练,生成的回复更符合人类偏好。
📦 安装指南
文档中未提及具体安装步骤,可参考上述快速开始部分加载模型。
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Serbian-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Serbian-Chat", device_map="auto", torch_dtype="auto")
高级用法
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Serbian-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"]
📚 详细文档
模型描述
- 开发者:SambaNova Systems
- 模型类型:语言模型
- 支持语言:塞尔维亚语、英语
- 微调基础模型:Llama-2-7b
- 试用模型:SambaLingo-chat-space
- 相关论文:SambaLingo: Teaching Large Language Models New Languages
- 博客文章:sambalingo-open-source-language-experts
训练细节
对齐阶段遵循 Zephyr-7B 的方法,包括两个阶段:监督微调(SFT)和直接性能优化(DPO)。
- SFT阶段:在 ultrachat_200k 数据集和其谷歌翻译版本的混合数据集上进行训练。训练一个周期,全局批量大小为512,最大序列长度为2048个标记。使用线性衰减学习率2e-5和10%的热身。
- DPO阶段:在 ultrafeedback 数据集和 cai-conversation-harmless 数据集上进行训练,混合了10%的谷歌翻译数据。全局批量大小为32,训练三个周期。使用线性衰减学习率5e-7,10%的热身,DPO的正则化因子β=0.1。
分词器细节
通过添加来自新语言的多达25,000个非重叠标记,将基础Llama模型的词汇量从32,000个标记扩展到57,000个标记。
评估
评估结果请参考论文:SambaLingo: Teaching Large Language Models New Languages
使用方式
直接使用
此模型的使用受Meta的 Llama 2社区许可协议 约束。请在下载模型权重之前查看并接受许可协议。
不适用场景
SambaLingo不应用于以下场景:
- 关键任务应用
- 涉及他人安全的应用
- 做出高度重要决策的应用
偏差、风险和局限性
与所有大语言模型一样,SambaLingo存在一定的局限性:
- 幻觉问题:模型有时可能会生成听起来合理但事实错误或无关的信息。
- 代码切换:模型可能会在单个回复中无意地在语言或方言之间切换,影响输出的连贯性和可理解性。
- 重复问题:模型可能会产生重复的短语或句子,导致回复的吸引力和信息量降低。
- 编码和数学能力:模型在生成准确代码或解决复杂数学问题方面的性能可能有限。
- 毒性问题:模型可能会无意中生成包含不适当或有害内容的回复。
🔧 技术细节
- 对齐方法:采用直接偏好优化(DPO)和监督微调(SFT)相结合的方法。
- 词汇扩展:将基础Llama模型的词汇量从32,000扩展到57,000。
📄 许可证
本模型使用Llama 2许可证。
致谢
我们衷心感谢开源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}
}
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98