Azure OpenAI の推論モデル
Azure OpenAI の o1
および o1-mini
モデルは、より焦点が合った、優れた能力で推論と問題解決のタスクに取り組めるように設計されています。 これらのモデルは、ユーザーの要求の処理と理解により多くの時間を費やし、これまでのイテレーションと比較して、科学、コーディング、数学などの分野で非常に強力になっています。
o1 シリーズの主な機能:
- 複雑なコード生成: 開発者をサポートするための、アルゴリズム生成と、高度なコーディング タスクの処理の機能。
- 高度な問題解決: 包括的なブレーンストーミング セッションや多面的な課題への対処に最適。
- 複雑なドキュメント比較: 契約、ケース ファイル、法的ドキュメントなどを分析して微妙な違いを特定するのに最適。
- 命令のフォローとワークフロー管理: 短いコンテキストを必要とするワークフローの管理に特に効果的。
可用性
o1 シリーズ モデルを API アクセスとモデル デプロイで使用できるようになりました。 登録が必要であり、Microsoft の適格性条件に基づいてアクセスが許可されます。 以前に o1-preview
へのアクセスを申請して受け取ったお客様は、最新モデルの待機リストに自動的に追加されるため、再申請する必要はありません。
アクセスの要求: 制限付きアクセス モデルの申請
アクセスが許可されたら、モデルごとにデプロイを作成する必要があります。 既存の o1-preview
デプロイがある場合、インプレース アップグレードは現在サポートされていません。新しいデプロイを作成する必要があります。
利用可能なリージョン
モデル | リージョン |
---|---|
o1 |
米国東部 2 (グローバル標準) スウェーデン中部 (グローバル標準) |
o1-preview |
モデルのページを参照。 |
o1-mini |
モデルのページを参照。 |
API と機能のサポート
機能 | o1、2024-12-17 | o1-preview、2024-09-12 | o1-mini、2024-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
モデルで low
、medium
、または 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))