AWS内に完結して動作するLLMチャットを構築します。
続きはYouTubeで公開しています。
Hugging Faceで公開されているLLMモデルをSageMakerにデプロイします。チャット画面はOSSで公開されているHuggingChatを使用します。
使用するLLMモデルはelyza/ELYZA-japanese-Llama-2-7b-fast-instructです。Llama2をベースに日本語能力を拡張するための追加学習がさてているとのことです。
-
AWS
- EC2 (Amazon Linux 2023, t2.small)
- SageMaker (ml.g4dn.12xlarge)
- CDK
-
ソフトウェア
MongoDBはチャット履歴の保存に使用されるようです。DocumentDBの採用を検討しましたが、Partialインデックス機能がサポートされていないとのことで利用できませんでした。
また、HuggingChatの実装は、AWSの認証情報(アクセスキー、シークレットキー)をenvファイルに記述する方式となっていましたが、AWS SDKを使用するように一部修正しています。(コミット)
AWS CloudShellで実行します。
- ソースを取得
mkdir chatui
cd chatui
git clone https://github.com/moritalous/chat-ui.git
- デプロイスクリプトを実行
スクリプト内でSageMakerエンドポイントの作成と、CDKでVPCとEC2の環境を構築します。EC2内の環境はユーザーデータにてセットアップが実施されます。
cd chat-ui/aws
sh ./deploy.sh
デプロイスクリプト(SageMakerの作成、CDKの実行)は約10分程度で完了します。CDKの完了後にユーザーデータが実行されます。ユーザーデータの完了までは5分ほどかかります。
環境が構築できたらhttp:https://[EC2パブリックドメイン]:80
へアクセスすることでチャットを開始できます。
HTTPS化や認証機能は含まれていませんのでご注意ください。
- 削除スクリプトを実行
cd chat-ui/aws
sh ./destroy.sh