Azure AI 資格(AI-102)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>AzureのAI系サービス]]
--[[Azure AI 資格(AI-900)]]
--Azure AI 資格(AI-102)
---[[Azure AI 資格(AI-102)対策]]
* 目次 [#o4076b2c]
#contents
*概要 [#h0f6ddfa]
-コース AI-102T00-A: Azure で AI ソリューションを開発する。
-コレが終わっても対策不十分なのでコチラ([[Azure AI 資格...
-Microsoft の「Open Book(MS Learn 参照可)」試験に該当
--AI‑102 試験の「参照可能な Learn ドキュメント内検索」か...
--検索は Microsoft Learn 内の検索バーのみ利用可能でGoogle...
--ただ、検索能力が低過ぎるので、TopからAzure→「AI + 機械...
-2026初に合格(800/1000)
--MicrosoftのLearnとプラクティス評価、Udemyの2講座だけの...
--ExamTopicsは 30/300 しか無料で見れないのもあり、途中で...
--Open Bookは英語のみで予習して望んだが試験中に有効に使え...
--なので、リファレンス参照して答える系の問題も全部、雰囲...
--Azureは使っているし、AIはE資格持ってるってのはアドバン...
**生成 AI アプリを開発 [#s7250698]
https://learn.microsoft.com/ja-jp/training/paths/create-c...
***計画と準備 [#e13d282f]
https://learn.microsoft.com/ja-jp/training/modules/prepar...
-AI 機能
--生成AI ≒ LLM
--(LLM)エージェント
--画像処理、音声処理、(NLP)自然言語処理
--情報抽出(OCRやDocument Intelligence、構造化出力)
--意思決定支援(BI/AI、データ・アナリシス)
--LLM関連キーワード:LLM、SLM、自然言語処理、マルチモーダ...
-Available Foundry Tools~
(事前構築済みの拡張ツール群)
--OpenAI
--Vision、Speech、Language、Translator
--AI Face、AI Custom Vision
--Document Intelligence
--Content Understanding
--Microsoft Foundry Content Safety
--AI Search
-Microsoft Foundry プロジェクト
--鋳造所プロジェクト
---Microsoft Foundryのモデル、Agent Service
---Tools、評価と責任ある AI 開発のためのツール
--ハブベースのプロジェクト
---鋳造所プロジェクトを含む
---Prompt Flow、ファインチューニングなど
---Azure Storage と Azure Key Vaultを含む
-開発者ツールと SDK
--開発ツールと環境
---Microsoft Foundry for VS Code 拡張機能
---GitHub と GitHub Copilot
--プログラミング言語、API、SDK
---Microsoft Foundry SDK(統合的利用)
---Foundry Tools SDK(個別利用)
---Microsoft Foundry Models API
---Microsoft Foundry Agent Service
-[[責任ある人工知能 (AI) の原則>Azure AI 資格(AI-900)#p...
引き続き重要:[[責任ある人工知能 (AI) の原則>Azure AI 資...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ポータルへサインイン
--プロジェクトの作成
---モデル選択とプロジェクト作成
---モデルのデプロイ
---プロジェクトの初期画面のplaygroundでテスト
--管理センターでリソースを確認
---左ナビゲーションから Management center を開く。
---Foundry リソースとプロジェクトの構成を確認。
---リソースグループへで作成された Azure リソースを確認。
--プロジェクトのエンドポイントとキーを確認
---Foundry プロジェクト
---デプロイ済みモデル
---Azure OpenAI / Azure AI Services
--モデルの動作確認(Chat Playground)
---左メニューの Playgrounds → Chat を開く。
---デプロイした gpt‑4o が選択されていることを確認。
---Setup ペインでシステムメッセージを設定:
---例としてプロンプトを入力し、応答を確認。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***モデルの選択・デプロイ [#qe0cabe1]
https://learn.microsoft.com/ja-jp/training/modules/explor...
-モデルカタログからモデルを選択する。
--GitHub
--[[Hugging Face>https://dotnetdevelopmentinfrastructure....
--Microsoft Foundry(主要なエンタープライズ要件が満たす)
-LLM系ユースケース
--音声:テキスト変換・テキスト読上
--機械翻訳
--テキスト分類
--エンティティ抽出
--テキストの要約
--質問の回答
--理由の解説
-モデル選択~
ユース ケースに最適なモデルを選択
--タスクの種類
---モダリティ、ツール
---地域固有およびドメイン特化のモデル
--精度/オープン性
---オープン モデルと独自モデルの間で柔軟性とパフォーマン...
---精度・パフォーマンスでモデルをフィルター処理
--デプロイ
---大規模/小規模
---パフォーマンス(必要になるリソース的な意味で)
--パフォーマンスのベンチマーキング
---精度:0/1なので主には分類問題
---一貫性:人間の言語に近いか?
---流暢さ:自然に聞こえるか?
---グラウンデッドネス:検証データで入出力のアラインメント...
---GPT類似性:検証データで出力のセマンティック類似性を定...
---品質インデックス:0-1 の比較集計スコア
---費用:トークンあたりの価格
-スケーリング~
プロトタイプをスケーリングする際の考慮事項
--モデルのデプロイ
--モデルの監視と最適化
--プロンプト管理
--モデルライフサイクル
-デプロイ オプション~
Microsoft Foundry を使用して言語モデルをエンドポイントに...
--標準デプロイ: Microsoft Foundry プロジェクト リソースで...
--サーバーレス コンピューティング: Microsoft Foundry ハブ...
--マネージド コンピューティング: モデルは、Microsoft Foun...
||サポート・モデル|ホスティング|課金基準|h
|標準|Foundry モデル|Foundry リソース|トークン|
|サーバーレス|~|Hub内のリソース|~|
|マネージド|OSS、カスタム|~|コンピューティング|
-プロンプト・エンジニアリングで出力最適化~
プロンプト・パターンを適用してモデルの出力を最適化する
--(システム プロンプトで)モデルにペルソナを指示
--(システム プロンプト、ユーザー プロンプトで)モデルを...
--(システム プロンプト、ユーザー プロンプトで)出力形式...
--(システム プロンプトで)モデルに理由を求める。
--(ユーザー プロンプトで)モデルにコンテキストを追加。
-モデル最適化戦略~
RAGとファインチューニングがある。
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--モデル探索(Model Catalogの理解)
--モデル比較(Compare models機能)
--Foundryプロジェクト作成
---gpt-4o の Overview から Use this model
---プロジェクト作成(ファウンドリーリソース名、サブスクリ...
---gpt-4o を 自動デプロイ、TPM(Tokens Per Minute)制限を...
--デプロイ・テスト
---gpt-4o
---Phi-4-reasoningを追加でデプロイ(考え方の明示が得意)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
※ モデルのデプロイの一例は[[コチラ>Azure OpenAI Service#n...
***Microsoft Foundry SDK [#r2c4ec31]
https://learn.microsoft.com/ja-jp/training/modules/ai-fou...
-Microsoft Foundry SDK とは
-プロジェクト接続を操作する
-チャット クライアントを作成
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトに GPT‑4o をデプロイ
--クライアントアプリの準備(Cloud Shell)
---GitHub リポジトリを clone
---Python 仮想環境を作成し、必要なライブラリをインストール
---.env ファイルを編集し、エンドポイント・モデル名を設定
---az login して python chat-app.py する方式。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***プロンプト フロー [#h3139db2]
https://learn.microsoft.com/ja-jp/training/modules/get-st...
-ライフサイクル
--初期化
---目的定義
---サンプル データセットを収集
---基本的なプロンプトを作成
---フローを設計
--実験
---実行
---評価
---改善
---進む(↓)
--評価と絞込~
評価/問題特定/最適化
--プロダクションで運用~
最適化/デプロイ/監視
--評価と絞込~
評価/問題特定/最適化
-プロンプト フロー
--3つの部分~
何れもノードの部分でエッジではない。
---入力
---ノード
---出力
--3つのツール
---LLM ツール
---Python ツール
---プロンプト ツール
--3つの種類
---標準フロー
---チャット フロー
---評価フロー
--ランタイムと接続
---ランタイム~
Python コードや LLM 呼び出しを実行するための計算環境
---接続~
・種類(Azure OpenAI、OpenAI、Azure AI Search、Serp、Cust...
・探索(権限付与して接続、キーはAzure Key Vault二格納)
-バリエーションと監視オプション
--バリエーション(連続的)とバリアント(離散的)
---LLM ツールでサポートされ以下の利点がある。
---LLM生成の品質向上:LLMノード の バリエーション(プロン...
---生産性の向上:バリエーションの迅速な作成・管理・適用
---時間と労力を節約:プロンプト バージョン の バリアント
---簡単な比較:結果を並べて比較し最も効果的なバリアントを...
--デプロイ後の評価メトリックの監視オプション
---整合性: 出力が入力または追加コンテキストとどの程度一致...
---関連性: 出力が特定の入力にどの程度関連しているかを評価
---一貫性: 出力テキストの論理フローと読みやすさを評価
---流暢性: 出力テキストの文法と言語の精度を評価
---類似性: 推論値と正解値のコンテキストとセマンティックの...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Prompt flow 機能は ハブ ベースの Project が必須
---リージョンは East US 2 / Sweden Central 推奨(Quota 回...
--リソース認可設定(Blob Storage へのアクセス)
---プロンプト フロー は ファイル(YAML/フォルダ)として B...
---読み取り権限がないと、プロンプト フロー 作成・実行時に...
--生成 AI モデル(GPT-4o)のデプロイ
---「デプロイ済みモデル」を参照
---保護のためTPM(Tokens Per Minute)を設定
--プロンプト フロー作成(チャットフロー定義)
---「入力 → LLM → 出力」という 会話フロー
---Inputs:question(今回のユーザ発話)、chat_history(過...
---Chat LLM tool:Azure OpenAI(gpt-4o)を呼び出す
---Outputs:assistant の回答
--プロンプト設計(会話文脈の組み込み)~
system メッセージ、chat_history をループで展開し再投入
--フローのテスト(Chat UI)
---デプロイ前でも 即時対話テスト可能
---プロンプト調整 → 即再実行、という試行錯誤が可能
--フロー・デプロイ(API 化)
---作成したプロンプト フローを 外部アプリから呼べる API ...
---Testペインで再テスト、Consumeペインから接続情報、サン...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***RAG ベースのソリューション [#f0cc3e80]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-RAGとは「[[LLMのRAG - 開発基盤部会 Wiki>https://dotnetde...
-グラウンディングという単語が使用されるが、コレは、生成を...
-グラウンディング データの追加
--Azure Blob Storage
--Azure Data Lake Storage Gen2
--Microsoft OneLake
-検索インデックスにAzure AI Search の以下のを使用して統合
--キーワード検索
--セマンティック検索(ベクトル検索)
--ハイブリッド検索(キーワード+セマンティック)
-インデックスを定義
--WebAPIからRAGを使用
--プロンプト フローからRAGを使用
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブとプロジェクトの作成
--RAG に必要な 2 種類のモデルをデプロイ
---Embedding モデルと生成モデル
---Global Standard デプロイで、TPM(Tokens Per Minute)を...
--独自データ(PDF)をプロジェクトに追加
---旅行会社の架空パンフレット(PDF)をローカルにダウンロ...
---Foundry の Data + Indexes からフォルダごとアップロード
---データセット名を brochures(パンフレット)として登録
--Azure AI Search によるベクトルインデックス作成
---新規 Azure AI Search リソースを作成し接続
---Embedding モデルとして text-embedding-ada-002 を指定
---brochures データを元に ベクトル検索対応インデックス:b...
--Playground で RAG の効果を確認
---gpt-4o を使用しデータ未接続で質問 → 一般的な回答
---次に ハイブリッド検索に設定したbrochures-indexを接続
---同じ質問を再実行 → PDF内容に基づいた回答に変化
--クライアントアプリの準備(Cloud Shell)~
https://github.com/MicrosoftLearning/mslearn-ai-studio/tr...
---GitHub リポジトリを clone
---Python 仮想環境を作成し、必要なライブラリをインストール
---.env ファイルを編集し、プレースホルダを置き換え
---python rag-app.py する(API キーを使うのでaz loginは不...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ファインチューニング [#fe0ddc46]
https://learn.microsoft.com/ja-jp/training/modules/finetu...
-ファインチューニング(FT)
-FTとは「[[LLMのFT - 開発基盤部会 Wiki>https://dotnetdeve...
-RAG vs FT~
プロンプト エンジニアリングではダメな場合はFT
-データ準備
--種類
---システム メッセージ
---ユーザー メッセージ
---アシスタントの応答
--留意点
---個人情報や機密情報はすべて削除する。
---大規模なトレーニング データセットを作成する。
---データセットに多様なサンプル セットを含める。
-基本モデル選択の考慮点
--モデルの機能
--トレーニング データ
--制限と偏り
--言語サポート
-FTジョブ構成
--基本モデルを選択
--トレーニング データ選択
--検証データ選択(省略可能)
--詳細オプションを構成
---バッチサイズ
---学習率
---エポック数
---シード(再現性を制御)
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトに GPT‑4o をデプロイしてChat Playgr...
--準備
---計画:SupervisedでXXXを実施
---例:応答スタイルを学習させる
---ベースモデルの挙動を理解
---学習データの理解~
https://raw.githubusercontent.com/MicrosoftLearning/mslea...
--実施後
---ファインチューニングの実施
---FT後のモデルの評価
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***責任ある生成 AI ソリューションの実装 [#nbf789e9]
https://learn.microsoft.com/ja-jp/training/modules/respon...
※ [[PMP:計画 - リスク - 開発基盤部会 Wiki>https://dotnet...
-NIST AI Risk Management Frameworkの機能に密接に対応した...
--生成された出力に存在する「リスクの脅威の損害」を測定
--損害の発生・影響を最小限に抑え、ユーザーにコミュニケー...
--デプロイと運用の準備計画を定義して従うことで、ソリュー...
-潜在的な損害をマップ
--潜在的な損害を特定
--特定された損害に優先順位を付ける
--優先順位付けされた損害をテストして検証
--検証済みの損害を文書化して共有
-テスト
--推論を繰り返し、出力を分類、潜在的な損害を測定。
--手動テストと自動テストでシナリオ検証する。
-潜在的な損害を軽減
--モデル レイヤー
---適切な(サイズ、事前学習)ポテンシャルのベースモデルを...
---適切にファインチューニング学習しシナリオのスコープに適...
--安全システムレイヤー
---コンテンツ フィルター:4 カテゴリ(ヘイト、性的、暴力、...
---不正使用検出アルゴリズム、迅速な対応を可能にするアラー...
--コンテキスト・レイヤー
---モデルの動作パラメタ
---システム・プロンプト
---RAG
--UXレイヤー
---UI
---マニュアル類
-リリース・エンジニアリング
--プレリリース レビューを完了する
--ソリューションをリリースして操作する
--Microsoft Foundry Content Safety
---プロンプト・シールド:入力攻撃のリスクをスキャン
---根拠性検出:出力が入力に固定されているかどうかを検出
---保護されたマテリアルの検出:既知の著作権で保護されたコ...
---カスタム カテゴリ:新しいまたは既知のパターンのカスタ...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトにモデルをデプロイしてChat Playgrou...
---既定のコンテンツ・フィルターの挙動確認(自傷に関する質...
---「完全には防げないケースがある」ことを確認しカスタム・...
--潜在的な損害を軽減
---カスタム・コンテンツ・フィルター:4カテゴリすべて最高...
---Prompt Shield(不正使用検出アルゴリズム)も有効化
---既定のコンテンツ・フィルターより強力な安全制御が働くこ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***パフォーマンス評価 [#c33b37cf]
https://learn.microsoft.com/ja-jp/training/modules/evalua...
-評価対象
--モデル
--チャット・フロー
-ベンチマーク
--カタログ・スペック的な意味での
--項目:精度 / 一貫性 / 流暢性 / GPT 類似度
-評価
--手動評価
---モデルをデプロイしてChat Playgroundでテストする。
---人間により関連性 / 情報の質・量 / エンゲージメント な...
---「モデル、パラメタ」「システム メッセージ、ユーザー メ...
--自動評価のメトリック
---AI支援メトリック~
・一般的な品質:ベンチマークの項目と同じ~
・リスクと安全性:コンテンツ・フィルターの項目と同じ
---自然言語処理メトリック~
F1スコア、BLEU、METEOR、ROUGE
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブのプロジェクトにモデルをデプロイ
--手動評価
---JSONLをダウンロード&アップロード
---Question、ExpectedResponseにマッピング
---人間が結果を評価する。
--自動評価
---評価タイプ:Evaluate a model
---JSONLをダウンロード&アップロード
---使用する評価指標を追加
---評価結果確認(Metricsタブ:全体、Dataタブ:レコード毎)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**AI エージェントを開発 [#z184753b]
https://learn.microsoft.com/ja-jp/training/paths/develop-...
***AzureのAIエージェント開発 [#df41ebf7]
https://learn.microsoft.com/ja-jp/training/modules/ai-age...
-シナリオ:単一エージェント、マルチ・エージェント
-AI エージェントとは:[[コチラ>https://dotnetdevelopmenti...
-例
--経費エージェント~
ユーザーの請求可能な経費に関する質問を受けRAGりつつLLMに...
---経費ポリシー情報を含む ナレッジ ストアをRAGる。
---プログラム関数を実行して経費明細書を自動的に送信する。
---ビジネス ルールと請求金額に基づいて適切な承認者を知ら...
--旅行代理店マルチエージェント~
ユーザーの旅行詳細からフライトとホテルを予約し、経費エー...
---外部の旅行サービスAPIを通じてフライトやホテルを予約
---適切な領収書を使用して、経費エージェントを通じて経費請...
---手動による介入なしで、旅行予約と経費申請のワークフロー...
-リスクと保護
--データとプライバシーの漏洩:機密データが外部に公開され...
--プロンプト・インジェクションとマニピュレーション攻撃:...
--未承認のアクセスと特権のエスカレーション:アクセス制御...
--データ・ポイズニング:学習またはRAGのデータをハッキング...
--サプライ・チェーンの脆弱性:外部ツールの脆弱性がワーク...
--自律的なアクションへの過度の依存:検証や監視なしで不適...
--監査性とログ記録が不十分:データ・アクセスしたか、何時...
--モデル反転と出力漏れ:モデルの出力から学習データの内容...
-セキュリティ保護のベスト プラクティス
--アクセスを厳密に制御する:RBAC と 最小限の特権のアクセ...
--すべての入力を検証する:インジェクション攻撃をキャッチ...
--人間の監視を追加:機密性の高い操作を人間が関与する承認...
--すべてを追跡する:包括的なログ記録と追跡可能性を維持
--サプライ・チェーンを監視:サードパーティの依存関係と統...
--モデルを正常な状態に保つ:モデルを継続的に再トレーニン...
-エージェント・フレームワーク
--[[LLMエージェント>https://dotnetdevelopmentinfrastructu...
---OpenAI Agents SDK
---CrewAI
---LangGraph
---AutoGen
--その他
---M365 Copilot Studio Lite:EUC
---Microsoft Copilot Studio:Power Platform系ローコード
---Microsoft 365 agents SDK:プログラミング初級
---[[Microsoft Foundry Agent Service:ソリューション開発...
---Microsoft Agent Framework:プログラミング上級
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトにモデルをデプロイ
--エージェントを作成
---(自然言語文字列で)エージェントの Instructions(役割...
あなたは企業経費精算のAIアシスタントです。
経費ポリシーデータに基づいて、経費に関する質問に答えます。
ユーザーが経費請求を希望する場合、メールアドレス、請求内...
---ナレッジとして文書(docx)を追加、ツールとしてコード・...
---経費請求テキスト ファイルはコード・インタプリタで準備...
--エージェントの実行
---Playground 上で会話テスト
---[コード]タブのサンプル コードを取得してVS Code Web で...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Microsoft Foundry Agent Service [#sa255b44]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-ソリューション開発用SaaS+SDK
-SaaS:スケーラビリティ、24・365
-ユース ケースの例:~
自動化、意思決定など
--個人生産性
--リサーチャー
--デベロッパー
--セールス
--カスタマー サービス
-機能
--自動ツール呼び出し
--安全に管理されたデータ
--すぐに使用できるツール
--モデルの選択
--エンタープライズ レベルのセキュリティ
--カスタマイズ可能なストレージ ソリューション
-リソース
--基本セットアップ~
Azure AI ハブ、Azure AI プロジェクト、Foundry Tools リソ...
--標準セットアップ~
基本セットアップに加えて、Azure Key Vault、Azure AI Searc...
-ツール
--ナレッジ
---Bing検索
---ファイル検索(VDB)
---Azure AI Search
---Microsoft Fabric
--アクション
---コード・インタプリタ
---カスタム関数
---Azure Functions
---OpenAPI3.0(WebAPI)
-セキュリティ リスク([[既出>#df41ebf7]])
-アプリ開発(演習を参照)
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/bl...
--パッケージをインストールし、.envを構成
--agent.py にコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---コード・インタプリタがアップロード・ファイル(リソース...
---エージェントの作成
・モデル:gpt-4o
・Instructions:データ分析
・Tools:コード・インタプリタとそのリソース
---プロンプト
・Instructions:あなたは、アップロードされたファイル内の...
・ToolsのResource:以下が書かれたファイル(data.txt)
Category,Cost
Accommodation, 674.56
Transportation, 2301.00
Meals, 267.89
Misc., 34.50
・チャットに入力するプロンプト例~
・最もコストが高いカテゴリーは何ですか?~
・カテゴリ別にコストを示すテキストベースの棒グラフを作...
・コストの標準偏差はいくらですか?
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent.py
--エージェントと対話し、データ分析を実行~
コード・インタプリタを使って Python を実行し、統計値やチ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***VSC の Microsoft Foundry 拡張機能 [#i6afd9f2]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-Visual Studio Code 用の Microsoft Foundry 拡張機能を使用...
-機能:以下の統合エクスペリエンスを提供
--エージェントの検出と管理
--エージェント デザイナ(直感的デザイナ→YAML)
--ツールの追加(ツール ライブラリ、MCPサーバー)
--統合テスト - 組込プレイグラウンドでテスト
--デプロイ パイプライン - エージェントを直接デプロイ
--コード生成 - エージェントをアプリに統合するサンプルコー...
-演習~
ポータルで準備してVSC/WebAPIでテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--VS Code に Foundry 拡張を入れ Azure にログインしてプロ...
--Foundry プロジェクトが作成される(ハブではない、エンド...
--デザイナでエージェントを作成(名前/モデル/指示)、MCP ...
--エージェントを Foundry にデプロイして Playground で動作...
--エージェントをアプリに統合するサンプルコードを確認(実...
--会話履歴とスレッドを表示
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***カスタム・ツールをエージェントに統合 [#ie3cb7cf]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-Microsoft Foundry Agent Service で使用できるカスタム ツ...
--カスタム関数
--OpenAPI Specツール
--Azure Functions
--Azure Logic Apps
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--user_functions.py にカスタム関数を実装
---support ticket を生成してファイル保存する関数
---submit_support_ticket() を追加。
---その関数を user_functions セットに登録。
--agent.py にコードを追加([[コチラの演習>#sa255b44]]とほ...
コードの違いは、user_functionsをインポートしてtoolsetに加...
--Azure にログインしてアプリを実行
az login
python agent.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***マルチエージェント・ソリューション [#mc82d344]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-接続されているエージェント
--ツール化されたエージェントのようなもの
--複雑なオーケストレーションなしで、モジュール式のマルチ...
-マルチエージェント・ソリューションの設計
--主エージェント~
処理に最適な接続されたエージェントを決定し実行するオーケ...
---ユーザー入力の解釈
---適切な接続済みエージェントの選択
---関連するコンテキストと手順の転送
---結果の集計または要約
---接続されたエージェントの責任
--接続済みエージェント~
単一の責任ドメインに焦点を当て処理を実行するエージェント...
---明確なプロンプトに基づいて特定のアクションを完了する
---ツール (必要な場合) を使用してタスクを完了する
---メイン エージェントに結果を返す
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent_triage.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---特定の役割を果たす複数のエージェントを作成するコードを...
・チケットの優先順位を設定するエージェントを作成
・チケットを適切なチームに割り当てるエージェントを作成
・チケットの労力を見積もるエージェントを作成
---接続されたエージェントを使用してサポート チケット処理...
・サポート エージェント用に接続されたエージェント ツール...
・作成したエージェント ツールを使用するエージェントを定...
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent_triage.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***MCP ツールをエージェントに統合 [#aa348d8b]
https://learn.microsoft.com/ja-jp/training/modules/connec...
-[[MCP(Model Context Protocol)]]
-利点
--動的ツール検出:パッケージマネージャ的(スケーラビリテ...
--LLM 間の相互運用性:さまざまな大きな言語モデル (LLM) と...
--標準化されたセキュリティ:API ごとに個別のキーまたは認...
-MCPサーバとMCPクライアントを使用してエージェント ツール...
--MCP サーバ:エージェントが使用できるツールのレジストリ...
--MCP クライアント:MCP サーバと エージェント間のブリッジ...
---MCP サーバから使用可能なツールを検出
---ツールをラップする Python 関数スタブを生成
---これらの関数をエージェントに登録
--ツールを Azure AI エージェントに登録する
---MCP サーバーは、@mcp.toolで修飾されたツール定義をホスト
---MCP クライアントは、サーバーへの MCP クライアント接続...
---MCP クライアントは、session.list_tools()を使用して使用...
---各ツールはsession.call_toolを呼び出すために非同期関数...
-Microsoft Foundry Agent Service を使用して MCP サーバー...
--リモート MCP サーバーの統合
---必要なもの~
・リモート MCP サーバー エンドポイント ( https://api.gith...
・MCP ツールを使用するように構成された Microsoft Foundry ...
---ツール化~
・server_label: MCP サーバーの ID~
・server_url: MCP サーバーの URL。~
・allowed_tools (省略可能): エージェントがアクセスを許可...
---カスタム ヘッダー(コード)~
・認証キー (API キー、OAuth トークン)~
・MCP サーバーに必要なその他のヘッダー
--ツールの呼び出し
---サーバー ラベルと url を使用して McpTool オブジェクト...
---update_headersを使用して、サーバーに必要なヘッダーを適用
---set_approval_modeを使用して、承認が必要かどうかを判断...
---ToolSet オブジェクトを作成し、McpTool オブジェクトを追加
---エージェントの実行を作成し、 toolset プロパティを指定
---承認が必要な MCP サーバを呼び出す際~
・requires_actionの実行状態が表示(ツール、渡される引数の...
・ツールと引数を確認して、承認に関する十分な情報に基づい...
・承認を true に設定して、call_idを使用して承認をエージェ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent_triage.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---特定の役割を果たす複数のエージェントを作成するコードを...
・チケットの優先順位を設定するエージェントを作成
・チケットを適切なチームに割り当てるエージェントを作成
・チケットの労力を見積もるエージェントを作成
---接続されたエージェントを使用してサポート チケット処理...
・サポート エージェント用に接続されたエージェント ツール...
・作成したエージェント ツールを使用するエージェントを定...
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent_triage.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Microsoft Agent Framework (MAF) [#oabd5812]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-オープンソース SDKで、-Azure以外に、OpenAI、Anthropicな...
-Semantic Kernel(ワークフロー)と[[AutoGen>>https://dotn...
-ツール開発のベスト プラクティス
--明確な説明: AI が目的を理解するのに役立つ関数とパラメー...
--型の注釈: 適切な Python 型ヒントを使用して、予想される...
--エラー処理: 予期しない入力を適切に処理するための適切な...
--意味のあるデータを返す: AI が応答で効果的に使用できるデ...
--特定タスクに集中する: 1 つの関数で特定のタスクを処理す...
-エージェントの種類(概念的なもので、クラスではない)
--Microsoft Foundry Agent
--Chat Agent
--OpenAI Agent
--Anthropic Agent
-ワークフローのコア コンポーネント
--ノード(実行者/Executor)
--エッジ
---直接エッジ
---条件付きエッジ
---Switch-Case エッジ
---Fan-Out エッジ
---Fan-In エッジ
--イベント(監視とデバッグ)
---WorkflowStartedEvent :ワークフローの実行が開始された...
---WorkflowOutputEvent:ワークフローが出力を生成するとき
---WorkflowErrorEvent:エラーが発生したとき
---ExecutorInvokeEvent:Executor がタスクの処理を開始した...
---ExecutorCompleteEvent:Executor が作業を完了したとき
---RequestInfoEvent:外部要求が発行されたとき
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent-framework.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---経費メール送信用の カスタムツール関数(send_email) を...
---エージェントの作成
・モデル:gpt-4o
・Instructions:経費メールを送る
・Tools:send_email ツール
・Azure CLI 認証:AzureCliCredential
---エージェントに経費データを渡して応答を取得するコードを...
--Azure にログインしてアプリを実行
az login
python agent-framework.py
--エージェントと対話し(、data.txtの)、経費回答を受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***MAF の マルチエージェント ソリューション [#j5fc846d]
https://learn.microsoft.com/ja-jp/training/modules/orches...
-DevOps マルチエージェント ソリューションの例
--モニタ エージェント:ログとメトリックを継続的に取り込み...
--根本原因分析エージェント:機械学習モデルまたは定義済み...
--自動デプロイ エージェント:CI/CD パイプラインと対話して...
--レポート エージェント:異常、根本原因、および解決策を要...
-重要な理由(可能な操作)
--各エージェントに個別のスキル、責任、またはパースペクテ...
--複数のエージェントからの出力を結合して、意思決定と精度...
--各エージェントの作業が前の作業を基に進められるように、...
--コンテキストまたはルールに基づいてエージェント間で制御...
-オーケストレーション パターン
--順次:1 つのエージェントから次のエージェントへの出力を...
--同時:同じタスクを一度に複数のエージェントにブロードキ...
--ハンドオフ:コンテキストまたはルールに基づいてエージェ...
--グループ チャット:チャット マネージャーによって管理さ...
--マゼンティック:特別なエージェント間で計画、委任、適応...
-統合オーケストレーション ワークフロー(デザイナUIらしい...
--エージェントを定義し、その機能を記述
--オーケストレーション パターンを選択して作成
--(必要に応じて、マネージャーエージェントを追加)
--(必要に応じて、 カスタム入力およびコールバックまたは変...
--ランタイムを開始して実行を管理
--タスクでオーケストレーションを呼び出し
--非同期 の非ブロッキングの方法で結果を取得
-実装の共通項
--AzureOpenAIChatClient を設定し、AI サービス プロバイダ...
--create_agentでエージェントを定義
--Builder クラスでワークフローを定義
---participants() でエージェントを追加、
---build() でワークフローを構築する。
-順次
--ユースケース
---特定の順序で実行する必要がある複数のステップで構成され...
---各ステージで、次ステージが機能するために必要な重要な要...
---ステージを同時に実行できないため、次々に実行する必要が...
---コンテンツの下書き、レビュー、洗練など、段階的な改善が...
--アンチパターン
---1 つのエージェントでタスク全体を効果的に実行できる。
---ステージは、品質に影響を与えることなく、独立して並列実...
---順次実行では、初期段階で処理の停止や結果の修正方法が無...
---作業を順番に受け渡すのではなく、動的に共同作業する必要...
---反復、バックトラッキング、または動的ルーティングが必要
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(SequentialBuilder)
---ワークフローを実行(run_stream)
---ワークフロー イベントを処理(WorkflowOutputEvent)
---最後の会話を抽出
-同時
--ユースケース
---ブレーンストーミング
---異なる推論方法の組み合わせ (アンサンブル推論)
---投票またはコンセンサス (クォーラム) に基づいて意思決定
---速度が重要なタスク(並列で実行すると待機時間が短縮)
--アンチパターン
---互いの作業に基づき、特定順序の共有コンテキストに依存
---結果の競合や矛盾を解決する明確な方法が無い。
---共有コンテキストを確実に調整できない。
---厳密な一連の手順または予測可能で反復可能な結果が必要
---モデルの使用クォータなどのリソース制限がある場合
---結果を組み合わせると複雑になりすぎたり、全体的な品質が...
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(ConcurrentBuilder)
---ワークフローを実行(run)
---結果を処理する(get_outputs)
---集計された応答を処理
-グループ チャット
--ユースケース
---創造的なブレーンストーミング
---議論と合意から利益を得る意思決定
---学際的な対話が必要な複雑な問題
---複数の専門家の視点を必要とする
---作成とレビューを明確に分離
--アンチパターン
---単純なタスク委任または単純な線形パイプラインで十分
---リアルタイムの速度要件でオーバーヘッドが非現実的
---階層型または確定的なワークフローは、ディスカッションな...
---チャット マネージャーは、タスク完了タイミングを明確に...
---エージェントが多く会話フローの管理が複雑になりすぎる。
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(GroupChatBuilder)
---ワークフローを実行(run)
---結果を処理する(get_outputs)
---集計された応答を処理
---カスタマイズ(GroupChatManager)項目と呼び出し順~
・ユーザー入力を要求(should_request_user_input)~
・会話を終了するタイミング(should_terminate)~
・フィルタリングまたは要約(filter_results)~
・次のエージェントの選択方法(select_next_agent)
-ハンドオフ
--ユースケース
---専門的な知識やツールが必要だが、エージェントの数や順序...
---専門知識の要件は処理中に動的に発生し、コンテンツ分析に...
---複数ドメインの問題では、さまざまな専門家が順番に作業す...
---エージェントが制御をいつ、誰に転送するかを示すルールを...
--アンチパターン
---関係するエージェントとその順序は事前に固定できる。
---タスク ルーティングは単純で静的なルールベース
---動的なルーティングだと回答の品質が下がる。
---複数の操作を同時に実行する必要がある。
---無限ハンドオフループやバウンスの回避が困難。
--実装
---準備~
ワークフロー内でデータを安全かつ型付きで受け渡す。~
・AI サービス接続用のチャットクライアントを作成~
・Pydantic モデルで構造化 JSON 応答を定義~
・ワークフロー間で共有するデータクラスを作成~
・エージェントに response_format と JSON 出力命令を設定
---特殊Executorの作成~
ワークフローの各ステップで必要な処理を分離し流れを明確に...
・入力ストレージ Executor:分類エージェントへ転送するメッ...
・変換 Executor:エージェントの JSON 応答を型付きのルーテ...
・ハンドラー Executor:ガード条件(条件関数)を使って分類...
---ルーティングロジックの構築~
分類結果に応じて、次に呼び出すエージェントを切り替える条...
・受信メッセージや分類結果を評価する条件を設計~
・Case オブジェクトに条件を設定し、スイッチケース構造を構...
・予期しない分類結果のフォールバックとして必ず default ケ...
-マゼンティック
--ユースケース
---事前に定義されたソリューション パスを持たない複雑また...
---有効なソリューションを形成するには、複数の特殊なエージ...
---システムは、人間のレビューのための文書化されたアプロー...
---エージェントには、外部システムやリソースと直接やり取り...
---動的に構築された実行プランは、タスクを実行する前に価値...
--アンチパターン
---ソリューション パスは固定または確定的
---計画を動的に作成する必要はない。
---より軽量なオーケストレーション パターンに十分にシンプ...
---高速実行の計画が重視されるため、速度が優先される。
---解決パスが明確でなくても、頻繁にストールまたはループが...
--実装
---特殊なエージェントを定義
---イベント処理コールバックを設定
---ワークフローを構築(MagenticBuilder)
---標準マネージャーを構成(最大ラウンド数、ストール数、リ...
---ワークフローを実行(run_stream)
---ワークフロー イベントを処理(WorkflowOutputEvent)
---最終的な結果を抽出する
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--カスタマーサポート自動化
---問い合わせトリアージ
---VOC(Voice of Customer)分析
---問い合わせ→対応部署振り分け
---バグ報告や要望の整理
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agents.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---エージェントの作成
・モデル:gpt-4o
・Instructions:Summarizer、Classifier、Actionの役割
・Azure CLI 認証:AzureCliCredential
・SequentialBuilder:エージェントを順序付きで実行
・ChatMessage / WorkflowOutputEvent:入出力管理
---現在の顧客フィードバックを初期化
・ダッシュボードは毎日指標のモニタリングに使用しており、...
・昨日、アカウントにアクセスできなかったため、カスタマー...
---定義したエージェントを使用して順次オーケストレーション...
SequentialBuilder().participants([...]).build()
---オーケストレーションにデータを渡して応答を取得するコー...
--Azure にログインしてアプリを実行
az login
python agents.py
--オーケストレーションでカスタマーサポート自動化
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***A2A を使用して Azure AI エージェントを検出 [#zeaf9796]
https://learn.microsoft.com/ja-jp/training/modules/discov...
-[[ツールのMCPのエージェント版がACP → A2A>https://dotnetd...
-エージェント間 (A2A) プロトコルの利点
--強化されたコラボレーション
--柔軟なモデル選択
--統合認証
-定義するエージェント スキル(特定の機能を記述)の主な要素
--ID :スキルの一意の識別子
--名前:スキルを説明するための人が読みやすい名前。
--説明:スキルの動作の詳細な説明。
--タグ:分類と検出を容易にするキーワード。
--例 :実際のスキルを示すサンプル プロンプトまたはユース...
--入力/出力モード:データ形式またはメディアの種類
-公開するエージェント カード(デジタル 名刺)の主な要素
--ID 情報: エージェントの名前、説明、およびバージョン。
--エンドポイント URL: エージェントの A2A サービスにアクセ...
--機能: ストリーミングやプッシュ通知など、サポートされて...
--入出力モード: エージェントが処理できるプライマリ メディ...
--認証のサポート: エージェントがアクセスに資格情報を必要...
--スキル: 他のエージェントが呼び出すことができるエージェ...
-エージェント Executor を実装
--AgentExecutor インターフェイスは、エージェントに送信さ...
---ユーザーまたは他のエージェントによって要求されたタスク...
---応答をストリーム配信するか、個々のメッセージをクライア...
---サポートされている場合は、タスクの取り消しを処理
--要求処理フロー
---A2Aエージェントにはコア ロジックを実装する小さなヘルパ...
---Executor は要求を受け取り、エージェントのロジックを呼...
---Executor は、結果をイベントとしてラップし、イベント キ...
---ルーティング メカニズムは、イベントを要求元に送り返す。
-A2A サーバーをホスト
--ホストによってできるようになること
---エージェント カードを介してその機能を公開、検出できる...
---サーバーはエージェント・ロジックと外部の世界との間のブ...
---受信した A2A 要求を受信し、処理のために エージェント E...
---ストリーミング応答やステートフルな対話など、タスクのラ...
--コア コンポーネント
---エージェント カード~
・エージェントの機能、スキル、入出力モードについて説明~
・標準エンドポイント (通常は /.well-known/agent-card.json...
---要求ハンドラー~
・着信要求を エージェント Executor の適切なメソッドにルー...
・タスク ストアを使用してタスクのライフサイクルを管理。追...
---サーバー アプリケーション~
・HTTP 要求を処理するための Web フレームワーク (Python で...
・asyncioのASGI サーバー (Uvicorn など) と組み合わせて、N...
・エージェント カードと要求ハンドラを公開し、クライアント...
--A2A エージェント サーバーの設定
---エージェントのスキルとエージェント カードを定義
---Executor をタスク ストアにリンクする要求ハンドラーを初...
---エージェント カードと要求ハンドラーを提供して、サーバ...
---ASGI サーバーを使用してサーバーを起動し、ネットワーク...
---実行によりエージェントは受信要求をリッスンし、定義され...
-A2A エージェントに接続
--クライアントのやること
---エージェント カードの検出
---エージェントに要求を送信
---エージェントの応答を受信
--エージェント サーバーに接続
---クライアントは、サーバーの ベース URL を 認識
---サーバー上の既知のエンドポイントからエージェント カー...
---クライアントを初期化し、メッセージを送信できる接続を確立
--エージェントに要求を送信
---非ストリーミング要求:メッセージを送信し、完全な応答を...
---ストリーミング要求:メッセージを送信し、応答を増分的に...
--エージェントの応答を処理
---ダイレクト メッセージ:テキストや構造化コンテンツなど...
---タスク ベースの応答:進行中のタスクを表すオブジェクト...
--エージェントとの対話
---各要求は一意に識別。多くの場合、生成された ID を使用。
---ストリーミング応答は非同期であり、最終的な出力の前に部...
---単純なエージェントはメッセージを直接返す。高度なエージ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--「タイトル生成エージェント」と「アウトライン生成エージ...
---タイトルエージェント → ブログタイトルを生成
---アウトラインエージェント → タイトルを受け取り記事構成...
---ルーティングエージェント → プロンプトからどのエージェ...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
python
├── outline_agent/
│ ├── agent.py
│ ├── agent_executor.py
│ └── server.py
├── routing_agent/
│ ├── agent.py
│ └── server.py
├── title_agent/
│ ├── agent.py
│ ├── agent_executor.py
│ └── server.py
├── client.py
└── run_all.py
--パッケージをインストールし、.envを構成
--タイトル・エージェントを実装
---title_agent/agent.py~
・インポートの追加:AgentsClient、CodeInterpreterTool な...
・Foundry プロジェクトへ接続:DefaultAzureCredential を使...
・スレッド・メッセージを作成、runs.create_and_processで実...
---title_agent/server.py~
・エージェント スキル・エージェント カードを定義~
・Executor を作成し要求ハンドラに設定~
・A2A サーバのアプリケーション インスタンスを作成。
--ルーティング・エージェントの実装~
routing_agent/agent.py にて:
---ユーザーの入力を解析し、どのエージェントに送るか判断
---A2A でリモート・エージェントExecutorへメッセージ送信
---非同期で send_message を await し、結果を受け取る
--エージェント Executor を実装~
title_agent/agent_executor.py にて:
---エージェントの生成(await self._get_or_create_agent())
---タスクのステータスを更新(task_updater.update_status)
---エージェントの会話を実行(run_conversation)
---応答でタスクを更新(task_updater.update_status)
---タスクを完了としてマーク(task_updater.complete)
--Azure にログインしてアプリを実行
az login
python run_all.py
--エージェントと対話し、React プログラミングに関する記事...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**自然言語ソリューションを開発 [#c1380f09]
https://learn.microsoft.com/ja-jp/training/paths/develop-...
***テキスト分析(Azure AI Language - Language Service) [...
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Azure Language の基本機能~
テキストから言語検出、感情分析、抽出(キー・フレーズ、名...
-機能
--感情分析:0-1の肯定/中立/否定の3値
--キー・フレーズ:名詞に限らない単語。
--エンティティ:人、場所、住所、日時、組織、URI系(カテゴ...
--エンティティ リンク:同音異義語などWikiにリンクするので...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成。
---キーとエンドポイントを後で使うために確認しておく。
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--text-analysis.pyにコードを追加
---インポートの追加:Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---各分析機能の呼び出しを追加(メソッド呼び出し)~
detect_language、analyze_sentiment、extract_key_phrases、...
XXXXX = ai_client.XXXXX(documents=[text])[0]
...
--エンドポイント&APIキーを使用してアプリを実行
python text-analysis.py
--実行結果の確認~
言語、感情、キーフレーズ、エンティティ、リンク付きエンテ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Q&A(Azure AI Language - Language Service) [#u8f48caa]
https://learn.microsoft.com/ja-jp/training/modules/create...
-Azure Language の質問に回答する機能(Q&A サービス)
-ユース ケースの違い
||質問応答|言語理解|h
|パターン|ユーザーが質問を送信し回答を待つ|ユーザーが発話...
|クエリ処理|自然言語の理解を使用しKB回答に質問を一致させ...
|応答|応答は既知の質問に対する静的な回答|応答では、最も可...
|クライアント ロジック|ユーザーに質問の回答を表示|検出さ...
-KBのタイプ
--タイトルとリンク
--構造化されたテキスト
--定義済みのチャットパターン
-KBの作成
--Azure portalのFoundry Toolsの言語サービス リソースの下...
--"質問応答" 機能を有効にします。KBをホストする Azure AI ...
--Language Studio で、Azure 言語リソースを選択しカスタム...
--1 つまたは複数のデータ ソースを追加して、KBを設定(FAQ...
-テストしてデプロイ
-KBをAzure AI SearchでRAG Index化した際のクエリ~
質問、top(-K)、しきい値、メタデータでフィルタ~
-精度向上施策
--マルチターン会話の実装(フォローアップ・プロンプトと応...
---Alternate questions(言い換え質問):ユーザーが同じ意...
---Follow-up prompts(フォローアップ質問):回答後に、ユ...
--アクティブ・ラーニング(Q&Aから学習し代替質問のKB追加を...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom Question Answering を有効化
---Azure Search(Cognitive Search)も自動的に紐づく
---後で使う エンドポイントとキー を確認しておく
--新規Custom Question Answeringプロジェクト LearnFAQ を作成
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
---デフォルト回答も設定
--KBにデータを追加
---FAQ ページの URL に Microsoft Learn の FAQ ページを取...
https://learn.microsoft.com/en-us/training/support/faq?pi...
---“Friendly” スタイルのChit-chat(雑談応答)として追加
---「Hello」「Thanks」などの雑談に応答できるようにする
--KBのデータを編集
---自分で新しい Q&A ペアを追加~
例:「What are the different types of modules on Microsof...
---Alternate questions(言い換え質問)を追加
---Follow-up prompts(フォローアップ質問)を設定
--KBのトレーニングとテスト
---Save → Test でテストパネルを開く
---「Hello」「What is Microsoft Learn?」などを入力して動...
---フォローアップ・リンクも確認
--KBのデプロイ
---「Deploy knowledge base」から production にデプロイ
---「Get prediction URL」で REST API のエンドポイントを確認
---サンプル リクエストにprojectName/deploymentNameパラメ...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--qna-app.pyにコードを追加
---インポートの追加:Azure AI Language Question Answering...
---クライアント(QuestionAnsweringClient)を生成
---入力された質問を API に送信し、回答を表示するループを...
--エンドポイント&APIキーを使用してアプリを実行
python qna-app.py
--実行して質問を投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***CLU(Azure AI Language - Language Service) [#i49a9c5c]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-Azure Language の会話言語理解(CLU)モデルを構築
-[[ユース ケースの違い>#u8f48caa]]
-事前構成済みの機能(= [[テキスト分析>#ffe0efec]])~
概要、固有表現認識、PII検出、キー フレーズ抽出、感情分析...
-学習済み機能
--教師あり学習とデプロイを行う必要がある。
--会話言語理解 (CLU)、カスタム固有表現認識、カスタム テキ...
-エンティティ定義
--発話、意図(インテント)、種類(学習/リスト)
--「発話」のパターンを定義して類似した発話の「意図」を区...
--1 つのエンティティにつき、最大 5 つの事前構築済みコンポ...
-モデルのトレーニング、テスト、発行、およびレビュー
--トレーニング:サンプル発話から意図とエンティティを学習
--テスト:対話形式か、データセットを使用
--トレーニング済みのモデルをパブリック エンドポイントにデ...
--クライアント アプリで予測を確認
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---後で使う エンドポイントとキー を確認しておく
--Language Studioで新規Conversational language understand...
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
--意図(インテント)を追加
---GetTime(時刻を知りたい)既定~
ラベル付けの発話を入力:what is the 18:37:48、what's the ...
---GetDay(曜日を知りたい)を追加~
ラベル付けの発話を入力:what day is it?、what's the day?...
---GetDate(日付を知りたい)を追加~
ラベル付けの発話を入力:what date is it?、what's the 2026...
--意図(インテント)のテスト
---トレーニングジョブを実行し、モデルを学習
---精度(Precision / Recall / F1)や混同行列を確認
---デプロイ(production)してテスト発話で動作確認
--エンティティを追加
---Learned Entity(学習型)~
Location:“London”, “Paris”, “New York” などをラベル付け
---List Entity(リスト型)~
Weekday:Sunday〜Saturday とその略称(Mon, Tue, Wed…)
---Prebuilt Entity(組み込み)~
Date(DateTime):“01/01/1901”, “Dec 31st 2099” などを自...
--エンティティのテスト
---トレーニングジョブを実行し、モデルを学習
---精度(Precision / Recall / F1)や混同行列を確認
---デプロイ(production)してテスト発話で動作確認
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--clock-client.pyにコードを追加
---インポートの追加:Azure AI Language Conversations SDK
---クライアント(ConversationAnalysisClient)を生成
---ユーザーが「終了」するまで入力を促す~
・ユーザー入力をモデルに送信し~
・返ってきた Intent / Entity を解析~
・GetTime / GetDay / GetDate に応じて処理を実行
--エンドポイント&APIキーを使用してアプリを実行
python clock-client.py
--実行して質問を投げ結果を確認
---こんにちは
---今何時ですか?
---ロンドンの時刻は何時ですか?
---日付は何ですか?
---日曜日は何日ですか?
---今日は何曜日ですか?
---2025年1月1日は何日ですか?
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***分類(Azure AI Language - Language Service) [#sa0e416c]
https://learn.microsoft.com/ja-jp/training/modules/custom...
-2 種類のプロジェクト:単一ラベル分類、複数ラベル分類
-分類問題のモデルの評価と改善(一般論)
-APIペイロード(JSONインターフェイス)
-データ(ラベル定義、タグを付け)、モデル(トレーニング、...
-WebAPIが特徴的で、分類テキストをPOSTで送信した後、operat...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom text classification & extraction を有効化
---ストレージアカウントの確認(StorageV2)とRBACの設定
---後で使う エンドポイントとキー を確認しておく
--学習データの準備
---サンプル記事のZIPをダウンロード~
https://aka.ms/classification-articles
---ZIPをストレージ アカウントのBLOBコンテナにアップロード
---コンテナ設定(匿名アクセスの一時的許可)
--Language Studioで新規Custom text classificationプロジェ...
---前に作成した Azure AI Language リソースを選択
---Single label classification
---言語は英語を選択
---BLOBコンテナに接続
--データのラベル付け
---クラス(4分類)の作成
---各記事へのラベル付与
---Training / Testing の割り当て
---ラベルの保存
--モデルのトレーニング
---トレーニングジョブの作成
---手動データ分割の利用
---トレーニング完了の確認
--モデルの評価
---モデル性能の確認
---誤分類の確認
---改善ポイントの把握
--モデルのデプロイ
---デプロイメントの作成
---デプロイ名とモデルの指定
---API利用準備
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--classify-text.pyにコードを追加
---インポートの追加:Azure AI Language Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---分類バッチを実行して結果を表示する。
--エンドポイント&APIキーを使用してアプリを実行
python classify-text.py
--実行して分類バッチを投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***NER(Azure AI Language - Language Service) [#w730a092]
https://learn.microsoft.com/ja-jp/training/modules/custom...
-テキスト分類というより、単語の分類という感じ。
-カスタムの名前付きエンティティ認識 (カスタム固有表現認識)
-エンティティは、人、場所、物、イベント、スキル、または値
-組み込み型NERと、カスタム化されたNERがある。
-データについてのポイント(多様性/分布/精度)
-ラベル付与でのポイント(整合性/精度/完全性)
-テスト
--トレーニングジョブを実行し、モデルを学習
--精度(Precision / Recall / F1)や混同行列を確認
--デプロイ(production)してテスト発話で動作確認
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom NER(カスタム固有表現抽出)機能を有効化
---ストレージアカウントの確認(StorageV2)とRBACの設定
---後で使う エンドポイントとキー を確認しておく
--学習データの準備
---サンプル記事のZIPをダウンロード~
https://aka.ms/entity-extraction-ads
---ZIPをストレージ アカウントのBLOBコンテナにアップロード
---コンテナ設定(匿名アクセスの一時的許可)
--Language Studioで新規Custom named entity recognitionプ...
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
---BLOBコンテナに接続(ラベルなしデータとして読み込む)
--データラベリング
---3エンティティ作成(ItemForSale/Price/Location)
---各広告ファイルを開き、該当部分をハイライトしてラベル付け
---全 9 ファイルをラベル付けし、保存
--モデルのトレーニング/評価/デプロイ
---テストデータは自動分割、数分待つとトレーニング完了
---Model performanceで精度を確認、失敗ケースの改善ポイン...
---Deploying a model → 新規デプロイ(モデルを選択しデプロ...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--custom-entities.pyにコードを追加
---インポートの追加:Azure AI Language Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---NERバッチを実行して結果を表示する。
--エンドポイント&APIキーを使用してアプリを実行
python custom-entities.py
--実行してNERバッチを投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***翻訳(Azure AI Translator - Translators) [#c0920d1d]
https://learn.microsoft.com/ja-jp/training/modules/transl...
-Azure Translatorは 90 の言語間でテキストを翻訳
-次の目的で使用できる多言語テキスト翻訳 API が用意
--言語検出:detection
--翻訳:translation
--音訳:transliteration
-翻訳オプション
--ワード・アラインメント:includeAlignment=trueで単語間の...
--文の長さ:includeSentenceLength=trueで翻訳前後の文字数
--フィルター処理:
---profanityAction=NoAction/Deleted/Marked
---profanityMarker=伏せ字やタグを指定できる。
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Translatorリソースの作成
---Azure Portal で Translators を作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--translate.pyにコードを追加
---インポートの追加:Azure AI Translation SDK
---クライアント(TextTranslationClient)を生成
---ターゲット言語を選択、
---ユーザーが「終了」するまで入力を促す
--エンドポイント&APIキーを使用してアプリを実行
python translate.py
--実行して翻訳結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声(Azure AI Speech - Speech service) [#r542d84b]
https://learn.microsoft.com/ja-jp/training/modules/create...
-Azure Speech の API
--音声テキスト変換
--テキスト読み上げ
--音声翻訳
--キーワード認識
--意図認識
-Azure Speech to Text API
--機能
---リアルタイム文字起こし
---ファスト トランスクリプション: 最速の同期出力
---バッチ文字起こし: 大量の録音済みオーディオに対して効率...
---Custom Speech:特定のドメインおよび条件に対して精度を...
--使用
---SpeechConfig(リソースの場所とキー、その他、SpeechSynth...
---AudioConfig(形式:ファイルの種類/サンプル レート/ビッ...
---SpeechConfig と AudioConfig を使用して SpeechRecognize...
---RecognizeOnceAsync()で非同期的に文字起こし。結果は(期...
--SSML~
音声合成マークアップ言語 (SSML) 構文
<speak version="1.0" xmlns="http://www.w3.org/2001/10/sy...
xmlns:mstts="https://www.w3.org/200...
<voice name="en-US-AriaNeural">
<mstts:express-as style="cheerful">
I say tomato
</mstts:express-as>
</voice>
<voice name="en-US-GuyNeural">
I say <phoneme alphabet="sapi" ph="t ao m ae t o...
<break strength="weak"/>Lets call the whole thin...
</voice>
</speak>
Aria は cheerful に “I say tomato” と発音、Guy は別の発音...
「もうやめにしよう!」([[発音の違いでケンカになるカップル...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Speechリソースの作成
---Azure Portal で Speech serviceを作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--speaking-clock.pyにコードを追加
---インポートの追加:Azure AI Speech SDK
---音声認識(Speech-to-Text)~
・SpeechConfig と AudioConfig を設定して SpeechRecognizer...
・音声ファイルを読込、recognize_once_async() で音声をテキ...
---音声合成(Text-to-Speech)~
・SpeechConfig と AudioConfig を設定して SpeechSynthesize...
・出力ファイルを指定、speak_text_async() で音声を生成
--エンドポイント&APIキーを使用してアプリを実行
python speaking-clock.py
--実行して結果を確認
---音声認識
---音声合成
--オプション
---音声合成部分を SSML に置き換え
---マイク・スピーカーがある場合のコード
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声翻訳(Azure AI Speech - Speech service) [#j7c2f7a1]
https://learn.microsoft.com/ja-jp/training/modules/transl...
-音声の翻訳
--SpeechTranslationConfig(リソースの場所とキー、その他、...
--AudioConfig(形式:ファイルの種類/サンプル レート/ビッ...
--SpeechTranslationConfig と AudioConfig を使用して Trans...
--RecognizeOnceAsync()で非同期的に音声翻訳。結果は(期間/...
-翻訳の音声合成
--イベントベース~
TranslationRecognizer オブジェクトに合成イベントのイベン...
--手動~
---SpeechRecognitionResultの翻訳結果を反復処理し、SpeechS...
---手動dで翻訳を音声に合成する場合は、SpeechConfig を使用...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Speechリソースの作成
---Azure Portal で Speech serviceを作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--translator.pyにコードを追加
---インポートの追加:Azure AI Speech SDK
---SpeechTranslationConfig、AudioConfig、SpeechConfigの設定
---音声の翻訳、翻訳の音声合成を実装する。
--エンドポイント&APIキーを使用してアプリを実行
python translator.py
--実行して音声の翻訳 → 翻訳の音声合成の結果を確認
--オプション:マイク・スピーカーがある場合のコード
---マイク入力用の SpeechRecognizer
---スピーカー出力用の SpeechSynthesizer
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声LLM(Phi-4-multimodal-instruct) [#j08fd747]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-音声テキスト変換→LLMではなく、Phi-4-multimodal-instruct...
-テキスト コンテンツとオーディオ コンテンツの両方を含むマ...
-メッセージには、URL または バイナリ データ として オーデ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Foundry プロジェクトにマルチモーダルLLMモデルをデプロイ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--audio-chat.pyにコードを追加
---インポートの追加:AIProjectClientなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AIProjectClientを作成
---オーディオ ファイルを取得/エンコード
---オーディオ入力への応答を取得
--Azure にログインしてアプリを実行
az login
python audio-chat.py
--マルチモーダルLLMモデルとプロンプト+音声で対話し、回答...
(この例ではプロンプトで音声情報の内容に関する質問をして...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Voice Live [#j8daa5bb]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-リアルタイム対話型音声ソリューション用(LLMと音声で対話)~
以下の 3 つを 低遅延で一体化 したリアルタイム音声対話エン...
--音声認識(Speech-to-Text)
--LLM 推論(GPT‑4o Realtime など)
--音声合成(Text-to-Speech)
-Azure Voice Live API
--機能~
音声認識、テキスト読み上げ合成、アバター ストリーミング、...
---PCM16 や G.711 などの複数の形式をサポートするリアルタ...
---OpenAI 音声や Azure カスタム音声などの高度な音声オプシ...
---ビデオとアニメーションに WebRTC を使用したアバター統合
---ノイズリダクションとエコーキャンセルを内蔵
--接続
---トークン ベースの認証
---Microsoft Entra ID で推奨されるキーレス認証
--WebSocket エンドポイント
---プロジェクト接続
---モデル接続
--イベント~
クライアント イベントとサーバー イベントがある。
---クライアント イベント~
・session.update: セッション構成の変更~
・input_audio_buffer.append: バッファにオーディオ データ...
・response.create: モデル推論を使用して応答を生成
---サーバー イベント~
フィードバックと状態の更新を提供~
・session.updated: セッション構成の変更~
・response.done: 応答生成の完了~
・conversation.item.created: 新しい会話アイテムが追加
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Cloud Shell で演習ファイルを取得
mkdir voice-live-web && cd voice-live-web
wget https://github.com/MicrosoftLearning/mslearn-ai-lan...
unzip voice-live-web.zip
--Flask アプリに Voice Live エージェントの実装を追加
---__init__ と start() の実装~
Voice Live SDK を使うための初期化コードを追加。
---セッション設定の追加~
・モダリティ(TEXT + AUDIO)~
・TTS の音声設定~
・入出力音声フォーマット(PCM16)~
・サーバー側 VAD(Voice Activity Detection)
--音声イベントのハンドラを実装
---SESSION_UPDATED → 会話準備完了
---SPEECH_STARTED → ユーザーが話し始めた
---SPEECH_STOPPED → 入力終了、処理開始
---RESPONSE_AUDIO_DELTA → 音声応答送信開始
---RESPONSE_AUDIO_DONE → 音声応答送信完了
---ERROR → エラー処理
--デプロイ用スクリプトを編集し、Azure へデプロイ
---デプロイ用スクリプト(azdeploy.sh)を編集~
・リソースグループ名~
・デプロイ地域
---Azure へデプロイ~
bash azdeploy.sh~
・モデルデプロイ~
・ACR でコンテナ・イメージ作成~
・App Service へデプロイ
--アプリをテスト
---App Service の URL を開く
---「Start session」を押して音声デバイスを許可
---マイクに向かって話しかけるとリアルタイム応答
--リソースのクリーンアップ~
Azure Developer CLI が azd up / azd provision で作成した ...
(azdeploy.shn内部でAzure Developer CLI が azd up / azd p...
azd down --purge
**CVソリューションを開発 [#xb12c321]
https://learn.microsoft.com/ja-jp/training/paths/create-c...
-Azure Vision は Computer Vision
-機能
--画像分析
--光学式文字認識 (OCR)
--顔検出と分析
--ビデオ分析
***画像分析(Azure AI Vision - Computer Vision) [#vfd32b...
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-ココでは画像分析に絞って説明
-画像分析のユースケース
--コンテンツ・イメージのキャプション生成
--画像に関連付ける適切な タグ を提案
--画像内の一般的な オブジェクト/ユーザー を検出
-Azure Vision API
--画像要件
---画像は JPEG、PNG、GIF、または BMP 形式
---イメージのファイル サイズは 4 MB未満
---画像の寸法は 50 x 50 ピクセル以上
--機能~
使用可能なビジュアル機能は、 VisualFeatures 列挙体に含ま...
---VisualFeatures.Read: 読み取り可能なテキストを抽出
---VisualFeatures.Tags: 画像に関するタグを識別
---VisualFeatures.Caption: 自然言語で画像のキャプションを...
---VisualFeatures.Objects:検出オブジェクトの境界ボックス...
---VisualFeatures.DenseCaptions: 検出オブジェクトの詳細な...
---VisualFeatures.People:検出された人物の境界ボックスを返す
---VisualFeatures.SmartCrops: 対象領域での指定した縦横比...
--接続
---トークン ベースの認証
---Microsoft Entra ID で推奨されるキーレス認証
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Computer Visionを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--image-analysis.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---ImageAnalysisClientを作成
---画像分析の実施(visual_features=[VisualFeatures.CAPTIO...
---画像の提案タグ/キャプション/高密度キャプションを表示、...
--エンドポイント&APIキーを使用してアプリを実行
python image-analysis.py images/street.jpg
--各種画像の画像分析を行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***OCR(Azure AI Vision - Computer Vision) [#yee2bc53]
https://learn.microsoft.com/ja-jp/training/modules/read-t...
-ココでは光学式文字認識 (OCR)に絞って説明
-テキストを読み取るための Azure AI オプション
--Azure Vision
---ドキュメントのスキャン
---写真内のテキストの検索と読み取り
---デジタル資産管理 (DAM)
--Azure Document Intelligence
---フォーム処理
---事前構築済みモデル
---カスタム モデル
--Azure Content Understanding
---マルチモーダル コンテンツ抽出
---カスタム コンテンツ分析シナリオ
-画像内のテキストの位置情報は、テキスト行の位置と個々の単...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Computer Visionを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--read-text.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---ImageAnalysisClientを作成
---OCRの実施、見つかったテキスト行を印刷
---画像内で注釈を付ける関数を呼び出し
---個々の単語の位置を返す
--エンドポイント&APIキーを使用してアプリを実行
python read-text.py images/Lincoln.jpg
--各種画像のOCRを行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***顔検出と分析(Azure AI Vision - Face) [#d4f95527]
https://learn.microsoft.com/ja-jp/training/modules/detect...
-ココでは顔検出と分析に絞って説明
-Azure Vision Face API
--顔検出
--顔属性分析
---眼鏡、マスク、ノイズ、オクルージョン、アクセサリー
---露出、ぼかし、頭部姿勢、QualityForRecognition
--顔の主要なランドマークの座標
--顔比較 - 確認(複数の画像の中から見つける)と検証(2つ...
--顔認識 - モデルをトレーニングし、モデルを使用して新しい...
--ライブネス - 入力ビデオが実際のストリームか偽物かを判断...
-顔を確認して識別する
--顔の確認:顔が検出されると、一意の ID が割り当てられ、...
--顔の識別:個人を人物グループにさまざまなポーズで追加し...
--ユースケース
---画像内の個人を識別、顔 ID を付与。
---新しい画像から既知の顔に似た顔を見つける。
-責任ある AI に関する考慮事項
--データのプライバシーとセキュリティ:トレーニングと推論...
--透明性: 顔データの使用方法と、その顔データへのアクセス...
--公平性と包摂性:顔ベースのシステムを、見た目に基づいて...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Faceを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--analyze-faces.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---FaceClientを作成
---顔を検出して分析
--エンドポイント&APIキーを使用してアプリを実行
python analyze-faces.py images/face1.jpg
--各種画像の顔分析を行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像分類(Azure Custom Vision) [#s2cc29d5]
https://learn.microsoft.com/ja-jp/training/modules/classi...
-ココでは「Azure AI Custom Visionの画像分類」に絞って説明
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure Custom Visionリソースの作成
---Azure Portal で Custom Visionを作成
---トレーニング、予測価格レベル: F0 (無料)
---プロジェクトの種類: 分類、分類タイプ: マルチクラス、分...
---プロジェクト ID、エンドポイントとキー を確認しておく
---Training 用と Prediction 用で キーが異なる
--GUIでトレーニング
---画像をダウンロード&アップロードしてタグ付け~
https://github.com/MicrosoftLearning/mslearn-ai-vision/ra...
---トレーニング → クイックトレーニング
---トレーニング後メトリックを確認しクイック テスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--APIでトレーニング
---パッケージをインストールし、.envを構成(トレーニングリ...
---train-classifier.pyのコードを確認(CustomVisionTrainin...
---エンドポイント&APIキーを使用してアプリを実行
python train-classifier.py
---画像分類のトレーニング結果を確認する。
--APIで画像分類
---トレーニング済みのモデルを公開
---パッケージをインストールし、.envを構成(予測リソースの
---test-classifier.pyのコードを確認(CustomVisionPredicti...
---エンドポイント&APIキーを使用してアプリを実行
python test-classifier.py
---画像分類の結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***物体検出(Azure Custom Vision) [#d92e283d]
https://learn.microsoft.com/ja-jp/training/modules/detect...
-ココでは「Azure AI Custom Visionの物体検出」に絞って説明
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure Custom Visionリソースの作成
---Azure Portal で Custom Visionを作成
---トレーニング、予測価格レベル: F0 (無料)
---プロジェクトの種類: 物体検出、ドメイン: 一般
---プロジェクト ID、エンドポイントとキー を確認しておく
---Training 用と Prediction 用で キーが異なる
--GUIでトレーニング
---画像をダウンロード&アップロード~
https://github.com/MicrosoftLearning/mslearn-ai-vision/ra...
---タグ付けし、必要に応じて領域のサイズを変更
---スマート ラベラー ツールを使う場合、最初の物体検出モデ...
---トレーニング → クイックトレーニング
---トレーニング後メトリックを確認しクイック テスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--APIでアップロード
---パッケージをインストールし、.envを構成(トレーニングリ...
---tagged-images.jsonのタグ付き領域リストを確認
---add-tagged-images.pyのコードを確認(CustomVisionTraini...
---エンドポイント&APIキーを使用してアプリを実行
python add-tagged-images.py
---画像のアップロード結果を確認する。
--APIでトレーニング(なし)
--APIで物体検出
---トレーニング済みのモデルを公開
---パッケージをインストールし、.envを構成(予測リソースの
---test-detector.pyのコードを確認(CustomVisionPrediction...
---エンドポイント&APIキーを使用してアプリを実行
python test-detector.py
---物体検出の結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ビデオ分析(Video Indexer) [#ycced0f1]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-ココでは「ビデオから分析情報を抽出する」ビデオ分析に絞っ...
-Azure Video Indexer は、顔識別、テキスト認識、オブジェク...
-機能
--顔認識
--光学式文字認識(OCR)
--音声文字起こし
--トピック
--センチメント
--ラベル
--コンテンツモデレーション
--シーン分割
-カスタム モデル
--「顔」認識
--「言語」認識
--「ブランド」認識
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Video Indexer に動画をアップロード
---Video Indexer ポータル(https://www.videoindexer.ai)...
---Responsible AI 動画(https://aka.ms/responsible-ai-vid...
---「Responsible AI」という名前に変更し、ポリシー確認後ア...
---数分待つと自動でインデックス化される
--抽出されたインサイトを確認
---Transcript(音声文字起こし)
---OCR(画面内テキスト)
---Speakers(話者識別)
---Insights ペイン~
・出演人物~
・話題(Topics)~
・オブジェクトラベル~
・ブランドや人物などのエンティティ~
・キーシーン~
・キーワード~
・感情分析(Sentiment)
---Insights検索~
・Insights ペインの検索ボックスで特定の内容を検索可能~
・例:「Bee」で検索すると、動画内の該当箇所へジャンプ
--GitHub リポジトリからサンプルを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
---APIからVideo Indexerの結果を確認
・Video Indexer の Account ID と API Key を取得。~
・PowerShell スクリプト(get-videos.ps1)に値を設定し、RE...
・JSONに以前にインデックスを作成したResponsible AIビデオ...
---ウィジェットからVideo Indexerの結果を確認~
・Video Indexer ポータルからPlayer widget、Insights widge...
・analyze-video.htmlのHTML に貼り付けて保存。ブラウザで動...
・以前にインデックスを作成したResponsible AIビデオの詳細...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像LLM(gpt-4o) [#t437fc1b]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-[[音声LLM>#j08fd747]]の画像版なので画像LLM
-画像テキスト変換→LLMではなく、gpt-4oなどのマルチモーダル...
-テキスト コンテンツとビデオ コンテンツの両方を含むマルチ...
-メッセージには、URL または バイナリ データ として オーデ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Foundry プロジェクトにマルチモーダルLLMモデルをデプロイ
--プレイグラウンドでモデルをテスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--chat-app.pyにコードを追加
---インポートの追加:AIProjectClientなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AIProjectClientを作成
---URLベースの画像プロンプトを送信
---画像プロンプトへの応答を取得
--Azure にログインしてアプリを実行
az login
python chat-app.py
--マルチモーダルLLMモデルとプロンプト+画像で対話し、回答...
(この例ではプロンプトで画像情報の内容に関する質問をして...
--オプション:ローカル画像ファイルをアップロードするよう...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像生成(dall-e-3) [#rab01ff2]
https://learn.microsoft.com/ja-jp/training/modules/genera...
-画像生成モデル:DALL-E 3、GPT-Image 1など
-プレイグラウンドで設定(解像度/スタイル/画質)を調整して...
-DALL-E モデルのAPIのパラメタ(prompt/n/size/quality/style)
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Foundry プロジェクトに画像生成モデルをデプロイ
--プレイグラウンドでモデルをテスト
--エンドポイント、APIバージョン、デプロイ名を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--dalle-client.pyにコードを追加
---インポートの追加:AzureOpenAIなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AzureOpenAIを作成
---プロンプトを送信
---画像のURLを取得
--Azure にログインしてアプリを実行
az login
python dalle-client.py
--画像生成モデルのプロンプトへの回答を受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**AI 情報抽出ソリューションを開発 [#n812be37]
https://learn.microsoft.com/ja-jp/training/paths/ai-extra...
***マルチモーダル コンテンツ分析ソリューション [#r67c5b78]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Content Understanding は、マルチモーダルの情報抽出AI
--請求書など「ドキュメントとフォーム」を分析し、特定のフ...
--画像の特定のオブジェクトや人物の存在を検出、他の情報を...
--電話会議の要約、会話記録kからの感情判断、電話録音からの...
--プレゼンテーション要約、ビデオ会議のポイント、セキュリ...
-ポータル
--Foundry ハブ リソースを作成
--抽出する情報の Content Understanding スキーマを定義して...
--(使用可能なスキーマのテンプレート・フィールドは、コン...
--完成したスキーマに基づいてアナライザーを構築
--アナライザーを使用して、新しいコンテンツからフィールド...
-REST APIの使用~
非同期に要求して結果を取得する(認証はAPIキーを使用する)。
--リクエスト
POST {endpoint}/contentunderstanding/analyzers/{analyzer...
{
"url": "https://host.com/doc.pdf"
}
--レスポンス
Operation-Id: 1234abcd-1234-abcd-1234-abcd1234abcd
Operation-Location: {endpoint}/contentunderstanding/anal...
{
"id": "1234abcd-1234-abcd-1234-abcd1234abcd",
"status": "NotStarted"
}
--リクエスト
GET {endpoint}/contentunderstanding/analyzers/{analyzer}...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--請求書(PDF)/スライド画像(JPG)/音声(MP3)/ビデオ(M...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Content Understanding 機能は ハブ ベースの Project が...
---リージョンは Australia East / Sweden Central / West US
--GitHub リポジトリからサンプルを取得~
https://github.com/microsoftlearning/mslearn-ai-informati...
--請求書(Invoice)からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・invoice-1234.pdf をアップロード~
・「Invoice data extraction」テンプレートを使用~
・不要なフィールドを削除し、必要なフィールドを追加~
・Items テーブルのサブフィールドも整理~
---テスト & Analyzer 作成~
・スキーマを保存し、テスト実行~
・invoice-analyzer をビルドしinvoice-1235.pdf で動作確認
--スライド画像からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・slide-1.jpg をアップロード~
・「Image analysis」テンプレートを使用(初期フィールドな...
・フィールド追加:Title/Summary/Charts/QuarterlyRevenue/P...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・slide-analyzer をビルドし、slide-2.jpg で動作確認
--音声からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・call-1.mp3 をアップロード~
・「Speech transcript analysis」テンプレートを使用(初期...
・フィールド追加:Caller/Summary/Actions/CallbackNumber/A...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・voicemail-analyzer をビルドし、call-2.mp3 で動作確認
--ビデオからの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・meeting-1.mp4 をアップロード~
・「Video analysis」テンプレートを使用(初期フィールドな...
・フィールド追加:Summary/Participants/ParticipantNames/★...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・conference-call-analyzer をビルドし、meeting-2.mp4動作...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***マルチモーダル コンテンツ分析クライアント [#l3bb76f9]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Azure Content Understanding の REST APIの使用~
--スキーマ定義/アナライザー作成
--コンテンツ分析/分析結果処理
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--「名刺画像から情報を抽出するアナライザー」を作成し、そ...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Content Understanding 機能は ハブ ベースの Project が...
---リージョンは Australia East / Sweden Central / West US
---エンドポイント、APIバージョンを確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--パッケージをインストールし、.envを構成
--スキーマ定義/アナライザー作成
---biz-card.jsonを確認
---create-analyzer.pyにコードを追加~
create_analyzer関数の「Create a Content Understanding ana...
---エンドポイント&APIキーを使用してアプリを実行
python create-analyzer.py
---実行結果の確認~
操作の成功 (または失敗) を確認
--コンテンツ分析/分析結果処理
---read-card.pyにコードを追加~
analyze_card関数の「Use Content Understanding to analyze ...
---エンドポイント&APIキーを使用してアプリを実行
python read-card.py biz-card-1.png
---実行結果の確認~
cat results.json
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ドキュメント インテリジェンス 事前構築済みモデル [#bdf...
https://learn.microsoft.com/ja-jp/training/modules/use-pr...
-Document Intelligenceの事前構築済みモデルによる情報抽出
-フォーム:事前構築済みモデル
--特定のフォーム
---請求書、領収書、米国税
---ID ドキュメント、医療保険カード、結婚証明書、名刺モデル
---クレジット/デビット カード、小切手、口座取引明細書、給...
--特定ではないフォーム
---読み取りモデル:ページ、段落、テキスト、行、単語
---レイアウト モデル:読み取りモデル+選択マーク、テーブ...
---一般ドキュメント モデル:テキスト、キー・値、エンティ...
-事前構築済みモデル
--抽出機能
---テキスト
---エンティティ(人、場所、日付)
---キーと値のペア
---フィールド
---選択マーク(ラジオ ボタンやチェック ボックス)
---テーブル
--入力の要件
---ファイルの形式:JPEG、PNG、BMP、TIFF、PDF、読み取りモ...
---ファイルのサイズ:Standard レベルでは 500 MB 未満、Fre...
---画像のサイズ:50 x 50 ピクセルから 10,000 x 10,000 ピ...
---PDFのサイズ:17 x 17 インチまたは A3 用紙サイズ以下
---PDFはパスワードを解除しておく。可能であれば、テキスト...
---PDF TIFF は、Standard レベルでは、最初の 2,000 ページ...
--Document Intelligence
---Studio:事前構築済みのモデルを選択、ファイルを追加し分析
---REST API:API を使用した事前構築済みモデルの呼び出し
-特定ではないフォームの詳細
--読み取りモデル
---固定または予測可能な構造がないドキュメントから単語と行...
---ドキュメントと画像から印刷されたテキストと手書きのテキ...
---手書きテキストよりも印刷されたテキストについて多くの言...
--一般ドキュメント モデル
---読み取りモデルにキーと値のペア、エンティティ、選択マー...
---エンティティ抽出をサポートする唯一の事前構築済みモデル
---検出できるエンティティ(Person/PersonType/Location/Orga...
--レイアウト モデル
---テキスト抽出だけでなくドキュメントの構造に関する情報を...
---テーブル:コンテンツ テキスト、境界ボックスのサイズと...
---選択マーク:境界ボックス、信頼度インジケーター、選ばれ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--事前構築済みモデルで文書を解析する一連の手順
--Foundry ハブとプロジェクトの作成(基盤準備)
---Vision + Document 機能は ハブ ベースの Project が必須
---Azure AI サービスページで、Vision + Documentタイルを選択
---Vision + Documentページのドキュメントタブで、OCR/読み...
---[読み取り]ページの左側のドキュメントの一覧で、read-ger...
---[分析オプション]を選択、 [分析オプション]ペインの[言語...
---[分析の実行]を選択し結果を確認(「コンテンツ」タブ、「...
---エンドポイント、APIバージョンを確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--パッケージをインストールし、.envを構成
--document-analysis.pyにコードを追加
---インポートの追加:DocumentAnalysisClientなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---DocumentAnalysisClientを作成
---請求書の分析と分析結果の取得・表示
--エンドポイント&APIキーを使用してアプリを実行
python document-analysis.py
--実行結果の確認~
仕入先名、顧客名、請求額の合計を信頼度付きで表示
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ドキュメント インテリジェンス その他のトピック [#ld262...
https://learn.microsoft.com/ja-jp/training/modules/work-f...
-Azure Document IntelligenceにアクセスするAPIキーには~
Foundry Tools リソースとDocument Intelligence リソースを...
-その他?
--抽出機能
---OCR 機能を使用してドキュメント分析をキャプチャ:読み取...
---W-2s、請求書、領収書、ID ドキュメント、医療保険、ワク...
---業界固有のフォームからデータを抽出:カスタム モデルを...
--入力の要件
---ファイルの形式:JPG、PNG、BMP、PDF、または TIFF
---ファイルのサイズ:Paid (S0) レベルの場合は 500 MB 未満...
---画像のサイズ:50 x 50 ピクセル から 10,000 x 10,000 ピ...
---トレーニング データ セットの合計サイズは 500 ページ以下
-カスタム モデルのトレーニング(教師あり機械学習)
--Azure Document Intelligence Studio を使用してラベル付け...
カスタム フォームの基になるモデルには、カスタム テンプレ...
---カスタム テンプレート モデル:ラベル付きのキーと値のペ...
---カスタム ニューラル モデル:レイアウト機能と言語機能を...
--手動でラベル付けとトレーニング
---レイアウトおよびラベル フィールド情報を含む JSON ファ...
・サンプル フォームごとに Layout API を実行しレイアウト解...
・さらにfields.json ファイル(手動ラベリング結果)とlabels...
---コンテナーの共有アクセス セキュリティ (SAS) URL を生成
---REST API(またSDK)でトレーニングを実施する?
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--カスタムモデルの構築に焦点を当てた手順
--Foundry ハブ リソースではなく、Document Intelligence リ...
---価格レベル: Free F0 または Standard S0
---「リソースグループ」、「サブスクリプションID」、「場所...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--setup.shのコードを変更して実行
---subscription_id、resource_group、およびlocation変数の...
---expiry_date変数が過去の日付になっている場合は、将来の...
---スクリプトを実行可能にして実行し、必要なAzureリソース...
chmod +x ./setup.sh
./setup.sh
---BLOBコンテナ(sampleforms)へのファイル・アップロード...
ストレージアカウント、Blob コンテナを作成しアップロード、...
--Document Intelligence Studioでトレーニング
---Document Intelligence Studio にアクセスし新規プロジェ...
---サービスリソースを構成し、トレーニング データ ソースに...
---モデルのトレーニング(モデル ID を設定、Build Mode:Te...
--カスタム モデルをテスト
---パッケージをインストールし、.envを構成
---test-model.pyのコードを確認
---エンドポイント&APIキーを使用してアプリを実行
python test-model.py
---実行結果の確認~
出力にフィールド名に対応する値がどのように提供されるかを...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ナレッジ マイニング ソリューション [#nb543a55]
https://learn.microsoft.com/ja-jp/training/modules/ai-kno...
-Azure AI Searchによるナレッジ マイニング
-以下のようなユースがある。
--エンタープライズ検索 ソリューション
--ナレッジ マイニング ソリューション
--生成型AIアプリケーションにおける検索拡張生成 (RAG) を支援
-幅広いデータ ソースの検索(インデックス作成とクエリ実行...
--構造化ドキュメント、半構造化ドキュメント、および非構造...
--エンリッチメント・パイプラインで抽出された分析情報をナ...
-エンリッチメント・パイプライン
--ドキュメント・クラッキング:テキスト・画像の抽出
--AIスキル適用:言語検出、OCR、画像分析、エンティティ抽出...
--フィールド生成:スキルの出力を JSON ドキュメントに追加
-インデックスの基本構造
document
metadata_storage_name
metadata_author
content
normalized_images
image0
Text
image1
Text
language
merged_content
-AIスキル
--組込スキル
---言語検出
---翻訳
---場所、エンティティ検出
---キーフレーズの決定と抽出
---PIIの識別と抽出(または削除)
---画像からテキストを抽出
---画像キャプションとタグの生成
--カスタム スキル
---カスタム ロジックを実行して、インデックスに組み込むこ...
---多くの場合、ドキュメントからデータを抽出するように特別...
---一般的なホスティング手法としては、Azure Functions や C...
-インデックス検索
--インデックスに格納された JSON ドキュメントを検索し、フ...
--検索クエリは Lucene ベースで、Simple と Full の 2 種類...
--インデックスの(検索動作を決定する)フィールド属性
---key:一意の識別子
---searchable:フルテキスト検索の対象
---filterable:フィルター条件に使用可能
---sortable:並べ替えに使用可能
---facetable:集計に使用可能
---retrievable:検索結果に含めるかどうか
--クエリ・パラメタ
---search:検索語句
---queryType:simple または full
---searchFields:検索対象フィールド
---select:返すフィールド
---searchMode:any(OR) / all(AND)
---$filter:OData フィルター式
---$orderby:並べ替え条件
--フルテキスト検索(Lucene クエリ)~
searchにのみ適用される。以下の 2 種類をサポートする。
---Simple 構文:直感的・簡易的でキーワード検索に向く
---Full 構文:正規表現で、高度な検索が可能
--クエリ処理の流れ(4段階)
---クエリ解析(キーワード・フレーズ・プレフィックスなどに...
---語句解析(小文字化、ストップワード除去、語幹化など)
---ドキュメント取得(一致する文書を検索)
---スコアリング([[TF-IDF>https://dotnetdevelopmentinfras...
--代表的な検索例
---フィルター~
キーワード検索「London」に対し、著者(author)列が Reviewe...
・Simple 検索式にフィルター条件を含める例
search=London+author='Reviewer'
queryType=Simple
・$filter パラメタで ODataフィルタを指定する例
search=London
$filter=author eq 'Reviewer'
queryType=Full
※ ODataフィルタはsearchnの外だがFull出ないとダメらしい。
---ソート~
全件検索に対し、最終更新日時(last_modified)列でソートを...
search=*
$orderby=last_modified desc
---集計~
全件検索に対し、著者(author)毎の集計(ファセット)を行...
search=*
facet=author
さらに集計(ファセット)に対し、著者(author)列 でOData...
search=*
$filter=author eq 'selected-facet-value-here'
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--Azure AI Searchによるナレッジ マイニングに焦点を当てた...
--Azure AI Search(Free tier)、Azure Storage Account(Bl...
---リソースを同じリージョンに作成
---「リソースグループ」、「サブスクリプションID」、「場所...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--PDF ドキュメントのアップロード
---documents.zipをダウンロード
---documents.zipを解答しPDF ファイルを取得
---ストレージアカウント、Blob コンテナを作成しアップロード
--インデクサーの作成~
Azure AI Search の Import dataを使用して以下を設定
---データソース:Blob コンテナ
---エンリッチメント:OCR を有効にするオプションを選択、す...
---AI スキル:テキスト認知スキル(人名、場所、キーフレー...
---ナレッジ ストア:Blob(書類)、Tables(文書、キーフレ...
---ストレージ アカウントの接続文字列:既存の接続、ストレ...
---検索インデックス:名前、主キー:metadata_storage_path...
---各フィールドの retrievable/filterable/sortable/facetab...
---インデクサー:名前、実行スケジュール:Once(1回)を指...
--Search Explorer で検索テスト~
Azure AI Search の Search Explorer を使用し、以下のような...
---全件検索
{ "search": "*", "count": true }
---特定フィールドのみ取得
{ "search": "*", "count": true, "select": "metadata_stor...
---条件付き検索
{ "search": "New York", "count": true, "select": "metada...
--クライアントアプリの実行
---検索リソースのエンドポイントとキーを取得
---パッケージをインストールし、.envを構成
---search-app.pyのコードを確認
---エンドポイント&APIキーを使用してアプリを実行
python search-app.py
---検索クエリを対話的に入力~
検索クエリに対応する検索結果が取得できるかを確認
--ナレッジ ストアの確認~
ストレージ アカウント の ストレージ・ブラウザ で以下を確...
---Blob:各ドキュメントごとに JSON が生成され、抽出情報が...
---File:PDF 内の画像が JPEG として保存される
---Table:~
・margiesSkillsetDocument(ドキュメント一覧)~
・margiesSkillsetKeyPhrases(抽出キーフレーズ)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
*詳細 [#s29cb701]
以下、機械学習や深層学習の知識のみで回答可能なものは省略...
*参考 [#td0e8407]
**リンク(公式) [#o8546e42]
***Training | Microsoft Learn [#x9ff3f74]
-https://learn.microsoft.com/ja-jp/training/courses/ai-10...
-https://learn.microsoft.com/ja-jp/credentials/certificat...
***学習ガイド [#uc3b7885]
-試験 AI-102: Microsoft Azure AI ソリューションの設計と実...
https://learn.microsoft.com/ja-jp/credentials/certificati...
***製品ドキュメント系 [#fe498b35]
**ネット情報 [#cc7f0038]
***[[対策情報>Azure AI 資格(AI-102)対策#t383f14e]] [#xb...
***コース [#qba10c8b]
-https://udemy.benesse.co.jp/development/qualification/ai...
--AI-102 Microsoft Azure AI Solution Complete Exam Prep 2...
https://www.udemy.com/course/ai102-azure/?couponCode=MT25...
--【AI-102 Azure AI Engineer Associate】試験対策講座~
https://www.udemy.com/course/ai-102-azure-ai-engineer-ass...
**試験前 [#o09f71d9]
***[[模擬試験>Azure AI 資格(AI-102)対策#cb729369]] [#ef...
***申し込み [#l08f6e16]
-https://learn.microsoft.com/ja-jp/credentials/certificat...
----
Tags: [[:.NET開発]], [[:構成管理ツール]], [[:CI]], [[:BI/...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>AzureのAI系サービス]]
--[[Azure AI 資格(AI-900)]]
--Azure AI 資格(AI-102)
---[[Azure AI 資格(AI-102)対策]]
* 目次 [#o4076b2c]
#contents
*概要 [#h0f6ddfa]
-コース AI-102T00-A: Azure で AI ソリューションを開発する。
-コレが終わっても対策不十分なのでコチラ([[Azure AI 資格...
-Microsoft の「Open Book(MS Learn 参照可)」試験に該当
--AI‑102 試験の「参照可能な Learn ドキュメント内検索」か...
--検索は Microsoft Learn 内の検索バーのみ利用可能でGoogle...
--ただ、検索能力が低過ぎるので、TopからAzure→「AI + 機械...
-2026初に合格(800/1000)
--MicrosoftのLearnとプラクティス評価、Udemyの2講座だけの...
--ExamTopicsは 30/300 しか無料で見れないのもあり、途中で...
--Open Bookは英語のみで予習して望んだが試験中に有効に使え...
--なので、リファレンス参照して答える系の問題も全部、雰囲...
--Azureは使っているし、AIはE資格持ってるってのはアドバン...
**生成 AI アプリを開発 [#s7250698]
https://learn.microsoft.com/ja-jp/training/paths/create-c...
***計画と準備 [#e13d282f]
https://learn.microsoft.com/ja-jp/training/modules/prepar...
-AI 機能
--生成AI ≒ LLM
--(LLM)エージェント
--画像処理、音声処理、(NLP)自然言語処理
--情報抽出(OCRやDocument Intelligence、構造化出力)
--意思決定支援(BI/AI、データ・アナリシス)
--LLM関連キーワード:LLM、SLM、自然言語処理、マルチモーダ...
-Available Foundry Tools~
(事前構築済みの拡張ツール群)
--OpenAI
--Vision、Speech、Language、Translator
--AI Face、AI Custom Vision
--Document Intelligence
--Content Understanding
--Microsoft Foundry Content Safety
--AI Search
-Microsoft Foundry プロジェクト
--鋳造所プロジェクト
---Microsoft Foundryのモデル、Agent Service
---Tools、評価と責任ある AI 開発のためのツール
--ハブベースのプロジェクト
---鋳造所プロジェクトを含む
---Prompt Flow、ファインチューニングなど
---Azure Storage と Azure Key Vaultを含む
-開発者ツールと SDK
--開発ツールと環境
---Microsoft Foundry for VS Code 拡張機能
---GitHub と GitHub Copilot
--プログラミング言語、API、SDK
---Microsoft Foundry SDK(統合的利用)
---Foundry Tools SDK(個別利用)
---Microsoft Foundry Models API
---Microsoft Foundry Agent Service
-[[責任ある人工知能 (AI) の原則>Azure AI 資格(AI-900)#p...
引き続き重要:[[責任ある人工知能 (AI) の原則>Azure AI 資...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ポータルへサインイン
--プロジェクトの作成
---モデル選択とプロジェクト作成
---モデルのデプロイ
---プロジェクトの初期画面のplaygroundでテスト
--管理センターでリソースを確認
---左ナビゲーションから Management center を開く。
---Foundry リソースとプロジェクトの構成を確認。
---リソースグループへで作成された Azure リソースを確認。
--プロジェクトのエンドポイントとキーを確認
---Foundry プロジェクト
---デプロイ済みモデル
---Azure OpenAI / Azure AI Services
--モデルの動作確認(Chat Playground)
---左メニューの Playgrounds → Chat を開く。
---デプロイした gpt‑4o が選択されていることを確認。
---Setup ペインでシステムメッセージを設定:
---例としてプロンプトを入力し、応答を確認。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***モデルの選択・デプロイ [#qe0cabe1]
https://learn.microsoft.com/ja-jp/training/modules/explor...
-モデルカタログからモデルを選択する。
--GitHub
--[[Hugging Face>https://dotnetdevelopmentinfrastructure....
--Microsoft Foundry(主要なエンタープライズ要件が満たす)
-LLM系ユースケース
--音声:テキスト変換・テキスト読上
--機械翻訳
--テキスト分類
--エンティティ抽出
--テキストの要約
--質問の回答
--理由の解説
-モデル選択~
ユース ケースに最適なモデルを選択
--タスクの種類
---モダリティ、ツール
---地域固有およびドメイン特化のモデル
--精度/オープン性
---オープン モデルと独自モデルの間で柔軟性とパフォーマン...
---精度・パフォーマンスでモデルをフィルター処理
--デプロイ
---大規模/小規模
---パフォーマンス(必要になるリソース的な意味で)
--パフォーマンスのベンチマーキング
---精度:0/1なので主には分類問題
---一貫性:人間の言語に近いか?
---流暢さ:自然に聞こえるか?
---グラウンデッドネス:検証データで入出力のアラインメント...
---GPT類似性:検証データで出力のセマンティック類似性を定...
---品質インデックス:0-1 の比較集計スコア
---費用:トークンあたりの価格
-スケーリング~
プロトタイプをスケーリングする際の考慮事項
--モデルのデプロイ
--モデルの監視と最適化
--プロンプト管理
--モデルライフサイクル
-デプロイ オプション~
Microsoft Foundry を使用して言語モデルをエンドポイントに...
--標準デプロイ: Microsoft Foundry プロジェクト リソースで...
--サーバーレス コンピューティング: Microsoft Foundry ハブ...
--マネージド コンピューティング: モデルは、Microsoft Foun...
||サポート・モデル|ホスティング|課金基準|h
|標準|Foundry モデル|Foundry リソース|トークン|
|サーバーレス|~|Hub内のリソース|~|
|マネージド|OSS、カスタム|~|コンピューティング|
-プロンプト・エンジニアリングで出力最適化~
プロンプト・パターンを適用してモデルの出力を最適化する
--(システム プロンプトで)モデルにペルソナを指示
--(システム プロンプト、ユーザー プロンプトで)モデルを...
--(システム プロンプト、ユーザー プロンプトで)出力形式...
--(システム プロンプトで)モデルに理由を求める。
--(ユーザー プロンプトで)モデルにコンテキストを追加。
-モデル最適化戦略~
RAGとファインチューニングがある。
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--モデル探索(Model Catalogの理解)
--モデル比較(Compare models機能)
--Foundryプロジェクト作成
---gpt-4o の Overview から Use this model
---プロジェクト作成(ファウンドリーリソース名、サブスクリ...
---gpt-4o を 自動デプロイ、TPM(Tokens Per Minute)制限を...
--デプロイ・テスト
---gpt-4o
---Phi-4-reasoningを追加でデプロイ(考え方の明示が得意)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
※ モデルのデプロイの一例は[[コチラ>Azure OpenAI Service#n...
***Microsoft Foundry SDK [#r2c4ec31]
https://learn.microsoft.com/ja-jp/training/modules/ai-fou...
-Microsoft Foundry SDK とは
-プロジェクト接続を操作する
-チャット クライアントを作成
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトに GPT‑4o をデプロイ
--クライアントアプリの準備(Cloud Shell)
---GitHub リポジトリを clone
---Python 仮想環境を作成し、必要なライブラリをインストール
---.env ファイルを編集し、エンドポイント・モデル名を設定
---az login して python chat-app.py する方式。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***プロンプト フロー [#h3139db2]
https://learn.microsoft.com/ja-jp/training/modules/get-st...
-ライフサイクル
--初期化
---目的定義
---サンプル データセットを収集
---基本的なプロンプトを作成
---フローを設計
--実験
---実行
---評価
---改善
---進む(↓)
--評価と絞込~
評価/問題特定/最適化
--プロダクションで運用~
最適化/デプロイ/監視
--評価と絞込~
評価/問題特定/最適化
-プロンプト フロー
--3つの部分~
何れもノードの部分でエッジではない。
---入力
---ノード
---出力
--3つのツール
---LLM ツール
---Python ツール
---プロンプト ツール
--3つの種類
---標準フロー
---チャット フロー
---評価フロー
--ランタイムと接続
---ランタイム~
Python コードや LLM 呼び出しを実行するための計算環境
---接続~
・種類(Azure OpenAI、OpenAI、Azure AI Search、Serp、Cust...
・探索(権限付与して接続、キーはAzure Key Vault二格納)
-バリエーションと監視オプション
--バリエーション(連続的)とバリアント(離散的)
---LLM ツールでサポートされ以下の利点がある。
---LLM生成の品質向上:LLMノード の バリエーション(プロン...
---生産性の向上:バリエーションの迅速な作成・管理・適用
---時間と労力を節約:プロンプト バージョン の バリアント
---簡単な比較:結果を並べて比較し最も効果的なバリアントを...
--デプロイ後の評価メトリックの監視オプション
---整合性: 出力が入力または追加コンテキストとどの程度一致...
---関連性: 出力が特定の入力にどの程度関連しているかを評価
---一貫性: 出力テキストの論理フローと読みやすさを評価
---流暢性: 出力テキストの文法と言語の精度を評価
---類似性: 推論値と正解値のコンテキストとセマンティックの...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Prompt flow 機能は ハブ ベースの Project が必須
---リージョンは East US 2 / Sweden Central 推奨(Quota 回...
--リソース認可設定(Blob Storage へのアクセス)
---プロンプト フロー は ファイル(YAML/フォルダ)として B...
---読み取り権限がないと、プロンプト フロー 作成・実行時に...
--生成 AI モデル(GPT-4o)のデプロイ
---「デプロイ済みモデル」を参照
---保護のためTPM(Tokens Per Minute)を設定
--プロンプト フロー作成(チャットフロー定義)
---「入力 → LLM → 出力」という 会話フロー
---Inputs:question(今回のユーザ発話)、chat_history(過...
---Chat LLM tool:Azure OpenAI(gpt-4o)を呼び出す
---Outputs:assistant の回答
--プロンプト設計(会話文脈の組み込み)~
system メッセージ、chat_history をループで展開し再投入
--フローのテスト(Chat UI)
---デプロイ前でも 即時対話テスト可能
---プロンプト調整 → 即再実行、という試行錯誤が可能
--フロー・デプロイ(API 化)
---作成したプロンプト フローを 外部アプリから呼べる API ...
---Testペインで再テスト、Consumeペインから接続情報、サン...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***RAG ベースのソリューション [#f0cc3e80]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-RAGとは「[[LLMのRAG - 開発基盤部会 Wiki>https://dotnetde...
-グラウンディングという単語が使用されるが、コレは、生成を...
-グラウンディング データの追加
--Azure Blob Storage
--Azure Data Lake Storage Gen2
--Microsoft OneLake
-検索インデックスにAzure AI Search の以下のを使用して統合
--キーワード検索
--セマンティック検索(ベクトル検索)
--ハイブリッド検索(キーワード+セマンティック)
-インデックスを定義
--WebAPIからRAGを使用
--プロンプト フローからRAGを使用
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブとプロジェクトの作成
--RAG に必要な 2 種類のモデルをデプロイ
---Embedding モデルと生成モデル
---Global Standard デプロイで、TPM(Tokens Per Minute)を...
--独自データ(PDF)をプロジェクトに追加
---旅行会社の架空パンフレット(PDF)をローカルにダウンロ...
---Foundry の Data + Indexes からフォルダごとアップロード
---データセット名を brochures(パンフレット)として登録
--Azure AI Search によるベクトルインデックス作成
---新規 Azure AI Search リソースを作成し接続
---Embedding モデルとして text-embedding-ada-002 を指定
---brochures データを元に ベクトル検索対応インデックス:b...
--Playground で RAG の効果を確認
---gpt-4o を使用しデータ未接続で質問 → 一般的な回答
---次に ハイブリッド検索に設定したbrochures-indexを接続
---同じ質問を再実行 → PDF内容に基づいた回答に変化
--クライアントアプリの準備(Cloud Shell)~
https://github.com/MicrosoftLearning/mslearn-ai-studio/tr...
---GitHub リポジトリを clone
---Python 仮想環境を作成し、必要なライブラリをインストール
---.env ファイルを編集し、プレースホルダを置き換え
---python rag-app.py する(API キーを使うのでaz loginは不...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ファインチューニング [#fe0ddc46]
https://learn.microsoft.com/ja-jp/training/modules/finetu...
-ファインチューニング(FT)
-FTとは「[[LLMのFT - 開発基盤部会 Wiki>https://dotnetdeve...
-RAG vs FT~
プロンプト エンジニアリングではダメな場合はFT
-データ準備
--種類
---システム メッセージ
---ユーザー メッセージ
---アシスタントの応答
--留意点
---個人情報や機密情報はすべて削除する。
---大規模なトレーニング データセットを作成する。
---データセットに多様なサンプル セットを含める。
-基本モデル選択の考慮点
--モデルの機能
--トレーニング データ
--制限と偏り
--言語サポート
-FTジョブ構成
--基本モデルを選択
--トレーニング データ選択
--検証データ選択(省略可能)
--詳細オプションを構成
---バッチサイズ
---学習率
---エポック数
---シード(再現性を制御)
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトに GPT‑4o をデプロイしてChat Playgr...
--準備
---計画:SupervisedでXXXを実施
---例:応答スタイルを学習させる
---ベースモデルの挙動を理解
---学習データの理解~
https://raw.githubusercontent.com/MicrosoftLearning/mslea...
--実施後
---ファインチューニングの実施
---FT後のモデルの評価
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***責任ある生成 AI ソリューションの実装 [#nbf789e9]
https://learn.microsoft.com/ja-jp/training/modules/respon...
※ [[PMP:計画 - リスク - 開発基盤部会 Wiki>https://dotnet...
-NIST AI Risk Management Frameworkの機能に密接に対応した...
--生成された出力に存在する「リスクの脅威の損害」を測定
--損害の発生・影響を最小限に抑え、ユーザーにコミュニケー...
--デプロイと運用の準備計画を定義して従うことで、ソリュー...
-潜在的な損害をマップ
--潜在的な損害を特定
--特定された損害に優先順位を付ける
--優先順位付けされた損害をテストして検証
--検証済みの損害を文書化して共有
-テスト
--推論を繰り返し、出力を分類、潜在的な損害を測定。
--手動テストと自動テストでシナリオ検証する。
-潜在的な損害を軽減
--モデル レイヤー
---適切な(サイズ、事前学習)ポテンシャルのベースモデルを...
---適切にファインチューニング学習しシナリオのスコープに適...
--安全システムレイヤー
---コンテンツ フィルター:4 カテゴリ(ヘイト、性的、暴力、...
---不正使用検出アルゴリズム、迅速な対応を可能にするアラー...
--コンテキスト・レイヤー
---モデルの動作パラメタ
---システム・プロンプト
---RAG
--UXレイヤー
---UI
---マニュアル類
-リリース・エンジニアリング
--プレリリース レビューを完了する
--ソリューションをリリースして操作する
--Microsoft Foundry Content Safety
---プロンプト・シールド:入力攻撃のリスクをスキャン
---根拠性検出:出力が入力に固定されているかどうかを検出
---保護されたマテリアルの検出:既知の著作権で保護されたコ...
---カスタム カテゴリ:新しいまたは既知のパターンのカスタ...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry プロジェクトにモデルをデプロイしてChat Playgrou...
---既定のコンテンツ・フィルターの挙動確認(自傷に関する質...
---「完全には防げないケースがある」ことを確認しカスタム・...
--潜在的な損害を軽減
---カスタム・コンテンツ・フィルター:4カテゴリすべて最高...
---Prompt Shield(不正使用検出アルゴリズム)も有効化
---既定のコンテンツ・フィルターより強力な安全制御が働くこ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***パフォーマンス評価 [#c33b37cf]
https://learn.microsoft.com/ja-jp/training/modules/evalua...
-評価対象
--モデル
--チャット・フロー
-ベンチマーク
--カタログ・スペック的な意味での
--項目:精度 / 一貫性 / 流暢性 / GPT 類似度
-評価
--手動評価
---モデルをデプロイしてChat Playgroundでテストする。
---人間により関連性 / 情報の質・量 / エンゲージメント な...
---「モデル、パラメタ」「システム メッセージ、ユーザー メ...
--自動評価のメトリック
---AI支援メトリック~
・一般的な品質:ベンチマークの項目と同じ~
・リスクと安全性:コンテンツ・フィルターの項目と同じ
---自然言語処理メトリック~
F1スコア、BLEU、METEOR、ROUGE
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-studio/Ins...
--Foundry ハブのプロジェクトにモデルをデプロイ
--手動評価
---JSONLをダウンロード&アップロード
---Question、ExpectedResponseにマッピング
---人間が結果を評価する。
--自動評価
---評価タイプ:Evaluate a model
---JSONLをダウンロード&アップロード
---使用する評価指標を追加
---評価結果確認(Metricsタブ:全体、Dataタブ:レコード毎)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**AI エージェントを開発 [#z184753b]
https://learn.microsoft.com/ja-jp/training/paths/develop-...
***AzureのAIエージェント開発 [#df41ebf7]
https://learn.microsoft.com/ja-jp/training/modules/ai-age...
-シナリオ:単一エージェント、マルチ・エージェント
-AI エージェントとは:[[コチラ>https://dotnetdevelopmenti...
-例
--経費エージェント~
ユーザーの請求可能な経費に関する質問を受けRAGりつつLLMに...
---経費ポリシー情報を含む ナレッジ ストアをRAGる。
---プログラム関数を実行して経費明細書を自動的に送信する。
---ビジネス ルールと請求金額に基づいて適切な承認者を知ら...
--旅行代理店マルチエージェント~
ユーザーの旅行詳細からフライトとホテルを予約し、経費エー...
---外部の旅行サービスAPIを通じてフライトやホテルを予約
---適切な領収書を使用して、経費エージェントを通じて経費請...
---手動による介入なしで、旅行予約と経費申請のワークフロー...
-リスクと保護
--データとプライバシーの漏洩:機密データが外部に公開され...
--プロンプト・インジェクションとマニピュレーション攻撃:...
--未承認のアクセスと特権のエスカレーション:アクセス制御...
--データ・ポイズニング:学習またはRAGのデータをハッキング...
--サプライ・チェーンの脆弱性:外部ツールの脆弱性がワーク...
--自律的なアクションへの過度の依存:検証や監視なしで不適...
--監査性とログ記録が不十分:データ・アクセスしたか、何時...
--モデル反転と出力漏れ:モデルの出力から学習データの内容...
-セキュリティ保護のベスト プラクティス
--アクセスを厳密に制御する:RBAC と 最小限の特権のアクセ...
--すべての入力を検証する:インジェクション攻撃をキャッチ...
--人間の監視を追加:機密性の高い操作を人間が関与する承認...
--すべてを追跡する:包括的なログ記録と追跡可能性を維持
--サプライ・チェーンを監視:サードパーティの依存関係と統...
--モデルを正常な状態に保つ:モデルを継続的に再トレーニン...
-エージェント・フレームワーク
--[[LLMエージェント>https://dotnetdevelopmentinfrastructu...
---OpenAI Agents SDK
---CrewAI
---LangGraph
---AutoGen
--その他
---M365 Copilot Studio Lite:EUC
---Microsoft Copilot Studio:Power Platform系ローコード
---Microsoft 365 agents SDK:プログラミング初級
---[[Microsoft Foundry Agent Service:ソリューション開発...
---Microsoft Agent Framework:プログラミング上級
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトにモデルをデプロイ
--エージェントを作成
---(自然言語文字列で)エージェントの Instructions(役割...
あなたは企業経費精算のAIアシスタントです。
経費ポリシーデータに基づいて、経費に関する質問に答えます。
ユーザーが経費請求を希望する場合、メールアドレス、請求内...
---ナレッジとして文書(docx)を追加、ツールとしてコード・...
---経費請求テキスト ファイルはコード・インタプリタで準備...
--エージェントの実行
---Playground 上で会話テスト
---[コード]タブのサンプル コードを取得してVS Code Web で...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Microsoft Foundry Agent Service [#sa255b44]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-ソリューション開発用SaaS+SDK
-SaaS:スケーラビリティ、24・365
-ユース ケースの例:~
自動化、意思決定など
--個人生産性
--リサーチャー
--デベロッパー
--セールス
--カスタマー サービス
-機能
--自動ツール呼び出し
--安全に管理されたデータ
--すぐに使用できるツール
--モデルの選択
--エンタープライズ レベルのセキュリティ
--カスタマイズ可能なストレージ ソリューション
-リソース
--基本セットアップ~
Azure AI ハブ、Azure AI プロジェクト、Foundry Tools リソ...
--標準セットアップ~
基本セットアップに加えて、Azure Key Vault、Azure AI Searc...
-ツール
--ナレッジ
---Bing検索
---ファイル検索(VDB)
---Azure AI Search
---Microsoft Fabric
--アクション
---コード・インタプリタ
---カスタム関数
---Azure Functions
---OpenAPI3.0(WebAPI)
-セキュリティ リスク([[既出>#df41ebf7]])
-アプリ開発(演習を参照)
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/bl...
--パッケージをインストールし、.envを構成
--agent.py にコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---コード・インタプリタがアップロード・ファイル(リソース...
---エージェントの作成
・モデル:gpt-4o
・Instructions:データ分析
・Tools:コード・インタプリタとそのリソース
---プロンプト
・Instructions:あなたは、アップロードされたファイル内の...
・ToolsのResource:以下が書かれたファイル(data.txt)
Category,Cost
Accommodation, 674.56
Transportation, 2301.00
Meals, 267.89
Misc., 34.50
・チャットに入力するプロンプト例~
・最もコストが高いカテゴリーは何ですか?~
・カテゴリ別にコストを示すテキストベースの棒グラフを作...
・コストの標準偏差はいくらですか?
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent.py
--エージェントと対話し、データ分析を実行~
コード・インタプリタを使って Python を実行し、統計値やチ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***VSC の Microsoft Foundry 拡張機能 [#i6afd9f2]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-Visual Studio Code 用の Microsoft Foundry 拡張機能を使用...
-機能:以下の統合エクスペリエンスを提供
--エージェントの検出と管理
--エージェント デザイナ(直感的デザイナ→YAML)
--ツールの追加(ツール ライブラリ、MCPサーバー)
--統合テスト - 組込プレイグラウンドでテスト
--デプロイ パイプライン - エージェントを直接デプロイ
--コード生成 - エージェントをアプリに統合するサンプルコー...
-演習~
ポータルで準備してVSC/WebAPIでテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--VS Code に Foundry 拡張を入れ Azure にログインしてプロ...
--Foundry プロジェクトが作成される(ハブではない、エンド...
--デザイナでエージェントを作成(名前/モデル/指示)、MCP ...
--エージェントを Foundry にデプロイして Playground で動作...
--エージェントをアプリに統合するサンプルコードを確認(実...
--会話履歴とスレッドを表示
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***カスタム・ツールをエージェントに統合 [#ie3cb7cf]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-Microsoft Foundry Agent Service で使用できるカスタム ツ...
--カスタム関数
--OpenAPI Specツール
--Azure Functions
--Azure Logic Apps
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--user_functions.py にカスタム関数を実装
---support ticket を生成してファイル保存する関数
---submit_support_ticket() を追加。
---その関数を user_functions セットに登録。
--agent.py にコードを追加([[コチラの演習>#sa255b44]]とほ...
コードの違いは、user_functionsをインポートしてtoolsetに加...
--Azure にログインしてアプリを実行
az login
python agent.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***マルチエージェント・ソリューション [#mc82d344]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-接続されているエージェント
--ツール化されたエージェントのようなもの
--複雑なオーケストレーションなしで、モジュール式のマルチ...
-マルチエージェント・ソリューションの設計
--主エージェント~
処理に最適な接続されたエージェントを決定し実行するオーケ...
---ユーザー入力の解釈
---適切な接続済みエージェントの選択
---関連するコンテキストと手順の転送
---結果の集計または要約
---接続されたエージェントの責任
--接続済みエージェント~
単一の責任ドメインに焦点を当て処理を実行するエージェント...
---明確なプロンプトに基づいて特定のアクションを完了する
---ツール (必要な場合) を使用してタスクを完了する
---メイン エージェントに結果を返す
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent_triage.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---特定の役割を果たす複数のエージェントを作成するコードを...
・チケットの優先順位を設定するエージェントを作成
・チケットを適切なチームに割り当てるエージェントを作成
・チケットの労力を見積もるエージェントを作成
---接続されたエージェントを使用してサポート チケット処理...
・サポート エージェント用に接続されたエージェント ツール...
・作成したエージェント ツールを使用するエージェントを定...
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent_triage.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***MCP ツールをエージェントに統合 [#aa348d8b]
https://learn.microsoft.com/ja-jp/training/modules/connec...
-[[MCP(Model Context Protocol)]]
-利点
--動的ツール検出:パッケージマネージャ的(スケーラビリテ...
--LLM 間の相互運用性:さまざまな大きな言語モデル (LLM) と...
--標準化されたセキュリティ:API ごとに個別のキーまたは認...
-MCPサーバとMCPクライアントを使用してエージェント ツール...
--MCP サーバ:エージェントが使用できるツールのレジストリ...
--MCP クライアント:MCP サーバと エージェント間のブリッジ...
---MCP サーバから使用可能なツールを検出
---ツールをラップする Python 関数スタブを生成
---これらの関数をエージェントに登録
--ツールを Azure AI エージェントに登録する
---MCP サーバーは、@mcp.toolで修飾されたツール定義をホスト
---MCP クライアントは、サーバーへの MCP クライアント接続...
---MCP クライアントは、session.list_tools()を使用して使用...
---各ツールはsession.call_toolを呼び出すために非同期関数...
-Microsoft Foundry Agent Service を使用して MCP サーバー...
--リモート MCP サーバーの統合
---必要なもの~
・リモート MCP サーバー エンドポイント ( https://api.gith...
・MCP ツールを使用するように構成された Microsoft Foundry ...
---ツール化~
・server_label: MCP サーバーの ID~
・server_url: MCP サーバーの URL。~
・allowed_tools (省略可能): エージェントがアクセスを許可...
---カスタム ヘッダー(コード)~
・認証キー (API キー、OAuth トークン)~
・MCP サーバーに必要なその他のヘッダー
--ツールの呼び出し
---サーバー ラベルと url を使用して McpTool オブジェクト...
---update_headersを使用して、サーバーに必要なヘッダーを適用
---set_approval_modeを使用して、承認が必要かどうかを判断...
---ToolSet オブジェクトを作成し、McpTool オブジェクトを追加
---エージェントの実行を作成し、 toolset プロパティを指定
---承認が必要な MCP サーバを呼び出す際~
・requires_actionの実行状態が表示(ツール、渡される引数の...
・ツールと引数を確認して、承認に関する十分な情報に基づい...
・承認を true に設定して、call_idを使用して承認をエージェ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent_triage.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---特定の役割を果たす複数のエージェントを作成するコードを...
・チケットの優先順位を設定するエージェントを作成
・チケットを適切なチームに割り当てるエージェントを作成
・チケットの労力を見積もるエージェントを作成
---接続されたエージェントを使用してサポート チケット処理...
・サポート エージェント用に接続されたエージェント ツール...
・作成したエージェント ツールを使用するエージェントを定...
---開始処理~
・会話スレッドの作成~
・エージェントにプロンプトを送信
---終了処理~
・実行ステータスで失敗を確認~
・エージェントの最後のメッセージを表示~
・会話スレッドからメッセージを時系列で表示~
・不要になったエージェントとスレッドを削除
--Azure にログインしてアプリを実行
az login
python agent_triage.py
--エージェントと対話し、サポート回答をアプリフォルダで受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Microsoft Agent Framework (MAF) [#oabd5812]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-オープンソース SDKで、-Azure以外に、OpenAI、Anthropicな...
-Semantic Kernel(ワークフロー)と[[AutoGen>>https://dotn...
-ツール開発のベスト プラクティス
--明確な説明: AI が目的を理解するのに役立つ関数とパラメー...
--型の注釈: 適切な Python 型ヒントを使用して、予想される...
--エラー処理: 予期しない入力を適切に処理するための適切な...
--意味のあるデータを返す: AI が応答で効果的に使用できるデ...
--特定タスクに集中する: 1 つの関数で特定のタスクを処理す...
-エージェントの種類(概念的なもので、クラスではない)
--Microsoft Foundry Agent
--Chat Agent
--OpenAI Agent
--Anthropic Agent
-ワークフローのコア コンポーネント
--ノード(実行者/Executor)
--エッジ
---直接エッジ
---条件付きエッジ
---Switch-Case エッジ
---Fan-Out エッジ
---Fan-In エッジ
--イベント(監視とデバッグ)
---WorkflowStartedEvent :ワークフローの実行が開始された...
---WorkflowOutputEvent:ワークフローが出力を生成するとき
---WorkflowErrorEvent:エラーが発生したとき
---ExecutorInvokeEvent:Executor がタスクの処理を開始した...
---ExecutorCompleteEvent:Executor が作業を完了したとき
---RequestInfoEvent:外部要求が発行されたとき
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agent-framework.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---経費メール送信用の カスタムツール関数(send_email) を...
---エージェントの作成
・モデル:gpt-4o
・Instructions:経費メールを送る
・Tools:send_email ツール
・Azure CLI 認証:AzureCliCredential
---エージェントに経費データを渡して応答を取得するコードを...
--Azure にログインしてアプリを実行
az login
python agent-framework.py
--エージェントと対話し(、data.txtの)、経費回答を受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***MAF の マルチエージェント ソリューション [#j5fc846d]
https://learn.microsoft.com/ja-jp/training/modules/orches...
-DevOps マルチエージェント ソリューションの例
--モニタ エージェント:ログとメトリックを継続的に取り込み...
--根本原因分析エージェント:機械学習モデルまたは定義済み...
--自動デプロイ エージェント:CI/CD パイプラインと対話して...
--レポート エージェント:異常、根本原因、および解決策を要...
-重要な理由(可能な操作)
--各エージェントに個別のスキル、責任、またはパースペクテ...
--複数のエージェントからの出力を結合して、意思決定と精度...
--各エージェントの作業が前の作業を基に進められるように、...
--コンテキストまたはルールに基づいてエージェント間で制御...
-オーケストレーション パターン
--順次:1 つのエージェントから次のエージェントへの出力を...
--同時:同じタスクを一度に複数のエージェントにブロードキ...
--ハンドオフ:コンテキストまたはルールに基づいてエージェ...
--グループ チャット:チャット マネージャーによって管理さ...
--マゼンティック:特別なエージェント間で計画、委任、適応...
-統合オーケストレーション ワークフロー(デザイナUIらしい...
--エージェントを定義し、その機能を記述
--オーケストレーション パターンを選択して作成
--(必要に応じて、マネージャーエージェントを追加)
--(必要に応じて、 カスタム入力およびコールバックまたは変...
--ランタイムを開始して実行を管理
--タスクでオーケストレーションを呼び出し
--非同期 の非ブロッキングの方法で結果を取得
-実装の共通項
--AzureOpenAIChatClient を設定し、AI サービス プロバイダ...
--create_agentでエージェントを定義
--Builder クラスでワークフローを定義
---participants() でエージェントを追加、
---build() でワークフローを構築する。
-順次
--ユースケース
---特定の順序で実行する必要がある複数のステップで構成され...
---各ステージで、次ステージが機能するために必要な重要な要...
---ステージを同時に実行できないため、次々に実行する必要が...
---コンテンツの下書き、レビュー、洗練など、段階的な改善が...
--アンチパターン
---1 つのエージェントでタスク全体を効果的に実行できる。
---ステージは、品質に影響を与えることなく、独立して並列実...
---順次実行では、初期段階で処理の停止や結果の修正方法が無...
---作業を順番に受け渡すのではなく、動的に共同作業する必要...
---反復、バックトラッキング、または動的ルーティングが必要
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(SequentialBuilder)
---ワークフローを実行(run_stream)
---ワークフロー イベントを処理(WorkflowOutputEvent)
---最後の会話を抽出
-同時
--ユースケース
---ブレーンストーミング
---異なる推論方法の組み合わせ (アンサンブル推論)
---投票またはコンセンサス (クォーラム) に基づいて意思決定
---速度が重要なタスク(並列で実行すると待機時間が短縮)
--アンチパターン
---互いの作業に基づき、特定順序の共有コンテキストに依存
---結果の競合や矛盾を解決する明確な方法が無い。
---共有コンテキストを確実に調整できない。
---厳密な一連の手順または予測可能で反復可能な結果が必要
---モデルの使用クォータなどのリソース制限がある場合
---結果を組み合わせると複雑になりすぎたり、全体的な品質が...
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(ConcurrentBuilder)
---ワークフローを実行(run)
---結果を処理する(get_outputs)
---集計された応答を処理
-グループ チャット
--ユースケース
---創造的なブレーンストーミング
---議論と合意から利益を得る意思決定
---学際的な対話が必要な複雑な問題
---複数の専門家の視点を必要とする
---作成とレビューを明確に分離
--アンチパターン
---単純なタスク委任または単純な線形パイプラインで十分
---リアルタイムの速度要件でオーバーヘッドが非現実的
---階層型または確定的なワークフローは、ディスカッションな...
---チャット マネージャーは、タスク完了タイミングを明確に...
---エージェントが多く会話フローの管理が複雑になりすぎる。
--実装
---チャット クライアントを作成
---エージェントを定義
---ワークフローを構築(GroupChatBuilder)
---ワークフローを実行(run)
---結果を処理する(get_outputs)
---集計された応答を処理
---カスタマイズ(GroupChatManager)項目と呼び出し順~
・ユーザー入力を要求(should_request_user_input)~
・会話を終了するタイミング(should_terminate)~
・フィルタリングまたは要約(filter_results)~
・次のエージェントの選択方法(select_next_agent)
-ハンドオフ
--ユースケース
---専門的な知識やツールが必要だが、エージェントの数や順序...
---専門知識の要件は処理中に動的に発生し、コンテンツ分析に...
---複数ドメインの問題では、さまざまな専門家が順番に作業す...
---エージェントが制御をいつ、誰に転送するかを示すルールを...
--アンチパターン
---関係するエージェントとその順序は事前に固定できる。
---タスク ルーティングは単純で静的なルールベース
---動的なルーティングだと回答の品質が下がる。
---複数の操作を同時に実行する必要がある。
---無限ハンドオフループやバウンスの回避が困難。
--実装
---準備~
ワークフロー内でデータを安全かつ型付きで受け渡す。~
・AI サービス接続用のチャットクライアントを作成~
・Pydantic モデルで構造化 JSON 応答を定義~
・ワークフロー間で共有するデータクラスを作成~
・エージェントに response_format と JSON 出力命令を設定
---特殊Executorの作成~
ワークフローの各ステップで必要な処理を分離し流れを明確に...
・入力ストレージ Executor:分類エージェントへ転送するメッ...
・変換 Executor:エージェントの JSON 応答を型付きのルーテ...
・ハンドラー Executor:ガード条件(条件関数)を使って分類...
---ルーティングロジックの構築~
分類結果に応じて、次に呼び出すエージェントを切り替える条...
・受信メッセージや分類結果を評価する条件を設計~
・Case オブジェクトに条件を設定し、スイッチケース構造を構...
・予期しない分類結果のフォールバックとして必ず default ケ...
-マゼンティック
--ユースケース
---事前に定義されたソリューション パスを持たない複雑また...
---有効なソリューションを形成するには、複数の特殊なエージ...
---システムは、人間のレビューのための文書化されたアプロー...
---エージェントには、外部システムやリソースと直接やり取り...
---動的に構築された実行プランは、タスクを実行する前に価値...
--アンチパターン
---ソリューション パスは固定または確定的
---計画を動的に作成する必要はない。
---より軽量なオーケストレーション パターンに十分にシンプ...
---高速実行の計画が重視されるため、速度が優先される。
---解決パスが明確でなくても、頻繁にストールまたはループが...
--実装
---特殊なエージェントを定義
---イベント処理コールバックを設定
---ワークフローを構築(MagenticBuilder)
---標準マネージャーを構成(最大ラウンド数、ストール数、リ...
---ワークフローを実行(run_stream)
---ワークフロー イベントを処理(WorkflowOutputEvent)
---最終的な結果を抽出する
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--カスタマーサポート自動化
---問い合わせトリアージ
---VOC(Voice of Customer)分析
---問い合わせ→対応部署振り分け
---バグ報告や要望の整理
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
--パッケージをインストールし、.envを構成
--agents.pyにコードを追加
---インポートの追加:AgentsClient、CodeInterpreterTool な...
---エージェントの作成
・モデル:gpt-4o
・Instructions:Summarizer、Classifier、Actionの役割
・Azure CLI 認証:AzureCliCredential
・SequentialBuilder:エージェントを順序付きで実行
・ChatMessage / WorkflowOutputEvent:入出力管理
---現在の顧客フィードバックを初期化
・ダッシュボードは毎日指標のモニタリングに使用しており、...
・昨日、アカウントにアクセスできなかったため、カスタマー...
---定義したエージェントを使用して順次オーケストレーション...
SequentialBuilder().participants([...]).build()
---オーケストレーションにデータを渡して応答を取得するコー...
--Azure にログインしてアプリを実行
az login
python agents.py
--オーケストレーションでカスタマーサポート自動化
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***A2A を使用して Azure AI エージェントを検出 [#zeaf9796]
https://learn.microsoft.com/ja-jp/training/modules/discov...
-[[ツールのMCPのエージェント版がACP → A2A>https://dotnetd...
-エージェント間 (A2A) プロトコルの利点
--強化されたコラボレーション
--柔軟なモデル選択
--統合認証
-定義するエージェント スキル(特定の機能を記述)の主な要素
--ID :スキルの一意の識別子
--名前:スキルを説明するための人が読みやすい名前。
--説明:スキルの動作の詳細な説明。
--タグ:分類と検出を容易にするキーワード。
--例 :実際のスキルを示すサンプル プロンプトまたはユース...
--入力/出力モード:データ形式またはメディアの種類
-公開するエージェント カード(デジタル 名刺)の主な要素
--ID 情報: エージェントの名前、説明、およびバージョン。
--エンドポイント URL: エージェントの A2A サービスにアクセ...
--機能: ストリーミングやプッシュ通知など、サポートされて...
--入出力モード: エージェントが処理できるプライマリ メディ...
--認証のサポート: エージェントがアクセスに資格情報を必要...
--スキル: 他のエージェントが呼び出すことができるエージェ...
-エージェント Executor を実装
--AgentExecutor インターフェイスは、エージェントに送信さ...
---ユーザーまたは他のエージェントによって要求されたタスク...
---応答をストリーム配信するか、個々のメッセージをクライア...
---サポートされている場合は、タスクの取り消しを処理
--要求処理フロー
---A2Aエージェントにはコア ロジックを実装する小さなヘルパ...
---Executor は要求を受け取り、エージェントのロジックを呼...
---Executor は、結果をイベントとしてラップし、イベント キ...
---ルーティング メカニズムは、イベントを要求元に送り返す。
-A2A サーバーをホスト
--ホストによってできるようになること
---エージェント カードを介してその機能を公開、検出できる...
---サーバーはエージェント・ロジックと外部の世界との間のブ...
---受信した A2A 要求を受信し、処理のために エージェント E...
---ストリーミング応答やステートフルな対話など、タスクのラ...
--コア コンポーネント
---エージェント カード~
・エージェントの機能、スキル、入出力モードについて説明~
・標準エンドポイント (通常は /.well-known/agent-card.json...
---要求ハンドラー~
・着信要求を エージェント Executor の適切なメソッドにルー...
・タスク ストアを使用してタスクのライフサイクルを管理。追...
---サーバー アプリケーション~
・HTTP 要求を処理するための Web フレームワーク (Python で...
・asyncioのASGI サーバー (Uvicorn など) と組み合わせて、N...
・エージェント カードと要求ハンドラを公開し、クライアント...
--A2A エージェント サーバーの設定
---エージェントのスキルとエージェント カードを定義
---Executor をタスク ストアにリンクする要求ハンドラーを初...
---エージェント カードと要求ハンドラーを提供して、サーバ...
---ASGI サーバーを使用してサーバーを起動し、ネットワーク...
---実行によりエージェントは受信要求をリッスンし、定義され...
-A2A エージェントに接続
--クライアントのやること
---エージェント カードの検出
---エージェントに要求を送信
---エージェントの応答を受信
--エージェント サーバーに接続
---クライアントは、サーバーの ベース URL を 認識
---サーバー上の既知のエンドポイントからエージェント カー...
---クライアントを初期化し、メッセージを送信できる接続を確立
--エージェントに要求を送信
---非ストリーミング要求:メッセージを送信し、完全な応答を...
---ストリーミング要求:メッセージを送信し、応答を増分的に...
--エージェントの応答を処理
---ダイレクト メッセージ:テキストや構造化コンテンツなど...
---タスク ベースの応答:進行中のタスクを表すオブジェクト...
--エージェントとの対話
---各要求は一意に識別。多くの場合、生成された ID を使用。
---ストリーミング応答は非同期であり、最終的な出力の前に部...
---単純なエージェントはメッセージを直接返す。高度なエージ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-agents/Ins...
--「タイトル生成エージェント」と「アウトライン生成エージ...
---タイトルエージェント → ブログタイトルを生成
---アウトラインエージェント → タイトルを受け取り記事構成...
---ルーティングエージェント → プロンプトからどのエージェ...
--Foundry プロジェクトを作成
--Foundry プロジェクトのエンドポイントをメモ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-agents/tr...
python
├── outline_agent/
│ ├── agent.py
│ ├── agent_executor.py
│ └── server.py
├── routing_agent/
│ ├── agent.py
│ └── server.py
├── title_agent/
│ ├── agent.py
│ ├── agent_executor.py
│ └── server.py
├── client.py
└── run_all.py
--パッケージをインストールし、.envを構成
--タイトル・エージェントを実装
---title_agent/agent.py~
・インポートの追加:AgentsClient、CodeInterpreterTool な...
・Foundry プロジェクトへ接続:DefaultAzureCredential を使...
・スレッド・メッセージを作成、runs.create_and_processで実...
---title_agent/server.py~
・エージェント スキル・エージェント カードを定義~
・Executor を作成し要求ハンドラに設定~
・A2A サーバのアプリケーション インスタンスを作成。
--ルーティング・エージェントの実装~
routing_agent/agent.py にて:
---ユーザーの入力を解析し、どのエージェントに送るか判断
---A2A でリモート・エージェントExecutorへメッセージ送信
---非同期で send_message を await し、結果を受け取る
--エージェント Executor を実装~
title_agent/agent_executor.py にて:
---エージェントの生成(await self._get_or_create_agent())
---タスクのステータスを更新(task_updater.update_status)
---エージェントの会話を実行(run_conversation)
---応答でタスクを更新(task_updater.update_status)
---タスクを完了としてマーク(task_updater.complete)
--Azure にログインしてアプリを実行
az login
python run_all.py
--エージェントと対話し、React プログラミングに関する記事...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**自然言語ソリューションを開発 [#c1380f09]
https://learn.microsoft.com/ja-jp/training/paths/develop-...
***テキスト分析(Azure AI Language - Language Service) [...
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Azure Language の基本機能~
テキストから言語検出、感情分析、抽出(キー・フレーズ、名...
-機能
--感情分析:0-1の肯定/中立/否定の3値
--キー・フレーズ:名詞に限らない単語。
--エンティティ:人、場所、住所、日時、組織、URI系(カテゴ...
--エンティティ リンク:同音異義語などWikiにリンクするので...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成。
---キーとエンドポイントを後で使うために確認しておく。
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--text-analysis.pyにコードを追加
---インポートの追加:Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---各分析機能の呼び出しを追加(メソッド呼び出し)~
detect_language、analyze_sentiment、extract_key_phrases、...
XXXXX = ai_client.XXXXX(documents=[text])[0]
...
--エンドポイント&APIキーを使用してアプリを実行
python text-analysis.py
--実行結果の確認~
言語、感情、キーフレーズ、エンティティ、リンク付きエンテ...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Q&A(Azure AI Language - Language Service) [#u8f48caa]
https://learn.microsoft.com/ja-jp/training/modules/create...
-Azure Language の質問に回答する機能(Q&A サービス)
-ユース ケースの違い
||質問応答|言語理解|h
|パターン|ユーザーが質問を送信し回答を待つ|ユーザーが発話...
|クエリ処理|自然言語の理解を使用しKB回答に質問を一致させ...
|応答|応答は既知の質問に対する静的な回答|応答では、最も可...
|クライアント ロジック|ユーザーに質問の回答を表示|検出さ...
-KBのタイプ
--タイトルとリンク
--構造化されたテキスト
--定義済みのチャットパターン
-KBの作成
--Azure portalのFoundry Toolsの言語サービス リソースの下...
--"質問応答" 機能を有効にします。KBをホストする Azure AI ...
--Language Studio で、Azure 言語リソースを選択しカスタム...
--1 つまたは複数のデータ ソースを追加して、KBを設定(FAQ...
-テストしてデプロイ
-KBをAzure AI SearchでRAG Index化した際のクエリ~
質問、top(-K)、しきい値、メタデータでフィルタ~
-精度向上施策
--マルチターン会話の実装(フォローアップ・プロンプトと応...
---Alternate questions(言い換え質問):ユーザーが同じ意...
---Follow-up prompts(フォローアップ質問):回答後に、ユ...
--アクティブ・ラーニング(Q&Aから学習し代替質問のKB追加を...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom Question Answering を有効化
---Azure Search(Cognitive Search)も自動的に紐づく
---後で使う エンドポイントとキー を確認しておく
--新規Custom Question Answeringプロジェクト LearnFAQ を作成
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
---デフォルト回答も設定
--KBにデータを追加
---FAQ ページの URL に Microsoft Learn の FAQ ページを取...
https://learn.microsoft.com/en-us/training/support/faq?pi...
---“Friendly” スタイルのChit-chat(雑談応答)として追加
---「Hello」「Thanks」などの雑談に応答できるようにする
--KBのデータを編集
---自分で新しい Q&A ペアを追加~
例:「What are the different types of modules on Microsof...
---Alternate questions(言い換え質問)を追加
---Follow-up prompts(フォローアップ質問)を設定
--KBのトレーニングとテスト
---Save → Test でテストパネルを開く
---「Hello」「What is Microsoft Learn?」などを入力して動...
---フォローアップ・リンクも確認
--KBのデプロイ
---「Deploy knowledge base」から production にデプロイ
---「Get prediction URL」で REST API のエンドポイントを確認
---サンプル リクエストにprojectName/deploymentNameパラメ...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--qna-app.pyにコードを追加
---インポートの追加:Azure AI Language Question Answering...
---クライアント(QuestionAnsweringClient)を生成
---入力された質問を API に送信し、回答を表示するループを...
--エンドポイント&APIキーを使用してアプリを実行
python qna-app.py
--実行して質問を投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***CLU(Azure AI Language - Language Service) [#i49a9c5c]
https://learn.microsoft.com/ja-jp/training/modules/build-...
-Azure Language の会話言語理解(CLU)モデルを構築
-[[ユース ケースの違い>#u8f48caa]]
-事前構成済みの機能(= [[テキスト分析>#ffe0efec]])~
概要、固有表現認識、PII検出、キー フレーズ抽出、感情分析...
-学習済み機能
--教師あり学習とデプロイを行う必要がある。
--会話言語理解 (CLU)、カスタム固有表現認識、カスタム テキ...
-エンティティ定義
--発話、意図(インテント)、種類(学習/リスト)
--「発話」のパターンを定義して類似した発話の「意図」を区...
--1 つのエンティティにつき、最大 5 つの事前構築済みコンポ...
-モデルのトレーニング、テスト、発行、およびレビュー
--トレーニング:サンプル発話から意図とエンティティを学習
--テスト:対話形式か、データセットを使用
--トレーニング済みのモデルをパブリック エンドポイントにデ...
--クライアント アプリで予測を確認
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---後で使う エンドポイントとキー を確認しておく
--Language Studioで新規Conversational language understand...
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
--意図(インテント)を追加
---GetTime(時刻を知りたい)既定~
ラベル付けの発話を入力:what is the 18:37:48、what's the ...
---GetDay(曜日を知りたい)を追加~
ラベル付けの発話を入力:what day is it?、what's the day?...
---GetDate(日付を知りたい)を追加~
ラベル付けの発話を入力:what date is it?、what's the 2026...
--意図(インテント)のテスト
---トレーニングジョブを実行し、モデルを学習
---精度(Precision / Recall / F1)や混同行列を確認
---デプロイ(production)してテスト発話で動作確認
--エンティティを追加
---Learned Entity(学習型)~
Location:“London”, “Paris”, “New York” などをラベル付け
---List Entity(リスト型)~
Weekday:Sunday〜Saturday とその略称(Mon, Tue, Wed…)
---Prebuilt Entity(組み込み)~
Date(DateTime):“01/01/1901”, “Dec 31st 2099” などを自...
--エンティティのテスト
---トレーニングジョブを実行し、モデルを学習
---精度(Precision / Recall / F1)や混同行列を確認
---デプロイ(production)してテスト発話で動作確認
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--clock-client.pyにコードを追加
---インポートの追加:Azure AI Language Conversations SDK
---クライアント(ConversationAnalysisClient)を生成
---ユーザーが「終了」するまで入力を促す~
・ユーザー入力をモデルに送信し~
・返ってきた Intent / Entity を解析~
・GetTime / GetDay / GetDate に応じて処理を実行
--エンドポイント&APIキーを使用してアプリを実行
python clock-client.py
--実行して質問を投げ結果を確認
---こんにちは
---今何時ですか?
---ロンドンの時刻は何時ですか?
---日付は何ですか?
---日曜日は何日ですか?
---今日は何曜日ですか?
---2025年1月1日は何日ですか?
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***分類(Azure AI Language - Language Service) [#sa0e416c]
https://learn.microsoft.com/ja-jp/training/modules/custom...
-2 種類のプロジェクト:単一ラベル分類、複数ラベル分類
-分類問題のモデルの評価と改善(一般論)
-APIペイロード(JSONインターフェイス)
-データ(ラベル定義、タグを付け)、モデル(トレーニング、...
-WebAPIが特徴的で、分類テキストをPOSTで送信した後、operat...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom text classification & extraction を有効化
---ストレージアカウントの確認(StorageV2)とRBACの設定
---後で使う エンドポイントとキー を確認しておく
--学習データの準備
---サンプル記事のZIPをダウンロード~
https://aka.ms/classification-articles
---ZIPをストレージ アカウントのBLOBコンテナにアップロード
---コンテナ設定(匿名アクセスの一時的許可)
--Language Studioで新規Custom text classificationプロジェ...
---前に作成した Azure AI Language リソースを選択
---Single label classification
---言語は英語を選択
---BLOBコンテナに接続
--データのラベル付け
---クラス(4分類)の作成
---各記事へのラベル付与
---Training / Testing の割り当て
---ラベルの保存
--モデルのトレーニング
---トレーニングジョブの作成
---手動データ分割の利用
---トレーニング完了の確認
--モデルの評価
---モデル性能の確認
---誤分類の確認
---改善ポイントの把握
--モデルのデプロイ
---デプロイメントの作成
---デプロイ名とモデルの指定
---API利用準備
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--classify-text.pyにコードを追加
---インポートの追加:Azure AI Language Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---分類バッチを実行して結果を表示する。
--エンドポイント&APIキーを使用してアプリを実行
python classify-text.py
--実行して分類バッチを投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***NER(Azure AI Language - Language Service) [#w730a092]
https://learn.microsoft.com/ja-jp/training/modules/custom...
-テキスト分類というより、単語の分類という感じ。
-カスタムの名前付きエンティティ認識 (カスタム固有表現認識)
-エンティティは、人、場所、物、イベント、スキル、または値
-組み込み型NERと、カスタム化されたNERがある。
-データについてのポイント(多様性/分布/精度)
-ラベル付与でのポイント(整合性/精度/完全性)
-テスト
--トレーニングジョブを実行し、モデルを学習
--精度(Precision / Recall / F1)や混同行列を確認
--デプロイ(production)してテスト発話で動作確認
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Language リソースの作成
---Azure Portal で Language Service を作成
---Custom NER(カスタム固有表現抽出)機能を有効化
---ストレージアカウントの確認(StorageV2)とRBACの設定
---後で使う エンドポイントとキー を確認しておく
--学習データの準備
---サンプル記事のZIPをダウンロード~
https://aka.ms/entity-extraction-ads
---ZIPをストレージ アカウントのBLOBコンテナにアップロード
---コンテナ設定(匿名アクセスの一時的許可)
--Language Studioで新規Custom named entity recognitionプ...
---前に作成した Azure AI Language リソースを選択
---言語は英語を選択
---BLOBコンテナに接続(ラベルなしデータとして読み込む)
--データラベリング
---3エンティティ作成(ItemForSale/Price/Location)
---各広告ファイルを開き、該当部分をハイライトしてラベル付け
---全 9 ファイルをラベル付けし、保存
--モデルのトレーニング/評価/デプロイ
---テストデータは自動分割、数分待つとトレーニング完了
---Model performanceで精度を確認、失敗ケースの改善ポイン...
---Deploying a model → 新規デプロイ(モデルを選択しデプロ...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--custom-entities.pyにコードを追加
---インポートの追加:Azure AI Language Text Analytics SDK
---クライアント(TextAnalyticsClient)を生成
---NERバッチを実行して結果を表示する。
--エンドポイント&APIキーを使用してアプリを実行
python custom-entities.py
--実行してNERバッチを投げ結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***翻訳(Azure AI Translator - Translators) [#c0920d1d]
https://learn.microsoft.com/ja-jp/training/modules/transl...
-Azure Translatorは 90 の言語間でテキストを翻訳
-次の目的で使用できる多言語テキスト翻訳 API が用意
--言語検出:detection
--翻訳:translation
--音訳:transliteration
-翻訳オプション
--ワード・アラインメント:includeAlignment=trueで単語間の...
--文の長さ:includeSentenceLength=trueで翻訳前後の文字数
--フィルター処理:
---profanityAction=NoAction/Deleted/Marked
---profanityMarker=伏せ字やタグを指定できる。
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Translatorリソースの作成
---Azure Portal で Translators を作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--translate.pyにコードを追加
---インポートの追加:Azure AI Translation SDK
---クライアント(TextTranslationClient)を生成
---ターゲット言語を選択、
---ユーザーが「終了」するまで入力を促す
--エンドポイント&APIキーを使用してアプリを実行
python translate.py
--実行して翻訳結果を確認
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声(Azure AI Speech - Speech service) [#r542d84b]
https://learn.microsoft.com/ja-jp/training/modules/create...
-Azure Speech の API
--音声テキスト変換
--テキスト読み上げ
--音声翻訳
--キーワード認識
--意図認識
-Azure Speech to Text API
--機能
---リアルタイム文字起こし
---ファスト トランスクリプション: 最速の同期出力
---バッチ文字起こし: 大量の録音済みオーディオに対して効率...
---Custom Speech:特定のドメインおよび条件に対して精度を...
--使用
---SpeechConfig(リソースの場所とキー、その他、SpeechSynth...
---AudioConfig(形式:ファイルの種類/サンプル レート/ビッ...
---SpeechConfig と AudioConfig を使用して SpeechRecognize...
---RecognizeOnceAsync()で非同期的に文字起こし。結果は(期...
--SSML~
音声合成マークアップ言語 (SSML) 構文
<speak version="1.0" xmlns="http://www.w3.org/2001/10/sy...
xmlns:mstts="https://www.w3.org/200...
<voice name="en-US-AriaNeural">
<mstts:express-as style="cheerful">
I say tomato
</mstts:express-as>
</voice>
<voice name="en-US-GuyNeural">
I say <phoneme alphabet="sapi" ph="t ao m ae t o...
<break strength="weak"/>Lets call the whole thin...
</voice>
</speak>
Aria は cheerful に “I say tomato” と発音、Guy は別の発音...
「もうやめにしよう!」([[発音の違いでケンカになるカップル...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Speechリソースの作成
---Azure Portal で Speech serviceを作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--speaking-clock.pyにコードを追加
---インポートの追加:Azure AI Speech SDK
---音声認識(Speech-to-Text)~
・SpeechConfig と AudioConfig を設定して SpeechRecognizer...
・音声ファイルを読込、recognize_once_async() で音声をテキ...
---音声合成(Text-to-Speech)~
・SpeechConfig と AudioConfig を設定して SpeechSynthesize...
・出力ファイルを指定、speak_text_async() で音声を生成
--エンドポイント&APIキーを使用してアプリを実行
python speaking-clock.py
--実行して結果を確認
---音声認識
---音声合成
--オプション
---音声合成部分を SSML に置き換え
---マイク・スピーカーがある場合のコード
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声翻訳(Azure AI Speech - Speech service) [#j7c2f7a1]
https://learn.microsoft.com/ja-jp/training/modules/transl...
-音声の翻訳
--SpeechTranslationConfig(リソースの場所とキー、その他、...
--AudioConfig(形式:ファイルの種類/サンプル レート/ビッ...
--SpeechTranslationConfig と AudioConfig を使用して Trans...
--RecognizeOnceAsync()で非同期的に音声翻訳。結果は(期間/...
-翻訳の音声合成
--イベントベース~
TranslationRecognizer オブジェクトに合成イベントのイベン...
--手動~
---SpeechRecognitionResultの翻訳結果を反復処理し、SpeechS...
---手動dで翻訳を音声に合成する場合は、SpeechConfig を使用...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Azure AI Speechリソースの作成
---Azure Portal で Speech serviceを作成
---価格レベル: F0 (無料)、またはS (標準) を選択
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--translator.pyにコードを追加
---インポートの追加:Azure AI Speech SDK
---SpeechTranslationConfig、AudioConfig、SpeechConfigの設定
---音声の翻訳、翻訳の音声合成を実装する。
--エンドポイント&APIキーを使用してアプリを実行
python translator.py
--実行して音声の翻訳 → 翻訳の音声合成の結果を確認
--オプション:マイク・スピーカーがある場合のコード
---マイク入力用の SpeechRecognizer
---スピーカー出力用の SpeechSynthesizer
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***音声LLM(Phi-4-multimodal-instruct) [#j08fd747]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-音声テキスト変換→LLMではなく、Phi-4-multimodal-instruct...
-テキスト コンテンツとオーディオ コンテンツの両方を含むマ...
-メッセージには、URL または バイナリ データ として オーデ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Foundry プロジェクトにマルチモーダルLLMモデルをデプロイ
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-language/...
--パッケージをインストールし、.envを構成
--audio-chat.pyにコードを追加
---インポートの追加:AIProjectClientなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AIProjectClientを作成
---オーディオ ファイルを取得/エンコード
---オーディオ入力への応答を取得
--Azure にログインしてアプリを実行
az login
python audio-chat.py
--マルチモーダルLLMモデルとプロンプト+音声で対話し、回答...
(この例ではプロンプトで音声情報の内容に関する質問をして...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***Voice Live [#j8daa5bb]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-リアルタイム対話型音声ソリューション用(LLMと音声で対話)~
以下の 3 つを 低遅延で一体化 したリアルタイム音声対話エン...
--音声認識(Speech-to-Text)
--LLM 推論(GPT‑4o Realtime など)
--音声合成(Text-to-Speech)
-Azure Voice Live API
--機能~
音声認識、テキスト読み上げ合成、アバター ストリーミング、...
---PCM16 や G.711 などの複数の形式をサポートするリアルタ...
---OpenAI 音声や Azure カスタム音声などの高度な音声オプシ...
---ビデオとアニメーションに WebRTC を使用したアバター統合
---ノイズリダクションとエコーキャンセルを内蔵
--接続
---トークン ベースの認証
---Microsoft Entra ID で推奨されるキーレス認証
--WebSocket エンドポイント
---プロジェクト接続
---モデル接続
--イベント~
クライアント イベントとサーバー イベントがある。
---クライアント イベント~
・session.update: セッション構成の変更~
・input_audio_buffer.append: バッファにオーディオ データ...
・response.create: モデル推論を使用して応答を生成
---サーバー イベント~
フィードバックと状態の更新を提供~
・session.updated: セッション構成の変更~
・response.done: 応答生成の完了~
・conversation.item.created: 新しい会話アイテムが追加
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-language/I...
--Cloud Shell で演習ファイルを取得
mkdir voice-live-web && cd voice-live-web
wget https://github.com/MicrosoftLearning/mslearn-ai-lan...
unzip voice-live-web.zip
--Flask アプリに Voice Live エージェントの実装を追加
---__init__ と start() の実装~
Voice Live SDK を使うための初期化コードを追加。
---セッション設定の追加~
・モダリティ(TEXT + AUDIO)~
・TTS の音声設定~
・入出力音声フォーマット(PCM16)~
・サーバー側 VAD(Voice Activity Detection)
--音声イベントのハンドラを実装
---SESSION_UPDATED → 会話準備完了
---SPEECH_STARTED → ユーザーが話し始めた
---SPEECH_STOPPED → 入力終了、処理開始
---RESPONSE_AUDIO_DELTA → 音声応答送信開始
---RESPONSE_AUDIO_DONE → 音声応答送信完了
---ERROR → エラー処理
--デプロイ用スクリプトを編集し、Azure へデプロイ
---デプロイ用スクリプト(azdeploy.sh)を編集~
・リソースグループ名~
・デプロイ地域
---Azure へデプロイ~
bash azdeploy.sh~
・モデルデプロイ~
・ACR でコンテナ・イメージ作成~
・App Service へデプロイ
--アプリをテスト
---App Service の URL を開く
---「Start session」を押して音声デバイスを許可
---マイクに向かって話しかけるとリアルタイム応答
--リソースのクリーンアップ~
Azure Developer CLI が azd up / azd provision で作成した ...
(azdeploy.shn内部でAzure Developer CLI が azd up / azd p...
azd down --purge
**CVソリューションを開発 [#xb12c321]
https://learn.microsoft.com/ja-jp/training/paths/create-c...
-Azure Vision は Computer Vision
-機能
--画像分析
--光学式文字認識 (OCR)
--顔検出と分析
--ビデオ分析
***画像分析(Azure AI Vision - Computer Vision) [#vfd32b...
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-ココでは画像分析に絞って説明
-画像分析のユースケース
--コンテンツ・イメージのキャプション生成
--画像に関連付ける適切な タグ を提案
--画像内の一般的な オブジェクト/ユーザー を検出
-Azure Vision API
--画像要件
---画像は JPEG、PNG、GIF、または BMP 形式
---イメージのファイル サイズは 4 MB未満
---画像の寸法は 50 x 50 ピクセル以上
--機能~
使用可能なビジュアル機能は、 VisualFeatures 列挙体に含ま...
---VisualFeatures.Read: 読み取り可能なテキストを抽出
---VisualFeatures.Tags: 画像に関するタグを識別
---VisualFeatures.Caption: 自然言語で画像のキャプションを...
---VisualFeatures.Objects:検出オブジェクトの境界ボックス...
---VisualFeatures.DenseCaptions: 検出オブジェクトの詳細な...
---VisualFeatures.People:検出された人物の境界ボックスを返す
---VisualFeatures.SmartCrops: 対象領域での指定した縦横比...
--接続
---トークン ベースの認証
---Microsoft Entra ID で推奨されるキーレス認証
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Computer Visionを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--image-analysis.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---ImageAnalysisClientを作成
---画像分析の実施(visual_features=[VisualFeatures.CAPTIO...
---画像の提案タグ/キャプション/高密度キャプションを表示、...
--エンドポイント&APIキーを使用してアプリを実行
python image-analysis.py images/street.jpg
--各種画像の画像分析を行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***OCR(Azure AI Vision - Computer Vision) [#yee2bc53]
https://learn.microsoft.com/ja-jp/training/modules/read-t...
-ココでは光学式文字認識 (OCR)に絞って説明
-テキストを読み取るための Azure AI オプション
--Azure Vision
---ドキュメントのスキャン
---写真内のテキストの検索と読み取り
---デジタル資産管理 (DAM)
--Azure Document Intelligence
---フォーム処理
---事前構築済みモデル
---カスタム モデル
--Azure Content Understanding
---マルチモーダル コンテンツ抽出
---カスタム コンテンツ分析シナリオ
-画像内のテキストの位置情報は、テキスト行の位置と個々の単...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Computer Visionを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--read-text.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---ImageAnalysisClientを作成
---OCRの実施、見つかったテキスト行を印刷
---画像内で注釈を付ける関数を呼び出し
---個々の単語の位置を返す
--エンドポイント&APIキーを使用してアプリを実行
python read-text.py images/Lincoln.jpg
--各種画像のOCRを行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***顔検出と分析(Azure AI Vision - Face) [#d4f95527]
https://learn.microsoft.com/ja-jp/training/modules/detect...
-ココでは顔検出と分析に絞って説明
-Azure Vision Face API
--顔検出
--顔属性分析
---眼鏡、マスク、ノイズ、オクルージョン、アクセサリー
---露出、ぼかし、頭部姿勢、QualityForRecognition
--顔の主要なランドマークの座標
--顔比較 - 確認(複数の画像の中から見つける)と検証(2つ...
--顔認識 - モデルをトレーニングし、モデルを使用して新しい...
--ライブネス - 入力ビデオが実際のストリームか偽物かを判断...
-顔を確認して識別する
--顔の確認:顔が検出されると、一意の ID が割り当てられ、...
--顔の識別:個人を人物グループにさまざまなポーズで追加し...
--ユースケース
---画像内の個人を識別、顔 ID を付与。
---新しい画像から既知の顔に似た顔を見つける。
-責任ある AI に関する考慮事項
--データのプライバシーとセキュリティ:トレーニングと推論...
--透明性: 顔データの使用方法と、その顔データへのアクセス...
--公平性と包摂性:顔ベースのシステムを、見た目に基づいて...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure AI Visionリソースの作成
---Azure Portal で Faceを作成
---価格レベル: F0 (無料)
---後で使う エンドポイントとキー を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--analyze-faces.pyにコードを追加
---インポートの追加:Azure AI Vision SDKなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---FaceClientを作成
---顔を検出して分析
--エンドポイント&APIキーを使用してアプリを実行
python analyze-faces.py images/face1.jpg
--各種画像の顔分析を行い結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像分類(Azure Custom Vision) [#s2cc29d5]
https://learn.microsoft.com/ja-jp/training/modules/classi...
-ココでは「Azure AI Custom Visionの画像分類」に絞って説明
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure Custom Visionリソースの作成
---Azure Portal で Custom Visionを作成
---トレーニング、予測価格レベル: F0 (無料)
---プロジェクトの種類: 分類、分類タイプ: マルチクラス、分...
---プロジェクト ID、エンドポイントとキー を確認しておく
---Training 用と Prediction 用で キーが異なる
--GUIでトレーニング
---画像をダウンロード&アップロードしてタグ付け~
https://github.com/MicrosoftLearning/mslearn-ai-vision/ra...
---トレーニング → クイックトレーニング
---トレーニング後メトリックを確認しクイック テスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--APIでトレーニング
---パッケージをインストールし、.envを構成(トレーニングリ...
---train-classifier.pyのコードを確認(CustomVisionTrainin...
---エンドポイント&APIキーを使用してアプリを実行
python train-classifier.py
---画像分類のトレーニング結果を確認する。
--APIで画像分類
---トレーニング済みのモデルを公開
---パッケージをインストールし、.envを構成(予測リソースの
---test-classifier.pyのコードを確認(CustomVisionPredicti...
---エンドポイント&APIキーを使用してアプリを実行
python test-classifier.py
---画像分類の結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***物体検出(Azure Custom Vision) [#d92e283d]
https://learn.microsoft.com/ja-jp/training/modules/detect...
-ココでは「Azure AI Custom Visionの物体検出」に絞って説明
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Azure Custom Visionリソースの作成
---Azure Portal で Custom Visionを作成
---トレーニング、予測価格レベル: F0 (無料)
---プロジェクトの種類: 物体検出、ドメイン: 一般
---プロジェクト ID、エンドポイントとキー を確認しておく
---Training 用と Prediction 用で キーが異なる
--GUIでトレーニング
---画像をダウンロード&アップロード~
https://github.com/MicrosoftLearning/mslearn-ai-vision/ra...
---タグ付けし、必要に応じて領域のサイズを変更
---スマート ラベラー ツールを使う場合、最初の物体検出モデ...
---トレーニング → クイックトレーニング
---トレーニング後メトリックを確認しクイック テスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--APIでアップロード
---パッケージをインストールし、.envを構成(トレーニングリ...
---tagged-images.jsonのタグ付き領域リストを確認
---add-tagged-images.pyのコードを確認(CustomVisionTraini...
---エンドポイント&APIキーを使用してアプリを実行
python add-tagged-images.py
---画像のアップロード結果を確認する。
--APIでトレーニング(なし)
--APIで物体検出
---トレーニング済みのモデルを公開
---パッケージをインストールし、.envを構成(予測リソースの
---test-detector.pyのコードを確認(CustomVisionPrediction...
---エンドポイント&APIキーを使用してアプリを実行
python test-detector.py
---物体検出の結果を確認する。
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ビデオ分析(Video Indexer) [#ycced0f1]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-ココでは「ビデオから分析情報を抽出する」ビデオ分析に絞っ...
-Azure Video Indexer は、顔識別、テキスト認識、オブジェク...
-機能
--顔認識
--光学式文字認識(OCR)
--音声文字起こし
--トピック
--センチメント
--ラベル
--コンテンツモデレーション
--シーン分割
-カスタム モデル
--「顔」認識
--「言語」認識
--「ブランド」認識
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Video Indexer に動画をアップロード
---Video Indexer ポータル(https://www.videoindexer.ai)...
---Responsible AI 動画(https://aka.ms/responsible-ai-vid...
---「Responsible AI」という名前に変更し、ポリシー確認後ア...
---数分待つと自動でインデックス化される
--抽出されたインサイトを確認
---Transcript(音声文字起こし)
---OCR(画面内テキスト)
---Speakers(話者識別)
---Insights ペイン~
・出演人物~
・話題(Topics)~
・オブジェクトラベル~
・ブランドや人物などのエンティティ~
・キーシーン~
・キーワード~
・感情分析(Sentiment)
---Insights検索~
・Insights ペインの検索ボックスで特定の内容を検索可能~
・例:「Bee」で検索すると、動画内の該当箇所へジャンプ
--GitHub リポジトリからサンプルを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
---APIからVideo Indexerの結果を確認
・Video Indexer の Account ID と API Key を取得。~
・PowerShell スクリプト(get-videos.ps1)に値を設定し、RE...
・JSONに以前にインデックスを作成したResponsible AIビデオ...
---ウィジェットからVideo Indexerの結果を確認~
・Video Indexer ポータルからPlayer widget、Insights widge...
・analyze-video.htmlのHTML に貼り付けて保存。ブラウザで動...
・以前にインデックスを作成したResponsible AIビデオの詳細...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像LLM(gpt-4o) [#t437fc1b]
https://learn.microsoft.com/ja-jp/training/modules/develo...
-[[音声LLM>#j08fd747]]の画像版なので画像LLM
-画像テキスト変換→LLMではなく、gpt-4oなどのマルチモーダル...
-テキスト コンテンツとビデオ コンテンツの両方を含むマルチ...
-メッセージには、URL または バイナリ データ として オーデ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Foundry プロジェクトにマルチモーダルLLMモデルをデプロイ
--プレイグラウンドでモデルをテスト
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--chat-app.pyにコードを追加
---インポートの追加:AIProjectClientなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AIProjectClientを作成
---URLベースの画像プロンプトを送信
---画像プロンプトへの応答を取得
--Azure にログインしてアプリを実行
az login
python chat-app.py
--マルチモーダルLLMモデルとプロンプト+画像で対話し、回答...
(この例ではプロンプトで画像情報の内容に関する質問をして...
--オプション:ローカル画像ファイルをアップロードするよう...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***画像生成(dall-e-3) [#rab01ff2]
https://learn.microsoft.com/ja-jp/training/modules/genera...
-画像生成モデル:DALL-E 3、GPT-Image 1など
-プレイグラウンドで設定(解像度/スタイル/画質)を調整して...
-DALL-E モデルのAPIのパラメタ(prompt/n/size/quality/style)
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-vision/Ins...
--Foundry プロジェクトに画像生成モデルをデプロイ
--プレイグラウンドでモデルをテスト
--エンドポイント、APIバージョン、デプロイ名を確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-vision/tr...
--パッケージをインストールし、.envを構成
--dalle-client.pyにコードを追加
---インポートの追加:AzureOpenAIなどを読み込む。
---Foundry プロジェクトへ接続:DefaultAzureCredential を...
---AzureOpenAIを作成
---プロンプトを送信
---画像のURLを取得
--Azure にログインしてアプリを実行
az login
python dalle-client.py
--画像生成モデルのプロンプトへの回答を受信
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
**AI 情報抽出ソリューションを開発 [#n812be37]
https://learn.microsoft.com/ja-jp/training/paths/ai-extra...
***マルチモーダル コンテンツ分析ソリューション [#r67c5b78]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Content Understanding は、マルチモーダルの情報抽出AI
--請求書など「ドキュメントとフォーム」を分析し、特定のフ...
--画像の特定のオブジェクトや人物の存在を検出、他の情報を...
--電話会議の要約、会話記録kからの感情判断、電話録音からの...
--プレゼンテーション要約、ビデオ会議のポイント、セキュリ...
-ポータル
--Foundry ハブ リソースを作成
--抽出する情報の Content Understanding スキーマを定義して...
--(使用可能なスキーマのテンプレート・フィールドは、コン...
--完成したスキーマに基づいてアナライザーを構築
--アナライザーを使用して、新しいコンテンツからフィールド...
-REST APIの使用~
非同期に要求して結果を取得する(認証はAPIキーを使用する)。
--リクエスト
POST {endpoint}/contentunderstanding/analyzers/{analyzer...
{
"url": "https://host.com/doc.pdf"
}
--レスポンス
Operation-Id: 1234abcd-1234-abcd-1234-abcd1234abcd
Operation-Location: {endpoint}/contentunderstanding/anal...
{
"id": "1234abcd-1234-abcd-1234-abcd1234abcd",
"status": "NotStarted"
}
--リクエスト
GET {endpoint}/contentunderstanding/analyzers/{analyzer}...
-演習~
全てポータルで実施~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--請求書(PDF)/スライド画像(JPG)/音声(MP3)/ビデオ(M...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Content Understanding 機能は ハブ ベースの Project が...
---リージョンは Australia East / Sweden Central / West US
--GitHub リポジトリからサンプルを取得~
https://github.com/microsoftlearning/mslearn-ai-informati...
--請求書(Invoice)からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・invoice-1234.pdf をアップロード~
・「Invoice data extraction」テンプレートを使用~
・不要なフィールドを削除し、必要なフィールドを追加~
・Items テーブルのサブフィールドも整理~
---テスト & Analyzer 作成~
・スキーマを保存し、テスト実行~
・invoice-analyzer をビルドしinvoice-1235.pdf で動作確認
--スライド画像からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・slide-1.jpg をアップロード~
・「Image analysis」テンプレートを使用(初期フィールドな...
・フィールド追加:Title/Summary/Charts/QuarterlyRevenue/P...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・slide-analyzer をビルドし、slide-2.jpg で動作確認
--音声からの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・call-1.mp3 をアップロード~
・「Speech transcript analysis」テンプレートを使用(初期...
・フィールド追加:Caller/Summary/Actions/CallbackNumber/A...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・voicemail-analyzer をビルドし、call-2.mp3 で動作確認
--ビデオからの情報抽出
---タスクの作成~
・タスク名、説明、単一ファイルコンテンツ分析~
・Azure AI サービス接続: Foundry ハブのリソース~
・Azure Blob Storage アカウント: Foundry ハブのデフォルト...
---スキーマ定義~
・meeting-1.mp4 をアップロード~
・「Video analysis」テンプレートを使用(初期フィールドな...
・フィールド追加:Summary/Participants/ParticipantNames/★...
---Analyzer 作成~
・スキーマを保存し、テスト実行~
・conference-call-analyzer をビルドし、meeting-2.mp4動作...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***マルチモーダル コンテンツ分析クライアント [#l3bb76f9]
https://learn.microsoft.com/ja-jp/training/modules/analyz...
-Azure Content Understanding の REST APIの使用~
--スキーマ定義/アナライザー作成
--コンテンツ分析/分析結果処理
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--「名刺画像から情報を抽出するアナライザー」を作成し、そ...
--Foundry ハブとプロジェクトの作成(基盤準備)
---Content Understanding 機能は ハブ ベースの Project が...
---リージョンは Australia East / Sweden Central / West US
---エンドポイント、APIバージョンを確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--パッケージをインストールし、.envを構成
--スキーマ定義/アナライザー作成
---biz-card.jsonを確認
---create-analyzer.pyにコードを追加~
create_analyzer関数の「Create a Content Understanding ana...
---エンドポイント&APIキーを使用してアプリを実行
python create-analyzer.py
---実行結果の確認~
操作の成功 (または失敗) を確認
--コンテンツ分析/分析結果処理
---read-card.pyにコードを追加~
analyze_card関数の「Use Content Understanding to analyze ...
---エンドポイント&APIキーを使用してアプリを実行
python read-card.py biz-card-1.png
---実行結果の確認~
cat results.json
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ドキュメント インテリジェンス 事前構築済みモデル [#bdf...
https://learn.microsoft.com/ja-jp/training/modules/use-pr...
-Document Intelligenceの事前構築済みモデルによる情報抽出
-フォーム:事前構築済みモデル
--特定のフォーム
---請求書、領収書、米国税
---ID ドキュメント、医療保険カード、結婚証明書、名刺モデル
---クレジット/デビット カード、小切手、口座取引明細書、給...
--特定ではないフォーム
---読み取りモデル:ページ、段落、テキスト、行、単語
---レイアウト モデル:読み取りモデル+選択マーク、テーブ...
---一般ドキュメント モデル:テキスト、キー・値、エンティ...
-事前構築済みモデル
--抽出機能
---テキスト
---エンティティ(人、場所、日付)
---キーと値のペア
---フィールド
---選択マーク(ラジオ ボタンやチェック ボックス)
---テーブル
--入力の要件
---ファイルの形式:JPEG、PNG、BMP、TIFF、PDF、読み取りモ...
---ファイルのサイズ:Standard レベルでは 500 MB 未満、Fre...
---画像のサイズ:50 x 50 ピクセルから 10,000 x 10,000 ピ...
---PDFのサイズ:17 x 17 インチまたは A3 用紙サイズ以下
---PDFはパスワードを解除しておく。可能であれば、テキスト...
---PDF TIFF は、Standard レベルでは、最初の 2,000 ページ...
--Document Intelligence
---Studio:事前構築済みのモデルを選択、ファイルを追加し分析
---REST API:API を使用した事前構築済みモデルの呼び出し
-特定ではないフォームの詳細
--読み取りモデル
---固定または予測可能な構造がないドキュメントから単語と行...
---ドキュメントと画像から印刷されたテキストと手書きのテキ...
---手書きテキストよりも印刷されたテキストについて多くの言...
--一般ドキュメント モデル
---読み取りモデルにキーと値のペア、エンティティ、選択マー...
---エンティティ抽出をサポートする唯一の事前構築済みモデル
---検出できるエンティティ(Person/PersonType/Location/Orga...
--レイアウト モデル
---テキスト抽出だけでなくドキュメントの構造に関する情報を...
---テーブル:コンテンツ テキスト、境界ボックスのサイズと...
---選択マーク:境界ボックス、信頼度インジケーター、選ばれ...
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--事前構築済みモデルで文書を解析する一連の手順
--Foundry ハブとプロジェクトの作成(基盤準備)
---Vision + Document 機能は ハブ ベースの Project が必須
---Azure AI サービスページで、Vision + Documentタイルを選択
---Vision + Documentページのドキュメントタブで、OCR/読み...
---[読み取り]ページの左側のドキュメントの一覧で、read-ger...
---[分析オプション]を選択、 [分析オプション]ペインの[言語...
---[分析の実行]を選択し結果を確認(「コンテンツ」タブ、「...
---エンドポイント、APIバージョンを確認しておく
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--パッケージをインストールし、.envを構成
--document-analysis.pyにコードを追加
---インポートの追加:DocumentAnalysisClientなどを読み込む。
---Foundry プロジェクトへ接続:AzureKeyCredentialを使って...
---DocumentAnalysisClientを作成
---請求書の分析と分析結果の取得・表示
--エンドポイント&APIキーを使用してアプリを実行
python document-analysis.py
--実行結果の確認~
仕入先名、顧客名、請求額の合計を信頼度付きで表示
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ドキュメント インテリジェンス その他のトピック [#ld262...
https://learn.microsoft.com/ja-jp/training/modules/work-f...
-Azure Document IntelligenceにアクセスするAPIキーには~
Foundry Tools リソースとDocument Intelligence リソースを...
-その他?
--抽出機能
---OCR 機能を使用してドキュメント分析をキャプチャ:読み取...
---W-2s、請求書、領収書、ID ドキュメント、医療保険、ワク...
---業界固有のフォームからデータを抽出:カスタム モデルを...
--入力の要件
---ファイルの形式:JPG、PNG、BMP、PDF、または TIFF
---ファイルのサイズ:Paid (S0) レベルの場合は 500 MB 未満...
---画像のサイズ:50 x 50 ピクセル から 10,000 x 10,000 ピ...
---トレーニング データ セットの合計サイズは 500 ページ以下
-カスタム モデルのトレーニング(教師あり機械学習)
--Azure Document Intelligence Studio を使用してラベル付け...
カスタム フォームの基になるモデルには、カスタム テンプレ...
---カスタム テンプレート モデル:ラベル付きのキーと値のペ...
---カスタム ニューラル モデル:レイアウト機能と言語機能を...
--手動でラベル付けとトレーニング
---レイアウトおよびラベル フィールド情報を含む JSON ファ...
・サンプル フォームごとに Layout API を実行しレイアウト解...
・さらにfields.json ファイル(手動ラベリング結果)とlabels...
---コンテナーの共有アクセス セキュリティ (SAS) URL を生成
---REST API(またSDK)でトレーニングを実施する?
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--カスタムモデルの構築に焦点を当てた手順
--Foundry ハブ リソースではなく、Document Intelligence リ...
---価格レベル: Free F0 または Standard S0
---「リソースグループ」、「サブスクリプションID」、「場所...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--setup.shのコードを変更して実行
---subscription_id、resource_group、およびlocation変数の...
---expiry_date変数が過去の日付になっている場合は、将来の...
---スクリプトを実行可能にして実行し、必要なAzureリソース...
chmod +x ./setup.sh
./setup.sh
---BLOBコンテナ(sampleforms)へのファイル・アップロード...
ストレージアカウント、Blob コンテナを作成しアップロード、...
--Document Intelligence Studioでトレーニング
---Document Intelligence Studio にアクセスし新規プロジェ...
---サービスリソースを構成し、トレーニング データ ソースに...
---モデルのトレーニング(モデル ID を設定、Build Mode:Te...
--カスタム モデルをテスト
---パッケージをインストールし、.envを構成
---test-model.pyのコードを確認
---エンドポイント&APIキーを使用してアプリを実行
python test-model.py
---実行結果の確認~
出力にフィールド名に対応する値がどのように提供されるかを...
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
***ナレッジ マイニング ソリューション [#nb543a55]
https://learn.microsoft.com/ja-jp/training/modules/ai-kno...
-Azure AI Searchによるナレッジ マイニング
-以下のようなユースがある。
--エンタープライズ検索 ソリューション
--ナレッジ マイニング ソリューション
--生成型AIアプリケーションにおける検索拡張生成 (RAG) を支援
-幅広いデータ ソースの検索(インデックス作成とクエリ実行...
--構造化ドキュメント、半構造化ドキュメント、および非構造...
--エンリッチメント・パイプラインで抽出された分析情報をナ...
-エンリッチメント・パイプライン
--ドキュメント・クラッキング:テキスト・画像の抽出
--AIスキル適用:言語検出、OCR、画像分析、エンティティ抽出...
--フィールド生成:スキルの出力を JSON ドキュメントに追加
-インデックスの基本構造
document
metadata_storage_name
metadata_author
content
normalized_images
image0
Text
image1
Text
language
merged_content
-AIスキル
--組込スキル
---言語検出
---翻訳
---場所、エンティティ検出
---キーフレーズの決定と抽出
---PIIの識別と抽出(または削除)
---画像からテキストを抽出
---画像キャプションとタグの生成
--カスタム スキル
---カスタム ロジックを実行して、インデックスに組み込むこ...
---多くの場合、ドキュメントからデータを抽出するように特別...
---一般的なホスティング手法としては、Azure Functions や C...
-インデックス検索
--インデックスに格納された JSON ドキュメントを検索し、フ...
--検索クエリは Lucene ベースで、Simple と Full の 2 種類...
--インデックスの(検索動作を決定する)フィールド属性
---key:一意の識別子
---searchable:フルテキスト検索の対象
---filterable:フィルター条件に使用可能
---sortable:並べ替えに使用可能
---facetable:集計に使用可能
---retrievable:検索結果に含めるかどうか
--クエリ・パラメタ
---search:検索語句
---queryType:simple または full
---searchFields:検索対象フィールド
---select:返すフィールド
---searchMode:any(OR) / all(AND)
---$filter:OData フィルター式
---$orderby:並べ替え条件
--フルテキスト検索(Lucene クエリ)~
searchにのみ適用される。以下の 2 種類をサポートする。
---Simple 構文:直感的・簡易的でキーワード検索に向く
---Full 構文:正規表現で、高度な検索が可能
--クエリ処理の流れ(4段階)
---クエリ解析(キーワード・フレーズ・プレフィックスなどに...
---語句解析(小文字化、ストップワード除去、語幹化など)
---ドキュメント取得(一致する文書を検索)
---スコアリング([[TF-IDF>https://dotnetdevelopmentinfras...
--代表的な検索例
---フィルター~
キーワード検索「London」に対し、著者(author)列が Reviewe...
・Simple 検索式にフィルター条件を含める例
search=London+author='Reviewer'
queryType=Simple
・$filter パラメタで ODataフィルタを指定する例
search=London
$filter=author eq 'Reviewer'
queryType=Full
※ ODataフィルタはsearchnの外だがFull出ないとダメらしい。
---ソート~
全件検索に対し、最終更新日時(last_modified)列でソートを...
search=*
$orderby=last_modified desc
---集計~
全件検索に対し、著者(author)毎の集計(ファセット)を行...
search=*
facet=author
さらに集計(ファセット)に対し、著者(author)列 でOData...
search=*
$filter=author eq 'selected-facet-value-here'
-演習~
ポータルで準備してPython(WebAPI)でテスト~
https://microsoftlearning.github.io/mslearn-ai-informatio...
--Azure AI Searchによるナレッジ マイニングに焦点を当てた...
--Azure AI Search(Free tier)、Azure Storage Account(Bl...
---リソースを同じリージョンに作成
---「リソースグループ」、「サブスクリプションID」、「場所...
--GitHub リポジトリからサンプルアプリを取得~
https://github.com/MicrosoftLearning/mslearn-ai-informati...
--PDF ドキュメントのアップロード
---documents.zipをダウンロード
---documents.zipを解答しPDF ファイルを取得
---ストレージアカウント、Blob コンテナを作成しアップロード
--インデクサーの作成~
Azure AI Search の Import dataを使用して以下を設定
---データソース:Blob コンテナ
---エンリッチメント:OCR を有効にするオプションを選択、す...
---AI スキル:テキスト認知スキル(人名、場所、キーフレー...
---ナレッジ ストア:Blob(書類)、Tables(文書、キーフレ...
---ストレージ アカウントの接続文字列:既存の接続、ストレ...
---検索インデックス:名前、主キー:metadata_storage_path...
---各フィールドの retrievable/filterable/sortable/facetab...
---インデクサー:名前、実行スケジュール:Once(1回)を指...
--Search Explorer で検索テスト~
Azure AI Search の Search Explorer を使用し、以下のような...
---全件検索
{ "search": "*", "count": true }
---特定フィールドのみ取得
{ "search": "*", "count": true, "select": "metadata_stor...
---条件付き検索
{ "search": "New York", "count": true, "select": "metada...
--クライアントアプリの実行
---検索リソースのエンドポイントとキーを取得
---パッケージをインストールし、.envを構成
---search-app.pyのコードを確認
---エンドポイント&APIキーを使用してアプリを実行
python search-app.py
---検索クエリを対話的に入力~
検索クエリに対応する検索結果が取得できるかを確認
--ナレッジ ストアの確認~
ストレージ アカウント の ストレージ・ブラウザ で以下を確...
---Blob:各ドキュメントごとに JSON が生成され、抽出情報が...
---File:PDF 内の画像が JPEG として保存される
---Table:~
・margiesSkillsetDocument(ドキュメント一覧)~
・margiesSkillsetKeyPhrases(抽出キーフレーズ)
--クリーンアップ(課金防止)
---Azure Portal で、演習で使用したリソースグループを開く。
---Delete resource group を実行し、すべての関連リソースを...
*詳細 [#s29cb701]
以下、機械学習や深層学習の知識のみで回答可能なものは省略...
*参考 [#td0e8407]
**リンク(公式) [#o8546e42]
***Training | Microsoft Learn [#x9ff3f74]
-https://learn.microsoft.com/ja-jp/training/courses/ai-10...
-https://learn.microsoft.com/ja-jp/credentials/certificat...
***学習ガイド [#uc3b7885]
-試験 AI-102: Microsoft Azure AI ソリューションの設計と実...
https://learn.microsoft.com/ja-jp/credentials/certificati...
***製品ドキュメント系 [#fe498b35]
**ネット情報 [#cc7f0038]
***[[対策情報>Azure AI 資格(AI-102)対策#t383f14e]] [#xb...
***コース [#qba10c8b]
-https://udemy.benesse.co.jp/development/qualification/ai...
--AI-102 Microsoft Azure AI Solution Complete Exam Prep 2...
https://www.udemy.com/course/ai102-azure/?couponCode=MT25...
--【AI-102 Azure AI Engineer Associate】試験対策講座~
https://www.udemy.com/course/ai-102-azure-ai-engineer-ass...
**試験前 [#o09f71d9]
***[[模擬試験>Azure AI 資格(AI-102)対策#cb729369]] [#ef...
***申し込み [#l08f6e16]
-https://learn.microsoft.com/ja-jp/credentials/certificat...
----
Tags: [[:.NET開発]], [[:構成管理ツール]], [[:CI]], [[:BI/...
ページ名: