半構造化(Semi-Structured)データから構造化データを生成するための手段としてLLMは有効だが相応のコストを要する。スタンフォード大学とコーネル大学の研究チームは推論品質を向上させながら、推論コストを110分の1に削減する技術を発見したとしている。
論文の筆頭著者であるSimran Arora氏によると非構造化文書の推論にLLMを使用するとコーパスが大きくなるにつれてコストが高くなることがあり1Kトークンあたり少なくとも0.001ドルのコストが推定されるという。スタンフォード大学の研究者たちが提案する戦略は、EVAPORATEと名づけられた高度なコード合成ツールを使って、推論コストを110分の1に削減できると約束する。
EVAPORATEによるタスクの解決は次のように説明できる。HTMLファイルやPDF、テキストファイルなどの異なる種類の文書から出発して、適切なスキーマを特定し、テーブルを構成するデータを抽出する。半構造化データから構造化データを抽出する従来のアプローチは、HTML文書内のタグの位置やアノテーションの有無など簡略化した条件に依存しており、結果としてシステムの汎用性が低下していた。EVAPORATEは大規模言語モデルを活用して汎用性の維持を目指しているのだ。
すなわち、LLMを使って文書から値を抽出し、データの表形式を構築する方法と後に大規模な文書処理に使用されるコードを合成する方法である。この2つのアプローチはコストと品質という点で異なるトレードオフの関係にある。実際に直接的なアプローチは従来の技術と比較して非常に優れた性能を示す一方で高いコストを要する。
LLMは高スループットのデータ処理タスクではなく、対話型のヒューマンインザループアプリケーション(ChatGPTなど)向けに最適化されている。EVAPORATE-DIRECTでLLMが処理するトークンの数はデータレイクのサイズに比例して直線的に増加する。
一方EVAPORATE-CODEと名付けられたコードアプローチでは、LLMを文書の小さなサブセットに対してのみ使用してスキーマを生成し、Pythonなどの従来のプログラミング言語で多数の関数を合成して、文書全体からデータを抽出する。この方法は前者よりも明らかに低コストだが合成された関数は品質にばらつきがあり、出力テーブルの品質に影響を与える傾向があるのだ。
そこで研究者たちは品質とコストのバランスを取るために、新たな要素として候補となる関数を多数生成しその品質を評価した。そしてこれらの関数が生成した結果を、弱教師データを用いて集計する。このソリューションは、生成された関数間のばらつき、特に特定の文書のサブセットに対してのみ機能する関数や、構文や論理的なエラーがある関数の影響を減らすのに役立つ。
EVAPORATE-CODE+と名付けられたこの拡張アプローチは様々な形式やトピック、属性の文書16セットの評価に基づき、単純化された仮定を用いた最先端のシステムを凌駕し、EVAPORATE-CODEと比較して推論コストの110分の1削減を実現したと研究チームは述べている。
この結果はLLMを使用する際のコストを軽減する方法として関数合成が有望であることを示している。我々は非構造化データセットの構造化ビューを実体化する問題を研究しているが、この洞察はより広範なデータ整理タスク群に適用できるかもしれない。
「例えばHugging FaceやOpenAIで提供されているような他のAIモデルを呼び出す関数を生成可能です」と研究者は語る。さらに関数生成を繰り返して最適でない関数が生成された場合に、それをLLMにフィードバックして、改善された関数を生成することも検討すべき課題ということだ。