Anthropic、AI開発/実装プロセスを短縮する取り組みを加速、現在の課題と新取り組みへの期待
生成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パイプラインを通じて再度デプロイされる。 このように、一見シンプルに見えるカスタマーサポート向けのチャットアプリであっても、開発/導入プロセスは多岐にわたり、各段階で専門的な知識とツールの使用が求められる。これらの複雑なプロセスが、特に技術リソースの限られた企業にとって大きな障壁となっているのが現状だ。