このプロトコルでは、ベクトル埋め込みメカニズムを通じて、査読済みのドメイン固有の科学論文による拡張により、Foundation Large Language Modelの応答品質が向上します。さらに、大規模な言語モデル間でのパフォーマンス比較を支援するコードが提供されています。
Method Article
このプロトコルでは、ベクトル埋め込みメカニズムを通じて、査読済みのドメイン固有の科学論文による拡張により、Foundation Large Language Modelの応答品質が向上します。さらに、大規模な言語モデル間でのパフォーマンス比較を支援するコードが提供されています。
大規模言語モデル (LLM) は、ユーザー クエリに関連する情報を生成するための一般的なリソースとして登場しました。このようなモデルは、テキストデータの広範で静的なコーパスを利用した、リソースを大量に消費するトレーニングプロセスを通じて作成されます。この静的な性質により、急速に変化する知識、専有情報、機密データを含むドメインでの採用には制限があります。この研究では、最新の査読済み科学原稿を組み込むための埋め込みベースのアプローチを使用して、基礎モデルとして知られる汎用LLMをドメイン固有の情報で拡張する方法を概説します。これは、Llama-Index などのオープンソース ツールや Llama-2 などの公開モデルを通じて実現され、透明性、ユーザーのプライバシーと制御、および再現性を最大化します。科学論文はユースケースの例として使用されていますが、このアプローチは任意のテキストデータソースに拡張できます。さらに、この機能強化後のモデルのパフォーマンスを評価する方法についても説明します。 これらの方法により、トレーニングコーパス内の情報の包括性に関係なく、高度に専門化されたドメイン向けのLLMシステムを迅速に開発できます。
OpenAIのChatGPTやMeta AIのLlamaなどの大規模言語モデル(LLM)は、ユーザープロンプトに関連するテキストを生成するためのリソースとして急速に普及しています。もともとは、シーケンス内の次の語彙項目を予測するために機能していましたが、これらのモデルは、コンテキストを理解し、臨床情報をエンコードし、さまざまなタスク1、2、3、4で高いパフォーマンスを発揮するように進化しました。言語モデルは、そのような機能や現在の人気レベルよりも数十年前のものですが5、近年のディープラーニングとコンピューティング機能の進歩により、Webベースのテクノロジーやアプリケーションプログラムインターフェース(API)6を通じて、事前に学習された高品質の商用LLMが広く利用できるようになりました。ただし、この形式で LLM を消費することには、いくつかの注目すべき制限があります。
課題1:静的トレーニングコーパス
LLMは、膨大なテキストデータ(たとえば、Llama 27の場合は2兆トークン)で訓練されますが、静的なテキストデータ本体です。そのため、急速な発展を遂げている分野や文献が変化している分野に対して、的確な回答を出すことが課題となっています。この静的なアプローチでは、LLMは最新のデータに追いつくために頻繁な再トレーニングが必要になりますが、これは実用的でもスケーラブルでもありません。さらに、学習データに存在しない情報に基づく応答を必要とするプロンプトは、有用なテキスト生成を妨げたり、幻覚8を引き起こしたりする可能性がある。幻覚または事実の捏造の事例は、特に情報の正確性が重要な環境において、LLMの信頼性について重大な懸念を引き起こす9。
課題2:ドメイン特異性の欠如
事前学習済みモデルは、多くの場合、一般的な使用のために作成されますが、ユーザーは特定のドメインでのパフォーマンスに特に最適化されたモデルを必要とする場合があります。さらに、de novo モデルのトレーニングや大幅な微調整の実行に必要な計算リソースとデータは、多くのユーザーにとって非常に困難です。
課題3:プライバシーの欠如
機密データや専有情報を含むアプリケーションを追求しているユーザーは、データの保存方法や利用方法に関する情報が不足しているため、特定のLLMサービスを使用したくない、または使用できない場合があります。
課題4:安定性が保証されていない
独自のLLMを持つサービスは、利用可能なモデルを変更したり、動作をいつでも変更したりする可能性があるため、これらのサービスに依存するアプリケーションの実装では安定性が懸念事項となります。
Retrieval-augmented generation(RAG)は、特にモデルのトレーニングコーパス10,11の外部の情報に関連するクエリで、LLMのパフォーマンスを向上させるために開発された技術である。これらのシステムは、ユーザークエリへの応答を生成する際に考慮すべきコンテキスト情報を組み込むことにより、LLMを強化します。最近のさまざまな研究が、RAGシステムのアプリケーションとその潜在的な利点について説明しています12,13,14。
この研究で概説した方法の目標は、そのようなシステムの構築を実証し、研究者がドメイン固有の拡張LLMを迅速に実験するためのフレームワークを提供することです。この方法は、外部のテキストベースのデータソースでLLMを拡張しようとしているユーザーに適用できます。具体的には、このプロトコルの包括的な目的は、言語モデリングドメインでの大きな技術的専門知識を必要とせずに、さまざまな実用的なLLMおよびRAG実験に拡張可能なステップバイステップのコードを提供することです。ただし、このアプローチを変更せずに適用するにはPythonの実用的な知識が必要です。ソリューションのユーザー制御、透明性、移植性、および手頃な価格を最大化するために、オープンソースの公開ツールが利用されています。提案されたシステムは、前述の問題を次のように対処します。
解決策 1 と 2: 静的な学習コーパスとドメイン特異性の欠如
提供される方法論は、RAGアプローチを活用し、埋め込みを利用して、元のトレーニングデータに含まれていないドメイン固有の情報を提供します。大まかに言うと、埋め込みモデルは、テキストやその他のデータをベクトルまたは数値の 1 次元配列としての表現に変換します。この手法は、テキストに含まれるセマンティック情報を密度の高い数値形式に変換するため、有益です。ユーザークエリを同じ埋め込み空間に投影することにより、さまざまなアルゴリズムを使用して、ユーザークエリとテキストドキュメントのセクションとの間の距離15、したがって、近似的な意味的類似性を計算することができる。したがって、個別のセクションに分割されたドキュメントからこのようなベクトルのデータベースを作成すると、ユーザークエリに最も関連性の高いテキストを大量に検索することが容易になります(図1)。このアプローチは、任意のテキストドキュメントに拡張できます。LLMを補強するために、オンライン検索機能などの他のアプローチが実装され始めていますが、このアプローチにより、ユーザーは自分のユースケースに対して十分に高品質と見なされるソースを選択できます。
解決策 2: プライバシーの欠如
この実装では、ホスティングに安全なクラウド環境が使用され、ユーザープロンプト、生成された応答、またはその他のデータがこのエコシステムを離れることはありませんでした。ただし、すべてのコードはプラットフォームに依存しない方法で記述されているため、別のクラウドプロバイダーまたはローカルハードウェアを置き換えることができます。
解決策 3: 安定性が保証されていない
このアプローチでは、オープンソースライブラリを利用し、公開されているウェイトでLLMを強化することに重点を置いており、必要に応じて、より高度な透明性、安定性、バージョン管理を可能にします。
私たちが提案するシステムの完全な概略図を 図2に示し、このシステムまたは類似のシステムを複製するための詳細な手順をプロトコルのセクションで概説しています。微調整や拡張によってモデルの動作を変更する際の追加の考慮事項は、パフォーマンスの評価です。言語生成モデルでは、従来の機械学習メトリクスの多くが適用できないため、これは独自の課題となります。さまざまな手法が存在するが16、この研究では、専門家が作成した多肢選択問題(MCQ)を使用して精度を評価し、拡張前と拡張後のパフォーマンスを比較し、一般的な代替LLMと比較した。
このホワイトペーパーで示したユースケースでは、ベクトルストアは、Chicago Consensus Working Group17から公開されたガイドラインを使用して生成されました。この専門家グループは、腹膜がんの管理に関するガイドラインを策定するために設立されました。対象領域は、研究者の臨床専門知識の領域内にあるため、選択されました。一連の論文は、CancerやAnnals of Surgical Oncologyなどのオンラインジャーナルリポジトリからアクセスできました。北京人工知能学院(BAAI、https://www.baai.ac.cn/english.html)によって作成されたコンパクトな(33.4Mパラメータ)埋め込みモデルであるbge-small-enを使用して、ソースドキュメントから埋め込みを生成しました。その結果得られたデータベースは、Llama 2とOpen-AI基盤モデル7の補強に利用されました。読者の便宜のために、コードはGitHub(https://github.com/AnaiLab/AugmentedLLM)を通じて利用可能になっています。再現性を確保するために、提供されている要件リストで使用されているのと同じバージョンのライブラリと、同じバージョンの Python を使用することをお勧めします。次の方法で使用されるツールのインストールまたはドキュメントの詳細については、Python(https://www.python.org)、git(https://git-scm.com)、Llama-Index(https://llamaindex.ai)、およびChroma(https://trychroma.com)のプロバイダーの公式Webサイトを参照してください。
1. 前提条件: コードを確認し、必要なライブラリをインストールする
2. Llama-Indexによるベクトルデータベースの作成
3. セクション2で生成したベクトルデータベースによるラマモデルの拡張
4. 代替LLMのプログラムによる比較
シカゴ・コンセンサス・ワーキング・グループの管理ガイドラインからの22の出版物のセットは、ベースのLlama-7bモデル17を補強するために使用された。ドキュメントは、Llama-Index ツールを使用してベクトル インデックスに変換され、Llama-2-7b-CCWG-Embedded が生成されました。GPT-3.5やGPT-4などの人気のあるOpenAIモデルも同様の方法で拡張され、GPT-XX-CCWG-Embedモデルが作成されました。さまざまな腹膜表面悪性腫瘍の管理に関連する知識を評価するために、合計20問の多肢選択問題(MCQ)が開発された。MCQは、専門医認定の外科腫瘍医によって作成され、外科腫瘍学フェローに期待される知識レベルでテストされました。Llama-2-7b-CCWG-Embedは、拡張OpenAIモデルと同様に、基本モデル( 表1を参照)よりも大幅に優れたパフォーマンスを発揮しました。これは、ベースラインと比較して拡張によってモデルのパフォーマンスが向上したため、この方法の肯定的な結果と見なされます。

図1:学術論文からベクトルデータベースを生成するための概略図。この図の拡大版を見るには、ここをクリックしてください。

図2:拡張LLMの全体的なシステム図。この図の拡大版を表示するには、ここをクリックしてください。

図3:Linuxターミナルで実行されている拡張Llama-2モデル。 この図の拡大版を表示するには、ここをクリックしてください。

図 4: 拡張 Llama-2 モデルからのクエリ結果。この図の拡大版を表示するには、ここをクリックしてください。
| LLMの | スコア(正解率) |
| ラマ-2-7b-チャット-hf | 65% |
| ラマ-2-7B-CCWG-埋め込み | 75% |
| オープンチャット-3.5-010618 | 65% |
| ミストラル-7B-v0.119 | 70% |
| GPT-3.5の | 75% |
| GPT-3.5-CCWG-埋め込み | 85% |
| GPT-4の | 85% |
| GPT-4-CCWG-埋め込み | 90% |
表1:腹膜悪性腫瘍の管理に関連する20の質問のセットに対するさまざまなLLMのスコア(正解率)。
ここで提供される方法は、de novoトレーニングや広範な微調整を必要とせずに、LLMのドメイン特異的アプリケーションの研究を促進することを目的としています。LLMが重要な研究関心領域になりつつあるため、知識ベースを増強し、応答の精度を向上させるためのアプローチはますます重要になります18,19,20,21。提供された結果で示されているように、概説されているプロトコルは、拡張なしの同じLLMと比較して、ドメイン固有の質問に対するパフォーマンスを向上させ、OpenAI GPTモデルなどのより複雑なモデルのパフォーマンスに近づきます。LLMは応答を生成するために膨大な計算リソースを必要とする可能性があるため22,23、より単純なモデルを拡張することで、リソースに制約のあるユースケースでの実装への道が提供される可能性があります。さらに、RAGシステムは、OpenAIが提供するような複雑性の高いモデルを拡張する際にもメリットをもたらしました。提示された結果は腹膜がん管理に特有のものであるが、データソースのドメインとスケールの両方が異なるRAGシステムに関する最近の研究が作成されており、そのようなシステムの広範な適用性を示している21,24,25,26。ただし、応答の品質は拡張に使用されるテキストデータと密接に関連しているため、ユーザーは特定のドメインと目的のアプリケーションに最適なソースを慎重に検討することが重要です。この考慮事項は、LLM関連の研究で特に注目されてきたヘルスケアなどの領域では特に重要です。診断27,28、臨床試験マッチング29,30、およびその他の多数のアプリケーションでのLLMの使用が検討されており、未知のトレーニングコーパスに依存するのではなく、検証された信頼できるテキストリソースが必要です。
パフォーマンスは、腹膜がんとその臨床管理の専門家によって書かれたMCQの正解率によって測定されました。回答は、人間によるレビューによって正解または不正解に分類されました。ただし、研究者の反復的なタスクを最小限に抑えるために、LLM間のパフォーマンスのより自動化された比較にアプローチし始めるための基本的なコードが提供されています。
このプロトコルの主な利点は、さまざまなLLMにプログラムでアクセスするためのコードが提供されていることです。以前は、必要な技術的能力を持たないMCQのパフォーマンスを評価するために、Webベースのインターフェースを介した反復的な手動テストに依存していた可能性があります。提供されているコードは、いくつかの一般的なLLMとインターフェースするための基本的なクラスと、コードの実行方法の例を提供します。これらのツールを提供する目標は、より多くの研究者がさまざまなLLM全体でプロンプトへの応答を評価するワークフローの自動化に移行できるようにし、比較研究を実施する能力を向上させることです。
さらに、概説された方法は、柔軟性と拡張性を強調するように設計されています。コードはそのまま使用できますが、さまざまなLLMの使用や、拡張や比較のためのモデルの埋め込みなど、必要に応じて特定のユースケースに合わせてさらに調整することを意図して記述されています。LLM の状況が急速に進化するにつれて、この拡張性は、さまざまなドメインのユーザーのさまざまなニーズを満たすためにますます重要になります。さらに、Llama-Index ライブラリは、デモされた方法では利用されていない多数の機能を提供し、同様のシステムを作成する際にユーザーに追加のオプションを提供できます。これらは、Llama-Index の公式ドキュメントに記載されています。
また、読者は、自分のユースケースに最適な評価方法を慎重に検討する必要があります。MCQは、その容易に定量化できる性質31,32のためにLLM比較で人気を博していますが、それらを生成システムの包括的なパフォーマンスメトリックと見なす際には注意が必要です。最近の文献では、定性的アプローチ、ヒューマンレビュー、Stanford Holistic Evaluation of Language Models(HELM)33、Bilingual Evaluation Understudy(BLEU)、General Language Understanding Evaluation(GLUE)、ROUGE、perplexity、F1スコア34、35、36、37、38、39などの標準的な自然言語処理メトリクスなど、さまざまな評価が実施されています。
ここで示すように、これらの方法には制限があります。たとえば、インターフェースはいくつかの主要なLLMプロバイダーに実装されましたが、この分野の急速に進化する性質とユースケースの多様性を考えると、この実装は包括的ではない可能性があります。ただし、このコードは、前に説明したように、これを念頭に置いて設計されています。さらに、自動採点に移行するための基本的なコードが提供されましたが、HELMやBLEUなどの回答の採点に代替ツールを使用するために拡張する余地があります。さらに、言語モデルクエリ言語(LMQL)など、事前定義された文法に従って出力を制約するツールの追加使用を使用して、この作業を拡張し、比較LLM研究の自動化を促進することができます。さらに、潜在的なユースケースが多岐にわたることを考えると、パフォーマンスのトレードオフを特徴付けるためには、RAGシステムが一般的な領域外のパフォーマンスに及ぼす影響についてさらに研究する必要があります。最後に、LLM応答の信頼性と評価を改善するための追加の方法を継続的に調査する必要があります。
技術的な理由から、Python 3.10以降が必要であることに注意してください。シェルプロンプトは、bash、zsh、またはその他のUNIXライクな端末用に記述されています。コマンドは、テキストの後にリターンキーを入力するだけで実行できます(プロトコルでは「コマンドの実行」と呼ばれます)。プロトコルの各ステップで、ユーザーは実行中のファイル内のコードを調べて、ワークフローの背後にあるメカニズムをより包括的に理解したい場合があります。
著者は、宣言する利益相反を持っていません。
この作業は、いくつかのオープンソースライブラリ、特に llama-index (https://www.llamaindex.ai/)、ChromaDB (https://www.trychroma.com/)、LMQL (https://lmql.ai/) によって促進されました。
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| pip3 バージョン 22.0.2 | |||
| Python バージョン 3.10.12 |
Request permission to reuse the text or figures of this JoVE article
Request Permission