最近話題のLLM(大規模言語モデル)、本当に賢いですよね。ドキュメント作成からコード生成、データ分析まで、色々な場面で活躍しています。
ところで、LLMに情報を与えるとき、ファイル形式について考えたことはありますか? 特に、技術文書でよく使われる .md
(Markdown) と設定ファイルでおなじみの .yaml
(YAML)、LLMはどちらの方が「解釈しやすい」のでしょうか?
今回は、それぞれのファイル形式の特徴を踏まえつつ、LLMがどちらをどう解釈するのか、そしてどんなタスクに向いているのかを探っていきましょう!
結論から言うと、「どちらが絶対的に優れている」ということはなく、LLMにさせたいタスクによって最適な形式は変わります。
Markdown (.md) ってどんなやつ?
ご存知の通り、Markdownは人間が読み書きしやすいことを重視した軽量マークアップ言語です。
- 得意なこと: 文章の構造化(見出し、リスト)、簡単な装飾(太字、斜体)、リンクや画像の埋め込みなど。
- よく使われる場所: README、ドキュメント、ブログ記事、メモなど。
LLMから見たMarkdown:
Markdownは自然言語にとても近いため、LLMにとっては 文章の内容、文脈、全体の流れを理解する のが得意です。大量のテキストデータで学習しているLLMは、Markdown形式の文書を読むことに慣れています。
-
向いているタスク:
- 書かれている内容についての質疑応答
- 文章の要約
- 感情分析
- ドキュメント全体の意味理解
ただし、キー: 値
のような厳密なデータ構造をピンポイントで抜き出すのは、YAMLほど得意ではありません。
YAML (.yaml) ってどんなやつ?
YAMLは、人間が読みやすいデータシリアライゼーション(構造化データを特定の形式に変換すること)フォーマットです。
- 得意なこと: キーと値のペア、リスト(配列)、ネスト(階層構造)など、構造化されたデータを明確に表現すること。
-
よく使われる場所: 設定ファイル (
config.yaml
)、データ交換、インフラ構成管理 (Kubernetesマニフェストなど)
LLMから見たYAML:
YAMLはデータ構造が非常に明確です。インデントや キー: 値
の形式がはっきりしているため、LLMにとっては 特定のデータや設定値を正確に抽出する のに非常に適しています。コードや設定ファイルを学習データとして読み込んでいるLLMは、YAMLの構文も理解できます。
-
向いているタスク:
- 設定ファイルから特定の値を取得する
- パラメータを抽出して利用する
- 構造化されたデータを解析・変換する
一方で、YAMLファイル自体は自然な文章ではないため、「ファイル全体の物語や文脈を読む」ようなタスクにはMarkdownほど向いていません(もちろん、キー名が分かりやすければ意味の推測は可能です)。
図解:LLMはどっちが得意?
まとめ:結局どっちを使えばいいの?
LLMに何をさせたいかで使い分けましょう!
-
文章の内容理解、要約、質疑応答など、テキストの「意味」を扱わせたい → Markdown (.md)
- 例: 「このドキュメントの内容を要約して」「このREADMEに書かれているセットアップ手順を教えて」
-
特定の設定値の取得、パラメータ抽出、構造化データの処理など、「データ」を正確に扱わせたい → YAML (.yaml)
- 例: 「
config.yaml
のdatabase_url
を教えて」「このYAMLのservices
リストにある要素をすべて抜き出して」
- 例: 「
どちらの形式もLLMは高いレベルで処理できます。大切なのは、目的に合った形式を選ぶこと ですね。
LLMとの連携を考える際の、ファイル形式選びの参考になれば幸いです!