Compartir a través de


Modelos de razonamiento de Azure OpenAI

Los modelos o1 y o1-mini de Azure OpenAI están diseñados para abordar tareas de razonamiento y resolución de problemas con un mayor foco y capacidad. Estos modelos invierten más tiempo en procesar y comprender la solicitud del usuario, lo que hace que sean excepcionalmente fuertes en áreas como ciencia, codificación y matemáticas en comparación con las iteraciones anteriores.

Funcionalidades clave de la serie de datos o1

  • Generación de código compleja: capaz de generar algoritmos y controlar tareas avanzadas de codificación para admitir a los desarrolladores.
  • Solución avanzada de problemas: ideal para sesiones completas de lluvia de ideas y abordar desafíos multifacéticos.
  • Comparación compleja de documentos: perfecto para analizar contratos, archivos de casos o documentos legales para identificar diferencias sutiles.
  • Instrucción Siguiente y Administración de flujos de trabajo: especialmente eficaz para administrar flujos de trabajo que requieren contextos más cortos.

Disponibilidad

Los modelos series o1 y ya están disponibles para el acceso a la API y la implementación del modelo. El registro es obligatorio y se concederá acceso en función de los criterios de idoneidad de Microsoft. Los clientes que aplicaron y recibieron acceso previamente a o1-preview no tienen que volver a aplicarlos, ya que se encuentran automáticamente en la lista de espera para el modelo más reciente.

Solicitud de acceso: aplicación de modelo de acceso limitado

Una vez que se ha concedido el acceso, deberá crear una implementación para cada modelo. Si actualmente no se admite una implementación o1-preview de la actualización local existente, deberá crear una nueva implementación.

Disponibilidad regional

Modelo Region
o1 Este de EE. UU. 2 (Estándar global)
Centro de Suecia (Estándar global)
o1-preview Consulte la página modelos.
o1-mini Consulte la página modelos.

API y compatibilidad con características

Característica o1, 2024-12-17 o1-preview, 2024-09-12 o1-mini, 2024-09-12
Versión de la 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
Mensajes para desarrolladores - -
Salidas estructuradas - -
Ventana de contexto Entrada: 200 000
Salida: 100 000
Entrada: 128 000
Salida: 32,768
Entrada: 128 000
Salida: 65,536
Esfuerzo de razonamiento - -
Mensajes del sistema - - -
Funciones y herramientas - -
max_completion_tokens

Los modelos de la serie o1 solo funcionarán con el parámetro max_completion_tokens.

Importante

Hay un problema conocido con el o1modelo de y el parámetro tool_choice. Actualmente, se producirá un error en las llamadas de función que incluyan el parámetro opcional tool_choice. Esta página se actualizará una vez resuelto el problema.

No compatible

Los siguientes modelos no son compatibles actualmente con los modelos de la serie o1:

  • Mensajes del sistema
  • Streaming
  • Llamada a herramientas paralelas
  • temperature, top_p, presence_penalty, frequency_penalty, logprobs, top_logprobs, logit_bias, max_tokens

Uso

Estos modelos actualmente no admiten el mismo conjunto de parámetros que otros modelos que usan la API de finalizaciones de chat.

Deberá actualizar la biblioteca cliente de OpenAI para acceder a los parámetros más recientes.

pip install openai --upgrade

Si no está familiarizado con el uso de Microsoft Entra ID para la autenticación, consulte Configuración de Azure OpenAI Service con autenticación de Microsoft Entra ID.

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))

Salida:

{
  "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"
        }
      }
    }
  ]
}

Esfuerzo de razonamiento

Nota:

Los modelos de razonamiento tienen reasoning_tokens como parte de completion_tokens_details en la respuesta del modelo. Estos son tokens ocultos que no se devuelven como parte del contenido de respuesta del mensaje, pero que el modelo usa para ayudar a generar una respuesta final a la solicitud. 2024-12-01-preview agrega un nuevo parámetro reasoning_effort adicional que se puede establecer en low, mediumo high con el modelo más reciente o1. Cuanto mayor sea la configuración de esfuerzo, más tiempo pasará el modelo procesando la solicitud, lo que generalmente dará lugar a un mayor número de reasoning_tokens.

Mensajes del desarrollador

Los mensajes "role": "developer" de desarrollador funcionalmente son los mismos que los mensajes del sistema.

  • Los mensajes del sistema no se admiten con los modelos de razonamiento de la serie o1.
  • o1-2024-12-17 con la versión de la API: 2024-12-01-preview y versiones posteriores agrega compatibilidad con los mensajes de desarrollador.

Agregar un mensaje de desarrollador al ejemplo de código anterior tendría el siguiente aspecto:

Deberá actualizar la biblioteca cliente de OpenAI para acceder a los parámetros más recientes.

pip install openai --upgrade

Si no está familiarizado con el uso de Microsoft Entra ID para la autenticación, consulte Configuración de Azure OpenAI Service con autenticación de Microsoft Entra ID.

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))