単一のAIモデルの限界
Frank Fischer
2023年8月7日
0 分で読めます今日のAIをめぐる議論は、恐れや畏敬の念といった感情に左右されがちです。また、AIが大規模言語モデル(LLM)だけのものとして捉えられることも少なくありません。しかし、それがすべてではありません。こうした不安からいったん離れ、AIがLLMよりもはるかに幅広いものであることを示すデータを見ていきましょう。
AIとは?
AIについて基本的な知識を身につけておくことは大切です。1950年代、研究者や実務家たちは、人工知能がどのようなものになり得るのか、そしてそれをどう見分けるのかを議論していました。ChatGPTに尋ねると、次のように答えます。「人工知能とは、学習、理解、推論、知覚を行い、環境に応じて反応する能力を備えたシステムまたは機械として識別できます。こうした能力は従来、人間の知性と結び付けられてきたものであり、新しい状況への適応、問題解決、意思決定、複雑な考えやパターンの理解を可能にします。」実にうまく要約されています。
現在、AIとは何かと尋ねると、多くの場合、答えはLLM、つまりディープラーニングを用いたニューラルネットワークの一種を指しています。しかし、AIには、より多様で包括的なテクノロジーが数多く含まれます。多くの場合、特化型AI(「特化型AI」とも呼ばれます)や、複数の手法を組み合わせたアプローチが最適です。
簡単に言えば、AIの手法は大きく論理的アプローチと統計的アプローチの2つに分けられます。「知的エージェントは、現実世界の複雑さと不確実性に対処できなければなりません。論理的AIは主に前者に、統計的AIは後者に取り組んできました。」たとえばサイバーセキュリティでは、侵入検知にML(統計的AI)を使ったり、SASTに論理的AIを使ったりすることが一般的です。AIのさまざまなアプローチについて詳しくは、RussellとNorvigの著書をご覧ください。2
テキスト、画像、動画、ソースコードなどのコンテンツを生成できる生成AIや、通常の言語(チャットなど)をインターフェースとして使えるLLMは、この分野では比較的新しいものです。生成AIは、敵対的生成ネットワーク(GAN)と呼ばれるプロセスで動作します。ML(「識別器」)を学習させ、コンテンツ(人の顔写真など)が本物か偽物かを分類するのが基本的な考え方です。別のML(「生成器」)は、識別器が受け入れるコンテンツ(画像など)の生成を試みます。教師なし学習でこの2つを組み合わせて学習させると、人が作ったものとほとんど、あるいはまったく見分けがつかないコンテンツを生成できるようになります。LLMは、Transformerを使ってこの考え方を発展させたものです。テキストは、MLが処理できるデータ形式(「Transformer」)に変換されます。モデルの学習には膨大な量のテキストが使われます。モデルは、テキストによる質問(多くの場合「プロンプト」と呼ばれます)に対する回答を生成します。同じ質問でも、システムが使うランダム性の度合いを決める要素によって回答が異なる場合があります。GPTではこれを「temperature(温度)」と呼びます。現在のLLMには、学習データを収集した時点を示すカットオフ日が設定されていることがよくあります。しかし、AI開発者は、LLMをインターネットに接続して最新情報を利用できるようにすることで、この制約を克服しようとしています。さらに、LLMはソースコード生成を含むさまざまな分野に特化させ、再学習することができます(GoogleによるPaLM 2のレポートを参照)。
LLMは、人間の脳のニューロンを模倣するディープラーニングという手法を使っています。しかし、サポートベクターマシン、進化的アルゴリズム、マルコフ連鎖など、機械に統計的学習をさせる方法はほかにも数多くあります。先述のとおり、もう一方には論理的AIという考え方があり、Prologのようなテクノロジーを使ってエキスパートシステムを構築します。
SDLCにおけるAI
ソフトウェア開発とデリバリーにおけるAIの具体的な活用シナリオ。
用途 | 利用場所 | メリット | デメリット3 |
|---|---|---|---|
コード生成 | SAST、IDE | 生産性向上、認知負荷の軽減 | コード品質、ライセンス、セキュリティ |
コードのリファクタリングとアップグレード | IDE | 生産性向上、認知負荷の軽減 | コード品質、ライセンス、セキュリティ、情報漏えい |
デバッグ | IDE | 認知負荷の軽減 | 情報漏えい |
ドキュメント作成 | IDE、CI | 後回しにされがちな作業 | 情報漏えい |
コードの理解 | IDE | 認知負荷の軽減 | |
問題の検出と修正の生成 | SAST、SCA、IaC、コンテナ、IDE | より深く意味を捉えた分析 | 誤検知と実行時の問題 |
テスト(テスト生成、ファジング、テストデータ) | IDE、DAST、ファジング | 想定していなかった問題の発見 | 実行時の問題、結果への対応が必要、現実離れしたテストケース |
監視(データ処理、データストリームの統合、異常検知) | CD、Ops、SIEM | より多くのデータ、未知のパターンの発見 |
AIのカテゴリーを整理する
AIテクノロジーは、ソフトウェア開発のあらゆる段階で活用できます。縦軸は、AIツールの複雑さと性能の高まりを示しています。横軸は、各ツールの機能(開発者が直接利用する要素など)と能力(バックエンドのスキルなど)を示しています。

