BLOG | OFFICE OF THE CTO

F5のエンジニアによる、AIを活用したソフトウェアの最適化方法

Lori MacVittie サムネール
Lori MacVittie
Published February 22, 2022


現在、マーケティングから採用・オペレーション・セキュリティに至るまで、あらゆる分野でのAIの活用について騒がれています。当社の年次調査によると、ほとんどの組織がビジネス、運用、セキュリティの各分野でAIに熱い視線を送っていることがわかります。

AI計画

驚くことではありません。調査を重ねる中で、さまざまなビジネスやIT機能をサポートするために、AIが健全に採用されていることが次々と示されています。

あまり語られないのは、AIをどのように開発に取り込んでいるかということです。

ビジネスやセキュリティにおけるAIの価値の大前提は、実用的なインサイトを生み出すパターンや関係性を認識する能力にあります。多くの人は、その能力の背後にある「エンジン」を考慮しないため、価値あるインサイトを魔法のように明らかにするためにどのようなAI技術が使用されているのか、といった詳細を掘り下げることはありません。

機械学習は、データ解析とモデリングに焦点を当てたAIの特有の分野です。十分な時間とデータがあれば、異常な動作を示すパターンをリアルタイムで特定できるため、その利用はセキュリティに応用できます。同様に、製品やサービスの販売機会を示すビジネス データにおける不明瞭な関係を見つけ出すことができます。

一方で、機械学習はモデリングにも優れています。つまり、何百もの「もしも」のシナリオを実行して、複数の変数の複雑な関係をよりよく理解することができるのです。開発(エンジニアリング)では、データのサイズ、割り当てられたメモリ、I/O速度、ネットワーク帯域幅、仮想マシンのパラメータなどが変数になり得ます。機械学習は非常に柔軟で、変数を特定すれば、その変数のさまざまな組み合わせを機械学習でモデル化し、「最適な」セットを見つけることができます。

例えば、F5のDistinguished EngineerのLaurent QuerelとF5のシニア アーキテクトのSebastien Soudanはチームを組み、「PubSubからBigQueryへデータを取得する効率的な方法を構築する」モデルを設計したことを説明する記事を先日発表しました

また、今日のソフトウェアの最適化において、なぜ機械学習の利用がより良い選択であるかも説明しています。わかりやすい説明であるため、以下に引用いたします。

「今日、ソフトウェアの最適化は反復的でほとんどが手作業のプロセスです。このプロセスでは、ソフトウェア コードのパフォーマンスのボトルネックを特定するためにプロファイラを使用します。プロファイラはソフトウェアのパフォーマンスを測定し、開発者がレビューしてコードをさらに最適化できるようなレポートを生成します。この手作業によるアプローチの短所は、最適化が開発者の経験に左右されるため、非常に主観的であることです。また、時間がかかり、網羅的でなく、エラーが発生しやすく、人の先入観に影響されやすいという問題があります。クラウド ネイティブのアプリケーションは分散する性質を持っているため、手作業による最適化プロセスはさらに複雑なものとなります。

あまり活用されていない、よりグローバルなアプローチとして、パフォーマンス実験とブラックボックス最適化アルゴリズムを利用する別のタイプのパフォーマンス エンジニアリングがあります。もっと具体的に言うと、多くのパラメータを持つ複雑なシステムの運用コストを最適化することを目的とします。」

AI、特に機械学習の開発での使用を推進している要因は、IT業務全体での採用を推進している要因とほぼ同じで、手作業によるプロセスは時間がかかり、エラーが発生しやすく、人の先入観の影響を受けやすいことです。

ITのモダナイゼーションや、完全なデジタル ビジネスへの着実な歩みを語るとき、そこには開発/エンジニアリングが含まれています。

適切なモデルを設計するプロセスや、その経験から学んだことを知るためだけでも、「Google Vertex AI Vizierを使ったアプリケーションの最適化」をぜひお読みになることをお勧めします。