見出し画像

乱立する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つの生成モデル

この記事が気に入ったらサポートをしてみませんか?