language, license, tags, pipeline_tag
| language |
license |
tags |
pipeline_tag |
|
|
apache-2.0 |
| olmo |
| causal-lm |
| bilingual |
| japanese |
| from-scratch |
|
text-generation |
tokenizerから自作した英語&日本語対応モデル(アーキテクチャーはOLMo-2-386Mベース)
LLM学習の勉強用に開発したモデルです。会話にはなりません。
英日バイリンガルの小規模言語モデル。OLMo-2 アーキテクチャをベースに、ランダム初期化から Pretrain → CPT → SFT → DPO の4ステージパイプラインで学習しました。
事前学習済みモデルの重みをダウンロードせず、AllenAI が公開しているアーキテクチャ設定(config.json)のみを使用してゼロから学習しています。
モデル概要
| 項目 |
値 |
| アーキテクチャ |
OLMo-2(縮小版) |
| パラメータ数 |
~386M |
| 語彙数 |
65,536(英日 BPE) |
| コンテキスト長 |
2,048 tokens |
| 精度 |
bfloat16 |
| 対応言語 |
英語 / 日本語 |
アーキテクチャ詳細
| ハイパーパラメータ |
値 |
| hidden_size |
1,024 |
| num_hidden_layers |
16 |
| num_attention_heads |
16 |
| num_key_value_heads |
8(GQA) |
| intermediate_size |
4,096 |
学習パイプライン
Stage 1: Pretraining
| 項目 |
詳細 |
| データ |
FineWeb (EN 70%) + Wikipedia JA (JA 30%) |
| トークン数 |
~2B tokens |
| LR |
3e-4(cosine + min-LR 10%) |
| Effective batch |
128 seq ≈ 262K tokens |
| Optimizer |
AdamW (weight_decay=0.1) |
Stage 2: CPT(Continued Pretraining)
| 項目 |
詳細 |
| データ |
FineWeb-Edu (EN 60%) + CulturaX JA (JA 40%) |
| ドキュメント数 |
500K docs |
| LR |
1e-4(cosine) |
Stage 3: SFT(Supervised Fine-Tuning)
| データセット |
サンプル数 |
言語 |
| allenai/tulu-3-sft-mixture |
70,000 |
英語 |
| kunishou/databricks-dolly-15k-ja |
~15,000 |
日本語 |
| lightblue/tagengo-gpt4(日本語のみ) |
10,000 |
日本語 |
| izumi-lab/llm-japanese-dataset |
20,000 |
日本語 |
| 合計 |
~115,000 |
|
| 項目 |
値 |
| LR |
5e-6(linear) |
| Epochs |
2 |
| Effective batch |
64 |
| Loss |
Cross-Entropy(assistant turns のみ) |
Stage 4: DPO(Direct Preference Optimization)
| 項目 |
詳細 |
| データ |
allenai/ultrafeedback_binarized_cleaned |
| Loss |
DPO sigmoid(β=0.1) |
| LR |
5e-7(linear) |
| Epochs |
1 |
トークナイザー
英日バイリンガル BPE トークナイザーをゼロから学習しました。
| 項目 |
値 |
| 種類 |
ByteLevel BPE |
| 語彙数 |
65,536(= 2¹⁶) |
| 学習データ |
FineWeb 60K docs + Wikipedia JA 60K docs |
| 特殊トークン |
<|endoftext|>, <|padding|>, <|user|>, <|assistant|>, <|system|> |
OLMo-2 のオリジナルトークナイザー(vocab=50,280)と比べて日本語トークン効率が大幅に向上しています。
使い方
チャットテンプレート
学習環境
| 項目 |
詳細 |
| GPU |
NVIDIA RTX 4090 (24GB VRAM) |
| フレームワーク |
PyTorch 2.4 + Transformers + TRL |
| 精度 |
bfloat16 + gradient checkpointing |
| プラットフォーム |
RunPod |
限界と注意事項
- Pretrain データ量: Chinchilla 最適値(386M × 20 = ~8B tokens)に対して約 2B tokens のみ。言語能力・知識量ともに制限があります。
- 繰り返し: 長い生成では同じ文が繰り返されることがあります。
repetition_penalty=1.3 の使用を推奨します。
- 事実の誤り: 知識が不十分なため、誤った情報を生成する場合があります。重要な用途には使用しないでください。
- 日本語品質: SFT データの一部(izumi-lab)に
【P】 等のフォーマットマーカーが含まれており、日本語生成に影響することがあります。
- 研究・実験目的: 本モデルはフルパイプラインの動作確認・学習実験を目的として作成されました。プロダクション用途には適しません。
ライセンス
Apache 2.0
学習データに使用した各データセットのライセンスも確認してください:
引用
本モデルは以下の研究・成果物をベースにしています: