はじめに
昨今話題のLLMですが、従来は不可能だった「人間との自然な対話」や「論理的思考」が可能になった一方で、実務で利用しようとすると、LLMが不得意なことに対して過剰な期待がされて失敗するプロジェクトも多く存在するように感じています。
私は、現在都内の受託分析系のIT企業で機械学習エンジニアとして働いており、ここ1年ぐらいはLLMを使った案件に携わることが多かったため、実際に業務でLLMを扱う立場から、LLMでできることとできないことを整理してみました。
この記事は執筆時点でのLLMの限界について筆者の独断で記載しています。LLM周りは日々新しいモデルや技術が出てくるため、この記事の内容もすぐ時代遅れになる可能性があります。
できること
単純作業
端的にいうと、頭を使わなくてもできるような作業は、LLMの得意分野です。
例えば、Webサイトからコピペしてきたような形式が崩れた情報をjsonやcsvのような構造化された形式に変換することは非常に得意です。実際に、レシートや名刺の自動認識のように、OCRした情報を構造化された情報に変換する取り組みは進んでいるように思います。
他にも、与えられた文章に対して肯定的/否定的のような感情を付与するネガポジ分析や、各種ラベルへの分類も行うことができます。
単純な知識問題
LLMは学習データに含まれていた情報を知識として利用することができます。例えば「三平方の定理とは」や「ExcelのIF関数の使い方を教えて」といった質問に回答することができ、検索エンジンの一部を代替することが可能です。
なお、LLM単体ではハルシネーション(LLMが虚偽の情報を生成してしまう現象)の問題もありますが、Web検索やRAGを組み合わせることで正確な情報をもとに回答を生成させることも可能になっています。
人間の補助
後述しますが、LLMは100%正しい答えを返すことが難しいです。しかし、LLMの結果を人間の補助として利用することで、正しければ採用し、正しくなければ不採用にする(もしくは正しくなくてもそれを参考にすることで人間の思考を補助する)という使い方が可能です。
この代表的な例が、GitHub Copilotに代表されるcopilotツールです。GitHub CopilotはAIを使ってプログラミングのコードの続きを予測してくれるサービスであり、生成した続きのコードは必ず利用されるわけではなく、人間が採用・不採用を判定する仕組みになっています。
現在のLLMの性能の限界として、必ず正しいコードを生成することは不可能という点が挙げられますが、LLMの性能が不足している部分を人間が介入して補完することで価値のあるサービスを実現できています。
できないこと
ドメイン知識が必要
ドメイン知識と呼ばれる、特定の専門分野や業務についての知識が必要なタスクについてはLLMは苦手です。
例えば、メールを生成するというタスクを考えた際に、時候の挨拶や敬語表現の生成は可能ですが、日立用語(人の名前を丸括弧で表記する、返答を承るという意味で「拝復」を使うなど。現在も存在しているかは不明)のような社内独自の特別ルールに対応することはできません。
筆者が経験した案件でもこのような暗黙知に苦労するケースが多いです。イメージとしては、転職してきた1日目の社員ができないタスクはLLMもできないと思ってください。
なお、RAGとして企業独自のドキュメントをプロンプトに埋め込むことで、ドメインの知識自体は利用することが可能ですが、ドキュメントの質がかなり大事になる点と、ドキュメントをもとに何らかの判断する過程で暗黙の知識を必要としているケースも存在するため、実現可否は慎重に判断する必要があります。
また、Fine-Tuning(特に現実的な手法であるLoRAの場合)によるドメイン知識の獲得は現時点では難しいという認識です。
特定のツールとの連携
LLMの入出力は基本的にはプレーンテキストです。PowerPointのような特定の形式を自動作成してほしいという要望をよく聞きますが、対応することができません。
なお、PowerPointの場合は、Microsoft CopilotというPowerPointを生成するためのツールが存在するため、そちらの利用を推奨しています。
100%を求める
LLMは一般のプログラミングのアルゴリズムとは異なり、必ず意図に沿った結果を生成するわけではありません。そのため、高い確度を求められるタスクには不向きであり、必ず〇〇できるシステムを作ってほしいというような場合にはLLMは不適当です。
なお、成功失敗の判定が可能なタスク(例えばプログラミングのコードを生成するタスクを行う場合)であれば、実行できるコードが生成されるまでリトライ処理をするなど、失敗した場合の対策が可能です。
総論
LLMはこれまでのAIと比較して、格段にできることが増えたという意味では技術的革新なのは間違いないですし、お遊びツールとしてできる範囲はかなり広いですが、実務に導入することを考えると、かなり使い所を選ぶという感覚です。
(個人的には、LLMは専門家によるモデルの学習を不要にしたという点で、機械学習の民主化に絶大な貢献をしたと考えているので、大金をかけて外部ベンダーに委託してすごいものを作ってもらうというよりも、各社員が自分自身の業務の自動化からスモールスタートで始めて行くことが望ましい導入方法なのかなと思っています。)