
デジタルレジリエンスを強化するAIの理念
今後の製品戦略にAIを取り入れてサイバーセキュリティとオブザーバビリティの成果を向上させるための、Splunkの3つの戦略をご紹介します。
言語モデルは、人間が使う自然言語を生成するためのAI計算モデルです。とはいえ、自然言語の生成は容易ではありません。
言語モデルは、確率的機械学習モデルとしてトレーニングされます。つまり、自然な文章になるように単語を並べるための確率分布を予測することで、人間の知能を模倣します。科学の領域では、言語モデルの評価として次の2点が重視されます。
人間の知能の模倣という点では、自然言語処理(NLP)で今日最先端にあるAIモデルでも、チューリングテストに完全には合格していません。(チューリングテストでは、対話相手が人間であるかコンピューターであるかを被験者が区別できなければ合格になります。)
それでも、大ブームになっている大規模言語モデル(LLM)と、それほど盛り上がってはいないものの将来有望な小規模言語モデル(SLM)において、合格レベルにかなり近づいているのは興味深いことです。(SLMは「Small Language Model」または「Short Language Model」の略です。)
今日のAIブームに興味がおありなら、ChatGPTなどで使われるLLMのことはよくご存じでしょう。LLMを使った生成AIは、学術界から産業界、コンシューマー市場に至るまで、幅広い分野で注目されています。その大きな要因は、比較的複雑な対話を言語コミュニケーションの形で行える点にあります。
現在、LLMツールは、インターネット上の膨大な知識にアクセスするためのインテリジェントなマシンインターフェイスとして活用されています。LLMは、インターネット上の情報を使ってトレーニングされ、ユーザーのリクエストに応じて関連情報を抽出し、簡潔でわかりやすい知識として提供します。つまり、人間がインターネットで情報を検索し、何千ものWebページを読み通して、簡潔な最終結論を導き出すという作業を代わりに行ってくれるということです。
かつてLLMといえばOpenAI社のGPTやGoogle社のBERTでしたが、ChatGPTの登場によってようやく一般消費者がLLMを直接利用できるようになりました。
ChatGPTをはじめとする最近の生成AIツールは、プログラミングコードを生成できるようにトレーニングおよびチューニングされています。開発者はChatGPTを使って、完成されたプログラム機能を記述できます。ただし、テキストによるユーザープロンプトを通じて要件と制約を適切に指定することは必要です。
(関連記事:LLMのOWASPトップ10に対処してLLMのセキュリティを守る方法)
NLPモデルは、シンボリックNLP、統計的NLP、ニューラルNLPの3つに大別されます。
LLMはどのような仕組みになっているのでしょうか。LLMを使って自然言語を生成するための主な手順を見ていきましょう。
基本的な考え方としては、最も高い確率で正しい予測を生成するパラメーターを持つ数理モデルを開発します。
言語モデルにおいては、自然言語データの分布を予測します。目標は、学習後の自然言語確率分布を使用し、利用可能な文脈的知識(ユーザープロンプトの内容を含む)に基づいて、最も自然な単語の並びを生成できるようにすることです。
単語と文章の複雑な関係を学習するために、ChatGPTやBERTなどの最新の言語モデルでは、Transformerをベースにした深層学習アーキテクチャを採用しています。Transformerの基本的な考え方は、単語の並びを予測する際に、単語の重要度に基づいて重み付けした数値表現にテキストを変換するというものです。
特定のタスク領域に合わせて集中的に言語モデルのファインチューニングとエンジニアリングを行います。このステップでのもう1つの重要な目的は、ヘイトスピーチや差別的な発言のような望ましくない出力を生むバイアスを排除することです。
このプロセスでは、以下の手順でモデルパラメーターを調整します。
ドメイン固有の知識に基づいてモデルをトレーニングする
事前学習済みデータに基づいてモデルパラメーターを初期化する
モデルのパフォーマンスを監視する
モデルのハイパーパラメーターをさらにチューニングする
LLMもSLMも、アーキテクチャ設計、トレーニング、データ生成、モデル評価において確率的機械学習の考え方に沿っています。
では、LLMとSLMの違いはどこにあるのでしょうか?
明らかに異なるのはモデルのサイズです。
LLMはパラメーター数が多く、たとえばChatGPT (GPT-4)のパラメータ数は1兆7,600億と推定されています。
SLMはパラメーター数が比較的少なく、たとえばオープンソースのMistral 7Bのパラメータ数は70億です。
この違いは、モデルアーキテクチャのトレーニングプロセスの違いによるものです。ChatGPTは、エンコーダー/デコーダーモデルスキームでセルフアテンション機構を使用しています。一方、Mistral 7Bはスライディングウィンドウアテンションを使用しており、デコーダーのみのモデルで効率的なトレーニングが可能です。
SLMは、ドメイン固有のデータを使ってトレーニングされます。そのため、複数の知識領域をまたいで文脈を包括的に理解するのは苦手ですが、特定の領域では優れた能力を発揮します。
一方、LLMは、より広いレベルで人間の知能を模倣することを目指しています。大規模なデータソースを使ってトレーニングされるため、特化型のSLMと比べ、あらゆる領域で比較的優れた成果を発揮する傾向があります。
つまり、LLMは汎用性が高く、プログラミングなどのダウンストリームのタスクに向いており、適合、改良、調整を通じてその理解を深めることができます。
LLMのトレーニングはリソースを大量に消費し、クラウド上に大規模なGPU計算リソースを用意する必要があります。ChatGPTをゼロからトレーニングするには、数千のGPUが必要になります。一方、SLMのMistral 7Bは、それなりの性能を持つGPUを1基搭載したローカルマシンで実行できます。それでも、70億パラメーターのモデルをトレーニングする場合は、複数のGPUで数時間かかります。
LLMはバイアスがかかりがちです。適切なファインチューニングが行われず、インターネット上の誰でもアクセスできるデータをそのまま学習するためです。こうしたデータをトレーニングに使用すると、以下の問題が生じる可能性があります。
特定の集団または思想を差別的に扱う、または誤って解釈する
間違ったラベル付けをする
この問題をさらに複雑にしているのが、方言、地名、文法規則など、さまざまな要因によって、言語自体がバイアスを暗示する場合があることです。もう1つ一般的な問題が、モデルのアーキテクチャが原因でバイアスが意図せず入り込むことです。このような問題は見過ごされがちです。
一方、SLMは、比較的小規模でドメイン固有のデータセットでトレーニングされるため、LLMよりもバイアスが発生するリスクが低くなります。
SLMは、モデルのサイズが小さいため、ユーザーがローカルマシンで実行し、許容時間内に出力を生成できます。
一方、LLMでは、出力を生成するために複数の並列処理装置が必要になります。また、LLMにアクセスする同時ユーザー数が増えるほど、モデルの推論速度が低下する傾向があります。
その答えは、言語モデルの用途と利用可能なリソースによります。ビジネスの場で、コールセンターやカスタマーサポート向けのチャットエージェントに使用する場合は、LLMの方が適しているかもしれません。
一方、より専門性の高い用途では、SLMの方が優れているでしょう。
医療、法律、金融の分野ではどうでしょうか。これらの分野の用途では、専門性と機密性の高い知識が求められます。こうした知識に基づいてSLMを社内でトレーニングし、社内用途向けにファインチューニングすれば、規制の厳しい専門的な業界のドメイン固有のユースケースに対応するインテリジェントエージェントを構築できるでしょう。
このブログはこちらの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、ssg-blogs@splunk.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。