Bedrock Claude Night(JAWS-UG AI/ML 支部 × 東京支部コラボ)の個人メモ
movie
- Bedrock Claude Night(JAWS-UG AI/ML 支部 × 東京支部コラボ)
- Anthropic Keynote Session in JAWS Bedrock Claude Night on 2024/4/22
- 後日公開版の動画
- slide all
Anthropic キーノートセッション
個人的超重要 Tips
- Experimental metaprompt tool
- Claude がプロンプトテンプレートを代わりに書いてくれるツール
- Anthropic prompt library
- 60 以上の最適化済みのプロンプトが用意されているので,Bedrock で Claude3 使うときに参考にしたい.
- Anthropic’s Claude3 model card
- モデルの技術詳細や評価,能力等を説明している
- Anthropic cookbook
- 公式のコードや実装の例
- Claude user guide documentation
- プロンプトエンジニアリングの Tips
- Claude3 Technical Presentation
メモ
Claude3 は,,,
- コンテキストウィンドウの長さが最長
- 全てのモデルが画像対応
- task に応じてモデルも使い分けるとよい(model card なども参照せよ)
- ジェイルブレイクへの耐性が非常に高い
- llm-trustworthy-leaderboard(LLM 信頼性リーダーボード)において,GPT4(Score: 69)に比べ Claude2(Score: 85)は非常に優れていることが示されている(Claude3 はより優れている)
- HIPAA 準拠,SOC2 Type1 および Type2 の認証も取得済み
- AWS とのパートナーシップにより,セキュリティ認証の恩恵も受けられる
- 安全性と信頼性を最大化するには有力な選択肢となる
LT① Bedrock Calude 3 を使って市場対応を DX 化してみた
- 容易に RAG は構築できるので,まずは試すと良い(プレイグラウンドで試せる)
- その後,本格的にアプリ構成を考えれば良い.
- エージェント,ナレッジベース,lambda 作成,会話履歴の管理
- PDCA から DCAP のマインドが大事
LT② 会社に関する RAG をサーバレスで作成してみた
- API 利用時はリトライ機構が大事
- 指数バックオフ機構(1 回につき 2^(retry_count - 1)遅らせる)
- retry decorator を使うと良いかも?
- Bedrock を利用するリージョンを分散すると良い
- 予算があればプロビジョンドスループットを購入すると良い
- 1 ヶ月単位で購入
- フロントエンドは Amplify, バックエンドは Lambda Adapter, Bedrock, Pinecone も利用している
LT③ Anthropic Cookbook のおすすめレシピ
-
cookbook には大きく 4 種の項目でノートブックが紹介されている
- misc: Claude の機能や使い方
- multimodal: 画像や音声などの扱い方
- third_party: 外部サービスやライブラリとの連携方法
- tool_use: ツールを使わせたり特定のタスクを行わせる方法
-
以下のノートブックが初見ではおすすめ
- read_web_pages_with_haiku.ipynb: XML 特有のプロンプトの書き方がわかる
- how_to_enable_json_mode.ipynb: json 出力させるためのプロンプトでの工夫がわかる
- best_practices_for_vision.ipynb: API で画像を入力する方法,step by step で指示すると画像ファイル名と画像ファイルの中身が異なっていてもうまく画像認識させられる
スライド中で紹介された参考になりそうな記事
LT④ Claude3 を使って RAG の一番の悩みポイントを解決してみた
- powerpoint 上でのテキストの読む順番は,生成 AI 側では判断しづらい
- powerpoint を Claude3 で markdown でまとめさせると,人間が読む順番で文字起こしできるのは良い idea
- 画像自体を文章として説明させる,PDF のヘッダー・ページ数などもよしなに無視してくれる.
- Amazon Titan の multi modal embedding はまだ日本語対応してない
スライド中で紹介された参考になりそうな記事
- Claude3 を使って人間が読むようにパワポ資料を読み込んでみる
- 【Bedrock / Claude】AWS オンリーで RAG を使った生成 AI ボットを構築してみた【Kendra】
- Claude3 で認識できる文字のサイズを簡単に調べてみた
- Claude3 と Azure AI Document Intelligence を使ってドキュメント読み取りの精度をあげてみた
LT⑤ 来てくれ Claude 3! Agents for Amazon Bedrock のモデル比較或いはチューニングの話
- ナレッジベースは Claude3(Haiku, Sonnet)で利用可能
- 詳細プロンプト: エージェント作成時に用意されるプロンプトテンプレートセット
- 前処理:ユーザーの入力をカテゴリー A~E に分類するようエージェントに指示
- A: 悪意があるか
- B: エージェントに提供されている関数,API に関連する情報を取得しようとしている
- C: エージェントに提供された関数では提供できない質問
- D: エージェントに提供された関数のみを利用して回答できる質問
- E: 質問ではなく,エージェントがユーザーに訪ねた質問への回答となる入力
- オーケストレーション: ユーザーの入力に対してツールの使用とガイドラインに沿って回答を生成するようエージェントに指示
- KB の回答生成:KB(ナレッジベース)への検索結果を使って回答生成する際のエージェントへの指示
- 後処理:ユーザーにとってわかりやすいコンテキストを追加するタスクエージェントへの指示
- 前処理:ユーザーの入力をカテゴリー A~E に分類するようエージェントに指示
パネルディスカッション
- 有名な山の名前を教えてください,と Claude に日本語で聞くのと英語で聞くのとでは回答が異なる(日本語の場合は富士山,英語の場合はエベレスト)のは超面白い
- Claude の場合,プロンプト中では項目を列挙したり箇条書きにすると良い
- コンテキストウィンドウが非常に大きいので,例も多様に入れても OK だしむしろ入れるべき
- role も指示すべき
- Claude は XML タグを使えるように学習されているので,XML タグを利用してプロンプトを構造化し,プロンプトチェーンやロジックをより明確にすると良い.例えば,XML タグで利用して複雑なタスクを様々なセクションに分割すると良い
- モデルに考えるように頼んで答えだけを出力するように頼むのではなく,思考を書き出すスペースを与えなければならない(そうしなければ実際の思考は行われない)
- Claude のメッセージを一部予め埋め込むのも良い(そうすると途中から喋ってくれる)
- 長いコンテキストに対応する場合,ドキュメントや画像などは先頭に近い位置に配置し,タスクがどのようなものになるか,少しコンテキストを持たせると良い
- 後ろの部分で指示や例を書く.
- 言ってることは以下に似ている
その他(参考になるリンク)
- AWS の生成 AI で社内文書検索! Bedrock のナレッジベースで簡単に RAG アプリを作ってみよう
- AWS の生成 AI 最新機能ハンズオン!Bedrock の Knowledge Base と Agents に入門しよう
- [アップデート] 有害・危険なコンテンツをブロックする「Guardrails for Amazon Bedrock」が GA になりました!
- AWS 入門ブログリレー 2024〜Agents for Amazon Bedrock 編〜
- AWS 入門ブログリレー 2024〜Knowledge bases for Amazon Bedrock 編〜
- AWS 入門ブログリレー 2024〜Amazon Bedrock 編〜
- AWS Marketplace の Pinecone を Amazon Bedrock のナレッジベースとして利用する
- LLM RAG Paradigms: Naive RAG, Advanced RAG & Modular RAG
- Retrieval-Augmented Generation for Large Language Models: A Survey
- LangChain×Bedrock(実装の参考になりそう)
- Python 約 30 行で作る Bedrock x Claude3 の Streaming チャットアプリ
- 【Bedrock×Lambda】高精度なハイブリッド検索 RAG をサーバレスで実装(Slack 連携も可)
- Bedrock(Claude 3)対応のマルチモーダルチャットボットを Chainlit と LangChain(LCEL)で構築する
- 【検証してみた】Amazon Bedrock のナレッジベースにおける日本語性能を向上させる技術検証
- RAG の性能を改善するための 8 つの戦略
- 性能改善については主に検索側と生成側から取り組む必要があるが,本記事では検索側に焦点を当てて解説している
- RAG の実装戦略まとめ
- Agents for Amazon Bedrock の作成がより簡単になった!
- Agents for Amazon Bedrock の “ユーザー入力” を CloudFromation で有効にする
- [アップデート]Knowledge bases for Amazon Bedrock で複数データソースがサポートされました
- Anthropic Claude - Prompt Design 大全
- 【Command R+】オープンソース界最強 LLM が GPT-4 レベルの性能を達成
- Cohere のトークンナイザは日本語に最適化されており,Claude に比べると約 1.7 分の 1 程度のトークン数となる
- コンテキストウィンドウが 128K?
その他(公式ドキュメント)
機能リリース watching
公式リポジトリ/workshop
Bedrock
RAG
Knowledge Base(オススメ)
- Knowledge Bases for Amazon Bedrock Workshop(オススメ)
- バックエンドとしては OpenSearch Serverless, RDS, Redis Enterpise Cloud, Pinecone が使える
- Rag Architecture using Amazon Bedrock and OpenSearch(オススメ)
- amazon-bedrock-samples-knowledge-base
Kendra
Llamaindex
- https://github.com/aws-samples/amazon-bedrock-rag-workshop
Amazon Q
LangChain
その他(最近の機能リリース)
2024/04/24
2024/04/23
feature
- Bedrock Agent で Claude3(Haiku/Sonnet)がサポート
- Bedrock Knowledge Base のデータソースが複数選択可能に
- Knowledge Base の設定無しに,Chat でドキュメントをアップロードしてそのドキュメントを踏まえてチャット可能に
- File types: PDF, MD, TXT, DOC, DOCX, HTML, CSV, XLS, XLSX (Max. 10 MB)
- Bedrock Agent のアクショングループを定義可能に
- SageMaker などで学習したカスタムモデルを Bedrock で import 可能(preview)
- Llama2/3、Mistral ベースのモデルを import し API 形式で利用可能
- Guardrails for Bedrock が利用可能に
- 安全フィルターおよびプライバシー制御(マスキング)機能
- FT したモデルにも適用可能
- Agents for Amazon Bedrock: 簡素化された作成と構成エクスペリエンスの導入
- OpenAPI スキーマ(Agent が呼び出すことのできる API 操作の定義)が不要に.
model
- Amazon Titan Image Generator が GA
- Bedrock で Llama 3 が利用可能に(バージニアとオレゴンのみ)
- meta.llama3-8b-instruct-v1:0
- meta.llama3-70b-instruct-v1:0
- Amazon Titan Text Embeddings V2 が近日提供予定
source:
- Document history for the Amazon Bedrock User Guide
- AWS News Blog
- Significant new capabilities make it easier to use Amazon Bedrock to build and scale generative AI applications – and achieve impressive results
- Building scalable, secure, and reliable RAG applications using Knowledge Bases for Amazon Bedrock
- 2024/4/23 Amazon Bedrock アップデート祭りメモ
公式ブログ(LLMOps)
- Enhance conversational AI with advanced routing techniques with Amazon Bedrock
- Agent for Amazon Bedrock,または LangChain でアプリケーションを実装する際のメリデメを述べている.
- アーキテクチャ例も提示されており,参考になりそう.
- Evaluate the text summarization capabilities of LLMs for enhanced decision-making on AWS
- LLM による要約出力の評価方法について述べている
- Amazon Bedrock のカスタムモデルを使用して Amazon Titan Image Generator G1 モデルをファインチューニングする
- Bedrock 上のモデルを FT する際の仕組みがわかりやすく解説されている.
- データセットは外部に保存されることはなく,モデルの改善に利用されることは無い.
- Amazon Bedrock で手軽に絵芝居を作れるシステムを開発してみた
- プロンプトチェーンを利用した具体例
- stability.ai のプロンプトガイドも紹介されている
- FMOps/LLMOps:生成系 AI の運用と MLOps との違い
- FMOps におけるモデルの選定・ファインチューニング・評価の方法論が述べられている.
- モデル評価時にはプロンプトカタログという評価用のテンプレートプロンプト集を利用しているのが興味深い
※BlackBeltの資料など
- [Amazon OpenSearch Serverless AWS Black Belt Online Seminar](https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonOpenSearchServerless_0131_v1.pdf) - コレクション > インデックス > ドキュメントの概念がある - [Amazon OpenSearch Service AWS Black Belt Online Semina](https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-OpenSearch-Service-Basic_0131_v1.pdf) - [Amazon OpenSearch Service 機能解説 – 検索編 AWS Black Belt Online Seminar](https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-OpenSearch-Service-Advanced-Search_0131_v1.pdf) - [Amazon OpenSearch Service のベクトルデータベース機能の説明](https://aws.amazon.com/jp/blogs/news/amazon-opensearch-services-vector-database-capabilities-explained/) - [OpenSearch を使⽤したベクトル検索](https://pages.awscloud.com/rs/112-TZM-766/images/20231005-Analytics-03-AWS.pdf) - [Amazon OpenSearch Serverless による手軽なログ分析](https://aws.amazon.com/jp/blogs/news/log-analytics-the-easy-way-with-amazon-opensearch-serverless/) - [2023 年 1 月の AWS Black Belt オンラインセミナー資料及び動画公開のご案内](https://aws.amazon.com/jp/blogs/news/2023-01-aws-blackbelt/) - [「Bedrock ユーザー必見!」5 分で分かる(かもしれない) Vector engine for OpenSearch Serverless](https://dev.classmethod.jp/articles/jaws-ug-tokyo-lunch-11-lt/)
※見ていくべき技術スタック
- Knowledge Base(RAG)
- Advanced RAG
- Agents
- LangChain
- security(Guardrails)
- backup(opensearch の自動スナップショットなど)