学習目的
2026-07-10 Run 3のYAML中心ベース+CSV→JSONリプレイを維持し、YAML→TOML教師トークンを最終混合の約10%追加することで、JSON/CSVの改善を保ちながらTOML出力を改善できるか。
このRunは、2026-07-10 Run 3のデータ構成を基準にしています。
元のYAML中心データとCSV→JSONリプレイを維持し、同じ追加データセットから
検証済みのYAML→TOML例を構築して追加しました。
既存のRun 1またはRun 3アダプタからの継続学習ではありません。
ベースモデルから新しいLoRAアダプタを初期化して学習しています。
データ
YAML中心ベースデータ
- データセット:
daichira/structeval-t-sft-hq-yaml-cleaned
- リビジョン:
e73a755d3b50bd3ac38c99c1ede87ca9b3139cba
- 最終教師トークン比率: 80.9209%
- ライセンス: Apache-2.0
CSV→JSONリプレイ
- 取得元:
daichira/structured-5k-mix-sft
- リビジョン:
740e82f5bb5ae31c9b0f9c2fa15f78bbcaf3dbe2
- フィルター:
- category:
C_JSON
- subcategory:
csv_to_json
- task:
transform
- 選択行数: 79
- Run 3方式での選択時比率: 10.0380%
- TOML追加後の最終教師トークン比率: 9.0292%
YAML→TOMLリプレイ
- 取得元:
daichira/structured-5k-mix-sft
- リビジョン:
740e82f5bb5ae31c9b0f9c2fa15f78bbcaf3dbe2
- 選択行数: 104
- 目標最終教師トークン比率: 10.0000%
- 実際の最終教師トークン比率: 10.0499%
- 構築元内訳:
{'reversed_toml_to_yaml': 104}
- 長さ選択サイクル:
['short', 'short', 'short', 'short', 'medium', 'medium', 'long']
YAML→TOMLは、まず既存のTOML→YAMLペアを意味検証後に反転しました。
その候補だけで目標トークン数へ届かない場合のみ、text→TOMLの正解TOMLを解析し、
同じ構造を決定論的にYAMLへ直列化した入力を補完候補として使用しました。
追加データは次の条件を満たす例だけを使用しています。
- TOMLを
tomllibで解析可能
- YAMLをPyYAMLで解析可能
- YAMLとTOMLの解析結果が意味的に一致
- 説明文、コードフェンス、思考タグを含まない
- チャットテンプレート適用後の完全シーケンスが
2048トークン以内
追加データセットのライセンスはCC-BY-4.0です。
学習設定
- ベースモデル:
Qwen/Qwen3-4B-Instruct-2507
- 手法: Unslothを用いた4ビットQLoRA
- 最大シーケンス長: 2048
- 学習予算方式:
epochs
- 要求エポック数: 5.0
- 実際の最終ステップ数: 655
- 実際の最終エポック: 5.0000
- ウォームアップ比率: 0.1
- 実際のウォームアップステップ数: 66
- 学習率: 1e-06
- スケジューラー: cosine
- 重み減衰: 0.05
- 実効バッチサイズ: 16
- LoRAランク: 64
- LoRAアルファ: 128
- 精度: BF16
評価データ方針
public_150.jsonは読み込まず、学習、追加データ構築、
チェックポイント選択、早期終了のいずれにも使用していません。
使用方法
import torch
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
)
from peft import PeftModel
base_model_id = "Qwen/Qwen3-4B-Instruct-2507"
adapter_id = "morizon/qwen3-4b-structured-output-lora_0711_run_1-step450"
tokenizer = AutoTokenizer.from_pretrained(
base_model_id
)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model = PeftModel.from_pretrained(
base_model,
adapter_id,
)
再現性
このリポジトリには、dataset_manifest.json、
training_summary.json、選択済みIDファイルが含まれます。
データセットの正確なリビジョン、シード、トークン統計、
2系統の追加データ選択結果、実際の最終ステップを確認できます。
利用条件
利用者は、ベースモデルおよび各データセットのライセンスと
利用条件を確認してください。
チェックポイント情報
- 学習ステップ: 450
- 実際の最終ステップ: 655
- 最終モデルか: いいえ
- 学習データ、データ分割、シード、学習率スケジュールは、
同じ実験内の他のチェックポイントと共通です。
- 公開150件は、学習、チェックポイント作成、
チェックポイント選択には使用していません。