モデル概要
モデル特徴
モデル能力
使用事例
🚀 Teuken-7B-instruct-research-v0.4
Teuken-7B-instruct-research-v0.4は、OpenGPT-Xプロジェクト内で4兆トークンを使って事前学習された、70億パラメータの命令調整済み多言語大規模言語モデル(LLM)です。このモデルは、24のEU言語をカバーし、多言語タスクに特化しています。
🚀 クイックスタート
Teuken-7B-instruct-research-v0.4 は、OpenGPT-Xプロジェクト内で4兆トークンを使って事前学習された、70億パラメータの命令調整済み多言語大規模言語モデル(LLM)です。 ベースモデルのTeuken-7B-base-v0.4は、リクエストに応じて提供されます 📧 contact@opengpt-x.de。
✨ 主な機能
- 多言語対応:24のEU言語をカバーし、これらの言語でより安定した結果を提供し、英語中心のモデルよりもヨーロッパの価値観を反映した回答を生成します。
- 研究用途:ベースモデルが24のEU言語で訓練されているため、これらの言語での研究用途に適しています。
📦 インストール
モデルを使用するには、いくつかのライブラリを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を使用してChat APIを呼び出し、Chat-Templateの言語を追加のボディとして渡すことができます。
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サーバーを起動する際に、Chat-Templateのデフォルト言語を設定することもできます。このためには、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}")
📚 ドキュメント
トレーニング詳細
事前学習データ
Teuken-7B-instruct-research-v0.4 は、公開されているソースからの4兆トークンのデータで事前学習されました。事前学習データは2023年9月までのものです。
命令調整データ
データセットの構成には、英語とドイツ語のデータセットを選択し、最終的なデータセットをドイツ語と英語で均等にサンプリングしました。
英語データ
英語データのサンプル選択には以下の手順を行いました。
- すべてのマルチターンサンプルを追加します。
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-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" で確認できます。 モデルは21の言語でARC、GSM8K、HellaSwag、TruthfulQA、Translation、MMLUで評価されました。結果は European LLM Leaderboard でも確認できます。
技術仕様
モデルアーキテクチャと目的
ハイパーパラメータ | 値 |
---|---|
トレーニング目的 | CLM |
活性化関数 | SwiGLU |
シーケンス長 | 4096 |
位置埋め込み | Rotary |
レイヤー数 | 32 |
隠れ層サイズ | 4096 |
FFN隠れ層サイズ | 13440 |
アテンションヘッド数 | 32 |
ヘッド次元 | 128 |
グループクエリアテンション | yes |
クエリグループ数 | 2 |
正規化 | RMSNorm |
学習率 | 3e-4 |
最小学習率 | 3e-5 |
線形層のバイアス無効 | yes |
隠れ層ドロップアウト | 0.0 |
アテンションドロップアウト | 0.0 |
オプティマイザー | AdamW |
Beta1 | 0.9 |
Beta2 | 0.95 |
データ型 | bf16 |
活性化関数の再計算 | yes |
分散オプティマイザー | yes |
コンピューティングインフラストラクチャ
我々のモデルはJUWELS Boosterでトレーニングされました。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、ネットワークアダプタは、各デバイスに16本のPCIeレーンが接続された2つのPCIe Gen 4スイッチを介して接続されています。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 (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)
我々は、前述の制限を克服し、ヨーロッパの生成AIの状況を強化するために、協力が重要であると信じています。そのため、チームは研究者、開発者、AI愛好家に、さまざまなプラットフォームを通じて参加することを招待しています。コミュニティ協力のためにDiscordサーバーが作成されており、技術的な詳細、アイデアの議論や開発者との直接的なやり取りの場を提供しています。また、研究論文やEuropean LLM Leaderboardなどのリソースは、Teuken-7Bのパフォーマンスや技術的な側面に関する洞察を提供します。OpenGPT-Xチームは、プロジェクトが進展するにつれて、継続的な関与と協力を奨励しています。
主要リンク
- Discord: OpenGPT-X Discordサーバー
- 研究論文: OpenGPT-X News 研究論文
- LLMリーダーボード: European LLM Leaderboard LLMリーダーボード
連絡先情報
以下のモデルカードの連絡先に問い合わせることができます。
🔧 技術詳細
モデルタイプ
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
開発者
Fraunhofer, Forschungszentrum Jülich, TU Dresden, DFKI
資金提供元
German Federal Ministry of Economics and Climate Protection (BMWK) in the context of the OpenGPT-X project
共有者
OpenGPT-X
📄 ライセンス
other
⚠️ 重要提示
この大規模言語モデル(LLM)は、不適切、不快、または有害なコンテンツを生成する可能性があります。データセットはこのような出力を最小限に抑えるためにフィルタリングされていますが、データの大規模性と多様性のため、モデルは依然として偏見や有毒なテキストを生成する可能性があります。
💡 使用建议
このモデルは数学やコーディングタスクには適していません。



