- GrabのLLM-Kitは、プロダクションレベルのGenerative AIアプリケーションのセットアップを加速できるよう設計されたフレームワーク
- 機密データを扱うAIアプリケーション開発ではセキュリティとデータ安全性が非常に重要だが、スケーラビリティ、統合、モニタリング、標準化などの課題をLLM-Kitが解決
- これにより、長期的に効率的かつ効果的なLLMアプリケーション開発が可能になり、Grabで数百のGenAIアプリケーションのオンボーディングを支援
LLM-Kitの特徴
- 事前構成済みの構造(APIサーバー、設定管理、サンプルLLMエージェント、テストなど)を提供
- Poetry、Gunicorn、FastAPI、LangChain、LangSmith、Hashicorp Vault、Amazon EKS、Gitlab CIなどと統合
- Datadog、LangSmith連携によるリアルタイムモニタリングが可能なオブザーバビリティ機能
- PythonのconfigparserとVaultを活用した設定およびシークレット管理
- OpenID Connect(OIDC)認証ヘルパー
- SwaggerとRedocを使ったAPIドキュメント化
- RedisおよびVector DBとの統合
- ステージングおよび本番環境向けデプロイパイプライン
- LangSmithの強力な評価フレームワークとの連携
- クックブック: Grabでよく使われるサンプルを集め、開発者向けリソースを提供
- 永続メモリエージェント、Slackbot LLMエージェント、画像アナライザー、ユーザーインターフェースを備えたフルスタックチャットボットなど、さまざまな事例を含む
LLM-Kitの価値
- 事前構成済みで統合された技術スタックにより、LLMアプリケーション開発速度を向上
- LangSmith、Datadog連携により、リアルタイムのモニタリングと課題の検知・解決が可能
- OIDC認証とVaultによるシークレット管理でセキュリティを向上
- Vector DBによりデータストレージ/検索の効率を向上
- ベストプラクティスと標準化を促進する舗装道路型フレームワークを提供
- チームが最初の機能開発に入る前に 約1.5週間の開発時間を節約可能
アーキテクチャ設計と技術実装
- モジュール型アーキテクチャにより、スケーラビリティ、柔軟性、使いやすさを提供
自動化
- エンジニアがアプリ名などの関連詳細を提出すると、GitLabプロジェクトの作成がトリガーされる
- LLMアプリ向けに特化して設計されたコードスキャフォールドが生成される
- 同一リポジトリ内にCI/CD用のGitLab CIファイルが生成される
- ECR、EKSなどのステージング用インフラが生成される
- インフラプロビジョニング用Terraformフォルダーが生成され、本番インフラのデプロイへとつながる
- パイプラインの最後にGPTトークンが安全なVaultパスにプッシュされ、エンジニアへ完了通知が送信される
スキャフォールドコード構造
- Agents: LangChainエージェントフレームワークをベースにエージェントを初期化するコードを含む
- Auth: Grab内の一部API実行のための認証および認可モジュール
- Core: 設定の抽出(GPTトークンなど)とLLMアプリ実行のためのシークレット復号を含む
- Models: Grab内の中核LLM API向け構造を定義
- Routes: LLMアプリ向けREST APIエンドポイントを定義(ヘルスチェック、認証、認可、シンプルなエージェントなどを含む)
- Storage: GrabのマネージドVector DBであるPGVectorとの接続性およびDBスキーマを含む
- Tools: LLMエージェント用ツールとして使用される機能
- Tracing: 本番アプリのさまざまなメトリクス監視のため、トレーシングおよびモニタリングツールと統合
- Utils: ユーティリティ機能向けの基本フォルダー
インフラプロビジョニングとデプロイ
- 同一コードベース内で、インフラプロビジョニング、デプロイ、ビルドプロセスに必要なコードを自動でスキャフォールドする包括的なパイプラインを統合
- Terraformを使って必要なインフラをシームレスにプロビジョニング
- デプロイパイプラインは
.gitlab-ci.yml ファイルに定義され、自動化されたデプロイを保証
- ビルドプロセスは
Dockerfile に指定され、一貫したビルドを可能にする
- 自動スキャフォールディングにより、開発者は基盤インフラやデプロイの複雑さではなく、ビジネスロジックの記述に集中できる
RAGスキャフォールディング
- LLM-Kitを使うことで、Vector DB(PGVector)の設定およびサービス許可リスト追加のプロセスが簡素化される
- フォーム送信後、認証情報とDBホストパスにアクセス可能
- シークレットがVaultパスに自動追加される
- エンジニアはスキャフォールドされたLLM-Kitアプリの設定ファイルにDBホストパスのみ含めればよい
結論
- LLM-Kitは、GrabのAIおよびMLの革新と成長を支える重要なツール
- チームが直面する課題を解決し、包括的でスケーラブルかつ柔軟なLLMアプリ開発フレームワークを提供することで、Grabの次世代AIアプリ開発を先導している
成長と今後の計画
- Webサーバーの同時実行性とスケーラビリティを大幅に向上させる一方で、安定的で使いやすいSDKを提供する計画
- 評価およびガードレールフレームワークを含む、再利用可能で組み合わせ可能なLLM SDKを提供予定
- バージョン更新および開発ツール向けCLIを開発
- ポーリングベースのエージェント提供機能を開発
- こうした進展を通じて、エンジニアによりスムーズで効率的な開発体験を提供したい考え
まだコメントはありません。