0Pricing
Azure Fundamentals · レッスン

Azure OpenAI Service

Azure OpenAI Service に GPT モデルをデプロイし、スクリプトから completions API を呼び出して、責任ある AI の原則とコンテンツ フィルターのオプションを理解します。

「Azure OpenAI Service」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。

Azure OpenAI Serviceとは

Azure OpenAI Serviceは、MicrosoftのAzureクラウド インフラストラクチャを通じて、GPT-4、GPT-3.5-turbo、DALL-E、Embeddingsモデルなど、OpenAIの大規模言語モデルにアクセスできるサービスです。OpenAI APIを直接使用する場合とは異なり、Azure OpenAIでは、VNet/Private Linkによるプライベート ネットワーク、Microsoftのコンプライアンス認証(ISO 27001、SOC 2、GDPR)、コンテンツ フィルタリング、顧客データのプライバシー(データがOpenAIの基盤モデルのトレーニングに使用されない)、Azure RBACおよび監視との統合といったエンタープライズ機能を利用できます。

アクセスの申請とモデルのデプロイ

Azure OpenAIを利用するには承認済みのサブスクリプションが必要です。アクセスは制限されており、フォームから申請する必要があります。承認されたら、Azure OpenAIリソースを作成し、その中にdeploymentを作成します。デプロイでは、モデル(例:gpt-4)をデプロイ名(例:my-gpt4)とトークン クォータ(1分あたりのトークン上限)に関連付けます。APIの呼び出しには、基盤モデル名ではなくデプロイ名を使用します。異なるモデルやクォータを持つ複数のデプロイを、1つのリソース内に共存させることもできます。

# Create an Azure OpenAI resource
az cognitiveservices account create \
  --name myOpenAI \
  --resource-group myRG \
  --kind OpenAI \
  --sku S0 \
  --location eastus

# Create a deployment
az cognitiveservices account deployment create \
  --name myOpenAI \
  --resource-group myRG \
  --deployment-name my-gpt4 \
  --model-name gpt-4 \
  --model-version '0613' \
  --model-format OpenAI \
  --sku-name Standard \
  --sku-capacity 10

Chat Completions API

chat completions API(/openai/deployments/{deployment}/chat/completions)は、ロール(system、user、assistant)を持つメッセージのリストを受け取り、モデルの応答を返します。systemメッセージは、モデルの動作とペルソナを設定します。userメッセージにはプロンプトまたは質問を含めます。会話の過去のターンはメッセージ配列に含めるため、複数ターンの対話でもモデルはコンテキストを維持できます。Temperature(0~2)は応答のランダム性を制御します。

# Chat completion API call
curl -X POST 'https://myOpenAI.openai.azure.com/openai/deployments/my-gpt4/chat/completions?api-version=2024-02-01' \
  -H 'api-key: <key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "messages": [
      {"role": "system", "content": "You are a helpful Azure expert."},
      {"role": "user", "content": "Explain what a Recovery Services vault is."}
    ],
    "temperature": 0.7,
    "max_tokens": 500
  }'

プロンプト エンジニアリングの基本

Prompt engineeringとは、言語モデルから最適な結果を得るために、効果的な入力メッセージを作成する手法です。主なテクニックには、System prompt—モデルに明確な役割と制約を与えること、Few-shot examples—期待する入力と出力の形式の例を2~5個モデルに示すこと、Chain-of-thought—最終的な回答を出す前に手順を追って考えるようモデルに求めること、Constraints—形式、長さ、避けるべき内容をモデルに明示的に指示することがあります。優れたプロンプトはハルシネーションを減らし、一貫性を高めます。

セマンティック検索のためのEmbeddings

Embeddingsは、意味情報を捉えた高密度の数値ベクトルにテキストを変換します。意味が似ている2つのテキストは、ベクトル空間内で近いベクトルになります(コサイン類似度で測定)。Azure OpenAIのembeddingsエンドポイント(/embeddings)は、text-embedding-ada-002モデルを使用して1,536次元のベクトルを生成します。Embeddingsは、セマンティック検索(クエリに似た文書の検索)、RAG(Retrieval-Augmented Generation)、レコメンデーション システムの構築に使用します。

# Get an embedding vector for a piece of text
curl -X POST 'https://myOpenAI.openai.azure.com/openai/deployments/my-embedding/embeddings?api-version=2024-02-01' \
  -H 'api-key: <key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "input": "Azure Site Recovery replicates VMs to a secondary region."
  }'

コンテンツ フィルタリング

Azure OpenAIには、プロンプト(入力)とcompletion(出力)の両方に対して動作する多層のコンテンツ フィルタリングシステムが含まれています。次の4つのカテゴリのコンテンツを検出してブロックします:hate、sexual、violence、self-harm。各カテゴリには3つの深刻度レベル(low、medium、high)があり、カテゴリごとにフィルタリングのしきい値を設定できます。プロンプト インジェクションの試み(システム プロンプトの上書きを狙うjailbreak)もフィルタリングされます。コンテンツ フィルタリングは既定で有効になっており、ほとんどのモデルでは、ユースケースの正当性が示されない限り無効にできません。

