オープンソースのビッグ言語モデルの微調整
このアプローチでは、Llama2のようなオープンソースの大規模言語モデルを顧客のコーパス上で微調整します。微調整されたモデルは、顧客のドメイン固有の知識を吸収・理解し、追加のコンテキストなしで関連する質問に答えることができる。しかし、多くの顧客のコーパスはサイズが限られており、文法的な誤りを含んでいることが多いことは注目に値する。これは、大規模な言語モデルを微調整する際に課題となる。しかし、後述する検索強化型生成技術で微調整された大規模言語モデルを使用した場合、有望な結果が観察されている。
検索強化世代
この問題を解決する2つ目の方法は、拡張世代(ラグ).このアプローチでは、まずデータをチャンク化し、それをベクトル・データベースに格納する。質問に答える際、システムはクエリに基づいて最も関連性の高いデータチャンクを検索し、ビッグ言語モデルに渡して答えを生成する。現在、ビッグ・ランゲージ・モデル、ベクトル・ストレージ、オーケストレーション・フレームワークを組み合わせた多くのオープンソース技術ソリューションがインターネット上でかなり普及している。RAGテクノロジーを使用したソリューションの概略図を以下に示す。
しかし、上記のアプローチでソリューションを構築するには、いくつかの課題がある。ソリューションの性能は、テキストチャンクのサイズ、チャンク間のオーバーラップの度合い、埋め込み技術など、多くの要因に依存し、これらの各要因の最適な設定を決定するのはユーザー次第です。以下に、パフォーマンスに影響する可能性のある主な要因をいくつか示します:
文書チャンクサイズ
前述したように、大きな言語モデルのコンテキスト長は限られているため、文書を小さなチャンクに分割する必要がある。しかし、チャンクのサイズはソリューションのパフォーマンスにとって非常に重要である。小さすぎるチャンクは、複数のパッセージにまたがる情報を分析する必要のある質問に答えることができません。一方、大きすぎるチャンクは、すぐにコンテキストの長さを使い果たし、結果的に処理できるチャンクの数が少なくなります。さらに、チャンクサイズと埋め込み技術は、検索されたチャンクの質問に対する関連性を決定します。
隣り合うチャンク間のオーバーラップ
チャンキングでは、情報が硬直的に断ち切られないよう、適切な重複が必要である。理想的には、質問に答えるために必要なすべてのコンテキストが、少なくとも1つのチャンクに完全に存在するようにすることです。しかし、重複が多すぎると、この問題を解決する一方で、類似した情報を含む複数のチャンクが重複し、検索結果が重複したコンテンツで埋め尽くされてしまうという新たな課題が生じます。
組み込み技術
埋め込み技術とは、テキストチャンクをベクトルに変換し、そのベクトルをドキュメント・リトリーバーに格納するアルゴリズムである。チャンクと質問を埋め込むために使用される技術は、検索されたチャンクの質問に対する関連性を決定し、それはビッグ・ランゲージ・モデルに提供されるコンテンツの品質に影響を与えます。
ドキュメントファインダー
ドキュメントリトリーバ(ベクトルストアとも呼ばれる)は、埋め込まれたベクトルを格納し、それらを素早く検索するためのデータベースである。リトリーバ内で最近傍のマッチングに使われるアルゴリズム(例えば、ドット積や余弦類似度)によって、検索されたチャンクの関連性が決定される。さらに、文書検索は、大規模な知識ベースをサポートするために、水平方向に拡張できる必要がある。
マクロ言語モデル
適切な大規模言語モデルの選択は、ソリューションの重要な要素です。最適なモデルの選択は、データセットの特性や上記の他の要因を含むいくつかの要因に依存します。ソリューションを最適化するためには、さまざまな大規模言語モデルを試し、どれが最良の結果をもたらすかを判断することをお勧めします。このようなアプローチを喜んで採用する組織もあれば、GPT4、Palmあるいは クロード Abacus.AIは、GPT3.5、GPT4、Palm、Azure OpenAI、Claude、Llama2、Abacus.AI独自のモデルなど、さまざまな大規模言語モデルのオプションを提供しています。さらに、Abacus.AIは、ユーザーデータ上で大きな言語モデルを微調整し、検索を強化した生成技術に使用する機能を備えているため、両方の利点を活用することができます。
チャンク数
質問によっては、文書内のさまざまな部分から、あるいは文書を横断して情報を必要とするものもあります。例えば、「野生動物が登場する映画をいくつか挙げてください」といった質問に答えるには、異なる映画からのクリップやチャンクが必要です。最も関連性の高いチャンクがベクトル検索の先頭に表示されないこともあります。このような場合、評価と応答生成のために、複数のデータチャンクを大規模言語モデルに提供することが重要です。
これらの各パラメーターを調整するには、ユーザーの多大な労力が必要であり、退屈な手動評価プロセスを伴う。
Abacus.AIソリューション
この問題に対処するため、Abacus.AIはAutoML機能をユーザーに提供する革新的なアプローチを採用しました。このアプローチでは、特定のユースケースに最適な組み合わせを見つけるために、大規模な言語モデルの微調整を含むさまざまなパラメータの組み合わせを自動的に繰り返します。ユーザーが提供する文書に加え、一連の質問とそれに対応する人手による標準的な回答を含む評価データセットが必要です。Abacus.AIはこのデータセットを使用して、最適な設定を決定するために、さまざまなパラメータの組み合わせによって生成される回答を比較します。
Abacus.AIは以下のような評価指標を生成し、ユーザーは好みの評価指標を選択して、どの組み合わせが最も優れているかを判断することができます。
BLEUスコア
BLEU(Bilingual Evaluation of Alternatives)スコアは、一般的に使用される自動評価指標で、主に機械翻訳の品質を評価するために使用されます。これは、人間のスコアと高い相関性を持つ翻訳品質の定量的な尺度を提供することを目的としています。
BLEUスコアは、候補訳文(機械が出力した訳文)と1つ以上の参照訳文(人間が作成した訳文)を比較し、候補訳文と参照訳文のn-gramの重複度を計算することでスコアを導きます。具体的には、候補訳文に含まれるn-gram(n個の単語の並び)が、参照訳文に含まれるn-gramとどの程度正確に一致しているかを評価します。
METEORスコア
METEOR(Metrics for Evaluating Explicitly Ordered Translations)スコアは、機械翻訳の品質を評価するために一般的に使用されるもう1つの自動評価指標です。特に、明示的な語順マッチングを導入し、類義語や韻律を考慮することで、BLEUなどの他の評価指標の欠点を補うように設計されています。
BERTスコア
BERT スコアは、テキスト生成の品質を評価するために設計された自動評価指標である。このスコアは、候補文と参照文の各トークン間の類似度を計算することで得られる。完全一致とは異なり、この評価基準では文脈の埋め込みを使用してトークンの類似性を判断する。
ルージュ・スコア
ROUGE(Recall-Oriented Alternatives for Summary Evaluation)スコアは、自然言語処理やテキスト要約でよく使われる自動評価メトリクスのセットである。もともとはテキスト要約システムの品質を評価するために設計されたが、現在では機械翻訳やテキスト生成など他の分野でも広く使われている。
ROUGEスコアは、1つ以上の参照テキスト(通常は人間が生成した要約や翻訳)と比較することで、生成されたテキスト(要約や翻訳など)の品質を測定する。これは主に、候補テキストと参照テキストの間のn-gram(すなわちn個の単語の並び)や単語列の重複の度合いを測定する。
これらのスコアはそれぞれ0から1の範囲で、スコアが高いほどモデルの性能が優れていることを示します。Abacus.AIを使えば、複数のモデルや指標を試して、データや特定のアプリケーションに最適なものをすばやく見つけることができます。