生成AIアプリケーション開発の現状

企業における生成AIアプリケーションの開発/導入には、多くのステップが必要で、費用や時間がかかりすぎることが大きな課題として浮上している。たとえば、カスタマーサポート向けのチャットボット(生成AIアプリケーション)を開発/導入する場合でも、複雑なプロセスが求められる。

この生成AIアプリの開発/導入プロセスは以下のように進行する。まず、モデル選定とトレーニングから始まる。これは、アプリの基礎となる言語モデルを選び、企業の特定のニーズに合わせて調整する過程だ。ここでは、Hugging FaceというAIプラットフォームからメタのオープンソースモデルであるLlamaベースのモデルを選択し、過去のカスタマーサポートログやFAQ(質問・回答)をデータセットとして収集。その後、PyTorchという機械学習フレームワークを使用して、特定のサポートシナリオに合わせてモデルを微調整(ファインチューニング)していく。

次に、モデル最適化の段階に入る。これは、選択したAIモデルをより効率的に動作させるための調整プロセスだ。ONNXという形式を使用してモデルを圧縮(量子化)し、NVIDIA TensorRTを使用してGPU上での処理を高速化する。これにより、リアルタイムでの応答が必要なサポートシステムでも、遅延を最小限に抑えることが可能となる。

インフラ準備では、AWSというクラウドサービスを選定し、高性能なGPUを搭載したサーバー(EC2インスタンス)を立ち上げ、モデルを保存するためのオンラインストレージ(S3バケット)を設定する。これは、AIモデルを実際に運用するための環境を整える重要なステップだ。

コンテナ化の段階では、モデルやその周辺システムをDockerという技術でパッケージ化する。コンテナ化とは、アプリケーションとその実行に必要なすべての要素(ライブラリ、設定ファイルなど)を1つの独立した単位(コンテナ)にまとめるプロセスだ。これは、ソフトウェアを箱に詰めて輸送するようなものだと考えるとわかりやすい。

Dockerは、このコンテナ化を実現する代表的な技術。Dockerを使用することで、開発者はアプリケーションとその環境を1つのパッケージ(Dockerイメージ)として作成できる。これにより、異なる環境(開発用のパソコン、テスト用のサーバー、本番環境など)でも一貫して動作させることが可能になる。つまり、「自分のパソコンでは動いたのに、本番環境では動かない」といった問題を大幅に減らすことができるのだ。

作成したパッケージ(Dockerイメージ)は、Amazon ECR(Elastic Container Registry)というサービスに保存する。ECRは、Dockerイメージを安全に保管し、必要なときにすぐに取り出せるようにするクラウド上の倉庫のようなものだ。これにより、開発チームは作成したAIアプリケーションをいつでもデプロイ(展開)できる状態を維持できる。

たとえば、AIモデルの新しいバージョンができたとき、そのモデルを含む新しいDockerイメージを作成してECRに保存しておけば、本番環境への更新も簡単に行える。また、問題が発生した場合も、以前のバージョンのイメージをECRから取り出して、素早く元の状態に戻すことができる。

CI/CD(Continuous integration/continuous delivery)パイプラインの設定は、開発から運用までの自動化を実現するプロセスだ。GitHub Actionsというツールを使用して、コードの変更があるたびに自動的にDockerイメージをビルドし、ECRにアップロード。さらに、AWSの環境に自動的にデプロイされるよう設定する。これにより、開発チームは迅速かつ安全にシステムを更新できるようになる。

モニタリングとアラート設定では、Prometheusというツールを使用して、AIシステムの性能や状態を常時監視する。Grafanaと連携して、問題が発生した場合(例:高いエラーレート)に即座に通知が届くよう設定する。これにより、システムの安定運用と迅速な問題対応が可能となる。

スケーリングでは、Kubernetesという技術を用いて、利用状況に応じて自動的にシステムのリソースを増減させる。また、AWSのElastic Load Balancer(ELB)を使用して、アクセスを複数のサーバーに分散させる。これにより、突然のアクセス増加にも柔軟に対応できる。

最後に、フィードバックと再トレーニングの段階では、実際のユーザーからのフィードバックを収集し、AIの回答品質を評価。DVCというツールを使用して新しいデータでモデルを再学習させ、精度の向上を図る。改善されたモデルは、先述のCI/CDパイプラインを通じて再度デプロイされる。

このように、一見シンプルに見えるカスタマーサポート向けのチャットアプリであっても、開発/導入プロセスは多岐にわたり、各段階で専門的な知識とツールの使用が求められる。これらの複雑なプロセスが、特に技術リソースの限られた企業にとって大きな障壁となっているのが現状だ。

課題の詳細、多すぎるツール、ファインチューニングにおけるコスト

生成AIアプリケーション開発に関する課題の詳細を見ていきたい。DataikuとCognizantが2024年4月に実施した調査によると、生成AIの実用化において、データ品質/使用可能性が大きな課題となっていることが判明。実に回答者の45%がこの点を指摘している。

