LLMのライフサイクル（アイデア化・探索フェーズ）

# はじめに
ビジネスアイデアを生成AIを活用したサービスとして実現するプロセスの中で、"思ったような回答が得られない"、"回答にムラがあるがどのように評価してよいかわからない"、"どのように運用すればよいかわからない"などの課題があると思います。そこでMicrosoftの紹介するLLMのライフサイクルに沿って、素早くビジネスアイデアをサービスとして開発し、安全に運用するために必要なノウハウをお伝えします。
以下のようにフェーズごとに分割して投稿していきますので、ぜひチェックしてみてください。

| No | フェーズ | 投稿予定日 |
|:-:|:-:|:-:|
| 1 | アイデア化・探索フェーズ | 今回の記事 |
| 2 | 構築・拡張フェーズ | 3/19（火）|
| 3 | 運用フェーズ | 3/20（水）|

# LLMのライフサイクル
[Microsoft Ignite](https://ignite.microsoft.com/en-US/sessions/16ee2bd5-7cb8-4419-95f6-3cab36dfac93?source=sessions)ではLLMのライフサイクルを以下の3つのステージに分類して紹介しています。各ステージで得られたフィードバックは前のフェーズに提供され今後のプロジェクトで改善に利用することができます。本記事ではMicrosoftがフレームワークとして整理した内容に沿って検証した結果を共有します。

1. アイデア化・探索（Identing/exploring）
1.1 データソースの接続
1.2 AIチャットボットのテスト
1.3 LLMモデルの選択
2. 構築・拡張（Building/augmenting）
2.1 プロンプトフローの構築
2.2 プロンプトフローの評価
2.3 プロンプトフローの修正
3. 運用（Operationalizing）
3.1 プロンプトフローのデプロイ
3.2 監視

![Overview2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322105/e247697f-a5e3-1a03-b5cc-845aee445f34.png)

## デモシナリオ
以下のデモシナリオでユーザーインターフェースとともにLLMのライフサイクルを確認していきます。

> キャンピング用品を扱うリテール企業向けのCopilotを構築します。Copilotは”製品に関する質問”と”顧客に関する質問”の両方に回答するカスタマー担当者向けのAIチャットボットです。以下に今回紹介するLLMライフサイクルの各ステップの主要なコンポーネントの概念図をまとめました。必要なサンプルデータや手順については[Microsoftのドキュメント](https://learn.microsoft.com/en-us/azure/ai-studio/tutorials/deploy-copilot-ai-studio)でも紹介されていますので合わせてご参照ください。
> 1. アイデア化・探索
ビジネス企画担当者が生成AIチャットボットに関するビジネスアイデアを様々なモデルや自身のデータを基に探索・検証し、素早く実現可能性を確かめるフェーズです。
> 1. 構築・拡張
前のフェーズで固まったビジネスアイデアに対し、アプリ開発者がバックエンドとなるプロンプトフローを構築するフェーズです。フローによって生成された回答を評価・修正を繰り返すことにより性能の改善を目標値まで繰り返します。
> 1. 運用
前のフェーズで構築したプロンプトフローをデプロイ・監視設定を行い、アプリ管理者によって安全に運用を行うフェーズです。
![Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322105/bfa63014-d28d-bfcd-ad03-f9117dd0e042.png)


# アイデア化・探索フェーズ
本フェーズではビジネスアイデアをプロトタイピングし提供価値を確認します。Microsoftは以下画面の検証用の[プレイグラウンド](http://ai.azure.com/)（利用にはAzureサブスクリプションおよびAzure OpenAIの利用申請が必要）を提供、チャットベースのアプリケーションインターフェースが提供されており、様々なユースケースに対応したサンプルデータ・プロンプトを活用することで想定するユースケースにおいてどのようなメリットがありそうか、課題が何かなど実際に素早く検証をすることができるような仕組みになっています。自身でチャットボットの開発やデータを活用した生成AIによる回答生成の仕組みを構築する必要なく、素早く最小限のコストでプロトタイプを構築することができます。

以下の画面は左から[1.1 データソースの接続](#11-データソースの接続)、[1.2 AIチャットボットのテスト](#12-aiチャットボットのテスト)、[1.3 LLMモデルの選択](#13-llmモデルの選択)の3ブロックに分かれており、目的に合わせて自由に設定しながら検証することができます。ここでは製品情報を与えることで製品に関する質問に適切に答えられることを検証します。以下の画面中央のチャットビューでは”TrailWalker Hiking Shoes”の価格について与えたデータを基に回答できています。

![Playground.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322105/0aebb887-4f99-62d3-c7ff-37f30c592ec4.png)

## 1.1 データソースの接続
ストレージ：Azure Blob Storage、検索：Azure AI Searchを活用した独自のデータを使用した生成AIによる回答生成のテストを検証することができます。(1)構築済みのAzure AI Searchのインデックスを選択するか、(2)以下の画面の通り、ファイルをアップロードし、その場で検索インデックスを構築・接続することができます。[Azure AI SearchのリソースはBasic(約14,600円/1か月・東日本リージョン)](https://azure.microsoft.com/en-us/pricing/details/search/)以上のものが必要です。ただしAzureにデータをアップロードすることが前提となるため難しい場合は、別の方法を考える、サンプルデータのみでテストを行うなどの検討が必要です。

![Addyourdata.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322105/d2137613-74fb-643c-021a-898cd652204a.png)

## 1.2 AIチャットボットのテスト
AIチャットボットのUIが提供されています。使用するデータは1.1 データソースの接続、使用するLLMモデルは1.3 LLMモデルの選択にてチューニングすることができ、検証結果を素早く確認することができます。また検証に使用した設定をそのままテンプレートとして活用し、プロンプトフローの構築を始めることができる点が効果的です。

## 1.3 LLMモデルの選択
以下の画面のように2024年3月時点で約1600のモデル（うち1500がHugging Face上の公開モデル）がデプロイ可能になっており、ここからビジネスアイデアに合ったモデルを選択しプレイグラウンドで検証することになります。

LLMモデルの展開先のインフラストラクチャについてはAzure側で管理運用を行う(1)マネージドモデルを使用するか、ユーザー自身でIaaS環境の管理運用を行う(2)GPU搭載のホスト上にデプロイするの2種類あります。(1)は既にAzure側でLLMモデルがデプロイされている環境を利用できるのですぐに利用を開始できます。(2)の方法はユーザーが個別にリソース構築・デプロイを行う必要があるので時間がかかる他、コストや可用性などの観点で検討する視点が多くなるため、基本的には(1)を検討したいです。トークン数が多数の場合はマネージドモデルの方が高価になる場合がありそうです（参考：[Llama-2-7-bモデルのコスト比較（2024年3月時点）](#参考llama-2-7-bモデルのコスト比較2024年3月時点)）。

![Modelcatalog.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322105/5126163f-55f6-48ba-102b-ee0ff4c064a9.png)

### 参考：Llama-2-7-bモデルのコスト比較（2024年3月時点）
単純計算ですがインプット・アウトプット共に約12.8Mトークン/1時間を超えるリクエストが発生する場合、ホストにデプロイした方がコスト効率がよいことになります。

|  | ホスト利用料 | Input (Per 1,000 tokens) | Output (Per 1,000 tokens) |
|:-:|:-:|:-:|:-:|
| Llama-2-7-b (1)マネージドモデル | $3.09/hour | $0.00067 | $0.00052 |
| Llama-2-7-b (2)GPU搭載ホストにデプロイ | $6.12/hour * 3インスタンス（高可用構成） | - | - |

# まとめ
本記事ではLLMのライフサイクルにおけるアイデア化・探索フェーズについて活用できるAzureのソリューションを紹介しました。本フェーズで私の感じたポイントは以下です。

- 開発者以外によるプロトタイピング
    - アイデア化のフェーズでは開発者以外もビジネスアイデアの有効性を素早く・容易に確認できることが重要であり、Microsoftは[プレイグラウンド](http://ai.azure.com/)（利用にはAzureサブスクリプションおよびAzure OpenAIの利用申請が必要）を提供することで実現しています。
- マネージドモデルの展開
    - LLMモデルを低コストで容易に展開・利用できる点もプロトタイピングする上では重要なポイントです。本フェーズではトークン数がかなり多くなることは考えにくいため、できるだけマネージドモデルを使用して安価に検証できることが大切だと思います。