乱立するAIモデルをすべて同じ方式で利用できる非常に野心的なサービスを解説!『Amazon Bedrock超入門』より 第1回 ~はじめに~
PythonやAWSの使い方がわかる人を対象に、Bedrockの使い方からLangChain、セマンティック検索まで解説し、生成AI×AWSアプリ開発をいますぐはじめられる入門書『Amazon Bedrock超入門』から書籍内容を抜粋してご紹介。第1回は「はじめに」著者からのメッセージです。
はじめに
クラウドの巨人Amazon が、遂にAI へと動き出した!
2023 年から2024 年にかけてのAI の世界は、実に激動の毎日でした。そんな中、Amazon は2023 年秋、新たなAI サービス「Amazon Bedrock」をリリースしました。
このBedrock は、非常に野心的なAI サービスです。Bedrock では、Amazon が密かに開発していた完全オリジナルAI モデル「Titan」を正式に公開しただけでなく、ChatGPT やBard などに匹敵する高品質なAI チャットを開発する企業と提携し、Jurassic-2、Claude、Cohere/Command といった一流のAI モデルをもBedrock で利用可能としました。
そこで「最先端のAI モデルをいろいろ試して開発を始めたい!」と考える人のために、Bedrock の入門書を用意しました。
本書ではBerock で提供されてるモデルの管理やプレイグラウンドの利用、またAWS にあるAIモデル開発環境「Sage Maker」のノートブックを使った開発について説明します。また、Google Colaboratory を利用し、Bedrock が提供する各種AI モデルを利用したコーディングについて説明します。更には、さまざまな環境からのAI 利用を可能とするため、LangChain によるBedrock のAI モデル利用や、curl によるコマンドラインからのBedrockアクセス等まで説明します。
ただし、これらを理解するためには、ある程度の基礎知識が必要です。本書は以下のような人を読者対象として想定しています。まずはこれらの条件を確認の上、本書を購入するか考えて下さい。
Pythonという言語を一通り使える人。本書ではPythonの使い方などは特に説明をしません。Python そのものに関する問題を自力で解決できる人を対象としています。
AWSの基本的な使い方がわかっている人。本書ではAWSのアカウント作成から説明をしていますが、全くの知識がない人は理解が難しいでしょう。
「 AIを利用するためにはある程度の費用がかかるのは構わない」と考える人。タダでAIを使いたいという人は、Bedrock は使えません。
AIの世界は、既に「1つでいいから使えるAIモデルがあればいい」という黎明期を過ぎ、「いくつもの最先端モデルを使いこなしていく」という時代に入っています。Bedrock は、乱立するAI モデルをすべて同じ方式で利用できるようにします。Bedrock で、「さまざまな大規模モデルに自由にアクセスする」醍醐味をどうぞ体験して下さい。
2024.01 掌田津耶乃
書籍目次
chapter1 Amazon Bedrockを開始する
1-1 Bedrockの準備
生成AIモデルの現状
AIプラットフォームの登場
Bedrockとは?
AWSを開始する
AWSにサインインする
1-2 Bedrockとモデル
Bedrockコンソールを開く
Bedrockコンソールのページ
基盤モデルを利用する
モデルの利用は「プレイグラウンド」から
chapter2 プレイグラウンドの利用
2-1 テキスト生成のプレイグラウンド
プレイグラウンドとは?
テキストのプレイグラウンド
モデル利用時のプレイグラウンド画面
他のモデルを試してみよう
AIは、文の続きを考える
チャットのプレイグラウンドについて
「テキスト」と「チャット」の違い
2-2 プロンプトデザインを理解しよう
プロンプトの基本
プレフィックスとサフィックス
例を使って学習させる
指示を補足する
日本語でダメなら英語で!
2-3 パラメータの働き
パラメータの種類
ランダム性と多様性のパラメータ
長さのパラメータ
Repetitionsのパラメータ
パラメータの使い方
chapter3 イメージのプレイグラウンド
3-1 イメージ生成を利用する
イメージのプレイグラウンドについて
プロンプトを書いて描かせよう
イメージ生成のプロンプト
さまざまな場所と状況
どんなイメージがほしいのか?
イメージ生成のパラメータ
「イメージ」のパラメータの調整について
3-2 より高度なモデルの利用
SDXLとTitan Image Generator G1
Titan Image Generator G1の画面
バリエーションの作成
パラメータについて
イメージ生成はコストに注意!
3-3 イメージの編集
Editモードとは?
イメージを編集する
マスクプロンプトを使う
編集は万能ではない
chapter4 SageMakerノートブックの利用
4-1 SageMakerとポリシーの準備
SageMakerとは?
Studioとノートブック
SageMakerを開く
ロールを作成する
ロールにポリシーを追加する
4-2 ノートブックの作成
ノートブックを利用する
ノートブックを起動する
コードを実行する
アイコンバーとサイドパネル
Bedrockの機能を利用する
SageMakerでノートブックを終了する
SageMakerダッシュボードで確認する
chapter5 Pythonによるテキスト生成モデルの利用
5-1 Colaboratoryを準備しよう
JupyterとColaboratory
SageMakerノートブックとColabの違い
Colabでノートブックを作る
コードを書いて動かそう
セルの働き
アイコンバーとツール類
AWSルートユーザーのアクセスキーを作成する
5-2 Bedrockのテキスト生成モデルを使う
BedrockとBoto3
Boto3からBedrockクライアントを作成する
プロバイダーのモデル情報を得る
特定モデルの情報を得る
特定モードの基盤モデルを得る
「# @param」について
モデルへのアクセスはBedrockではない
5-3 Bedrock Runtimeでモデルにアクセスする
BedrockとBedrock Runtime
invoke_modelでモデルにアクセスする
Titan Text G1-Expressを利用する
Titanのパラメータを指定する
Jurassic-2を利用する
Jurassic-2からの応答
Jurassic-2のパラメータ設定
Claudeを利用する
Claudeからの応答
Claudeのパラメータ設定
モデルのAPI仕様について
chapter6 Pythonによるイメージ生成モデルの利用
6-1 SDXLによるイメージ生成
イメージ生成とSDXL
SDXLにアクセスする
SDXLの戻り値について
Base64データのファイル保存
パラメータを利用する
パラメータを指定してイメージ生成する
ネガティブプロンプトについて
6-2 Titan Image Generator G1の利用
Titan Image Generator G1にアクセスする
Titan Image Generator G1のパラメータ
6-3 イメージの編集
SDXLのイメージ編集
編集用のパラメータ
イメージのバリエーションを生成する
マスクイメージを使う
Titan Image Generator G1のイメージ編集
chapter7 生成モデルを使いこなす
7-1 生成モデルの様々な機能
ストリームを利用する
ストリームで応答を受け取る
チャット機能を実装する
7-2 ベンダー提供パッケージ
Jurassic-2のパッケージについて
ai21.Completionを利用する
複数の応答を得る
Claudeパッケージの利用
completions.createでアクセスする
チャットとして利用する
Claudeのストリーミング利用
Bedrockで提供されていない機能は使えない
chapter8 LangChainの利用
8-1 LangChainを使う
LangChainとは?
LangChainの準備を整える
LangChainでBedrockにアクセスする
パラメータの指定
8-2 LangChainでチャットを行う
チャットを利用する
チャットを使いこなす
チャットの連続実行
ConversationChainを利用する
8-3 テンプレートの利用
テンプレートの利用
PromptTemplateクラスの利用
テンプレートを使ってみる
チャットテンプレート「ChatPromptTemplate」
ファイルを要約する
関数で前処理・後処理を行う
RunnableSequenceの仕組み
関数とRunnableLambda
LangChainの世界はもっともっと広い!
chapter9 Python以外の環境におけるBedrock利用
9-1 curlによるBedrockの利用
HTTPアクセスとcurl
curlコマンドについて
Jurassic-2にアクセスする
Colabでcurlを実行する
Titan Text G1-Expressを利用する
SDXLでイメージを作成する
9-2 JavaScriptからBedrockを利用する
AWS JavaScript SDKについて
プロジェクトを作成する
Visual Studio Codeを利用しよう
JavaScriptからBedrockにアクセスする
Titan Text Express-G1を利用する
Claudeを利用する
SDXLでイメージを生成する
curlを利用してBedrockにアクセス
その他にもBedrock用パッケージはある!
chapter10 Embeddingとセマンティック検索
10-1 Embeddingとその利用
Embeddingとは?
Titan Embeddings G1-Textを使う
セマンティック類似性
コサイン類似度の関数を用意する
セマンティック類似性の関数を用意する
プロンプトどうしのセマンティック類似性を調べる
10-2 セマンティック検索
セマンティック検索とは?
用途に合うパソコンを選定する
検索プログラムを作る
セマンティック検索の用途
10-3 マルチモーダルEmbedding
マルチモーダルのEmbedding
マルチモーダルEmbeddingを使う
イメージとイメージのセマンティック検索
似ているイメージを検索する
テキストでイメージを検索する
Embeddingはもう1つの生成モデル
この記事が気に入ったらサポートをしてみませんか?