Skip to main content

SDLCでAIを活用するためのベストプラクティス

著者

Frank Fischer

blog feature ai

2023年7月19日

0 分で読めます

シンプルなインターフェースを備えた大規模言語モデル(LLM)AI「ChatGPT」に関する最近のニュースをきっかけに、AIが大きな話題になっています。それ以来、AI分野は活況を呈し、より大規模で高性能、かつ汎用性の高いモデルの提供を目指して、複数の主要企業が競い合っています。Microsoft、NVidia、Google、Metaなどの企業やオープンソースプロジェクトが、新しいモデルを次々と発表しています。

実際、リークされたGoogleの文書を見ると、こうしたモデルはまもなく、誰もが利用できる形で広く普及するようです。

2023年3月時点の言語モデルの規模を比較したバブルチャート。パラメーター数に応じて円の大きさが異なり、MT-NLG、PaLM、GPT-4、LLaMAなどのモデル名が記載されています。

出典:Dr Alan D. Thompson、LifeArchitect.ai(2023年5月)、https://s10251.pcdn.co/wp-content/uploads/2023/03/2023-Alan-D-Thompson-AI-Bubbles-Rev-7b.png

長年にわたりAI分野で精力的に活動してきた私にとって、世間の関心が高まっているのはとても喜ばしいことです。一方で、ニュースの多くに少し不安も感じています。AIは素晴らしいテクノロジーですが、AIが書いたレポートを提出して学生が処分されたり、弁護士が裁判所への書面でAIの幻覚による判例を引用したりする事例を目にした今、AIは万能の解決策ではなく、あくまでツールだと認識することが大切です。ツールは壊れることがあります。最先端のテクノロジーを使った非常に高度なツールであっても同じです。

この記事では、AIがソフトウェア開発ライフサイクル(SDLC)の改善にどう役立つか、また既存のプロセスにAIをむやみに適用することで生じる落とし穴について解説します。

AIとソフトウェア開発:メリットとデメリット

製品にAIを取り入れれば、(単なる飾りにすぎないとしても)他社との差別化につながります。一方、SDLC(開発、モニタリング、管理など)にAIを導入すれば、競合より優位に立つための大きな変革となる可能性があります。たとえば、次のようなメリットがあります。

  1. 効率性:AIを活用したツールなら、大量のコードやログファイルをすばやく処理できます。

  2. コードのセキュリティと品質の向上:適切なツールを使えば、AIが問題を検出し、修正案を即座に提示できます。

  3. コードにおけるイノベーションの促進:コードの提案によって、新しいアイデアや問題解決の別の方法を取り入れられます。

  4. プロセスの迅速化:AIは、意思決定に必要な情報を準備し、コードスニペットなどの要素を提供することで、プロセスを加速させ、チームがすぐに実行に移せるよう支援します。

  5. 認知負荷の軽減:AIは、慣れない状況を人がよりすばやく理解できるよう支援し、負担を軽減します。

ただし、新しい生産性向上ツールには、新たなリスクや課題も伴います。

  1. データ漏えい:モデルの追加学習にクエリを利用するツールに機密情報を入力すると、意図せず情報が漏えいするおそれがあります。

  2. スキルの低下:正しい回答や洞察を得るためにAIに過度に依存すると、従業員の能力が低下し始める可能性があります。

  3. 幻覚:AIモデル(LLMなど)には「幻覚」と呼ばれる現象があります。モデルが、もっともらしく説得力があるものの、事実ではない説明を生成することです。

  4. 不適切な提案:AIが質の低いコードで学習していれば、学習データに基づいて質の低い修正案を提案します。

  5. 見せかけの開発者:AIを使えば、プログラミングの経験や知識がほとんどない人でもコードを作成できます。今後数年間で、ソースコードの量は大幅に増加すると予想されます。CISO、エンジニアリングリーダー、採用担当者は、この変化に備える必要があります。

  6. ライセンス侵害:学習データのライセンスについては、現在大きな議論が続いています。最悪の場合、コピーレフトライセンスを使ったモデルが生成したコードにもコピーレフトが適用され、アプリケーションが突然オープンソースになる可能性があります。

  7. 悪意ある攻撃者:これはSDLCに限った話ではありませんが、攻撃者がAIを利用することは避けられません。データポイズニング(侵入検知システムに特定のパターンを「学習」させ、そのパターンが後に使われても悪意あるものと認識されないようにすること)のような高度な手口もありますが、まだ一般的ではありません。現実的には、質の高い攻撃を設計・実行するために必要な専門知識の水準が大幅に下がったと考えられます。そのため、攻撃の頻度と高度さは増す可能性が高いでしょう。

新しいツールの導入は楽しみな一方、ときに大きな負担にもなります。AIをSDLCに取り入れるプロセスをシンプルにするため、着実に進めるためのベストプラクティスを8つまとめたチートシートを作成しました。

ソフトウェア開発ライフサイクルでAIを活用するための8つのベストプラクティスをまとめたSnykのチートシート。監視、ポリシー、ツール、導入、データなどを解説しています。

詳しくはチートシートをダウンロードしてください。また、DeepCode AIがSDLCをどのように強化できるか、Snykのセキュリティエキスパートに相談するには、無料トライアルを始めるかデモを予約してください。

SnykでAIセキュリティを掌握

Snykが、セキュリティチームに包括的な可視性と制御を提供しながら、開発チームが生成AIで作成したコードをどのように保護するかをご紹介します。