Retrieval-Augmented Generation(RAG)

RAGは、言語モデルの応答をモデルのトレーニング知識だけに頼らず、独自のデータに基づかせる手法です。流れは次のとおりです:(1)文書をベクトル ストア(例:Azure AI Search)にインデックス化する、(2)ユーザーが質問したら、質問を埋め込みに変換してベクトル ストアを検索し、関連する文書チャンクを取得する、(3)それらのチャンクをコンテキストとしてシステム プロンプトに含める、(4)モデルが提供されたコンテキストに基づいて回答する。RAGによりハルシネーションを減らし、ファインチューニングなしでLLMが非公開かつ最新のデータに関する質問に回答できるようになります。

ファインチューニングとRAGの比較

カスタムデータを使ってモデルの機能を拡張する方法には、2つのアプローチがあります。ファインチューニングでは、ユーザーの例を使って新しいモデルバージョンをトレーニングし、その知識をモデルの重みに組み込みます。プロンプトでは説明しにくい特定のスタイル、形式、動作をモデルに学習させる場合に適しています。RAGでは、推論時に関連情報を取得してコンテキストとして提供します。頻繁に変更される大規模なナレッジベースにはこちらが適しています。モデルを再トレーニングする代わりに、ベクトルインデックスを更新できるためです。ほとんどのエンタープライズ用途では、コストが低く反復が速いRAGが推奨されます。

Azure AI Studio(AI Foundry)

Azure AI Studio(Azure AI Foundryへのブランド変更が進められています)は、Azure上で生成AIアプリケーションを構築するための統合ポータルです。インタラクティブにモデルの補完をテストできるプレイグラウンド、正解データセットに対してモデルの品質を評価するツール、RAGパイプラインをREST APIとして構築・デプロイするためのプロンプトフローデザイナー、さらに開発ワークフロー向けのGitHubおよびVS Codeとの統合機能を提供します。Azure AI Studioを使うと、モデルのデプロイから本番のAIアプリケーションまでの工程を簡素化できます。

トークンの料金とクォータ管理

Azure OpenAIの料金は、処理した1,000トークンごとに発生します。1トークンは、およそ4文字または0.75語に相当します。入力(プロンプト)トークンと出力(補完)トークンの両方が課金対象です。GPT-4は、GPT-3.5-turboよりトークンあたりの料金が大幅に高くなります。各デプロイには、スループットを制限して不正利用を防ぐトークン毎分(TPM)クォータがあります。アプリケーションがクォータを超えると、APIは429 TooManyRequestsを返します。クォータの増加を申請するか、クライアント側で指数バックオフと再試行ロジックを実装できます。

生成AIにおける責任あるAI

Microsoftは、責任あるAIの原則を生成AIにも適用しています。根拠性 — 応答は検証可能な情報に基づく必要があります(RAGが役立ちます)。透明性 — ユーザーはAIと対話していることを知る必要があります。有害性の防止 — コンテンツフィルターによって有害な出力をブロックします。プライバシー — Azure OpenAI内のデータが、OpenAIのグローバルモデルのトレーニングに使用されることはありません。Azure OpenAI上に構築するアプリケーションには、ユースケースのリスク評価を含め、MicrosoftのAcceptable Use Policyで求められる、特定された有害性への対策を実装する必要があります。

クイックチェック

このレッスンで学んだMicrosoft Azure Fundamentals(AZ-900)の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、Azure OpenAI Serviceによって、プライベートネットワークやコンプライアンス機能を備えたエンタープライズ向けのGPT-4などのモデルへのアクセスが提供されること、チャット補完APIによって、system、user、assistantのメッセージロールを使用したマルチターンの会話が実現すること、そして埋め込みとRAGによってプライベートデータを基にモデルの応答を生成し、ハルシネーションを減らせることを学びました。次は、Azureのコントロールプレーンを通じてハイブリッドおよびオンプレミスのリソースを管理するAzure Arcについて学びます。

よくある質問

「Azure OpenAI Service」レッスンは無料ですか?

はい。「Azure OpenAI Service」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。

「Azure OpenAI Service」で何を学びますか?

Azure OpenAI Service に GPT モデルをデプロイし、スクリプトから completions API を呼び出して、責任ある AI の原則とコンテンツ フィルターのオプションを理解します。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Azure Fundamentalsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Azure OpenAI Service」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAzure Fundamentalsレッスンでコードを書いて実行できますか?

はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure Cognitive Services の概要
  2. Language と Vision API の実践
  3. Azure Machine Learning Studio
  4. Azure OpenAI Service
← Azure Fundamentalsに戻る