生成AIの基本概念と仕組みを学べる 【Generative AI Essentials on AWS】 を受講してみた
こんにちは、クラウド事業本部オペレーション部の清水です。
AWS Certified AI Practitioner – Foundational 認定を取得するべく、「Generative AI Essentials on AWS」を受講してきました。
プレスリリースにも出ていますが、最近新設されたばかりのコースになります。
今回受講した体験談をブログにしました。
こちらのコースは、他のコースのような3日間の長丁場ではなく1日のみのコースのため、スケジュール的にも受講しやすいものとなっています。
ただし逆を言うと1日しかないため、シナリオに沿ったアイデア出しやハンズオンも登場しますが、時間の都合上カットされている箇所もあり、体感的にあっという間に終わってしまった感覚でした。
当ブログでもカットされた部分は説明を割愛していますので、ご了承ください。
対象者
生成AIを利用したビジネスやサービス開発に興味のある方
AWS認定(AWS Certified AI Practitioner – Foundational)の取得を目指している方
内容
モジュール1:生成AIの紹介
生成AIの概要
生成AI(人工知能)の機能
- テキスト
- イメージ
- オーディオ
- コーディング
生成AIモデルはパターンと関係性を学ぶ
- 人工知能:1956年〜
- 機械学習:数学・統計的・回帰的
- ディープラーニング:2012年〜
ニューラルネットのパラメータを学習で自動的に設定することで、さまざまなモデルを作ることができる
- 生成AI(まったく新しいコンテンツを生成)
ベースはディープラーニングが元になっている
基盤モデル
「基盤モデル(FM)」
自然言語用の基盤モデル:大規模言語モデル(LLM)
「作り方」
基本的な流れはディープラーニングと同じ
学習に大量のコンピューティングリソースが必要(費用が高額)
大量のデータ → 学習 → 基盤モデル ← 推論 入力(プロンプト)
→ 推論 出力
- モデルの開発(1社あたり10億くらいか?それ以上、兆円にまでなる)
- モデルを使う(推論という)使う分には費用が少ない
「基盤モデルの基本動作」
- 一回の推論で1トークン(文字)が生成され、それを繰り返して回答分が出来上がる
- 入力 → 出力候補 → 出力
- 生成AIでは、確率による総合判断処理が行われる:確率論的
従来は部分的なYes,No判断の積み重ね:決定論的という
- そのため、ロジカルな調整や原因分析は困難
- 入力(プロンプト)を詳細に書くことで、確率が上がり出力の精度が向上する
「モデルの学習方法」
- トークン
テキストを小さな単位(単語や文字)に分割、何トークンでいくらといった課金対象になる
- 埋め込みとベクトル
数学計算で意味の扱いができる
「AWSの生成AIのサービス」
コンテンツを生成
- Bedrock、Amazon Q
アプリケーションを強化
- Textract、Comprehend:テキストや文書
- Polly:読み上げ
- Rekognition:画像認識・動画分析
MLモデルの開発
- Sage Maker
モジュール2:生成AIのユースケースを探る
適切なユースケースの特定
「生成AIが適切なソリューションとなるケース」
- コンテンツ作成
- パーソナライゼーション
- オートメーション
- イノベーション
- 効率性
「生成AIが適切なソリューションではないケース」
- 高い精度と信頼性が重要
生成AIは100パーセントではない!
- 説明可能性と透明性が不可欠
生成AIが出力した結果、なぜそうなったか説明ができないもの
- 問題定義が不明確、常に変化している
- 導入コストがメリットを上回る
- データ品質が不十分
モデルを作るのには学習元データの品質が非常に大事
- 法律・ガイドラインなどによりAIの使用が禁止されている
適切な技術を選ぶ
- どちらも実装コストを考慮しないといけない。コストが大事
生成AI >> ML >> プログラム
- そもそもAIを使わなくていいといったケースもあることを考慮事項にいれる(If/thenの簡単なステートメント等)
生成AIのユースケース(なるべくシンプルなものが良いです)
- 組織プロセス
- テキスト要約
- 新しいコンテンツ生成
- パーソナライゼーション
- イノベーションと研究
機械学習のユースケース
- 高い精度
- 高い信頼性
- パターン認識
- コンプレックスマッピング
生成AIアプリケーションとユースケース
生成AIビジネス向けユースケース
- 顧客体験の強化
- 従業員の生産性の向上
- 創造性とコンテンツ制作
- 事業運営の改善
AIソリューションを選択する際の考慮事項
- データ可用性
- ユースケースの複雑さ
- 論理的含意
- コストー利点分析(これが大事)
- インテグレーションとデプロイ
モジュール3: プロンプトエンジニアリングの要点
プロンプトデザインのベストプラクティス
ベストプラクティス(生成AIは入力された内容が全てです、人間のように空気は読めません)
- 明確かつ簡潔にする
- 関連するコンテキストを含める
- 具体的に指示する
- 出力の要件を記述する
- 回答例を示す
プロンプトエンジニアリングのコンポーネントと要素
- ロール
- タスク
- 指示
- 出力
高度なプロンプト戦略
プロンプトテクニック
①ゼロショットとヒューショット
モデルに提供されるサンプルの数が異なる基本的な手法
②RAG(検索拡張生成)
検索システム + 生成言語モデル
③ナレッジベース(AWSのサービスにある)
FMでのナレッジベースの使用
基盤モデル(Bedrock) + ナレッジベース(S3:企業データ)=カスタマーサポートアプリケーション
④Tool-useプロンプトとAction-orientedのプロンプト
Tool-use プロンプト
道具を連携するようにAIに指示する
この方程式を解くのに電卓を使用してください
Action-oriented
具体的な行動を促すプロンプト
あなたがプロジェクトリーダーなら、最初の1週間でどんなタスクを割り振りますか?
⑤CoTとToT
Chain-of-thought (CoT)
- 段階的に考えるアプローチ
- 論理的な推論を促す
Tree of thoughts (ToT)
- 複数の推論方法を探る
- 中間ステップを評価する
⑥静的テクニック:ネガティブプロンプト
出力に含めないものを指定する
推論パラメータ
プロンプトとは話の内容がガラッと変わります。モデル自体の調整ができるため創造性豊かな回答がほしい時に数値を大きくします
ランダム性を調整する
- Temptureを多くすると、創造性豊かな回答が出力される
- Temptureを小さくすると、一貫性がでる回答が出力される
選ばれる候補数を調整
- Top K:単語の選択を最も可能性の高い単語の特定の数に制限
- Top P:累積確率に基づいて単語の選択を制限
ラボ1:Amazon Bedrock によるスローガン生成の最適化
- 基本的な生成 AI プロンプトテクニックを駆使してスローガンを生成
- クライアントに関するより多くのコンテキストを提供することで、プロンプトを改善
- スローガンのトーンとスタイルを指定
- ヒューショットプロンプトのテクニックを使用
- 特定の指示に従ってプロンプトを最適化
- 広告ピッチ文書を作成
モジュール4: 責任あるAI の原則と考慮事項
責任あるAIの紹介
責任ある AI によるビジネス上のメリット
- 信頼と評価の向上
- 規制コンプライアンスの改善
- リスク軽減の向上
- 競争上の優位性の向上
- 意思決定の強化
- 製品とビジネスの改善
バイアスの軽減
- トレーニングデータ
- 監査アルゴリズムとモデル
- 公平性メトリクスと制約
- 透明性と説明性
- 利害関係者とコミュニティ
- 監視と更新
責任あるAIのコアディメンション
責任あるAIの8つのコアディメンション(キーワードとても大事です)
- 公平性
- 説明可能性(なぜこの結果となったのか、説明ができること)
- 透明性(モデルがどういうプロセスで作られたかOPENになっているか)
- プライバシー・セキュリティ(個人情報はシステム内に残らないように制御されているか)
- 正確性と堅牢性
- ガバナンス
- 安全性(自動運転が事故を起こさないか等)
- 制御性(AIが暴走しないように、人間が制御できること)
これらを遵守するには?
Bedrock:ガードレール(現時点では日本語対応していないです)
責任あるAIを提供するための枠組み
ラボ2:Amazon Bedrock Guardrails による責任ある AI 原則の実装
- Amazon Bedrock ガードレールを作成
- 設定変更を繰り返し行い、Amazon Bedrock ガードレールで可能なコンテンツブロッキングの種類を評価
- Amazon Bedrock の回答から個人を特定できる情報 (PII) の内容を隠す
- Amazon Bedrock ガードレールを設定して、モデルのハルシネーションを抑制
- ガードレールバージョンを作成して、Amazon Bedrock Playground でテスト
モジュール5: セキュリティ、ガバナンス、コンプライアンス
セキュリティ概要
OWASP Top10
- プロンプトインジェクション(これだけ従来のセキュリティの範囲ではない考え方!)
- 安全でない出力処理
- トレーニングデータポイズニング
- モデルのサービス拒否
- サプライチェーンの脆弱性
- 機密情報の漏洩
- 安全ではないプラグイン設計
- 過剰なエージェンシー
- 過度の依存
- モデルの盗難
敵対的プロンプト
プロンプトインジェクション
- 本来の指示を上書き、無効化してしまう攻撃手法
ジェイルブレイク
- 本来は回答してはいけない(銀行強盗を行う方法など)内容でトレーニングされてるものでも、詐欺のようなやり方でプロンプトを作成して、回答させてしまう手法
プロンプトリーク
- 通常外部から見えないようなプロンプトとシステム命令を暴かせる攻撃手法
プロンプトポイズニング
- 悪意のある学習データを混入して、AIの挙動に影響を与える攻撃
ソーシャルエンジニアリング
- 人の心理的な隙をつく騙し技術。人間らしいやり取りを通じて、情報や行動を引き出す手法
- AIが同情や対話の流れで、通常答えない内容を返してしまう
モジュール6: 生成AIプロジェクトの実装
生成AIアプリケーションライフサイクル
- ユースケースを定義
- 基盤モデル(FM) を選択
- パフォーマンスを改善
- 結果を評価
- アプリケーションをデプロイ
おわりに
このトレーニングでは、生成AIの概念やプロンプトのベストプラクティスについての座学が多めになっています。
しかし全て座学で終わると言うわけではなく、ハンズオンではBedrockにて推論パラメータのテスト、フューショット技法、ガードレールの作成なども体験可能となっています。
この記事がどなたかのお役に立てば幸いです。