PDFの内容がJSONに! ChatGPTによるデータ変換のインパクト
トップバッターは山梨でソフトウェア開発会社を営む西見公宏氏(@mah_lab)。ChatGPTをデータ変換に利用した事例を通して、データ変換ツールとしての大規模言語モデルの可能性について語った。
ChatGPTといえば、自然言語処理における大規模言語モデルの1つだ。しかし西見氏は「データを生み出しているのではなく、プロンプトを入力してデータを変換するモデルであるという仮説を考えました。プロンプトという非定型なデータであっても、ChatGPTを用いて変換することで、意図したデータを生成できるのであれば、あらゆるデータ変換に活用できるかもしれない」と語る。
もしこの仮説が正しければ、無秩序な非構造化データを秩序ある構造化データに変換することも可能だ。西見氏はLangChainなどのライブラリを使い、この仮説の検証を行った。
まず西見氏は、簡単な構造化データから構造化データへの変換を試みた。ノーコード開発ツール「kintone」のデータ定義をコンテキストとして与えたうえで、実現したいアプリのデータ定義を生成してもらう。
今回は例として、作業管理アプリを作成。名前や性別、誕生日、電話番号といった必要な項目をプロンプトとして与えたところ、図のようにデータ定義が生成された。
「つまり、言語モデルはコンテキストとして与えられたもののパターンを理解し、そのパターンに沿って要求通りに変換することができます。この発想でいけばノーコードツールにおける自動アプリ生成は可能ではないかと思います」
続いて、本題となる非構造化データから構造化データへの変換についての解説に移る。例えば、PDFで提供されている行政文書をテキストに変換した場合、下図中央のように、無秩序なテキストだけが反映される。これをコードを書いて、JSONに変換するのはなかなか骨が折れる。
「まず構造のパターンが読みにくい。そして図左下の4象限にあるように、データとして標準化されておらず、アドホックなデータになっている。しかも表によってデータ形式も違うので、毎回分析して書かないといけない。これをちゃんとデータに変換できれば非常に役に立つだろうなと思いました」
行政文章のようにデータ量が多い場合、コンテキストの部分が長くなってしまう。そこで、プロンプトを英語で記述し、「0歳から108歳までのデータを抽出してほしい」と具体的に指定するなど工夫したところ、無事JSON形式で生成することができた。
西見氏は「このように、大規模言語モデルを活用したデータ変換が可能になると、これまで活用されてこなかったデータも活用対象になりうると思います。与えられたデータに対するパターン分析が非常に優れているので、人間では見分けがつかないようなパターンにも気がつき即座に処理を行ってくれます。トークン数など制限もありますが、ChatGPTの性能が上がれば解決されていくと思うので、可能性はどんどん拡がると思います」と期待を述べ、発表を終えた。