Skip to content

Commit

Permalink
Merge pull request #80 from maekawataiki/feat/sagemaker
Browse files Browse the repository at this point in the history
SageMaker Endpoint Support
  • Loading branch information
tbrand committed Oct 3, 2023
2 parents 2137817 + 08b56e0 commit 2c7d44e
Show file tree
Hide file tree
Showing 23 changed files with 846 additions and 155 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,12 @@ npm run web:dev
npm run lint
```

## モデル・リージョンの切り替え

デフォルトでは `us-east-1``anthropic.claude-v2` を利用しています。異なる設定を利用したい場合は [BEDROCK](docs/BEDROCK.md) をご確認ください。

また、Amazon Bedrock ではなく Amazon SageMaker にデプロイしたカスタムモデルを使うことも可能です。詳細は [SAGEMAKER](docs/SAGEMAKER.md) をご確認ください。

## Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
Expand Down
20 changes: 20 additions & 0 deletions docs/BEDROCK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Amazon Bedrock を利用する場合

このソリューションではデフォルトでは `us-east-1``anthropic.claude-v2` を利用しています。

CDK Deploy 時のパラメータもしくは `packages/cdk/cdk.json` で Context として指定することでリージョン、モデル、プロンプトを変更することが可能です。

```bash
npm run cdk:deploy -- -c modelRegion=<Region> -c modelName=<Model Name> -c promptTemplate=<Prompt Tempalte File>
```

promptTemplate はプロンプトを構築するためのテンプレートを JSON にしたファイル名を指定します。 (例: `llama2.json`)
プロンプトテンプレートの例は `prompt-templates` フォルダを参照してください。

## デプロイの例

**Claude Instant**

```bash
npm run cdk:deploy -- -c modelRegion=us-east-1 -c modelName=anthropic.claude-instant-v1 -c promptTemplate=claude.json
```
48 changes: 48 additions & 0 deletions docs/SAGEMAKER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Amazon SageMaker のカスタムモデルを利用する場合

Amazon SageMaker エンドポイントにデプロイされた大規模言語モデルを利用することが可能です。

Text Generation Inference (TGI) の Huggingface Container を使用した SageMaker Endpoint に対応しています。

モデルはユーザーとアシスタントが交互に発言するチャット形式のプロンプトをサポートしているのが理想的です。

## SageMaker エンドポイントのデプロイ

**利用可能なモデル**

- [SageMaker JumpStart Rinna 3.6B](https://aws.amazon.com/jp/blogs/news/generative-ai-rinna-japanese-llm-on-amazon-sagemaker-jumpstart/)
- [SageMaker JumpStart Bilingual Rinna 4B](https://aws.amazon.com/jp/blogs/news/generative-ai-rinna-japanese-llm-on-amazon-sagemaker-jumpstart/)
- [elyza/ELYZA-japanese-Llama-2-7b-instruct](https://github.com/aws-samples/aws-ml-jp/blob/f57da0343d696d740bb980dc16ebf28b1221f90e/tasks/generative-ai/text-to-text/fine-tuning/instruction-tuning/Transformers/Elyza_Inference_TGI_ja.ipynb)

これらのモデル以外でも Text Generation Inference にデプロイしたモデルは利用可能です。

## SageMaker エンドポイントをターゲットにソリューションをデプロイする

事前にデプロイ済みの SageMaker エンドポイントをターゲットのソリューションをデプロイする際は、以下のようにコマンドライン引数で指定することができます。

```bash
npm run cdk:deploy -- -c modelType=sagemaker -c modelRegion=<SageMaker Endpoint Region> -c modelName=<SageMaker Endpoint Name> -c promptTemplate=<Prompt Template File>
```

promptTemplate はプロンプトを構築するためのテンプレートを JSON にしたファイル名を指定します。 (例: `llama2.json`)
プロンプトテンプレートの例は `prompt-templates` フォルダを参照してください。

## デプロイの例

**Rinna 3.6B**

```bash
npm run cdk:deploy -- -c modelType=sagemaker -c modelRegion=us-west-2 -c modelName=jumpstart-dft-hf-llm-rinna-3-6b-instruction-ppo-bf16 -c promptTemplate=rinna.json
```

**Bilingual Rinna 4B**

```bash
npm run cdk:deploy -- -c modelType=sagemaker -c modelRegion=us-west-2 -c modelName=jumpstart-dft-bilingual-rinna-4b-instruction-ppo-bf16 -c promptTemplate=bilingualRinna.json
```

**ELYZA-japanese-Llama-2-7b-instruct**

```bash
npm run cdk:deploy -- -c modelType=sagemaker -c modelRegion=us-west-2 -c modelName=elyza-7b-inference -c promptTemplate=llama2.json
```
Loading

0 comments on commit 2c7d44e

Please sign in to comment.