モデル学習ガイド3:PT学習ガイド
PT(Incremental Pre-training)の本質は、大規模モデルが既に汎用能力を備えている基盤の上に、大量の業界文書、書籍、またはコードを入力し、モデルに新しい知識を吸収させることです。
レンダリング中...
継続事前学習 (Continual Pre-training / PT) の本質は:大規模モデルが既に汎用能力を備えている基盤の上で、大量の業界ドキュメント、書籍、またはコード(Raw Text)を投入し、**Next Token Prediction** タスクを通じてモデルに新しい知識を吸収させることです。 技術者として、覚えておくべきことは:PT は、**非質問応答形式**の純粋なテキスト上で、特定の分野の**言語分布、専門用語、論理的背景**を学習させるためのものです。
## PT データ準備(最も基礎的な基盤)
- **データ形態**:純粋なテキスト(Raw Text)。`instruction` または `output` ラベルは不要です。
- **ファイル形式**:通常は `.txt` または `.jsonl`(各行が `{"text": "..."}`)。
- **処理ロジック**:モデルは「次の Token を予測する」ことでこれらの内容を学習します。
## 2つの実践的な手順
### 1. LLaMA-Factory
**適用シーン**:GPU 環境があり、最高効率を追求する場合。
**手順**:
1. **データ登録**:テキストを `data/` に入れ、`data/dataset_info.json` に以下を追加します:
```JSON
"my_corpus": {
"file_name": "your_data.jsonl",
"columns": {
"prompt": "text"
}
}
```
2. **`pt_config.yaml` を作成**:
```YAML
stage: pt # 重要なポイント:事前学習段階を指定
model_name_or_path: qwen/Qwen2.5-7B
dataset: my_corpus
finetuning_type: lora # または full(全量学習には極めて高い VRAM が必要)
lora_target: all # 全ての線形層を対象。PT では全範囲を推奨
cutoff_len: 1024 # コンテキストの切り捨て長
learning_rate: 1e-5 # PT の学習率は非常に小さく設定する必要がある
num_train_epochs: 1.0
output_dir: ./pt_output
```
3. **コマンド実行**:
```Bash
llamafactory-cli train pt_config.yaml
```
### 2. 自分でコードを書く
Transformers ライブラリを使用
**適用シーン**:Loss または Tokenizer を深くカスタマイズする場合。
**手順**:
1. **モデルのロード**:`AutoModelForCausalLM` を使用します。
2. **コアコードロジック**:
```Python
from transformers import Trainer, TrainingArguments, DataCollatorForLanguageModeling
# 1. データ整理器の準備 (PT 向け)
# mlm=False は因果言語モデルタスク (Next Token Prediction) を意味する
data_collator = DataCollatorForLanguageModeling(tokenizer, mlm=False)
# 2. 訓練設定
training_args = TrainingArguments(
output_dir="./output",
per_device_train_batch_size=4,
learning_rate=1e-5,
weight_decay=0.01,
num_train_epochs=1,
save_steps=500
)
# 3. 訓練開始
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset,
data_collator=data_collator,
)
trainer.train()
```
## PT 訓練技術的な注意点と間違いやすい点
1. **学習率 (Learning Rate)**:PT の学習率は SFT よりも**1桁小さく**する必要があります(通常は $10^{-5}$ または $10^{-6}$)。基盤モデルは既に強力であるため、大きな学習率は元の論理能力を破壊する可能性があります。
2. **データ品質**:PT はデータ品質に非常に敏感です。コーパスに大量の重複、文字化け、または低品質なウェブデータが含まれている場合、モデルはすぐに「知能が低下」します。
3. **Ollama について**:改めて強調しますが、**Ollama はモデルを「実行」するためのものであり、「訓練」するためのものではありません**。上記の手順 2 または 3 で訓練した重みを GGUF 形式でエクスポートした後、Ollama で使用できます。
**まとめと推奨事項:** まず **LLaMA-Factory** を使用して PT を実行し、データスライス、モデルのロード、LoRA 設定が統合されているため、最も間違いにくい方法です。END
コメント
ログインしてコメントを閲覧・投稿してください
ログインへ