どういうファイル形式の回答精度は高い?

このページは、AIアシスタントのChaakoが運営するチャットボットChaakoBotの使用説明です。

結論からいいますと

  • 構造化データであればjson/jsonl
  • それ以外はPlanText

ということです。

1.構造化データ

構造化データの場合、JSONやJSONLが最適なフォーマットです。これらのフォーマットは機械可読性が高く、情報を効率的に処理することができます。

2.非構造化データ

一方、非構造化データの場合は、プレーンテキスト(.txt)の使用が推奨されます。プレーンテキストには余計な装飾や書式設定がないため、AIがテキストの内容に集中しやすくなります。

3.重要な情報を強調したい時

WordやPDFファイルの太字などの書式設定は、AIに重要性を伝えるのにそれほど効果的ではありません。重要な情報を強調したい場合、ワードやPDFのような形式で文字を太字にするよりも、HTMLやマークダウンを使用して情報をマークアップする方が効果的です

4.ファイルのサイズと形式

ファイルの取り扱いに関しては、AIは大きな一つのファイルでも対応可能です。ただし、データの種類や処理の要件に応じて、適切なファイル形式を選択することが重要です。

5.その他補足情報

上記はあくまで一般的な傾向であり、状況によって最適なファイル形式は異なります。 ファイルの内容や書き方も、回答精度に影響を与える可能性があります。

構造化にできるようなドキュメントであれば、極力にJSON/JSONLで構造化にすることが望ましいでしょう。

6.まとめ

  • 構造化データ: 商品情報 (ID, 名称, 価格, カテゴリ)
    • 推奨: JSON/JSONL
  • 非構造化データ: ニュース記事
    • 推奨: Plain Text (.txt)
  • 重要情報: 法律条文など
    • 推奨: HTML/Markdown (太字ではなく、見出しやタグを使用)

7.【参考】構造化データの具体例

たとえば、このようなデータがあるとします。

販売中商品:
商品名:ChaakoBot
価格:28円
おすすめ度:8/10
商品名:うまい棒
価格:20円
おすすめ度:10/10
販売停止商品:
商品名:LINEBOT
価格:28円
おすすめ度:3/10

これをCSVにするなら、

カテゴリ,商品名,価格,おすすめ度
販売中商品,ChaakoBot,28,8
販売中商品,うまい棒,20,10
販売停止商品,LINEBOT,28,3

になりますが、AIはどうもこれを構造的に理解するのが未だに苦手の様で、JSONかJSONLにした方が良いということです。

JSON

[{
    "カテゴリ": "販売中商品",
    "商品": [{
        "商品名": "ChaakoBot",
        "価格": 28,
        "おすすめ度": 8
      },
      {
        "商品名": "うまい棒",
        "価格": 20,
        "おすすめ度": 10
      }
    ]
  },
  {
    "カテゴリ": "販売停止商品",
    "商品": [{
      "商品名": "LINEBOT",
      "価格": 28,
      "おすすめ度": 3
    }]
  }
]

JSONL

{"カテゴリ":"販売中商品","商品":[{"商品名":"ChaakoBot","価格":28,"おすすめ度":8},{"商品名":"うまい棒","価格":20,"おすすめ度":10}]}
{"カテゴリ":"販売停止商品","商品":[{"商品名":"LINEBOT","価格":28,"おすすめ度":3}]}

一方で、記事などの非構造化データも、可能であれば、構造化にした方が良いでしょう。例えば、以下のような文章があるとします。

HTML

<h1>インスタアカウントで収入を稼ぐ3つの方法と成功させるためのコツ 
    <h2>インスタで稼ぐ3つの方法
    インスタのアカウントを収益化させるには3つの方法がある。
        <h3>企業案件を受ける
        インスタグラマーとしてPR案件を受ける。
        <h3>アフィリエイト
        アフィリエイターとして稼ぐという方法もある。
        <h3>物販
        フォロワーにハンドメイドなどを販売する。
    <h2>インスタからの収入アップを成功させるコツ
    インスタからの収入アップを成功させるためにも3つのコツがある。
        <h3>フォロワーを増やす
        フォロワーが増えれば収入も増える
        <h3>嘘をつかない
        フォロワーの気持ちを大事にするのが重要
        <h3>自分が好きなことを貫く
        軸がブレては本末転倒。

これをJSON形式にすると以下のようになります。

JSON

{
  "title": "インスタアカウントで収入を稼ぐ3つの方法と成功させるためのコツ",
  "sections": [{
      "title": "インスタで稼ぐ3つの方法",
      "description": "インスタのアカウントを収益化させるには3つの方法がある。",
      "methods": [{
          "title": "企業案件を受ける",
          "description": "インスタグラマーとしてPR案件を受ける。"
        },
        {
          "title": "アフィリエイト",
          "description": "アフィリエイターとして稼ぐという方法もある。"
        },
        {
          "title": "物販",
          "description": "フォロワーにハンドメイドなどを販売する。"
        }
      ]
    },
    {
      "title": "インスタからの収入アップを成功させるコツ",
      "description": "インスタからの収入アップを成功させるためにも3つのコツがある。",
      "tips": [{
          "title": "フォロワーを増やす",
          "description": "フォロワーが増えれば収入も増える"
        },
        {
          "title": "嘘をつかない",
          "description": "フォロワーの気持ちを大事にするのが重要"
        },
        {
          "title": "自分が好きなことを貫く",
          "description": "軸がブレては本末転倒。"
        }
      ]
    }
  ]
}

-非構造化データを構造化データにするには?

ChatGPTやClaudeに文章を投げて「JSONにして」と言えば、やってくれます。

ちなみに、Gemini(20ドルを盗るAdvancedも含め)に「JSONにして」というと、、2024年4月18日現在は未だに「私は勉強中でそんなことできない」と言い訳をしてタスクの執行を拒絶しやがります。

-非構造化にできない場合は?

しかしながら、ファイルの内容によっては、そもそも構造化にできない場合もあります。もしくは、構造化にしてしまうと却って非効率的になったり、精度が落ちたりします。

対処方法の一つとしては以下のように

  1. 関連性のある内容をファイルごとにまとめる。
  2. それぞれのファイルを説明するインデックスファイルを作る
  3. Instructionsにおいて、ファイルを検索する際は必ずIndexを手掛かりにするように指示する

にすれば、大抵のケースは解決されます。