はじめに
生成AIが注目を集める中、AWSが提供するAmazon Bedrockは、生成AI機能を手軽に利用できるサービスとして注目されています。本記事では、「Bedrockの基本的な概念から実装方法まで、初心者にもわかりやすく解説していきます」として勉強会で利用した資料をベースにして、皆に 「いつか触らなければな」「さわったことないです」「腰が重い」という方を対象にしています。
えっ!?先輩、そんだけで実装できるんすか?
はい。 先に答えを書いておくと「Lambdaから Bedrockを呼び出して、質問要求に対しての答えを得るのにたった4行のプログラムコードを書くだけで利用ができるようになります。」
そのため、 まず触ってみる。 そこで 満足できない場合やもっと知りたい場合はフカぼって実装を肉付けしていくだけで自分ではできないと思ってた生成系AIのシステムプログラムを書き始めることができるんだよ、後輩!
って言いたくなるくらい。簡単です。
(難しいポイントは: そこから制度や目的に対するゴール的な答えを得るのに工夫を世界中の皆が積み重ねていくところにあります。ただし、エンジニアとして、この後一歩をこなしていくのも楽しみではありますね、同僚!)
実際にAmazon Bedrockは、エンジンとして優れています。何がすぐれているかというと記事の中で説明は出てきますが エンジンとモデルというもののうち エンジンに分類され、複数のモデルを一度に 選択しながらさまざまな モデルを利用することで生成系AIならではの機能を利用することができます。これは個別のモデルが得意なことを紐付けて一つのソリューションややりたいことが解決できるための接着剤的な中心立ち位置にいるからです。
なんでか?どうやって学ぶか:(先に答えを書いてしまいます)
生成AIアプリ開発入門の本を、発売日に購入して読んで 「なるほどー。これを、メンバーやイベント参加する同士たちが気軽に始められるきっかけ僕にも作れるかもしれない」と思いました。特に、この書籍では 入門、生成AIがどういうことを中でしてるか、実際使ってみるとRAGとぶち当たりそうな壁についてまで買いてあり、そこから各社の応用記事なんかが詰め込まれていて まず、皆が一歩目に立つことができるようになります。
🌾会社の同僚にいる森田さんたちの買いた本の(宣伝ではありません。めちゃくちゃ導入で入門するのに、わかりやすい本なのでまずお勧めします。)
参考: Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド] ~御田 稔 , 熊田 寛 他~
さぁ、はじめよう
- ※ (記事としての文章はちょこちょこ補填していきます)
ここで問題です
それではこれが AIだとどんなものか
という、ことを知りながらAIを使っていこうと思うと。気持ちだいぶ楽になるはずです。
それではいよいよきいてみよう実際に
LLM と 既存のAIの違いを学ぶ
ただし ちょっと、LLMのAIの場合は判断基準が異なります。
特にただ、条件の質問パターンを探し判断して返答するのではなく 要求が何であるかについての検索のポイントや特徴を測って 判断軸を作ります。
そんな時におもいだしたのが 事例で学ぶ特徴量エンジニアリングという本です。この本も横道に外れますが、特徴量のパターンを学ぶのにお勧めです(将来のバリバリ使いこなすあなたへ〜)
人わかってもらえたことがありますか? 「そう、AIは 何か考えてるのではなく。 検索の もしかして検索なことをあたかも 会話の返答のように文章に変換し、言葉の説明を生成してくれてる」ということです。
次に行くよ。 「用語」に溺れないにはどうすればいいのか?
僕らの開発していく未来の大きな二つの分かれ道
ここ! たった4行ではじめるBedrock
## コードサンプル
import json
bedrock_runtime = boto3.client('bedrock-runtime')
def lambda_handler(event, context):
# プロンプトに設定する内容を取得
prompt = event.get('prompt') # 「〜を作成して。 じょうほうはこんなだよ 〜・・・」
#systemprompt = "あなたは優秀な 〜★★〜アシスタントです。以下の制約条件と入力文をもとに、〜を作成してください。\n\n制約条件:\n・〜は日本語で出力してください。\n・〜は箇条書きで出力してください。\n・\n\n入力文:\n" + prompt
# 各種パラメーターの指定
modelId = '★★ AWS ドキュメント参照 modelID ★★'
accept = 'application/json'
contentType = 'application/json'
# リクエストBODYの指定
body = json.dumps({
#"systemPrompt": systemprompt,
"prompt": prompt,
"maxTokens": 100,
"temperature": 0.7,
"topP": 1,
})
# Bedrock APIの呼び出し
response = bedrock_runtime.invoke_model(
modelId=modelId,
accept=accept,
contentType=contentType,
body=body
)
# APIレスポンスからBODYを取り出す
response_body = json.loads(response.get('body').read())
# レスポンスBODYから応答テキストを取り出す
outputText = response_body.get('completions')[0].get('data').get('text')
print(outputText)
さぁ皆で始めてみよう。しつもんはうけつける〜

























































