学習目的
このアダプタは、構造化出力の生成を目的として学習されています。
Run 2では、対象を絞った直接出力型のCSV→JSONリプレイによって、既存のYAML学習分布から
得られた長いコンテキストでのTOML/XMLの改善を維持しながら、CSV→JSONの性能を
回復できるかを検証します。
損失は最後のassistant応答のみに適用されます。MASK_COT=0 であるため、この実験では、
出力マーカー以降で中間推論がマスクされたとは主張しません。
データ
ベースデータセット
- データセット:
daichira/structeval-t-sft-hq-yaml-cleaned
- リビジョン:
e73a755d3b50bd3ac38c99c1ede87ca9b3139cba
- 役割: 既存のYAML構造化出力学習分布
- データセットライセンス: Apache-2.0
対象を絞ったリプレイデータセット
- データセット:
daichira/structured-5k-mix-sft
- リビジョン:
740e82f5bb5ae31c9b0f9c2fa15f78bbcaf3dbe2
- フィルター:
- category:
C_JSON
- subcategory:
csv_to_json
- task:
transform
- 選択されたリプレイ行数: 79
- 実際の混合データに占める教師ありトークンの割合: 10.0380%
- データセットライセンス: CC-BY-4.0
リプレイの教師出力は、直接出力された有効なJSONであることを必須とし、
チャットテンプレート適用後の完全なシーケンスが2,048トークン以内に収まることも求めました。
学習設定
- ベースモデル:
Qwen/Qwen3-4B-Instruct-2507
- 手法: Unslothを用いた4ビットQLoRA
- 最大シーケンス長: 2048
- オプティマイザーステップ: 595
- ウォームアップステップ: 60
- 学習率: 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_0710_run_2"
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 と、選択された分割IDファイルが含まれます。
これらには、データセットのリビジョン、シード、トークン統計、リプレイ選択、
固定されたオプティマイザーの軌跡が記録されています。
利用条件
利用者は、次の条件を遵守する必要があります。
- ベースモデルのライセンスと利用条件
daichira/structeval-t-sft-hq-yaml-cleaned のApache-2.0の条件
daichira/structured-5k-mix-sft のCC-BY-4.0の帰属表示条件