化学企業で働く人たちの中には、話題の生成AIを業務で使ってみたけど精度が今一つ、と思っている人は多いのではないでしょうか。 本日は、そんな化学企業で働く方々に是非とも興味を持ってもらいたいKnowledge Graphの話です。
生成AIやLLM(大規模言語モデル)を業務で使用している読者も多いと思いますが、化学分野特有の業務での本格的な運用にはハードルがあります。
その理由は、生成AIのデフォルト知識が専門知識を十分にカバーしていないためです。専門知識が不足していると、ハルシネーション(誤情報)が発生しやすくなります。
特に化学品の表現方法は多岐にわたり、日本語名、英語名、慣用名、化学式、SMILESなどがあります。さらに、化学品には上位概念や下位概念も多く存在し、業務に特有の用語や略号なども数多くあります。
私たち人間はこれらの表現を自由に使いこなしていますが、生成AIはこれら特定領域の知識が不足しています。 そのため、データベース内の検索ジョブであっても、生成AIだけでは精度が不足します。これを向上させるためには、生成AIの知識を補ってくれるKnowledge Graph(KG) が必須です。
グラフRAGという技術が、生成AIの足りない知識をKGで補う検索技術であり、マイクロソフトやアマゾンのような巨大IT企業も真剣に取り組んでいる、注目の技術です。業務に生成AIを組み込む際には、グラフRAGの利用を考えることが増えているようです。
Microsoft GraphRAGのGihhub画面
引用元:https://microsoft.github.io/graphrag/
先程グラフRAGについて触れましたが、ここでは、単純に検索ソフトで行うデータベース(DB)内の検索ジョブについて考えます。もちろん、生成AIを組み込んだグラフRAGであれば、自然な会話文で検索結果を回答してくれますが、実際のところ、機械的な回答だけでも十分な場面は多いものです。
DB内での検索ジョブで満足度を向上させるには、以下をカバーできる必要があります。
お分かりの通り、ここでいう満足度とは、人間が普通にやっている、読み替えや抽象化を高次元に実現することを指しています。同義語の検索はイメージしやすいと思うので、関連事項の検索例を挙げておくと、「ナイロンの性能がよさそうなので、アミド系の材料を使った実験結果を集めたい」などです。
そこで必要なのがKGということなのですが、次に、なぜKGが適しているのかについて考えてみたいと思います。
ここではKGと類似概念である辞書、タクソノミー (Taxonomy)を取り上げて、それらの違いを簡潔に説明しつつ、KGの優位性を述べたいと思います。なお、各概念の詳しい解説は末尾に記載しました。
辞書 | タクソノミー | ナレッジグラフ |
---|---|---|
単語の意味・用法のリスト | 階層的分類、親子関係 | 概念と関係のグラフ |
階層構造なし | 上位・下位関係 | データの連携・検索 |
この表からわかることは、
従って、KGを活用することのが、目的達成への近道になります。
KGは大変優れた知識ベースですが、膨大な情報を正しく整理する必要があるため、作成にはコストがかかる、というのも事実です。 従って、独自のKGを持つことが他社との優位性につながる可能性があるため、自由に使える化学系のKGは、あまり出回っていないようです。
ただし、論文で検索すると、いくつか化学分野のKnowledge Graphが作成されていることが分かります。 従って、用途に合ったKGが見つけられれば、そのデータを利用するのがよいでしょう。ただし、学術レベルで作られたKGでは業務特有の用語は含まれないため、直ちに適用するのは難しいので注意が必要です。これら業務に特有の用語は自分で追加する必要はありますが、それでも、スクラッチでKGを作成するよりも断然短時間で済みます。
例として、論文検索で見つけた化学系KGのリンクを二つ載せておきます。
ご自身の業務で利用できる既存の化学系KGが見つけられない時は、自分で構築しなくてはなりません。日本の化学会社の実務で利用することを考えると、日本語をベースとした化学系KGが欲しいところですが、見つけるのは難しいでしょう。
今回は、スクラッチでKGを作成する時の手順を紹介します。具体的なコードなどは、別の機会に紹介しようと思います。 スクラッチでと書きましたが、使えるデータがあれば使います。そうでなければ、現実的な時間でKGを作ることなどできるはずがありません。
KG作成の大まかな手順は、以下の通りです。
1の『ベースとなるKGの作成』に関して、生成AIの性能が向上したことにより、こちらの方法がよさそうに思いますが、少し気を付ける必要があります。そもそも、今回は、生成AI単独では精度不足という前提で話をしています。従って、生成AI単独の精度でも業務に支障がないのであれば、わざわざKGを作る必要はありません。ただし、既にベースとなるKGを所有しており、そのKGを更に拡張する、つまり2の場面では大いに使える可能性があるので、後ほど述べます。
やはり、本命は、Wikidataなどの既存の辞書やデータベースを活用する方法だと思います。Wikidataという単語を初めて聞いたという人のために補足すると、Wikipediaのデータ版がWikidataになります。Wikipediaには、用語の上位・下位の関係性などの情報も付随しており、オントロジーと言えるようなデータソースです。PythonやSPARQLといったプログラミング言語を使って、Wikipediaから所望のデータをダウンロードすることができるため、自身が望む形でベースKGを作成することができます。
Wikidataのトップ画面
引用元:https://www.wikidata.org/wiki/Wikidata:Main_Page
次に、2の『特定分野、業務に特有な用語を追加する』に関してです。三つの方法を記載していますが、本命は三番目のハイブリッド方式です。人手はコストが高すぎますし、生成AIは精度に不安が残るため、ハイブリッドが現時点での最適解だと思います。
生成AIに、ベースとなるKGに足りない分野の文書、例えば、特定分野の論文や社内の技術報告書を与え、KGを作るよう指示を出します。そして、生成AIが作ったKGを人間が修正を加えます。生成AIにKGを作らせるツールは先に挙げたマイクロソフトやアマゾンを始め、多数存在しますが、この分野の発展速度は速いので、ツールはご自身で探されることを推奨します。
最後に、KGを作成する際に気を付けておいた方がよい点を挙げておきます。
ベースKGに足りない情報を正しく見極めてください。これは、業務が異なれば「最適なKGは変わる」ためです。そして、使われない知識をどれだけ拡張しようとも、無駄になってしまうからです。
ハイブリッドな方法は、現時点で最良のやり方だと思っています。しかし、この作業を行う人物は「AIのしりぬぐいをさせられている」「自分の知識をAIに吸い取られている」と感じる場合も多いため、注意が必要です。私も、これに関して苦い経験をしたことがあります。
おそらく特効薬はないと思いますが、少なくとも、作業を行う人間側の立場に立って話を聞き、作業計画を立てることが重要だと思います。
APIなどを通じてダウンロードを行う際は、ダウンロード先の規定を理解し、なるべくサーバー負荷をかけないよう配慮する必要があります。Wikidataのような非営利団体が運営するサイトの負荷を挙げることは、好ましい行為とは言えません。
従って、オントロジーはナレッジグラフの基盤となるものであり、ナレッジグラフはオントロジーを活用して知識を視覚的に表現する手段、ということになります。