モデル概要
モデル特徴
モデル能力
使用事例
🚀 GaMS-9B-Instruct
このモデルは、cjvt/GaMS-9B-Instruct のGGUFバージョンで、リュブリャナ大学のコンピュータと情報科学学部におけるWeb情報抽出と検索の授業のために変換されました。GaMS(スロベニア語用生成モデル)ファミリーの新しい改良版で、GoogleのGemma 2ファミリーに基づき、スロベニア語、英語、そして一部のクロアチア語、セルビア語、ボスニア語のコーパスで継続的に事前学習されています。
🚀 クイックスタート
このモデルは、以下のコードを使用して pipeline
API を通じて実行できます。
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="cuda" # Macデバイスで実行する場合は "mps" に置き換える
)
# 応答生成の例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
# 会話チェーンの例
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
マルチGPU推論の場合は、device_map
を auto
に設定します。
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="auto"
)
# 応答生成の例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
# 会話チェーンの例
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
✨ 主な機能
- 多言語対応:スロベニア語、英語を中心に、クロアチア語、ボスニア語、セルビア語にも対応しています。
- 高精度なテキスト生成:様々なタスクに対応した高精度なテキスト生成が可能です。
- 柔軟な推論設定:シングルGPUやマルチGPUでの推論が可能です。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="cuda" # Macデバイスで実行する場合は "mps" に置き換える
)
# 応答生成の例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
高度な使用法
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="auto" # マルチGPU推論
)
# 会話チェーンの例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
📚 ドキュメント
データ
CPTデータ
モデルは2段階で継続的に事前学習されました。最初の段階では、英語とスロベニア語(一部の場合はクロアチア語)の並列コーパスを使用して言語をアライメントしました。2段階目では、英語、スロベニア語、クロアチア語、ボスニア語、セルビア語の個別のコーパスで学習しました。
並列アライメントコーパス
コーパス | アライメントレベル | トークン数 | 割合 |
---|---|---|---|
KAS Abstracts | ドキュメントレベル | 31 M | 1.65 % |
DGT | 個別のドキュメント | 697 M | 36.56 % |
MaCoCu Parallel | 個別のドキュメント | 430 M | 22.53 % |
CC-News | パラグラフレベル | 749 M | 39.25 % |
合計 | 1.91 B |
各アライメントレベルの説明:
- ドキュメントレベル:並列ドキュメントを1つのドキュメントに連結します。
- 個別のドキュメント:並列ドキュメントを明示的にアライメントしません。
- パラグラフレベル:並列ドキュメントのパラグラフを連結します(スロベニア語/英語ドキュメントの最初のパラグラフの後に、もう一方の言語の最初のパラグラフが続き、その後に最初の言語の2番目のパラグラフが続きます)。
2段階目のコーパス
コーパス | 言語 | トークン数 | 割合 |
---|---|---|---|
KAS | スロベニア語 | 2.77 B | 20.34 % |
MetaFida* | スロベニア語 | 4.66 B | 34.18 % |
Wikipedia-En (日付: 2025年1月23日) | 英語 | 5.45 B | 39.99 % |
Wikipedia-Sl (日付: 2025年1月1日) | スロベニア語 | 0.16 B | 1.19 % |
Wikipedia-Hr (日付: 2025年1月1日) | クロアチア語 | 0.15 B | 1.13 % |
Wikipedia-Bs (日付: 2025年1月1日) | ボスニア語 | 0.07 B | 0.50 % |
Wikipedia-Sr-Latin* | セルビア語 | 0.36 B | 2.68 % |
合計 | 13.62 B |
注釈:
- MetaFidaからは、dgt15_sl、classlawiki_sl、tweet_sl、janes_tweet、janes_forum、janes_newsのコーパスが除外されました。
- セルビア語のウィキペディアは、キリル文字からラテン文字に変換されました。
SFTデータ
SFTのトレーニングデータは、約25,000のトレーニング例と1,500の検証例から構成されています。このデータセットは、以下のデータセットの混合物です。
- GaMS-Instruct-GEN 1.0
- GaMS-Instruct-DH 1.0:このデータセットから3,000のランダムに選択された例が選ばれました。
- GaMS-Instruct-MED 1.0:このデータセットから3,000のランダムに選択された例が選ばれました。
- Parallel corpus EN-SL RSDO4 2.0:このコーパスに対して追加のフィルタリングが行われました。まず、NeMo Curator を使用してFastText言語識別を実行し、ソースが英語と検出され、ターゲットがスロベニア語と検出された例のみを残しました。次に、COMET モデルを実行して翻訳を評価しました。COMETスコアが0.945より高い例のみを残しました(約8,000の例)。
- Aya Dataset:このデータセットからは、英語とセルビア語の例のみが取られました。セルビア語の例は、キリル文字からラテン文字に変換されました。
- Math competitions:2001年から2010年の間のスロベニアの全国数学コンテストのPDFを取得しました。olmOCR を使用してPDFからテキストを抽出し、抽出されたテキストを手動で修正しました。これにより、約150の解かれた数学問題が得られました。
トレーニング
モデルは、Leonardo HPC のBoosterパーティションでトレーニングされました。
CPT
モデルは、NVIDIA NeMo 2.0フレームワーク を使用して継続的に事前学習されました。モデルは、4つのGPU間でテンソル並列、シーケンス並列、およびアクティベーション再計算を使用して、BF16混合精度でトレーニングされました。モデルは、それぞれ4つのA100 64GB GPUを含む32ノードでトレーニングされました。並列アライメントトレーニングには約4時間、2段階目には約40時間かかりました。
モデルは、線形ウォームアップ付きのコサイン学習率スケジューラを使用してトレーニングされ、以下のハイパーパラメータが使用されました。
並列アライメント:
- ウォームアップステップ:150
- 最小学習率:5e-6
- 最大学習率:2e-5
- 定数ステップ:0
- バッチサイズ:512(400万トークン)
2段階目:
- ウォームアップステップ:500
- 最小学習率:5e-6
- 最大学習率:5e-5
- 定数ステップ:100
- バッチサイズ:512(400万トークン)
SFT
教師あり微調整には、DeepSpeed ZeRO-3 を使用した Transformers
ライブラリが使用されました。モデルは、4つのGPUに分割するためにパイプライン並列を使用して、BF16精度でトレーニングされました。モデルは、4つのA100 64GB GPUを備えた単一ノードでトレーニングされました。オプティマイザにはCPUオフロードが使用されました。
モデルは、線形ウォームアップ付きのコサイン学習率スケジューラを使用して調整され、以下のハイパーパラメータが使用されました。
- エポック数:5エポックでトレーニングされましたが、検証損失に基づいて最良のパフォーマンスを示したモデルは2エポック後に得られたため、そのモデルが保持されました。
- バッチサイズ:128
- ウォームアップステップ:150
- 最小学習率:1e-7
- 最大学習率:5e-6
- 定数ステップ:0
評価
モデルは、Slovene SuperGLUE の分類タスクコレクションを使用して、SloBench で評価されました。モデルのInstructバージョンは、英語からスロベニア語への翻訳 と スロベニア語から英語への翻訳 でも評価されました。さらに、Slovenian-LLM-Eval でも評価されました。
評価コード:
Slovenian-LLM-Eval結果
GaMSモデル、ベースのGemma 2モデル、およびSlovenianGPT(Mistral 7Bに基づくスロベニア語用のオープンソースモデル)の比較が以下の図に示されています。すべてのモデルは、0ショットシナリオで評価されました。
Slobench結果
GaMS 2B、9B、および27Bモデルは、3ショットシナリオで評価されましたが、MultiRCおよび翻訳タスクでは0ショットが使用されました。GaMS-9B-Instructは、すべてのタスクで0ショットシナリオで評価されました。応答の正しい形式を確保するために、ガイド付きデコーディングが使用されました。
Slovene SuperGLUE
順位 | タイトル | 平均 | BoolQ精度 | CB精度 | CB F1スコア | CB平均 | COPA精度 | MultiRC EM | MultiRC F1aスコア | MultiRC平均 | RTE精度 | WSC精度 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | GaMS-27B | 0.7601 | 0.8333 | 0.6440 | 0.5864 | 0.6152 | 0.9540 | 0.3904 | 0.7504 | 0.5704 | 0.7931 | 0.7945 |
2 | PrešernGPT 0.1 | 0.7568 | 0.8333 | 0.8520 | 0.5868 | 0.7194 | 0.9740 | 0.4985 | 0.8061 | 0.6523 | 0.8276 | 0.5342 |
3 | Gemma 2 27B | 0.7546 | 0.8333 | 0.6680 | 0.5972 | 0.6326 | 0.9140 | 0.4174 | 0.7295 | 0.5735 | 0.8276 | 0.7466 |
4 | GaMS-9B | 0.7309 | 0.7000 | 0.8400 | 0.7955 | 0.8178 | 0.9000 | 0.3243 | 0.6551 | 0.4897 | 0.7931 | 0.6849 |
5 | GaMS-9B-Instruct | 0.6997 | 0.8000 | 0.7960 | 0.7128 | 0.7544 | 0.8140 | 0.0721 | 0.6174 | 0.3447 | 0.7931 | 0.6918 |
6 | Gemma 2 9B | 0.6980 | 0.8333 | 0.8240 | 0.5683 | 0.6962 | 0.8700 | 0.2282 | 0.5310 | 0.3796 | 0.7241 | 0.6849 |
8 | CroSloEngual BERT | 0.6078 | 0.7333 | 0.7920 | 0.7437 | 0.7679 | 0.5720 | 0.0931 | 0.5241 | 0.3086 | 0.6552 | 0.6096 |
11 | SlovenianGPT-Chat | 0.5078 | 0.7333 | 0.3920 | 0.3829 | 0.3874 | 0.6840 | 0.2432 | 0.4944 | 0.3688 | 0.5172 | 0.3562 |
12 | Gemma 2 2B | 0.4876 | 0.6333 | 0.4520 | 0.2123 | 0.3321 | 0.5180 | 0.1471 | 0.4419 | 0.2945 | 0.5862 | 0.5616 |
13 | GaMS-2B | 0.4790 | 0.5667 | 0.6080 | 0.4880 | 0.5480 | 0.5240 | 0.0631 | 0.5234 | 0.2932 | 0.5517 | 0.3904 |
14 | GaMS-1B | 0.4604 | 0.5000 | 0.6200 | 0.4565 | 0.5382 | 0.4920 | 0.1351 | 0.2675 | 0.2013 | 0.4828 | 0.5479 |
15 | GaMS-1B-Chat | 0.4570 | 0.8000 | 0.4880 | 0.3023 | 0.3951 | 0.4840 | 0.1081 | 0.2428 | 0.1755 | 0.5172 | 0.3692 |
英語からスロベニア語への翻訳(ベンチマークの最初の11モデル)
順位 | タイトル | BERTスコア | BLEU(平均) | METEOR(平均) | CHRF(平均) | BLEU(コーパス) | CHRF(コーパス) |
---|---|---|---|---|---|---|---|
1 | DeepL Translator | 0.8812 | 0.3153 | 0.5902 | 0.6205 | 0.3599 | 0.6205 |
2 | gemini-1.5-pro | 0.8791 | 0.3124 | 0.5895 | 0.6176 | 0.3569 | 0.6176 |
3 | Sonnet 3.5 | 0.8789 | 0.3059 | 0.5783 | 0.6204 | 0.3442 | 0.6204 |
4 | gpt-4o | 0.8784 | 0.2958 | 0.5811 | 0.6138 | 0.3379 | 0.6138 |
5 | EuroLLM-9B-Instruct | 0.8741 | 0.2927 | 0.5792 | 0.6055 | 0.3273 | 0.6055 |
6 | seamless-m4t-v2-large | 0.8731 | 0.2780 | 0.5599 | 0.5947 | 0.3085 | 0.5947 |
7 | GaMS-9B-Instruct | 0.8713 | 0.2773 | 0.5616 | 0.5928 | 0.3209 | 0.5928 |
8 | Zlatorog | 0.8706 | 0.2834 | 0.5633 | 0.6014 | 0.2903 | 0.6014 |
9 | RSDO-DS4-NMT 1.2.2 | 0.8705 | 0.2794 | 0.5634 | 0.5956 | 0.3226 | 0.5956 |
9 | META LLAMA 3.1 405B | 0.8705 | 0.2637 | 0.5497 | 0.5930 | 0.3063 | 0.5930 |
11 | RSDO-DS4-NMT 1.2 | 0.8698 | 0.2781 | 0.5602 | 0.5970 | 0.3177 | 0.5970 |
スロベニア語から英語への翻訳(ベンチマークの最初の10モデル)
順位 | タイトル | BERTスコア | BLEU(平均) | METEOR(平均) | CHRF(平均) | BLEU(コーパス) | CHRF(コーパス) |
---|---|---|---|---|---|---|---|
1 | gpt-4o | 0.9496 | 0.3161 | 0.6655 | 0.6297 | 0.3496 | 0.6297 |
2 | gemini-1.5-pro | 0.9489 | 0.3117 | 0.6560 | 0.6237 | 0.3502 | 0.6237 |
3 | gpt-4o-mini | 0.9466 | 0.2976 | 0.6493 | 0.6197 | 0.3328 | 0.6197 |
4 | GaMS-9B-Instruct | 0.9454 | 0.2821 | 0.6275 | 0.6018 | 0.3141 | 0.6018 |
5 | ChatGPTv1 | 0.9449 | 0.2852 | 0.6415 | 0.6096 | 0.3171 | 0.6096 |
6 | RSDO-DS4-NMT 1.2.4 | 0.9434 | 0.2839 | 0.6227 | 0.5967 | 0.3290 | 0.5967 |
7 | RSDO-DS4-NMT 1.2.6 | 0.9433 | 0.2832 | 0.6207 | 0.5944 | 0.3295 | 0.5944 |
8 | RSDO-DS4-NMT 1.2.2 | 0.9431 | 0.2785 | 0.6184 | 0.5933 | 0.3240 | 0.5933 |
8 | RSDO-DS4-NMT 1.2 | 0.9431 | 0.2805 | 0.6201 | 0.5941 | 0.3231 | 0.5941 |
10 | eTranslation SLEN | 0.9414 | 0.2729 | 0.6175 | 0.5913 | 0.3119 | 0.5913 |
🔧 技術詳細
- 開発者:リュブリャナ大学のコンピュータと情報科学学部の研究者チーム。チームメンバー:Domen Vreš、Iztok Lebar Bajec、Tjaša Arčon、Gašper Jelovčan、Marko Robnik-Šikonja。
- 言語:スロベニア語、英語(主要)、クロアチア語、ボスニア語、セルビア語(次要)。このモデルは、Gemma 2がサポートする他の言語でも動作する可能性がありますが、それらの言語では継続的に事前学習されていません。
- ベースモデル:cjvt/GaMS-9B
- ライセンス:Gemma
📄 ライセンス
このモデルは、Gemma ライセンスの下で提供されています。
謝辞
このモデルは、PoVeJMo 研究プログラム(大規模言語モデルを用いた適応的自然言語処理)の中で開発されました。特に、SloLLaMaiという研究プロジェクトの中で開発されました。このプログラムは、スロベニア研究開発庁(ARIS)とNextGenerationEUによる回復とレジリエンス計画の中で資金提供されています。著者らは、スロベニア研究開発庁からの財政支援(研究基盤資金No. P6-0411 -- スロベニア語の言語資源と技術)にも感謝しています。
データ収集と準備に取り組んでくれたすべての人に感謝します。特に、Nikola Ljubešić、Taja Kuzman、Tjaša Arčon、Jaka Čibej、Simon Krek、Tomaž Erjavec、Iztok Kosem、Tomaž Savodnikに感謝します。
使用と制限事項(Gemma 2から引用)
これらのモデルには、ユーザーが認識すべき一定の制限があります。
意図された使用法
オープンな大規模言語モデル(LLM)は、様々な産業やドメインで幅広いアプリケーションがあります。以下の潜在的な使用例のリストは網羅的ではありません。このリストの目的は、モデルの作成者がモデルのトレーニングと開発の一環として考慮した可能性のあるユースケースに関する文脈情報を提供することです。
- コンテンツ作成とコミュニケーション
- テキスト生成:これらのモデルは、詩、脚本、コード、マーケティングコピー、メール草稿などの創造的なテキスト形式を生成するために使用できます。
- チャットボットと会話型AI:カスタマーサービス、バーチャルアシスタント、またはインタラクティブなアプリケーションの会話型インターフェースを提供します。
- テキスト要約:テキストコーパス、研究論文、またはレポートの簡潔な要約を生成します。
- 研究と教育
- 自然言語処理(NLP)研究:これらのモデルは、研究者がNLP技術を実験し、アルゴリズムを開発し、分野の進歩に貢献するための基盤となります。
- 言語学習ツール:対話型の言語学習体験をサポートし、文法修正や執筆練習を支援します。
- 知識探索:研究者が大量のテキストを探索するのを支援し、要約を生成したり、特定のトピックに関する質問に答えたりします。
制限事項
- トレーニングデータ
- トレーニングデータの品質と多様性は、モデルの能力に大きく影響します。トレーニングデータのバイアスやギャップは、モデルの応答に制限をもたらす可能性があります。
- トレーニングデータセットの範囲は、モデルが効果的に扱うことができる主題領域を決定します。
- コンテキストとタスクの複雑さ
- LLMは、明確なプロンプトと指示で構成できるタスクでより優れています。オープンエンドまたは非常に複雑なタスクは困難になる可能性があります。
- モデルのパフォーマンスは、提供されるコンテキストの量に影響される可能性があります(長いコンテキストは、ある程度までは一般的により良い出力につながります)。
- 言語の曖昧さとニュアンス
- 自然言語は本質的に複雑です。LLMは、微妙なニュアンス、皮肉、または比喩的な言語を理解するのに苦労する可能性があります。
- 事実の正確性
- LLMは、トレーニングデータセットから学習した情報に基づいて応答を生成しますが、知識ベースではありません。誤ったまたは古い事実陳述を生成する可能性があります。
- 常識
- LLMは言語の統計的パターンに依存しています。特定の状況で常識的な推論を適用する能力が欠けている可能性があります。
倫理的な考慮事項とリスク
大規模言語モデル(LLM)の開発には、いくつかの倫理的な懸念が生じます。オープンモデルを作成するにあたり、以下の点を慎重に考慮しています。
- バイアスと公平性
- 大規模な実世界のテキストデータでトレーニングされたLLMは、トレーニング素材に埋め込まれた社会文化的バイアスを反映する可能性があります。これらのモデルは、注意深く精査され、入力データの前処理が説明され、このカードに報告された事後評価が行われました。
- 誤情報と誤用
- LLMは、誤った、誤解を招く、または有害なテキストを生成するために誤用される可能性があります。
- モデルの責任ある使用のためのガイドラインが提供されています。[Responsible Generative AI Toolkit][rai-toolkit] を参照してください。
- 透明性と説明責任
- このモデルカードは、モデルのアーキテクチャ、機能、制限、および評価プロセスに関する詳細を要約しています。
- 責任を持って開発されたオープンモデルは、AIエコシステム全体の開発者や研究者にLLM技術をアクセス可能にすることで、イノベーションを共有する機会を提供します。
特定されたリスクと緩和策:
- バイアスの永続化:モデルのトレーニング、微調整、およびその他のユースケースで、評価指標、人間のレビューを使用した継続的な監視と、バイアス除去技術の探索を行うことが推奨されます。
- 有害なコンテンツの生成:コンテンツセーフティのためのメカニズムとガイドラインが不可欠です。開発者は、特定の製品ポリシーとアプリケーションのユースケースに基づいて、適切なコンテンツセーフティ対策を実装するように注意を払うことが推奨されます。
- 悪意のある目的での誤用:技術的な制限と開発者およびエンドユーザーの教育は、LLMの悪意のあるアプリケーションに対する緩和策に役立つ可能性があります。ユーザーが誤用を報告するための教育リソースと報告メカニズムが提供されています。Gemmaモデルの禁止使用法は、[Gemma Prohibited Use Policy][prohibited-use] に概説されています。
- プライバシー侵害:モデルは、個人識別情報(PII)を削除するためにフィルタリングされたデータでトレーニングされています。開発者は、プライバシー保護技術を使用してプライバシー規制に準拠することが推奨されます。



