メインコンテンツにスキップ
Background

エッジで高速化されたLLMチャットボットを構築

Akamai FunctionsとGPU推論を使用してLLMチャットボットを構築し、グローバルに展開する方法をご説明します。

タイムスタンプ付きの要約

タイムスタンプ付きの要約

[00:00–00:58] はじめに:このチュートリアル動画では、Linode GPUインスタンス、Ollama、Spin、Akamai Functionsを使用してAkamai Cloud上でLLMベースのチャットボットアプリケーションを構築する方法をThorsten Hansが解説します。

[00:58–02:22] アーキテクチャの概要:NVIDIA GPUを使用したLinodeインスタンスがOllamaを実行し、分散キーバリューストアを備えたAkamai FunctionsがSpinアプリケーション(AstroフロントエンドとTypeScript API)をホストすることについて、多層的なシステム図を使用して説明します。

[02:22–03:30] Spinとアプリケーションコンポーネント:CNCFのWebAssemblyフレームワークであるSpinと、2つのアプリケーションコンポーネント(AstroフロントエンドとTypeScript API)について説明します。

[03:30–06:21] APIロジックとキャッシングフロー:TypeScript APIがどのようにリクエストを処理し、分散型キーバリューストアにクエリーを実行してキャッシュされた応答を提供し、新しいクエリーに対してプロンプト構築とガードレールを適用し、生成された応答をキャッシュするのかを説明します。

[06:21–09:03] Terraformによるインフラのセットアップ:Terraformの設定(linodeプロバイダー、専用のNVIDIA GPUを使用したインスタンスのプロビジョニング、およびnullプロバイダーのポーリングロジック)について解説します。

[09:03–10:05] ファイアウォールとネットワーク設定:TerraformのLinodeファイアウォール設定を検査し、SSHアクセスのルールとポート11434上のOllama HTTP APIトラフィックのルールを指定します。

[10:05–12:26] Cloud-initとGPUドライバーのインストール:パッケージ更新、GPUドライバーのインストール、システムの再起動、Ollamaサービスの初期化を自動化するlinode.yamlのcloud-initスクリプトを分析します。

[12:26–14:49] Terraformのプロビジョニングの実行:terraform applyを実行してクラウドインフラを構築した後、約5分間のプロビジョニングプロセスの様子を早送りで確認します。

[14:49–16:07] Spinアプリケーションマニフェスト(spin.toml):spin.tomlを確認し、HTTPトリガー、コンポーネントルーティング、環境変数、キーバリューストアへのアクセス、アウトバウンドホスト権限について説明します。

[16:07–17:53] APIの実装とガードレール:index.ts、handler.ts、guardrails.tsのコードを見ながら、リクエストの検証、入力文字数制限(500文字)、プロンプトインジェクション防止のための正規表現パターンマッチングについて説明します。

[17:53–19:30] セッション履歴とキーバリューキャッシング:Cookieベースのセッション追跡と、キーバリューストアにキャッシュされたクエリー応答の確認と取得を行うためのkvService.tsの実装について説明します。

[19:30–20:54] LangChainを介したLLMの呼び出し:llaService.tsについて詳しく解説し、プロンプトアセンブリ(システムプロンプト、セッション履歴、ユーザークエリー)と、LangChain JSおよびOllamaパッケージを使用したLLMの呼び出しについて取り上げます。

[20:54–21:38] パッケージの依存関係:package.jsonを確認し、WebAssemblyアプリケーションの構築に必要なSpin SDKとLangChainの依存関係について説明します。

[21:38–22:27] WebAssemblyへのコンパイル:ターミナルでspin buildを実行し、フロントエンドコンポーネントとAPIコンポーネントの両方を.wasm形式にコンパイルします。

[22:27–23:59] Akamai Functionsへの展開:spin aka loginによる認証を行い、環境変数を使用してspin aka deployを実行し、WebAssemblyアプリケーションをグローバルに公開します。

共有