データ品質/使用可能性問題に関する最大の懸念は「クリーンデータの欠如」(48%)、これに「データ信頼性の欠如」(27%)、「ツールやスキルの不足」(21%)が続く。多くの企業ではデータ量自体は豊富にあるものの、そのほとんどが生成AIや機械学習を考慮せずに構築されたものであるため、AIのトレーニングには「荒すぎる」という問題が浮き彫りとなっているのだ。

一方で、AIライフサイクルにおけるツールが多すぎる問題も明らかになった。60%の回答者がAIライフサイクルの各段階で5つ以上のツールやソフトウェアを使用していると答え、32%がツールが多すぎると回答。理想的にはツールを5つ以下に抑えたいという回答が71%に上った。上記のカスタマーサポート向けのチャットアプリの事例では、実に15個のツールが使用されている。

ファインチューニングのコストも大きな課題だ。特に、パラメータ数が多いモデルのファインチューニングは非常に高コストだ。SmartCatのAIエンジニア、ミロス・ジビック氏の分析によると、700億パラメータを持つLlama 3モデルのファインチューニングには約1.5テラバイトのGPU VRAMが必要となる。これは20台のNVIDIA A100(各80GB VRAM)に相当する。このような構成のGPUコストは約40万ドル(約5,800万円)にも上る。

クラウドプロバイダを利用する場合でも、コストは決して安くない。AWSの8台のA100 GPUを1時間使用するコストは約40ドル(約5,800円)。700億パラメータモデルを20台のGPUで5日間ファインチューニングすると、約1万2,000ドル(約175万円)のコストがかかる計算になる。

これらのコスト課題により、実際の現場では100億パラメータ未満の比較的小規模なLLMを主に使用するケースが多いとジビック氏は述べている。これらのモデルは、16GBから24GBのVRAMで訓練可能であり、より手頃な価格で実装できる。たとえば、Mistral 7B(70億パラメータ)モデルをセルビア語用にファインチューニングする場合、AWSのNVIDIA A10インスタンスを使用して10時間未満、20ドル(約3,000円)以下のコストで実現可能だという。

このように、生成AIアプリケーション開発には多くの課題が存在する。データ品質の問題、ツールの多さ、高額なファインチューニングコストなど、企業が克服すべき障壁は依然として高い。しかし、これらの課題に対する解決策も登場しつつある。

AI導入の効率性を高めるアプローチ

生成AIアプリケーション開発における課題を克服し、導入までの時間を短縮する方法として、Hugging Faceの活用やAnthropicとCaylentの提携など、新たな取り組みが注目を集めている。

まず、Hugging Faceの活用による効率化について見ていきたい。Hugging Faceを活用することで、LLMopsのプロセスを大幅に効率化することが可能だ。たとえば、モデル選定とトレーニングの段階では、Hugging Face Hubから事前学習済みのモデル(GPTやLlamaなど)を簡単に選定できる。モデルをゼロから開発する必要がなくなり、時間やコストの大幅短縮が可能だ。最近では、ゼロスクラッチのLLM開発を諦め、これらのサードパーティモデルを活用し、カスタマイズやサービスの強化に乗り出すAI企業も増えている。

ファインチューニングの効率化においても、Hugging FaceのTrainerクラスを使用することで、複雑なトレーニングループを実装する必要がなくなり、短時間でモデルのトレーニングが可能となる。また、Hugging Face Hubには多くのデータセットが公開されているため、トレーニングデータの準備にかかる労力も軽減できる。

モデル最適化の面では、Hugging FaceのTransformersライブラリが、モデルの量子化や最適なパフォーマンスを発揮するための設定を容易に調整できるツールを提供している。さらに、Optimumライブラリを利用することで、モデルのハードウェア最適化(Intel OpenVINOやNVIDIA TensorRTの統合など)が容易になり、推論コストを削減することが可能となる。

一方、AnthropicとCaylentの戦略的提携も、AI導入時間の短縮に大きな期待が寄せられている。VentureBeatの報道によると、この提携は業界標準と比較してAI実装期間を半分近くに短縮することを可能にするという。

この提携により、CaylentはLLMOps Strategy Catalystプラットフォームを立ち上げた。このプラットフォームは、新しい言語モデルのテスト、統合、ベンチマークを効率化するもの。これにより、企業はAnthropicの最新モデルを迅速に評価し、既存システムに混乱をきたすことなく統合できるようになる。

実際の成果も報告されており、たとえばBrainBox AIはAIモデルの精度を98%維持しつつ、応答時間を1分から15秒に短縮。また、Venminderは65日分の契約処理の遅れを1週間以内に解消したという。

これらの取り組みは、特に社内でAI機能を構築・維持するリソースが不足している中堅企業にとって有益となる可能性がある。ただし、規制順守や倫理的配慮も重要な課題として認識されており、両社はこれらの点にも注意を払っているという。

Hugging Faceも買収などを通じて、プラットフォームの機能を拡張しており、AI導入にかかるコストや複雑性の問題は少しずつ緩和しつつある状況だ。

文:細谷元(Livit