digital base
プロダクトドキュメントお知らせ会社概要

お問い合わせ

ご質問やご相談など、お気軽にお問い合わせください。

デジタルベース株式会社

〒106-0047
東京都港区南麻布3-20-1 5階

サイトメニュー

  • トップページ
  • プロダクト
  • ドキュメント
  • 最新ニュース
  • 記事一覧
  • 会社情報

お問い合わせ

  • info@digital-base.co.jp

NVIDIA Inception Program / Intel Partner ISV /
NTTPC Innovation LAB

© デジタルベース株式会社. All rights reserved.
記事一覧に戻る
2025.12.07ハードウェア

LLMファインチューニングのデータ形式|Alpaca形式とChatML形式の比較とUnsloth実装指針

LLMファインチューニングで用いる代表的なデータ形式、Alpaca形式とChatML形式を比較します。データ構造の違い、Unslothでの取り扱い、業務用途に応じた形式選定の判断基準を解説します。

デジタルベース株式会社

LLMファインチューニングのデータ形式|Alpaca形式とChatML形式の比較とUnsloth実装指針

概要

ファインチューニングの成否を左右する要素の一つが「データフォーマット」です。同じ学習内容であっても、どの形式でモデルに入力するかによって、学習効率と最終的な応答品質が変わります。社内向けの日本語ローカルLLMを構築する際の判断材料として、Alpaca形式 と ChatML形式 のデータ構造、Unslothでの取り扱い、用途に応じた選定基準を整理します。


ファインチューニングとは

ファインチューニング(Fine-tuning)とは、事前学習済みの大規模言語モデル(LLM)に対し、特定のタスクやドメインに特化したデータセットで追加学習を行う手法です。ゼロからモデルを訓練するプレトレーニングと比較して、少ないデータ量と計算リソースで目的に沿ったモデルを構築できる点が大きな利点です。

DigitalBaseでは、社内ナレッジや専門用語を取り込んだ業務特化モデルの構築にあたり、まずデータ形式の設計から検討することを推奨しています。形式の選択は後工程の学習効率と運用品質に直結するためです。


Instruction Tuningとは

Instruction Tuning(指示チューニング)とは、事前学習済みの言語モデルに「指示→応答」形式のデータで追加学習を施し、ユーザーの指示に従って適切な応答を生成できるようにする手法です。


Alpaca形式の特徴

データ構造

Alpaca形式は、3つのフィールドで構成されます。

{ "instruction": "次の文章を英語に翻訳してください", "input": "今日は良い天気です", "output": "It is a nice day today." }

inputフィールドはオプションで、単純なタスクでは省略されることもあります。

{ "instruction": "日本の首都はどこですか?", "input": "", "output": "日本の首都は東京です。" }

プロンプトテンプレート

実際の学習時には、これらのフィールドを以下のようなテンプレートに変換します。

### Instruction: 次の文章を英語に翻訳してください ### Input: 今日は良い天気です ### Response: It is a nice day today.

メリットと限界

Alpaca形式の利点は、構造が単純なことです。既存のQ&Aデータセットやタスク別データを容易にこのフォーマットへ変換できます。

一方、対応するのはシングルターンのみです。対話システムではユーザーとAIが複数回やり取りを行いますが、Alpaca形式ではマルチターン会話を自然に表現できません。


ChatML形式の特徴

ChatMLとは

ChatML(Chat Markup Language)は、OpenAIがGPT-3.5/4で採用した会話フォーマットです。複数のメッセージを「役割(role)」と「内容(content)」のペアとして構造化することで、マルチターン会話を自然に表現できます。

データ構造

ChatML形式では、会話をmessages配列として表現します。

{ "messages": [ {"role": "system", "content": "あなたは親切なアシスタントです。"}, {"role": "user", "content": "こんにちは"}, {"role": "assistant", "content": "こんにちは。何かお手伝いできることはありますか?"}, {"role": "user", "content": "今日の天気を教えて"}, {"role": "assistant", "content": "申し訳ありませんが、リアルタイムの天気情報にはアクセスできません。お住まいの地域の天気予報サイトをご確認ください。"} ] }

実際のトークン化

ChatML形式では、特殊トークンを用いて各メッセージの境界を明確にします。

<|im_start|>system あなたは親切なアシスタントです。<|im_end|> <|im_start|>user こんにちは<|im_end|> <|im_start|>assistant こんにちは。何かお手伝いできることはありますか?<|im_end|>

この特殊トークン(<|im_start|>, <|im_end|>)により、モデルは発話者の切り替わりを正確に認識し、適切なタイミングで応答を生成できます。

ShareGPT形式との関係

ChatML形式と近い構造を持つものとして「ShareGPT形式」があります。これは、ChatGPTとの会話ログを共有するサービス「ShareGPT」から派生したフォーマットで、from/valueというキー名を用います。

{ "conversations": [ {"from": "human", "value": "こんにちは"}, {"from": "gpt", "value": "こんにちは。何かお手伝いできることはありますか?"} ] }

Unslothではstandardize_sharegpt関数を用いて、このShareGPT形式をChatML(role/content)形式に変換できます。


2つの形式の比較

比較項目Alpaca形式ChatML形式
登場時期2023年3月2023年(OpenAI API)
会話ターンシングルターンのみマルチターン対応
システムプロンプトテンプレートに固定柔軟に設定可能
データ変換の容易さ簡単やや複雑
推奨ユースケース分類・抽出・翻訳などチャットボット・対話AI
最新モデルの対応限定的ほぼ全モデル対応

Unslothでの実装

Unslothは、メモリ効率の良いファインチューニングを実現するライブラリで、両方の形式に対応しています。

対応しているチャットテンプレート一覧

Unslothは以下のチャットテンプレートをサポートしています。

from unsloth.chat_templates import CHAT_TEMPLATES print(list(CHAT_TEMPLATES.keys())) # 出力例: # ['unsloth', 'zephyr', 'chatml', 'mistral', 'llama', 'vicuna', # 'alpaca', 'gemma', 'gemma2', 'llama-3', 'llama-3.1', 'llama-3.2', # 'llama-3.3', 'qwen-2.5', 'phi-4', 'gemma-3']

どちらを選ぶべきか

ChatML形式を推奨するケース

対話型のチャットボットやアシスタントを構築する場合は、ChatML形式を推奨します。

また、システムプロンプトによる動作制御が必要な場合や、会話履歴を踏まえた応答生成が求められる場合も、ChatML形式が適しています。

Alpaca形式で十分なケース

一方、テキスト分類、情報抽出、翻訳、要約など、明確な入出力関係があるタスクでは、Alpaca形式でも十分な性能を発揮できます。データ準備が簡単で、既存のデータセットを流用しやすい利点もあります。


日本語ローカルLLMへの応用

日本語のローカルLLM開発においても、データ形式の選択は重要な意味を持ちます。日本語の対話データは英語と比べて限られているため、少ないデータで効果的に学習できる形式の選定が成果を左右します。


まとめ

対話用途や近年のChat系モデルを前提とするならChatML形式を、分類・抽出・翻訳といった明確な入出力タスクならAlpaca形式を選ぶことが基本です。Unslothは両形式に対応しているため、用途に応じた形式を選んだうえで、効率的にファインチューニングを進められます。

下記のお悩みなら、ご相談ください

PoC から商用化に進むには、次の 3 点が必要になります。統合型 AI エージェント基盤「DigitalBase」は、 これらを 1 つの製品で提供しています。お気軽にご相談ください。