模型概述
模型特點
模型能力
使用案例
🚀 Teuken-7B-instruct-commercial-v0.4
Teuken-7B-instruct-commercial-v0.4 是一個經過指令調優的70億參數多語言大語言模型(LLM),它在所有24種歐洲官方語言的4萬億個標記上進行了預訓練,並在 OpenGPT-X 研究項目中以Apache 2.0許可證發佈。基礎模型 Teuken-7B-base-v0.4 可通過郵件 📧 contact@opengpt-x.de 申請獲取。
🚀 快速開始
安裝
該模型需要一些可以在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-commercial-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": "Wer bist du?"}]
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-commercial-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-commercial-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-commercial-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-commercial-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種歐洲官方語言,適用於商業和研究用途,在多語言任務中表現更穩定,能更好地反映歐洲價值觀。
- 指令調優:經過指令調優,能根據用戶指令生成更符合需求的回答。
📦 安裝指南
該模型需要一些可以在Python環境中安裝的庫:
python -m pip install numpy torch huggingface_hub transformers sentencepiece
📚 詳細文檔
模型描述
- 開發者:Fraunhofer、Forschungszentrum Jülich、TU Dresden、DFKI
- 資助方:德國聯邦經濟與氣候保護部(BMWK),在OpenGPT-X項目框架內
- 模型類型:基於Transformer的僅解碼器模型
- 支持語言(NLP):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-commercial-v0.4 旨在用於所有24種歐洲官方語言的商業和研究用途。由於該模型專注於覆蓋所有24種歐盟語言,與以英語為中心的模型相比,它在這些語言上能產生更穩定的結果,並且在回答中能更好地反映歐洲價值觀。因此,它特別適用於多語言任務。
免責聲明:有害內容
這個大語言模型(LLM)可能會生成不適當、冒犯性或有害的內容。雖然數據集已經過過濾以儘量減少此類輸出,但由於數據的大規模和多樣性,模型仍可能產生有偏見或有害的文本。
非預期使用場景
該模型不適合用於數學和編碼任務。
偏差、風險和侷限性
Teuken-7B-instruct-commercial-v0.4 是Teuken-7B-base-v0.4(可通過郵件 📧 contact@opengpt-x.de 申請獲取)的指令調優版本,它並非完全沒有偏差和幻覺。
訓練細節
預訓練數據
Teuken-7B-base-v0.4 在來自公開可用來源的4萬億個標記的數據上進行了預訓練。預訓練數據截止到2023年9月。更多信息可在我們的預印本 "Data Processing for the OpenGPT-X Model Family" 中找到。
指令調優數據
該模型在一組以英語和德語為重點的指令調優數據集上進行了微調,這些數據集也包含22種歐洲官方語言的指令。數據集組成包含三種類型的數據:多語言數據、英語數據和翻譯後的德語數據。
英語數據
- 我們只包含了OpenOrca數據集的一個子樣本。
- 為了根據質量選擇指令調優示例,我們使用 Starling-RM-7B-alpha(Apache-2.0許可證)計算了所有英語示例的獎勵分數。
我們的目標是包含與多語言示例大致相同數量的英語示例:
- 添加所有多輪對話示例。
- 添加整個
code_alpaca
數據集子集。 - 對於其餘的數據集子集(
open_orca
、evol_instruct_143k
、evol_instruct_70k
、sharegpt_v3
、ultrachat_200k
),我們添加獎勵分數最高的樣本,以便每個數據集子集貢獻相同數量的高質量示例。
德語數據
由於我們的目標是創建一個以德語和英語為中心的歐洲語言數據集,並且由於大規模德語指令調優數據的稀缺性,我們翻譯了上述數據集組成中的英語部分。為此,我們應用了 Alma-13B(MIT許可證)模型。由於代碼在翻譯中可能會出現問題,我們實現了基於正則表達式的代碼檢測功能。通過該功能,我們排除代碼片段進行翻譯,並在翻譯後重新插入代碼片段。由於 alpaca_code
包含許多我們基於正則表達式的代碼檢測實現無法檢測到的代碼片段,我們將這部分數據集納入了翻譯範圍。
多語言數據
對於多語言數據,我們包含了 aya_dataset 中的14種歐洲官方語言以及 aya_collection 的 translated_flan_cot
數據集中的21種歐洲官方語言。
數據集和許可證
名稱 | 語言 | 許可證 |
---|---|---|
Open-Orca/OpenOrca | 英語 | MIT |
sahil2801/CodeAlpaca-20k | 英語 | CC-BY-4.0 |
WizardLM/WizardLM_evol_instruct_V2_196k | 英語 | MIT |
WizardLM/WizardLM_evol_instruct_70k | 英語 | MIT |
anon8231489123/ShareGPT_Vicuna_unfiltered | 英語 | Apache-2.0 |
HuggingFaceH4/ultrachat_200k | 英語 | MIT |
CohereForAI/aya_dataset | 多語言 | Apache-2.0 |
CohereForAI/aya_collection | 多語言 | Apache-2.0 |
FreedomIntelligence/sharegpt-deutsch | 德語 | Apache-2.0 |
bjoernp/ultrachat_de | 德語 | MIT |
各語言的數據集貢獻情況:
總數 | 德語_freedomintelligence_sharegpt | 德語_ultrachat_de | 翻譯後的_flan_cot | aya_dataset | 翻譯為德語的_ultrachat_200k | 翻譯為德語的_sharegpt_v3_unfiltered | 翻譯為德語的_evol_instruct_143k | 翻譯為德語的_evol_instruct_70k | 翻譯為德語的_open_orca | ultrachat_200k | sharegpt_v3_unfiltered | code_alpaca | open_orca | evol_instruct_143k | evol_instruct_70k | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BG | 1909 | 0 | 0 | 1909 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CS | 1885 | 0 | 0 | 1885 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DA | 2001 | 0 | 0 | 1906 | 95 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DE | 77628 | 5818 | 898 | 1896 | 231 | 6940 | 37555 | 8116 | 8065 | 8109 | 0 | 0 | 0 | 0 | 0 | 0 |
ET | 1901 | 0 | 0 | 1901 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EL | 2472 | 0 | 0 | 1881 | 591 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ES | 3800 | 0 | 0 | 1898 | 1902 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EN | 80806 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6915 | 37600 | 12013 | 8074 | 8099 | 8105 |
FI | 2598 | 0 | 0 | 1890 | 708 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
FR | 3250 | 0 | 0 | 1890 | 1360 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
HU | 1985 | 0 | 0 | 1892 | 93 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
MT | 1918 | 0 | 0 | 1918 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
IT | 2613 | 0 | 0 | 1910 | 703 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
LT | 2800 | 0 | 0 | 1920 | 880 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
NL | 3549 | 0 | 0 | 1905 | 1644 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PL | 3322 | 0 | 0 | 1909 | 1413 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PT | 3806 | 0 | 0 | 1897 | 1909 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
RO | 1888 | 0 | 0 | 1888 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
GA | 3069 | 0 | 0 | 1880 | 1189 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SK | 1922 | 0 | 0 | 1922 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SL | 1894 | 0 | 0 | 1894 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SV | 3160 | 0 | 0 | 1916 | 1244 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
所有語言的總數為210,176。
訓練過程
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-commercial-v0.4 | .531 | .569 | .620 | .503 | .430 |
更多關於我們翻譯後的基準測試質量的信息可在我們的評估預印本 "Towards Multilingual LLM Evaluation for European Languages" 中找到。更多關於Teuken-7B-instruct-research-v0.4的評估結果可在我們的模型預印本 "Teuken-7B-Base & Teuken-7B-Instruct: Towards European LLMs" 中找到。該模型在21種語言的ARC、GSM8K、HellaSwag、TruthfulQA、Translation和MMLU上進行了評估。結果也可在 歐洲大語言模型排行榜 中查看。
技術細節
模型架構和目標
超參數 | 值 |
---|---|
訓練目標 | 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,每個40 GB;通過NVLink3相互連接
- 網絡:4 × Mellanox HDR200 InfiniBand ConnectX 6(每個200 Gbit/s),HCA
- 外設:CPU、GPU和網絡適配器通過2個PCIe Gen 4交換機連接,每個設備(CPU插槽:2×16個通道)有16個PCIe通道。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},
}
團隊信息
數據團隊
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(前DFKI)、Malte Ostendorff(前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新聞 研究論文
- 大語言模型排行榜:歐洲大語言模型排行榜 大語言模型排行榜
聯繫信息
您可以聯繫以下模型卡片聯繫人:
許可證
本模型採用Apache 2.0許可證發佈。



