
2/6からDeepSeek-R1 モデルが AWS で使用可能になりました。
というわけで実際にAmazon BedrockでDeepSeekを触ってみます。
リージョンは東京リージョンで行います。
事前準備
今回はインスタンスタイプにml.g6.2xlargeを使います。初期状態ではこのインスタンスタイプの利用ができないため、事前に利用できるようにサービスクォータから申請を行います。
SageMakerのサービス項目から”ml.g6.2xlarge for endpoint usage”のクォータ値を1に上げるリクエストを作成する。申請が適用されるまで時間がかかるので、事前にやっておくとスムーズに進められます。

モデルのデプロイ
まずはAmazon Bedrockのサービス画面へ移動。

左メニューの「基盤モデル」→「Model catalog」を選択。「Providers」何の「DeepSeek」にチェックをいれると利用できるDeepSeekのモデルが表示されます。
DeepSeek-R1は現在指定できるインスタンスがml.p5e.48xlargeのみとなりコスト的に利用ができないので今回はDeepSeek-R1-Distill-Qwen-7Bを利用します。
DeepSeek-R1-Distill-〇〇は、R1をベースにカスタマイズされたモデルになります。

「DeepSeek-R1-Distill-Qwen-7B」を押して、「Deploy」を押す。

デプロイの確認画面。
ここでモデルのインスタンスの数とインスタンスタイプを指定できます。
エンドポイントの名前はそのままで、どう作成されるかをみていきます。

今回はml.g6.2xlargeを使ってみます。

Advanced settingsの項目は、VPCと、IAMロールの新規作成か既存のを利用するかを選べます。
今回はNo VPCでIAMを新規作成します。
その他、データ暗号化のカスタマイズとタグ指定ができますが今回はそのままにします。

いざデプロイ!
17:13に開始して、17:19にはEndpointがIn Serviceになりました。

これで使えるようになりました!

使ってみる
モデルを選択して「Open in plaground」からすぐに試せます。

Modeを押して「Single Prompt」を選択。

左にある設定アイコンを押すとデプロイしたモデルが選択されています。

ここでランダム性・多様性といったパラメータの設定が行えます。

質問をしてみます。
日本語の入力だと出力がうまくえられないため、英語で入力してみました。
オイラーの公式について教えて:Could you please explain Euler's formula?

プロンプト:
Could you please explain Euler's formula?
以下回答:
```
<think>
Okay, so I need to figure out what Euler's formula is. I remember hearing about it in my math class, but I'm not exactly sure what it entails. Let me try to recall. I think it's something related to complex numbers or geometry. Maybe it's Euler's formula for complex numbers? Or perhaps it's a formula in graph theory? Hmm, I'm a bit confused.
Wait, I think it's the one involving complex exponentials. Something like e^(iθ) equals cosθ plus i sinθ? Yeah, that rings a bell. So, Euler's formula relates complex exponentials to trigonometric functions. It's a fundamental equation in complex analysis. But how did Euler come up with that? I mean, it must have some derivation or proof behind it.
Let me try to remember how to derive it. I think it uses the Taylor series expansions for e^x, cosθ, and sinθ. So, if I expand e^(iθ), that should be the same as the sum from n=0 to infinity of (iθ)^n / n!. Similarly, cosθ is the sum of (-1)^n θ^(2n) / (2n)! and sinθ is the sum of
```
途中で途切れてしまったので、回答が長くなる場合は複数に分けて問い合わせる必要がありそうです。
片付け
デプロイメントを削除。
デプロイメントが削除されたら、エンドポイントも削除されます。

犬のエンプティステート。こういう遊び心すきです。

エンドポイント設定も削除しておきます。
エンドポイント設定を選択して、「アクション」から削除。

モデルも削除。

以上で作成されたSageMaker AIのリソースは一通り削除されました。
作成されたIAMロール・ポリシーはお好みで削除してください。
IAMロールをみてみる
参考に、作成されたIAMロール・ポリシーの中身を見てみます。
IAMロールの信頼されたエンティティの中身。
Amazon SageMakerのサービスに対してAssumeRoleを許可しています。
```
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sagemaker.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "XXXXX"
}
}
}
]
}
```
IAMポリシーの中身。
作成されるAMIでは、以下の権限が許可されています。
S3への読み取り権限
CloudWatch Logsへの書き込み権限
CloudWatchへのメトリクスデータ送信権限
ECR認証トークン取得権限
ECRイメージ取得権限
```
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::jumpstart-cache-prod-ap-northeast-1",
"arn:aws:s3:::jumpstart-cache-prod-ap-northeast-1/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "XXXXX"
}
}
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:ap-northeast-1:XXXXX:log-group:/aws/sagemaker/Endpoints/endpoint-quick-start-wi5wz",
"arn:aws:logs:ap-northeast-1:XXXXX:log-group:/aws/sagemaker/Endpoints/endpoint-quick-start-wi5wz:*"
]
},
{
"Effect": "Allow",
"Action": "cloudwatch:PutMetricData",
"Resource": "*",
"Condition": {
"StringEquals": {
"cloudwatch:Namespace": [
"AWS/SageMaker",
"/aws/sagemaker/Endpoints"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "arn:aws:ecr:ap-northeast-1:*:repository/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": [
"XXXXX",
"XXXXX"
]
}
}
}
]
}
```
かかった金額
今回かかった金額はSageMakerのインスタンスの料金のみになります。ml.g6.2xlargeの利用が1.422時間あって$2.52なので、コーヒー一杯ほどの料金で遊べます。
以上、DeepSeekを使ってみる記録でした。Amazon BedrockでDeepSeekをはじめ、様々なモデルを手軽に試せるので複数のLLMをブラウザ上で試せるのは良いなと感じました。
Amazon Bedrockには色々な機能がありますが、最初の一歩として触るきっかけになれば幸いです。それでは!