注:紫色のボックスはすべて、Snykが独自のソリューションを提供しているテクノロジーを示しています。以下ではSnykを例に説明します。
特化型AI
特化型AIは、弱いAIとも呼ばれ、Eコマースプラットフォームの商品レコメンドや、アプリケーションでのユーザー行動の予測など、特定のタスクを実行するために設計されたAIシステムを指します。こうしたシステムは、特定のタスクでは知的な能力を示すものの、限られた条件のもとで動作し、あらかじめプログラムされた機能の範囲を超えて理解、学習、知識の応用を行うことはできません。そのため、ソフトウェア開発における特定の課題に対するソリューションに適しています。たとえばSnykは、Snyk Codeで特化型AIを活用し、ソース、シンク、サニタイザーを検出しています。
論理的AI
シンボリックAIは、ルールベースAIや古典的AIとも呼ばれ、論理と特定の記号を使って問題を表現し、それらを操作して解決策を導き出すアプローチです。診断のロジックを明示的に記述するエキスパートシステムがその一例です。ソフトウェア開発者にとっては、事前定義されたルールを使ってソフトウェアのバグを特定・解決するトラブルシューティングプログラムや、特定のルールに基づいて最善の手を選ぶAI搭載チェスゲームを設計することなどが考えられます。たとえばSnyk Codeは、ロジックソルバーとナレッジベースにまとめられたルールを使用しています。
生成AI
生成AIは、機械学習の手法を活用し、学習データに似た新しいコンテンツ(画像、テキスト、音楽など)を作り出す人工知能の一分野です。ソフトウェア開発者にとっては、チャットボットや自動応答向けに人間らしい文章を自動生成するプログラムを作成したり、既存の高品質なデザインをもとに、見栄えのよい新しいユーザーインターフェースを設計するAIモデルを開発したりすることが考えられます。
LLM
LLM(大規模言語モデル)は、膨大なテキストデータで学習し、与えられたプロンプトに基づいて人間らしい文章を生成する人工知能モデルの一種です。ソフトウェア開発者は、LLMを活用して自動カスタマーサービスのチャットボットなどのアプリケーションを構築したり、コードに潜む潜在的な問題を説明する自然言語のコメントを生成するコードレビュー用ツールを作成したりできます。
AIの組み合わせ、またはハイブリッドAI
ハイブリッドAIは、シンボリックAIや機械学習など異なる人工知能の手法と人間の知性を組み合わせ、それぞれの強みを活用し、弱みを補うアプローチです。ソフトウェア開発では、ルールベースAIで初期判断を行い、機械学習でパターン認識と予測を行い、生成コンテンツの最終承認や複雑な問題解決など、創造性、共感力、高度な判断が必要なタスクに人間の知性を取り入れるシステムの構築が考えられます。たとえば、Snykのセキュリティチームは、Snyk CodeエンジンとMLテクノロジーを使ってSnyk Codeのナレッジベースを構築しています。もう1つの例がCode Fixです。生成AIで修正候補を作成し、論理的AIで候補を見つけ、その実現可能性を後から検証します。
AIモデルを振り返る
まとめると、AIはLLMだけではなく、すでにさまざまなソリューションで活用されています。LLMは新たなインターフェースと無限の可能性をもたらしますが、私たちが使えるツールはそれだけではありません。AIのほかの要素も組み合わせることで、アプリケーションセキュリティにおけるAIのカバレッジ、知能、活用機会を広げられます。
組織でAIを効果的に導入する方法については、最近公開したSDLCでAIを活用するためのベストプラクティスをまとめたチートシートをご覧ください。
参考文献
1 古代ギリシャの神話にも知的機械が登場するという説があり、人工知能の概念は実際には数千年前から存在しているとも言われています(https://en.wikipedia.org/wiki/History_of_artificial_intelligenceを参照)。
2 https://homes.cs.washington.edu/~pedrod/papers/aaai06c.pdf
3 一般的な課題として、どのような用途でも人間による監督が必要です。


