JSONで渡す?文章で渡す?生成AIとの対話に最適な方法とは?
生成AIのトレーニングではJSON形式を使うという記事を読んでいて、それならJSON形式で情報を渡す方が回答の精度が高くなるのだろうか?
そう気になったので、Claude3.5とGPT-4にそれぞれ聞いてみました。
Claude3.5の回答
ユーザー: JSON形式と生成AIのトレーニングの関係を知りたいです。
Claude3.5:
はい、面白い質問ですね。JSONと生成AIのトレーニングについて、ちょっとしたストーリーでお話ししましょう。
むかしむかし、あるデータ王国がありました。その国では、情報はバラバラで整理されておらず、王国中が大混乱でした。そんなある日、旅の魔法使いJSONが現れ、こう宣言しました。
「この国の情報形式を整理し、誰もが理解できるようにしましょう!」
JSONは、魔法でデータを整然と並べ、キーと値のペアで情報を表現しました。王国中の情報が整理され、みんなが喜びました。
そして数年後、留学していた生成AI姫が帰国しました。彼女は、コンピューターサイエンスを学んで、新しいアイデアを生み出す能力を持っていました。
生成AI姫はJSONの整理された情報を見て、こう言いました。
「わぁ、これはすごい! この整理された情報なら、みんなの学習がもっと効率的になるわ!」
そして二人は協力して、王国の情報をAIのトレーニングに活用することにしました。JSON形式のデータは、AIが理解しやすく、大量のデータを効率的に処理できるので、生成AI姫の学習は飛躍的に進みました。
例えば、こんな具合です。
JSON形式:
{
"物語": "シンデレラ",
"登場人物":["シンデレラ", "継母", "義理の姉2人", "王子", "妖精の教母"],
"敵":"継母と義理の姉たち",
"結末": "王子と結婚して幸せに暮らす"
}
このようなデータを大量に学習することで、生成AI姫は新しい物語を作り出せるようになりました。
そして、JSONと生成AI姫の協力により、王国はますます発展し、新しいアイデアと整理された情報で溢れる素晴らしい場所になったのです。
めでたし、めでたし。
...というわけで、JSONは生成AIのトレーニングにおいて、データを構造化し、効率的に処理できるようにする重要な役割を果たしているんです。面白いでしょう?他に気になることはありますか?
ユーザー:
このストーリーが面白いかは脇に置くとして、あなた(claude3.5)にテキストを渡して、それを話し合いたい場合、テキストをJSON形式に変換してから渡すと精度が上がりますか?
Claude3.5:
面白い質問ですね!実は、私(Claude 3.5)にとっては、テキストをJSON形式に変換して渡す必要はありません。むしろ、そのままのテキストの方が扱いやすいんです。ちょっと意外でしょう?
想像してみてください。あなたが友達と会話をするとき、友達の言葉を一度表にまとめてから理解しようとしますか?おそらくそんなことはしないでしょう。私も同じなんです。
私は自然言語を直接理解し、処理するように設計されています。ですので、普通のテキストをそのまま渡していただくのが一番スムーズです。JSONに変換すると、かえって余計な手間がかかってしまいます。
例えば、こんな具合です:
普通のテキスト:
「今日は晴れています。散歩に行こうと思います。」
JSON形式:
{
"天気": "晴れ",
"予定": "散歩に行く"
}
私にとっては、上の普通のテキストの方が自然で理解しやすいんです。
ただし、大量のデータを効率的に保存したり、他のシステムと連携したりする場合には、JSONのような構造化されたフォーマットが役立つことがあります。でも、人間との対話の中では、自然な文章のままで十分です。
むしろ、テキストをそのまま渡していただいて、それについて一緒に話し合えるのを楽しみにしています。何か特定のテキストについて議論したいことはありますか?どんなトピックでも喜んでお付き合いしますよ。
GPT-4の回答
同じことをGPT-4にも聞きました。
ユーザー:
あなた(GPT-4)にテキストを渡して、一緒にそれを話し合いたい場合、テキストをJSON形式に変換してから渡しすと精度が上がりますか?
GPT-4:
テキストをJSON形式に変換してから渡しても、GPT-4の精度が上がるわけではありません。JSONは構造化されたデータを扱うのに便利な形式ですが、GPT-4のような生成AIは自然言語を直接扱うのが得意です。
以下は、テキストをJSON形式に変換する場合の利点と限界です。
JSON形式にする利点
構造の明示化: 複雑な情報を明確に整理できます。たとえば、テキストに含まれる特定の要素(日時、場所、発言者など)を分けることで、情報の整理がしやすくなることがあります。
プログラム的な処理: JSON形式はプログラムで処理しやすいため、他のシステムやプログラムとの連携が容易になります。
限界
GPT-4には自然言語が最適: GPT-4は自然言語での入力を理解するように設計されています。テキストの構造がわかりにくいときには、内容を整理してわかりやすくすることが有効ですが、JSONに変換すること自体がGPT-4の応答精度を向上させる直接の理由にはなりません。
文脈の理解には不向き: JSONはデータ構造を示すためのもので、文脈や感情、微妙なニュアンスなどを表現するのは難しいです。これらは生成AIが得意とする自然言語でのやり取りが必要な部分です。
JSON形式は、テキストを段落ごとに分けて例えば「section」と「content」のキーを使い、構造化します。これにより、各部分をプログラムで扱いやすくし、特定のセクションを簡単に参照できるようにしています。
特にGPT-4と話し合う目的であれば、テキストをそのまま自然言語のまま渡したほうが会話の精度は上がります。もしデータを整理する必要があるなら、JSON形式を使うのは便利ですが、最終的には自然言語に変換して渡すのが一番効果的です。
ユーザー:
ファインチューニングするなら、JSON形式が良いですか?
GPT-4:
ファインチューニングの際に直接JSON形式を使用することはありません。ファインチューニングは、生成AIの学習プロセスを特定の目的に最適化するための手法ですが、一般的には以下の形式が使用されます。
ファインチューニングで使用するデータ形式
テキストファイル (TXT): シンプルなテキスト形式で、ファインチューニングするためのデータを準備します。大量の文章がそのまま連なっている形式です。
CSV (カンマ区切り形式): タイトルやカテゴリなど、ラベル付きのテキストデータを管理する際に便利です。
JSON (場合による): JSON形式は、テキストに付随するメタデータ(タグや分類など)が必要な場合に使われることがあります。たとえば、QAデータセットや対話データの準備など、構造が必要な場合に適していますが、テキスト自体をそのまま学習させるための形式ではありません。
JSONが役立つ場面
構造化データ: JSON形式は、ファインチューニングのデータを整然と管理しやすいですが、そのままのデータ形式としてではなく、事前処理やフィルタリングのために利用されます。
メタ情報の追加: 会話の文脈やラベル、関連情報を持たせる場合に役立ちます。
つまり、ファインチューニングのデータは最終的にAIが理解しやすい形(主にプレーンテキスト)に整えられますが、事前準備段階でJSONが役立つこともあります。
まとめと結論
私はJSON形式が何かわかってないことが、明確になりました。
生成AIには、情報を文章で渡せばいいようです。