Occiglot-7B-IT-EN-Instruct 项目介绍
Occiglot-7B-IT-EN-Instruct 是一个多语言文本生成模型,专为支持西方五个主要欧盟语言(英语、西班牙语、法语、德语和意大利语)的任务而设计。项目由 Occiglot 研究集体推出,这是他们在开放多语言模型研究中的首次成果发布。该模型通过额外的多语言和代码指令进行了调整,具备处理多种语言环境的能力。
项目背景
Occiglot-7B-IT-EN-Instruct 是针对西方语言开发的,引入了大量指令来提升模型在多个语言任务中的表现。虽然模型强大,但由于未进行安全对齐,可能会生成不当的内容。项目的开放性也体现在欢迎各种形式的合作与贡献中。
模型详情
- 基础模型: occiglot-7b-it-en
- 模型架构: 仅因果解码的变压器语言模型
- 支持语言: 英语、意大利语和代码
- 许可协议: Apache 2.0
- 计算资源: DFKI 集群提供支持
- 主要贡献者: Manuel Brack、Patrick Schramowski、Pedro Ortiz 等
- 研究机构: Occiglot 与 DFKI 研究所的 SAINT 和 SLT 部门的支持
- 联系方式: 加入 Occiglot Discord 服务器
使用方式
模型使用 ChatML 指令模板进行训练,用户可利用 transformers 的聊天模板功能进行互动。为了确保生成结果的可复现性,可以设置随机种子。
from transformers import AutoTokenizer, MistralForCausalLM, set_seed
tokenizer = AutoTokenizer.from_pretrained("occiglot/occiglot-7b-eu5-instruct")
model = MistralForCausalLM.from_pretrained('occiglot/occiglot-7b-eu5-instruct')
set_seed(42)
messages = [
{"role": "system", 'content': 'You are a helpful assistant. Please give short and concise answers.'},
{"role": "user", "content": "chi è il primo ministro italiano?"}
]
tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_dict=False, return_tensors='pt',)
outputs = model.generate(tokenized_chat.to('cuda'), max_new_tokens=200,)
tokenizer.decode(outputs[0][len(tokenized_chat[0]):])
数据集
模型训练数据包括五种语言的语料。特别感谢 Disco Research 和 Björn Plüster 提供的数据集。其中包括:
- 英语和代码集: Open-Hermes-2B
- 意大利语集:
- Quora-IT-Baize
- Stackoverflow-IT-Vaize
- 其他如 Camoscio 等
训练设置
模型使用 8xH100 进行完整的指令微调,采用 AdamW 优化器,运行了 0.6 至 4 个训练 epoch,并使用了余弦退火和预热策略。
评估
初步的评估结果显示模型在多个测试数据集上的表现。值得注意的是,非英语结果基于部分机器翻译的数据集,可能存在对英语建模性能的偏倚。
致谢
项目的训练工作由 42 超级计算机的计算资助支持,体现了赫马资本 AI 和德国联邦经济事务和气候行动部在人工智能服务中心的投入。
许可协议
Occiglot-7B-IT-EN-Instruct 使用 Apache 2.0 许可证进行发布。