模型简介
模型特点
模型能力
使用案例
🚀 Teuken-7B-instruct-research-v0.4模型卡
Teuken-7B-instruct-research-v0.4是一个经过指令微调的70亿参数多语言大语言模型(LLM),在OpenGPT-X研究项目中使用4万亿个标记进行了预训练。该模型专注于覆盖所有24种欧盟语言,在这些语言上能产生更稳定的结果,并且在回答中比以英语为中心的模型更好地反映欧洲价值观,因此适用于多语言任务的研究。
🚀 快速开始
安装
该模型需要在Python环境中安装几个库,可以使用以下命令进行安装:
python -m pip install numpy torch huggingface_hub transformers sentencepiece
使用示例
基础用法
由于该模型是一个微调模型,必须使用提供的提示模板。不使用提示模板使用该模型并非预期行为,也不建议这样做。提示模板定义如下:
user="Hi!"
lang_code = "DE"
system_messages={
"EN": "A chat between a human and an artificial intelligence assistant."
" The assistant gives helpful and polite answers to the human's questions.",
"DE": "Ein Gespräch zwischen einem Menschen und einem Assistenten mit künstlicher Intelligenz."
" Der Assistent gibt hilfreiche und höfliche Antworten auf die Fragen des Menschen.",
}
prompt = f"System: {system_messages[lang_code]}\nUser: {user}\nAssistant:"
提示模板也直接集成在分词器中,可以按如下方式使用:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_name = "openGPT-X/Teuken-7B-instruct-research-v0.4"
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
)
model = model.to(device).eval()
tokenizer = AutoTokenizer.from_pretrained(
model_name,
use_fast=False,
trust_remote_code=True,
)
messages = [{"role": "User", "content": "Hallo"}]
prompt_ids = tokenizer.apply_chat_template(messages, chat_template="DE", tokenize=True, add_generation_prompt=True, return_tensors="pt")
prediction = model.generate(
prompt_ids.to(model.device),
max_length=512,
do_sample=True,
top_k=50,
top_p=0.95,
temperature=0.7,
num_return_sequences=1,
)
prediction_text = tokenizer.decode(prediction[0].tolist())
print(prediction_text)
高级用法
使用vLLM服务器
启动vLLM服务器:
vllm serve openGPT-X/Teuken-7B-instruct-research-v0.4 --trust-remote-code
使用vLLM的聊天API,并将聊天模板的语言作为额外的主体传递:
from openai import OpenAI
client = OpenAI(
api_key="EMPTY",
base_url="http://localhost:8000/v1",
)
completion = client.chat.completions.create(
model="openGPT-X/Teuken-7B-instruct-research-v0.4",
messages=[{"role": "User", "content": "Hallo"}],
extra_body={"chat_template":"DE"}
)
print(f"Assistant: {completion}")
也可以在启动vLLM服务器时设置聊天模板的默认语言。为此,创建一个名为lang
的新文件,内容为DE
,并按如下方式启动vLLM服务器:
vllm serve openGPT-X/Teuken-7B-instruct-research-v0.4 --trust-remote-code --chat-template lang
使用vLLM离线批量推理
from vllm import LLM, SamplingParams
sampling_params = SamplingParams(temperature=0.01, max_tokens=1024, stop=["</s>"])
llm = LLM(model="openGPT-X/Teuken-7B-instruct-research-v0.4", trust_remote_code=True, dtype="bfloat16")
outputs = llm.chat(
messages=[{"role": "User", "content": "Hallo"}],
sampling_params=sampling_params,
chat_template="DE"
)
print(f"Prompt: {outputs[0].prompt}")
print(f"Assistant: {outputs[0].outputs[0].text}")
✨ 主要特性
- 多语言支持:支持24种欧盟语言(bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv),在多语言任务中表现更稳定,能更好地反映欧洲价值观。
- 指令微调:经过指令微调,需要使用特定的提示模板进行交互。
📦 安装指南
该模型需要在Python环境中安装几个库,可以使用以下命令进行安装:
python -m pip install numpy torch huggingface_hub transformers sentencepiece
📚 详细文档
模型描述
- 开发者:Fraunhofer, Forschungszentrum Jülich, TU Dresden, DFKI
- 资助方:德国联邦经济事务和气候行动部(BMWK),在OpenGPT-X项目框架内
- 模型类型:基于Transformer的仅解码器模型
- 支持语言:bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv
- 共享方:OpenGPT-X
使用场景
Teuken-7B-instruct-research-v0.4专注于覆盖所有24种欧盟语言,因此在这些语言上能产生更稳定的结果,并且在回答中比以英语为中心的模型更好地反映欧洲价值观。它适用于多语言任务,也可用于这24种语言的研究。
免责声明:有毒内容
这个大语言模型(LLM)可能会生成不适当、冒犯性或有害的内容。虽然数据集已经过过滤以尽量减少此类输出,但由于数据的大规模和多样性,模型仍可能产生有偏见或有毒的文本。
非预期使用场景
该模型不适合用于数学和编码任务。
偏差、风险和局限性
Teuken-7B-instruct-research-v0.4是Teuken-7B-base-v0.4的指令微调版本(基础模型可通过邮件📧 contact@opengpt-x.de获取),并非完全没有偏差和幻觉。
训练细节
预训练数据
Teuken-7B-instruct-research-v0.4在来自公开来源的4万亿个标记的数据上进行了预训练。预训练数据截止到2023年9月。
指令微调数据
对于数据集的组成,我们使用了英语和德语数据集的选择,并以德语和英语的平等分布采样最终数据集,如下表所示。
英语数据
- 我们只包含了OpenOrca数据集的一个子样本。
- 对于LMSYS-Chat数据集,我们只选择了LMSYS-Chat-1M: A Large-Scale Real-World LLM Conversation Dataset中的高质量标准,即如果模型答案来自“GPT-3.5-turbo”、“GPT-4”、 “Claude-1”、“Claude-instant-1”或“Claude-2”,并且是英语。
- 为了根据质量选择指令微调示例,我们使用Starling-RM-7B-alpha(Apache-2.0许可证)计算了所有英语示例的奖励分数。
对于英语数据,我们进行了以下样本选择步骤:
- 添加所有多轮示例
- 添加整个
code_alpaca
数据集子集 - 添加整个
lmsys_chat_1m_high_quality_train_en
数据集子集 - 对于其余数据集子集(
open_orca
、evol_instruct_143k
、evol_instruct_70k
、sharegpt_v3
、ultrachat_200k
、bactrianx_EN
),我们添加奖励分数最高的样本,以便每个数据集子集贡献等量的高质量示例
数据集 | 样本数量 |
---|---|
anon8231489123/ShareGPT_Vicuna_unfiltered | 37.6K |
MBZUAI/Bactrian-X | 26.9K |
Open-Orca/OpenOrca | 26.9K |
WizardLM/WizardLM_evol_instruct_70k | 26.9K |
WizardLM/WizardLM_evol_instruct_V2_196k | 26.8K |
sahil2801/CodeAlpaca-20k | 12.1K |
lmsys/lmsys-chat-1m | 11.2K |
HuggingFaceH4/ultrachat_200k | 7.0K |
总计 | 175.5K |
德语数据
对于德语数据,我们包含了给定表格中的完整数据集:
数据集 | 样本数量 |
---|---|
MBZUAI/Bactrian-X DE | 63.7K |
FreedomIntelligence/evol-instruct-deutsch | 55.9K |
FreedomIntelligence/alpaca-gpt4-deutsch | 47.5K |
FreedomIntelligence/sharegpt-deutsch | 5.8K |
LeoLM/German_Songs | 943 |
LeoLM/German_Poems | 378 |
bjoernp/ultrachat_de | 909 |
总计 | 175.13K |
训练过程
Teuken-7B-instruct-research-v0.4是Teuken-7B-base-v0.4的指令微调版本。关于预训练的更多信息,请参阅我们的模型预印本"Teuken-7B-Base & Teuken-7B-Instruct: Towards European LLMs"。
训练超参数
- 训练模式:bf16混合精度
评估
在21种欧洲语言的多语言基准测试中,使用指令微调模型的结果如下:
模型 | 平均得分 | EU21-ARC | EU21-HeSw | EU21-TQA | EU21-MMLU |
---|---|---|---|---|---|
Meta-Llama-3.1-8B-Instruct | .563 | .563 | .579 | .532 | .576 |
Mistral-7B-Instruct-v0.3 | .527 | .530 | .538 | .548 | .491 |
Salamandra-7B-Instruct | .543 | .595 | .637 | .482 | .459 |
Aya-23-8B | .485 | .475 | .535 | .476 | .455 |
Occiglot-7B-eu5-Instruct | .475 | .484 | .519 | .471 | .428 |
Pharia-1-LLM-7B-C-A | .417 | .396 | .438 | .469 | .366 |
Bloomz-7B1 | .358 | .316 | .354 | .461 | .302 |
Teuken-7B-instruct-research-v0.4 | .543 | .581 | .624 | .543 | .425 |
关于我们翻译基准测试质量的更多信息,请参阅我们的评估预印本"Towards Multilingual LLM Evaluation for European Languages"。关于Teuken-7B-instruct-research-v0.4质量的更多评估结果,请参阅我们的模型预印本"Teuken-7B-Base & Teuken-7B-Instruct: Towards European LLMs"。该模型在ARC、GSM8K、HellaSwag、TruthfulQA、Translation和MMLU等任务上进行了21种语言的评估。结果也可以在欧洲大语言模型排行榜上查看。
技术规格
模型架构和目标
属性 | 详情 |
---|---|
训练目标 | CLM |
激活函数 | SwiGLU |
序列长度 | 4096 |
位置嵌入 | Rotary |
层数 | 32 |
隐藏层大小 | 4096 |
前馈网络隐藏层大小 | 13440 |
注意力头数量 | 32 |
头维度 | 128 |
分组查询注意力 | 是 |
查询组数量 | 2 |
归一化方法 | RMSNorm |
学习率 | 3e-4 |
最小学习率 | 3e-5 |
线性层禁用偏置 | 是 |
隐藏层丢弃率 | 0.0 |
注意力丢弃率 | 0.0 |
优化器 | AdamW |
Beta1 | 0.9 |
Beta2 | 0.95 |
数据类型 | bf16 |
重新计算激活值 | 是 |
分布式优化器 | 是 |
计算基础设施
我们的模型在JUWELS Booster上进行训练,该系统由936个计算节点组成,每个节点配备4个NVIDIA A100 GPU。GPU由AMD EPYC Rome CPU托管。计算节点通过HDR-200 InfiniBand以DragonFly+拓扑结构连接。
硬件
JUWELS Booster计算节点的配置如下:
- CPU:AMD EPYC 7402处理器;2个插槽,每个插槽24个核心,SMT-2(总计:2×24×2 = 96个线程),NPS-4 1配置
- 内存:512 GB DDR4-3200 RAM(其中至少20 GB由系统软件栈占用,包括文件系统);每个插槽256 GB;每个插槽8个内存通道(每个NUMA域2个通道)
- GPU:4 × NVIDIA A100 Tensor Core GPU,每个GPU 40 GB;通过NVLink3相互连接
- 网络:4 × Mellanox HDR200 InfiniBand ConnectX 6(每个200 Gbit/s),HCA
- 外设:CPU、GPU和网络适配器通过2个PCIe Gen 4交换机连接,每个设备有16条PCIe通道(CPU插槽:2×16条通道)。PCIe交换机配置为合成模式。
软件
BibTeX引用
如果您在研究中发现我们的模型有用,请考虑引用我们的预印本:
@misc{ali2024teuken7bbaseteuken7binstructeuropean,
title={Teuken-7B-Base & Teuken-7B-Instruct: Towards European LLMs},
author={Mehdi Ali and Michael Fromm and Klaudia Thellmann and Jan Ebert and Alexander Arno Weber and Richard Rutmann and Charvi Jain and Max Lübbering and Daniel Steinigen and Johannes Leveling and Katrin Klug and Jasper Schulze Buschhoff and Lena Jurkschat and Hammam Abdelwahab and Benny Jörg Stein and Karl-Heinz Sylla and Pavel Denisov and Nicolo' Brandizzi and Qasid Saleem and Anirban Bhowmick and Lennard Helmer and Chelsea John and Pedro Ortiz Suarez and Malte Ostendorff and Alex Jude and Lalith Manjunath and Samuel Weinbach and Carolin Penke and Oleg Filatov and Shima Asaadi and Fabio Barth and Rafet Sifa and Fabian Küch and Andreas Herten and René Jäkel and Georg Rehm and Stefan Kesselheim and Joachim Köhler and Nicolas Flores-Herr},
year={2024},
eprint={2410.03730},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2410.03730},
}
🔧 技术细节
该模型基于Transformer架构,是一个仅解码器模型。在训练过程中,使用了bf16混合精度,以提高训练效率。预训练数据来自公开来源,截止到2023年9月,包含4万亿个标记。指令微调数据包括英语和德语数据集,通过特定的样本选择方法进行处理。在评估方面,模型在21种欧洲语言的多语言基准测试中进行了测试,结果显示了其在多语言任务中的性能。
📄 许可证
其他
团队
数据团队
Anirban Bhowmick (IAIS), Nicolo Brandizzi (IAIS), Lennard Helmer (IAIS), Benny Jörg Stein (IAIS), Karl-Heinz Sylla (IAIS), Pavel Denisov (IAIS), Qasid Saleem (IAIS), Johannes Leveling (IAIS), Hammam Abdelwahab (IAIS), Luzian Hahn (IIS), Farzad Naderi (IIS), Md Saiful Islam (IIS), Alexander Schwirjow (IIS), Pedro Ortiz Suarez (ex. DFKI), Malte Ostendorff (ex. DFKI)
模型训练团队
核心贡献者
Mehdi Ali (IAIS), Michael Fromm (IAIS), Jan Ebert (FZJ), Chelsea John (FZJ), Lena Jurkschat (TUD), Alexander Weber (IAIS)
贡献者
Richard Rutmann (IAIS), Daniel Steinigen (IAIS), Lalith Manjunath (TUD), Carolin Penke (FZJ)
评估团队
核心贡献者
Klaudia Thellmann (TUD), Alex Jude (IAIS), Jasper Buschhoff (IAIS)
贡献者
Shima Assadi (IIS), Fabio Barth (DFKI)
管理团队
Joachim Köhler (IAIS), Nicolas Flores-Herr (IAIS), Stefan Kesselheim (FZJ), Andreas Herten (FZJ), Georg Rehm (DFKI), René Jäkel (TUD), Fabian Küch (IIS), Nicole Hildebrandt (IAIS), Ines Wendler (IAIS)
我们相信,合作是克服上述局限性并加强欧洲生成式人工智能领域的关键。因此,团队邀请研究人员、开发者和人工智能爱好者通过各种平台加入并参与。我们创建了一个Discord服务器,用于社区协作,为讨论技术细节、分享想法以及与开发者直接互动提供了空间。此外,研究出版物和欧洲大语言模型排行榜等资源提供了关于Teuken-7B性能和技术方面的见解。OpenGPT-X团队鼓励在项目发展过程中持续参与和合作。
关键链接
- Discord:OpenGPT-X Discord服务器
- 研究论文:OpenGPT-X新闻 研究论文
- 大语言模型排行榜:欧洲大语言模型排行榜 排行榜
联系信息
您可以联系以下模型卡联系人:



