Chuyển đến nội dung chính

レッスン 4: 微調整のためのデータセットの収集と設計

データセットの種類: 指示に従い、会話、分類。標準の JSONL 形式。ログ、ドキュメント、ユーザーのフィードバックからデータを収集します。合成データの生成。質と量。

🧠 AI と ML — レッスン 3 レッスン 4: データセットの収集と設計 微調整

LLM の微調整: AI チューニングの技術

パート 2: データの準備 — すべての成功の基礎

xdev.asia

はじめに

「ガベージイン、ガベージアウト」 — 微調整に関しては、これがこれほど真実であることはありません。高品質のデータセットは 90% 成功します。


1. JSONL 標準データセット形式

1.1 指示に従う形式

{"messages": [
  {"role": "system", "content": "Bạn là trợ lý y khoa tiếng Việt."},
  {"role": "user", "content": "Triệu chứng sốt xuất huyết?"},
  {"role": "assistant", "content": "Sốt xuất huyết dengue có các triệu chứng chính:\n1. Sốt cao đột ngột 39-40°C\n2. Đau đầu dữ dội..."}
]}

1.2 複数ターンの会話形式

{"messages": [
  {"role": "system", "content": "..."},
  {"role": "user", "content": "Câu hỏi 1"},
  {"role": "assistant", "content": "Trả lời 1"},
  {"role": "user", "content": "Follow-up"},
  {"role": "assistant", "content": "Trả lời follow-up"}
]}

2. データソース

2.1 本番ログから

# Extract từ customer support logs
def extract_training_data(support_logs):
    training_data = []
    for log in support_logs:
        if log["customer_rating"] >= 4:  # Chỉ lấy conversations tốt
            training_data.append({
                "messages": [
                    {"role": "system", "content": SYSTEM_PROMPT},
                    {"role": "user", "content": log["customer_question"]},
                    {"role": "assistant", "content": log["agent_response"]}
                ]
            })
    return training_data

2.2 合成データの生成

def generate_synthetic_data(seed_examples, n=100):
    prompt = f"Given these examples, generate {n} similar but diverse examples..."
    # Dùng GPT-4o/Claude để generate training data cho model nhỏ hơn

3. どのくらいのデータ量があれば十分ですか?

使用例最小おすすめ素晴らしい
スタイル/トーンの変更50200500+
ドメイン固有1005002,000以上
分類50/クラス200/クラス1,000+/クラス
複雑な推論2001,0005,000以上

💡 質 >> 量: 100 の完璧な例 > 1,000 の平均的な例


概要

  • メッセージ配列を含む JSONL 形式が最も一般的な標準です
  • データソース: 生産ログ、手動作成、合成生成
  • 質 > 量 — 最高の ROI を実現するデータに時間を投資します。
  • 100 ~ 200 の高品質な例から始めます

演習

  1. 選択したユースケースに合わせて 50 個のトレーニング例を作成します
  2. 合成データの生成を試す — 手動と合成の品質を比較する
  3. データセットを検証する: 形式をチェックし、エッジケースを処理する
  4. トレイン (80%) / 検証 (10%) / テスト (10%) に分割します。