次の方法で共有


Azure OpenAI の推論モデル

Azure OpenAI の o1 および o1-mini モデルは、より焦点が合った、優れた能力で推論と問題解決のタスクに取り組めるように設計されています。 これらのモデルは、ユーザーの要求の処理と理解により多くの時間を費やし、これまでのイテレーションと比較して、科学、コーディング、数学などの分野で非常に強力になっています。

o1 シリーズの主な機能:

  • 複雑なコード生成: 開発者をサポートするための、アルゴリズム生成と、高度なコーディング タスクの処理の機能。
  • 高度な問題解決: 包括的なブレーンストーミング セッションや多面的な課題への対処に最適。
  • 複雑なドキュメント比較: 契約、ケース ファイル、法的ドキュメントなどを分析して微妙な違いを特定するのに最適。
  • 命令のフォローとワークフロー管理: 短いコンテキストを必要とするワークフローの管理に特に効果的。

可用性

o1 シリーズ モデルを API アクセスとモデル デプロイで使用できるようになりました。 登録が必要であり、Microsoft の適格性条件に基づいてアクセスが許可されます。 以前に o1-preview へのアクセスを申請して受け取ったお客様は、最新モデルの待機リストに自動的に追加されるため、再申請する必要はありません。

アクセスの要求: 制限付きアクセス モデルの申請

アクセスが許可されたら、モデルごとにデプロイを作成する必要があります。 既存の o1-preview デプロイがある場合、インプレース アップグレードは現在サポートされていません。新しいデプロイを作成する必要があります。

利用可能なリージョン

モデル リージョン
o1 米国東部 2 (グローバル標準)
スウェーデン中部 (グローバル標準)
o1-preview モデルのページを参照。
o1-mini モデルのページを参照。

API と機能のサポート

機能 o12024-12-17 o1-preview2024-09-12 o1-mini2024-09-12
API バージョン 2024-12-01-preview 2024-09-01-preview
2024-10-01-preview
2024-12-01-preview
2024-09-01-preview
2024-10-01-preview
2024-12-01-preview
開発者メッセージ - -
構造化出力 - -
コンテキスト ウィンドウ 入力: 200,000
出力: 100,000
入力: 128,000
出力: 32,768
入力: 128,000
出力: 65,536
Reasoning effort - -
システム メッセージ - - -
機能/ツール - -
max_completion_tokens

o1 シリーズ モデルは、max_completion_tokens パラメーターでのみ機能します。

重要

o1 モデルと tool_choice パラメーターには既知の問題が存在します。 現状、オプションの tool_choice パラメーターを含む関数呼び出しは失敗します。 この問題が解決された際には、このページは更新されます。

サポートされていません

現状、o1 シリーズ モデルにおいて、以下のものはサポート対象外です。

  • システム メッセージ
  • ストリーミング
  • 並列ツール呼び出し
  • temperature, top_p, presence_penalty, frequency_penalty, logprobs, top_logprobs, logit_bias, max_tokens

使用方法

これらのモデルでは現在、Chat Completions API を使用する他のモデルと同じパラメーター セットはサポートされていません

最新のパラメーターにアクセスするには、OpenAI クライアント ライブラリをアップグレードする必要があります。

pip install openai --upgrade

認証に Microsoft Entra ID を使うのが初めての場合は、「Microsoft Entra ID 認証を使用して Azure OpenAI Service を構成する方法」をご覧ください。

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))

出力:

{
  "id": "chatcmpl-AEj7pKFoiTqDPHuxOcirA9KIvf3yz",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "Writing your first Python API is an exciting step in developing software that can communicate with other applications. An API (Application Programming Interface) allows different software systems to interact with each other, enabling data exchange and functionality sharing. Here are the steps you should consider when creating your first Python API...truncated for brevity.",
        "refusal": null,
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      },
      "content_filter_results": {
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "protected_material_code": {
          "filtered": false,
          "detected": false
        },
        "protected_material_text": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ],
  "created": 1728073417,
  "model": "o1-2024-12-17",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_503a95a7d8",
  "usage": {
    "completion_tokens": 1843,
    "prompt_tokens": 20,
    "total_tokens": 1863,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 448
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 0
    }
  },
  "prompt_filter_results": [
    {
      "prompt_index": 0,
      "content_filter_results": {
        "custom_blocklists": {
          "filtered": false
        },
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "jailbreak": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ]
}

Reasoning effort

Note

推論モデルでは、モデル応答の completion_tokens_details の一部として reasoning_tokens があります。 これらは、メッセージ応答コンテンツの一部としては返されない隠されたトークンですが、利用者の要求に対する最終的な回答を生成するためにモデルによって使用されます。 2024-12-01-preview では、最新の o1 モデルで lowmedium、または high に設定できる新しいパラメーター reasoning_effort が追加されています。 effort 設定が高いほど、モデルが要求の処理に費やす時間が長くなり、一般に reasoning_tokens の数が多くなります。

開発者メッセージ

機能上、開発者メッセージ "role": "developer" はシステム メッセージと同じです。

  • o1 シリーズ推論モデルでは、システム メッセージがサポートされていません
  • API バージョン: 2024-12-01-preview 以降を使用した o1-2024-12-17 では、開発者メッセージのサポートが追加されています。

前述のコード例に開発者メッセージを追加すると、次のようになります。

最新のパラメーターにアクセスするには、OpenAI クライアント ライブラリをアップグレードする必要があります。

pip install openai --upgrade

認証に Microsoft Entra ID を使うのが初めての場合は、「Microsoft Entra ID 認証を使用して Azure OpenAI Service を構成する方法」をご覧ください。

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "developer","content": "You are a helpful assistant."}, # optional equivalent to a system message for reasoning models 
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))