curso
Azure OpenAI: Guía de iniciación paso a paso
Azure OpenAI permite acceder a los modelos de OpenAI, como el GPT-4, utilizando la plataforma de servicios en la nube Azure.
En este tutorial, presento Azure OpenAI y muestro cómo empezar a utilizarlo. Veremos cómo crear una cuenta, desplegar un modelo de IA y realizar varias tareas sencillas utilizando la API.
¿Qué es Azure OpenAI?
Azure ofrece una gama completa de servicios web, desde bases de datos SQL hasta soluciones de almacenamiento y análisis de datos como Azure Synapse. Muchos usuarios de estos servicios necesitan integrar los modelos de OpenAI en sus flujos de trabajo.
El método tradicional de acceder a los modelos de OpenAI es a través de la API de OpenAI. Azure OpenAI es la oferta de Microsoft de los modelos de OpenAI a través de la plataforma Azure. Permite a los usuarios de Azure integrar los servicios de OpenAI (procesamiento del lenguaje natural, generación de código, generación de imágenes y muchos más) en su infraestructura basada en Azure.
Así, los desarrolladores no necesitan aprender una nueva plataforma de servicios web e integrarla en sus flujos de trabajo. Como se basa en la plataforma Azure, es fácil de escalar y manejar cargas de trabajo pesadas. Los desarrolladores y las organizaciones que utilizan la plataforma Azure pueden utilizar la misma interfaz familiar para aprovisionar, gestionar, supervisar y presupuestar los servicios basados en IA. También facilita la gestión de los flujos de trabajo de cumplimiento y pago.
Desarrollar aplicaciones de IA
Configuración de Azure OpenAI
En esta sección, muestro cómo configurar Azure OpenAI. Supongo que tienes alguna experiencia en el uso de Azure.
Ten en cuenta que las interfaces de usuario cambian con frecuencia. Por tanto, la disposición y el texto de los distintos apartados y títulos de las instrucciones y capturas de pantalla pueden cambiar con el tiempo o de una región a otra.
Paso 1: Crear una cuenta Azure
Ve a la página principal de Azure OpenAIy selecciona Iniciar sesión en la parte superior derecha. Inicia sesión con tu cuenta Microsoft. Si no tienes una cuenta Microsoft, selecciona la opción de crear una cuenta nueva en la página de inicio de sesión y crea una cuenta Microsoft.
A continuación, crea una cuenta Azure siguiendo los pasos que se indican a continuación:
- Iniciando sesión con tu cuenta Microsoft en el Portal Azure. Selecciona la opción Comenzar con una prueba gratuita de Azure.
The Microsoft Azure Portal.
- En la página siguiente, selecciona la opción de crear una cuenta gratuita de cuenta gratuita Azure con 200 $ de créditos gratuitos.
Elige un tipo de cuenta Azure.
- Rellena tus datos personales en el formulario.
Crea una cuenta Azure gratuita.
- Verifica tu identidad utilizando una tarjeta de crédito o débito. Ten en cuenta que puede haber un cargo temporal por retención (normalmente unos céntimos o equivalente) que se cargará en tu cuenta.
Verifica tu cuenta Azure (captura de pantalla del autor)
- Tras verificar tu información de pago, selecciona Ir al Portal Azure. Te redirige al Centro de Inicio Rápido.
- Ten en cuenta que los créditos gratuitos de 200 $ no pueden utilizarse para los servicios Azure OpenAI. Sólo se puede acceder a los modelos de Azure OpenAI con una cuenta de pago. Para actualizar tu cuenta a una suscripción de pago por uso, vuelve al portal de Azure y selecciona Actualizar en la barra superior .
Actualiza tu cuenta Azure.
- Rellena los datos de la página de ampliación y selecciona Pasar a pago por uso.
Tras pasar a una cuenta de pago, podrás acceder a los modelos de OpenAI.
Paso 2: Accede a Azure OpenAI en el portal Azure
- Vuelve al portal de Azure, que muestra una variedad de servicios, como servicios de IA, máquinas virtuales, cuentas de almacenamiento y más.
Portal Azure mostrando los servicios disponibles.
- Selecciona los servicios Azure AI y ve a la página de inicio de los servicios AI. Azure ofrece varios servicios basados en IA, como reconocimiento facial, detección de anomalías, voz, visión por ordenador, OpenAI, etc.
Servicios Azure AI.
- En la Cuenta Azure OpenAI selecciona la pestaña Ver de Azure OpenAI.
- Esto te lleva a la páginaAzure OpenAI , que muestra la lista de instancias OpenAI de tu cuenta. Selecciona Crear Azure OpenAI para crear una nueva instancia. También puedes seleccionar Crear en la página anterior .
- Introduce los datos a continuación:
- En Suscripciónselecciona el nombre de tu suscripción de pago.
- En Grupo de recursosselecciona Crear nuevo:
- Introduce un nombre para el nuevo grupo de recursos.
Crea una nueva instancia de Azure OpenAI.
-
-
- En Región, selecciona la región más cercana.
- En Nombreintroduce un nombre único.
- Bajo el Nivel de precioselige Estándar S0.
- Selecciona Siguiente para continuar.
-
- En la sección Red, selecciona "Todas las redes, incluida Internet, pueden acceder a este recurso." A continuación, pasa al siguiente paso.
- En la secciónEtiquetas, introduce pares nombre-valor para categorizar esta instancia. Esto ayuda a consolidar la facturación. Este paso es opcional.
- En la siguiente sección, selecciona Revisar + enviar, vuelve a comprobar los valores y selecciona Crear. Esto despliega una nueva instancia de OpenAI.
- Al cabo de unos instantes, aparece el mensaje "Tu despliegue ha finalizado." En esta página, selecciona Ir al recurso.
- En la página de recursos, selecciona el nombre del recurso en la casilla Recursos pestaña Recursos.
Paso 3: Configurar el acceso a la API
La página de recursos muestra los detalles de la instancia.
La pestañaDesarrollar muestra las claves de la API y las URL de los puntos finales de la API para esta instancia. Las claves se han generado automáticamente para ti.
- Copia las claves y el punto final en un archivo de texto.
Obtendrás dos claves API. Esto te permite utilizar la segunda clave en caso de que la primera se vea comprometida. También puedes utilizar la segunda tecla mientras regeneras la primera. Esto te permite rotar las llaves periódicamente sin sufrir ningún tiempo de inactividad.
Claves API de la instancia OpenAI de Azure
- En el Monitorizar comprueba las métricas de uso de esta instancia.
- En el Empezar selecciona Explorar Azure AI Foundry portal para abrir la zona de juegos de IA en una página nueva.
Zona de juegos del chat Azure OpenAI.
- Selecciona el Chat zona de juegos en el menú de la izquierda.
- En Despliegueselecciona Crear nuevo despliegue.
- Selecciona De modelos base en la ventana emergente de nuevo despliegue
- Aparece una ventana emergente que te permite seleccionar el modelo.
- En la barra de búsqueda, escribe "gpt-3".
- Selecciona gpt-35-turbo de la lista. Se trata de un modelo económico optimizado para las terminaciones de chat. Después de conseguir una configuración que funcione, cambia a un modelo más avanzado (y más caro) si es necesario.
- Selecciona Confirmar.
- En el Desplegar modelo selecciona Personalizar.
- Reduce el Límite de Tasa de Fichas por Minuto a un valor bajo (por ejemplo, 12 peticiones por minuto) para realizar pruebas manuales. Auméntalo más adelante, cuando pongas el modelo en producción.
- Desactivar cuota dinámica. No lo necesitarás hasta que la implantación reciba mucho tráfico.
- Selecciona Despliega.
Despliega un nuevo modelo en el campo de juego del chat.
Eso es. En la siguiente sección, veremos cómo acceder a este despliegue del modelo OpenAI gpt-35-turbo
.
Regenerar claves API
Es aconsejable regenerar periódicamente las claves de acceso a la API. Esto garantiza que la cuenta no se vea comprometida si se filtran inadvertidamente claves antiguas. Los pasos siguientes describen cómo regenerar claves:
- En Gestión de Recursos, en el menú de la izquierda, elige Claves y Punto Final.
- Regenera cada llave individualmente.
Claves API de la instancia OpenAI de Azure.
Uso de Azure OpenAI en aplicaciones
Tras configurar Azure OpenAI y desplegar un modelo, veremos cómo acceder a él mediante programación.
Paso 1: Configurar tu entorno de desarrollo
Mostraré cómo utilizar Python para conectar con Azure OpenAI. Instala las bibliotecas necesarias:
$ pip install openai
Si utilizas un portátil, ejecuta el siguiente comando. Nota: Estoy utilizando un cuaderno DataLab.
!pip install openai
Importa los paquetes necesarios en el intérprete de comandos Python o en el bloc de notas:
import os
from openai import AzureOpenAI
El módulo AzureOpenAI
permite acceder a los servicios de OpenAI dentro de Azure. Esto es diferente del módulo OpenAI
utilizado para acceder a la API independiente de OpenAI .
Antes de utilizar Azure OpenAI, establece la clave API y el punto final en tu entorno. El apartado anterior mostraba cómo encontrar estos valores. En principio, puedes establecerlos dentro del entorno de programación, pero te recomiendo que no lo hagas nunca. Nunca expongas las claves API en el programa.
Establecer claves API utilizando el terminal
Para ejecutar Python localmente, establece la variable de entorno en el archivo de configuración del intérprete de comandos. Te mostraré cómo configurarlo para el intérprete de comandos Bash.
- Edita el archivo
.bashrc
en un editor de texto . - Al final del archivo, añade estas dos líneas:
export AZURE_OPENAI_API_KEY=MY_API_KEY'
export AZURE_OPENAI_ENDPOINT=MY_ENDPOINT'
- Guarda y cierra el archivo.
- Recarga los cambios en el terminal utilizando el comando
source ~/.bashrc
. - Para otras conchas, como
sh
ozsh
, el proceso puede ser ligeramente diferente . - Abre (o reabre) el intérprete de comandos Python en la misma sesión de terminal.
Importa la clave de la API y los valores del punto final en el terminal de Python:
azure_openai_api_key = os.getenv["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.getenv["AZURE_OPENAI_ENDPOINT"]
Establecer claves API utilizando cuadernos en línea (DataLab)
DataLab te permite establecer directamente variables de entorno para un bloc de notas.
- En la barra de menú superior, selecciona Entorno y elige Variables de entorno en el desplegable.
- Selecciona la opción para añadir variables de entorno.
- Añade dos variables,
AZURE_OPENAI_API_KEY
yAZURE_OPENAI_ENDPOINT
, y sus respectivos valores . - Da un nombre a este conjunto de valores de entorno y guarda los cambios.
En el cuaderno, extrae estos valores como se muestra a continuación:
azure_openai_api_key = os.environ["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
Paso 2: Haz tu primera llamada a la API de Azure OpenAI
Ahora puedes utilizar la función AzureOpenAI()
para crear un objeto client
que acepte solicitudes. Esta función utiliza los siguientes parámetros:
api_version
: La versión de la API Azure OpenAI. Consulta la última versión en la documentación de Azure.api_key
: la clave de la API Azure OpenAI. Obtén esto de las variables de entorno que estableciste antes. No lo configures manualmente aquí.azure_endpoint
: la URL del punto final de la API Azure OpenAI (obtén este valor del entorno).
client = AzureOpenAI(
api_version="2024-06-01",
api_key=azure_openai_api_key,
azure_endpoint=azure_openai_endpoint
)
Utiliza este objeto client
para tareas como completar chats utilizando la función .chat.completions.create()
. Esta función acepta los siguientes parámetros:
model
: El nombre del modelo. En versiones anteriores de la API de OpenAI, éste solía ser el parámetroengine
. Ten en cuenta que el parámetromodel
tiene que coincidir con el modelo especificado durante el despliegue (en el portal de Azure AI Foundry). Si intentas utilizar un modelo distinto al desplegado, se produce un error como el que se muestra a continuación:
NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}
messages
: Este parámetro especifica la conversación entre el usuario y el modelo. Consiste en un conjunto de objetos de mensaje. Cada objeto mensaje tiene un par clave-valor denotado porrole
(ya seasystem
,user
, oassistant
) ycontent
(el texto del mensaje). Estos objetos de mensaje proporcionan el contexto de la interacción y guían las respuestas del modelo.
A continuación, doy ejemplos de pares clave-valor (role
, content
) para distintos valores de role
:
user
: la consulta introducida por el usuario final.
Ejemplo: {“role”: “user”, “content”: “explain the difference between rational and irrational numbers”}
system
: la descripción del papel que se espera que desempeñe OpenAI en la interacción.
Ejemplo: {“role”: “system”, “content”: “you are a helpful teacher to guide elementary mathematics students”}
assistant
: la respuesta esperada de OpenAI.
Ejemplo: {“role”: “assistant”, “content”: “the difference between rational and irrational numbers is … an example explanation …”}
La función assistant
sólo es necesaria cuando se proporcionan datos de entrenamiento para afinar el modelo. Cuando utilices el client
para tareas como completar chats, sólo son suficientes los roles user
y system
. Para muchas tareas sencillas, basta con la función user
.
max_tokens
: este parámetro decide el número máximo de tokens que pueden utilizarse para procesar (tanto la entrada como la salida de) la llamada a la API. Se te cobran directamente las fichas que utilizas. El valor por defecto es 16. Este valor es suficiente para casos de uso sencillos; por tanto, este parámetro puede omitirse.
simple_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "user",
"content": "Explain the difference between OpenAI and Azure OpenAI in 20 words",
},
],
)
Imprime la salida de la tarea de finalización del chat:
print(simple_completion.to_json())
La salida es un objeto JSON con varios pares clave-valor. Incluye la salida del modelo, como se muestra en el ejemplo siguiente. Ten en cuenta que assistant
es el rol por defecto asignado al modelo .
"message": {
"content": "OpenAI is a research organization focused on advancing AI, while Azure OpenAI is a collaboration between Microsoft and OpenAI.",
"role": "assistant"
},
Paso 3: Utilizar modelos OpenAI para diferentes tareas
Para acceder a cualquier modelo con Azure OpenAI, primero debes desplegar el modelo. En la sección anterior, desplegaste el modelo gpt-35-turbo
. Para utilizar un modelo diferente:
- Vuelve a Azure AI Foundry y despliega un modelo diferente, como se explica en la sección anterior. Elige entre varios modelos como GPT-3.5, GPT-4o, o1 y o1-mini, o3 y o3-mini, y más .
- Reescribe las indicaciones anteriores (en la función
chat.completions.create()
) utilizando el nombre del nuevo modelo .
En versiones anteriores de OpenAI, era habitual utilizar distintos modelos para distintas tareas. Había modelos dedicados a la generación de código, PNL y más. Los modelos modernos como GPT-3.5 y GPT-4 pueden realizar todas las tareas generativas basadas en texto. Así, muchos de los antiguos modelos de tareas específicas (como los modelos davinci
para la generación de código) han ido desapareciendo .
Ahora examinaremos cómo utilizar la API para diversas tareas sencillas, como responder preguntas y resumir textos. En las tareas de ejemplo que aparecen a continuación, utilizamos el mismo modelo-GPT-3.5. También puedes elegir uno de los modelos GPT-4.
Como ambas son tareas basadas en texto, vamos a declarar primero un bloque de texto sobre el que trabajar. He copiado arbitrariamente una reseña de un par de botas de un sitio web de comercio electrónico. Asigna el texto de esta reseña a una variable text
. Asegúrate de escapar cualquier carácter de comilla simple o doble dentro del texto.
text = 'Comfort and Quality wise the boots are absolutely excellent. A 10 miles hike along the city Streets and the alps nearby felt like a smooth sail. The most plus it was quite well ventilated cause of the heavy duty Gore-tex material. After 12 hours when I removed it, there was just very little bit of perspiration (My foot sweats a lot) and absolutely no foul smell. Speaking of the Gore-Tex I would say, I sported this on a heavy rainy day after buying it in India, I was fearing the boot, though not very much like normal boots, would still be drenching with water, instead it was very little soaked. And some 5-6 hours later it was completely dry (Kept inside a closed room in the night). The only disadvantage I think is, that it fits my foot perfectly according to the size I chose, and there is no slight pain from 7 AM till 8 PM due to the shoe weight (of course its 1.2 KG, even though it doesn\'t feel like)'
Resumen de texto
Para resumir el texto anterior:
- Utiliza el objeto
client
creado anteriormente . - Pasa los roles apropiados dentro del parámetro
messages
como se muestra en el siguiente ejemplo :
summary_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "system",
"content": "You are a helpful assistant for summarizing text"
},
{
"role": "user",
"content": f"Summarize this text in 10 words: {text}",
},
],
)
Observa cómo pasamos el texto como una variable en el prompt del fragmento anterior.
print(summary_completion.to_json())
La salida contiene el resumen del asistente del texto largo, como se muestra en este extracto:
"message": {
"content": "Excellent comfort and quality, well-ventilated, quick-drying, lightweight boots, minimal perspiration, no foul smell.",
"role": "assistant"
},
Respuesta a la pregunta
Para responder a las preguntas (basadas en el texto de entrada anterior), modificamos el indicador para pasar la pregunta como una variable de cadena. Como antes, el indicador también incluye el texto como variable. El modelo responde a la pregunta basándose en el texto dado.
question = 'Are these shoes heavy?'
qna_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for answering questions"
},
{
"role": "user",
"content": f"Answer this question: {question} in 10 words based on this text: {text}",
},
],
)
Convierte la salida en JSON e imprímela:
print(qna_completion.to_json())
La salida incluye la respuesta del asistente a la pregunta:
"message": {
"content": "Lightweight. Not heavy. Comfortable for long hikes. Well-ventilated Gore-tex material.",
"role": "assistant"
},
Obtén la certificación AZ-900 de Azure
Casos de uso de Azure OpenAI
Veamos ahora los distintos casos de uso del servicio Azure OpenAI.
Procesamiento del lenguaje natural (PLN)
Al ser un modelo lingüístico en esencia, los modelos de propósito general de OpenAI, como GPT-3 y GPT-4, destacan en tareas de PNL, como:
- Resumen de textos: Proporciona a la API un gran fragmento de texto como entrada y pídele que lo resuma según tus necesidades. En el ejemplo anterior, resumimos la larga reseña del cliente en un resumen de 10 palabras.
- Clasificación de textos: Dado un documento (o un conjunto de documentos) y un conjunto de etiquetas predefinidas, OpenAI puede clasificar el documento o documentos en la etiqueta más adecuada.
- Análisis del sentimiento: La API puede analizar un texto de entrada para medir su sentimiento. Por ejemplo, puede clasificar una opinión de un cliente como positiva, negativa o neutra.
En el siguiente ejemplo, realizamos un análisis de sentimiento para clasificar el texto de la reseña del cliente (definido anteriormente).
sentiment_classification = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for classifying customer reviews into one of the following categories: very positive, positive, neutral, negative, very negative"
},
{
"role": "user",
"content": f"Classify this review: {text}",
},
],
#max_tokens=16
)
print(sentiment_classification.to_json())
El resultado contiene un fragmento parecido al que se muestra a continuación. Contiene la clasificación de la revisión por parte del asistente:
"message": {
"content": "This review can be classified as very positive.",
"role": "assistant"
},
Generación de código
Los modelos de OpenAI pueden generar código en varios lenguajes de programación. Las versiones anteriores de OpenAI tenían modelos específicos de código, como Codex y code-davinci
, que se ajustaban a la generación de código .
Sin embargo, las versiones más recientes de OpenAI, como GPT-3.5 y GPT-4, generan código sin ajuste fino. Los modelos base se preentrenan en conjuntos de datos basados en la codificación. Así, Codex, code-davinci y muchos otros modelos heredados han quedado obsoletos y ya no están disponibles para nuevas implantaciones.
Los modelos de OpenAI pueden ayudar a escribir código en varios lenguajes de programación comunes. Interactúa con el modelo en lenguaje natural para dar instrucciones sobre tareas de programación como:
- Generar código: Dado un mensaje de texto o un comentario, el modelo puede generar un fragmento de código. El programador puede combinar varios de estos fragmentos en un programa que funcione correctamente. Esto ayuda a automatizar tareas repetitivas como escribir código repetitivo.
- Depurar: El modelo puede analizar errores y mensajes de advertencia para explicar el problema en lenguaje natural y hacer sugerencias sobre cómo solucionarlo.
- Optimiza: Los modelos OpenAI pueden ayudar a refactorizar el código en estructuras más limpias y a utilizar algoritmos más eficientes para tareas comunes como la ordenación.
- Explica: Los modelos de OpenAI también pueden explicar los fragmentos de código que generan. Estas explicaciones ayudan a personalizar el código generado para adaptarlo a las necesidades del desarrollador. También pueden ayudar a los nuevos programadores a entender los conceptos de programación.
Considera un ejemplo sencillo de escribir una función Python para abrir y leer un archivo. Es una tarea bastante común que puede automatizarse fácilmente. Pedimos a OpenAI que genere y explique el código. Utiliza el objeto client
creado anteriormente .
code_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for generating programming code"
},
{
"role": "user",
"content": "Write and explain a Python function to open and read a file",
},
],
)
Imprime la salida:
print(code_completion.to_json())
Observa que el objeto JSON de salida contiene el resultado del asistente parecido al extracto de muestra que aparece a continuación:
"content": "Below is a Python function that opens a file, reads its contents, and returns the content as a string:\n\n```python\ndef read_file(file_path):\n try:\n with open(file_path, 'r') as file:\n …
Generación de imágenes con DALL-E
Todos los ejemplos anteriores estaban basados en texto. Utilizaron OpenAI como gran modelo lingüístico (LLM), que suele construirse utilizando la arquitectura de transformadores. Además de los LLM, OpenAI incluye modelos basados en difusores, como DALL-E, que generan imágenes a partir de un estímulo de entrada.
Para utilizar DALL-E, proporciona un texto con una descripción detallada de la imagen que quieres ver. Basándose en esta descripción, DALL-E genera una imagen de alta calidad. Esto es útil para tareas como crear ilustraciones, diseñar conceptos de productos, hacer bocetos para campañas de marketing, etc.
DALL-E no está disponible actualmente en todas las regiones geográficas. Si está disponible en tu región, crea una nueva implantación (como se ha explicado antes en este tutorial) pero utilizando el modelo DALL-E-3 en lugar de GPT-3. Accede al modelo DALL-E utilizando el mismo objeto client
descrito anteriormente. Utiliza el método client.images.generate()
para generar una imagen :
- Establece el nombre del modelo como
dalle3
utilizando el parámetromodel
. - Describe la imagen deseada con el parámetro
prompt
. - También puedes especificar un valor para
n
, que es el número de imágenes a generar .
result = client.images.generate(
model="dalle3",
prompt="An owl wearing a Christmas hat",
n=1
)
Extrae el objeto de respuesta JSON de la respuesta del modelo:
import json
json_response = json.loads(result.model_dump_json())
Declara el directorio de imágenes. Ten en cuenta que el directorio images
debe existir bajo el directorio de trabajo actual (desde el que iniciaste el intérprete de comandos Python) .
image_dir = os.path.join(os.curdir, 'images')
Especifica la ruta de la imagen en este directorio:
image_path = os.path.join(image_dir, 'generated_image.png')
Extrae la URL de la imagen generada del objeto de respuesta JSON, descarga la imagen (como un flujo) y escríbela en el archivo de imagen:
image_url = json_response["data"][0]["url"]
generated_image = requests.get(image_url).content
with open(image_path, "wb") as image_file:
image_file.write(generated_image)
Muestra la imagen:
from PIL import Image
image = Image.open(image_path)
image.show()
Buenas prácticas para utilizar Azure OpenAI
Utilizar el servicio Azure OpenAI es sencillo, pero como con toda tecnología, hay que seguir algunas prácticas recomendadas para sacarle el máximo partido. Vamos a repasarlos en esta sección.
Supervisar y gestionar el uso de la API
Azure OpenAI es uno de los servicios más caros de Azure. Ni siquiera los créditos gratuitos disponibles para las cuentas nuevas son utilizables para la API de OpenAI. Por tanto, es esencial hacer un seguimiento del uso, incluso para los nuevos usuarios. El uso descontrolado de la API puede dar lugar a facturas inesperadamente elevadas.
Las tarifas de OpenAI se basan en el uso y consumo de tokens. Las fichas representan unidades de texto procesadas por el modelo, tanto de entrada como de salida. Procesar un documento de texto grande consume más tokens que generar una respuesta más larga. Cuantas más fichas utilices, más pagarás. Por tanto, sé económico con la información que das al modelo o que le pides que genere.
Utiliza el parámetro max_tokens
para limitar el número de tokens consumidos en esa petición. Para los modelos de producción, experimenta para determinar cuántos tokens suelen necesitar tus solicitudes o usuarios y limita el uso en consecuencia. Aumenta el límite caso por caso.
Para controlar las métricas básicas:
- Desde Servicios Azure AI | Azure OpenAI selecciona el recurso que quieres monitorizar.
- En la página de recursos, elige la opción Monitorizar para ver varias métricas, como el número de peticiones HTTP y el número de tokens procesados por modelo y por despliegue.
Panel de métricas de Azure OpenAI.
También puedes ver métricas más detalladas:
- Desde el Monitorización del menú de la izquierda, selecciona Métricas.
Métricas detalladas de Azure OpenAI.
- En la sección Selecciona un ámbito selecciona la instancia OpenAI (marca la casilla de verificación)
- Selecciona Aplica.
Sobre la Métricas página:
- Selecciona la ventana de tiempo en la parte superior derecha.
- En la barra de menú situada en la parte superior del gráfico (inicialmente vacío), selecciona la métrica adecuada en el desplegableMétrica. Elige entre varias métricas como
- Solicitudes de Azure OpenAI,
- Estadísticas sobre el uso de fichas (fichas activas, fichas generadas, etc.)
- Rendimiento de las llamadas a la API (tiempo hasta el primer byte, etc.), y mucho más.
Ejemplo de monitorización de Azure OpenAI.
Por último, establece siempre límites presupuestarios en las cuentas API y configura los ajustes para recibir alertas por correo electrónico cuando cruces un umbral presupuestario.
Modelos de ajuste
Los modelos base de OpenAI se entrenan en enormes conjuntos de datos que abarcan muchos dominios diferentes. A grandes rasgos, hay tres formas diferentes de obtener el resultado deseado de los modelos LLM:
- Ingeniería rápida: Para la mayoría de los casos de uso, basta con añadir instrucciones específicas a la consulta. Esto se llama ingeniería rápida.
- Aprendizaje de pocos disparos: En los casos en que la ingeniería del prompt sea insuficiente, undd algunos ejemplos al prompt para ayudar al modelo a entender las respuestas deseadas por el usuario. Esto se denomina aprendizaje de pocos ejemplos, en el que el modelo aprende basándose en un número reducido de ejemplos.
- Ajuste fino: A veces, quieres charlar con el modelo sobre un ámbito muy especializado, por ejemplo, basado en un manual de reparación de equipos especializados. Generar texto sobre este tema implica utilizar jerga y patrones lingüísticos específicos del dominio, que probablemente no formen parte de los conjuntos de datos públicos (sobre los que se entrenaron los modelos base).
Puedes afinar un modelo base si el aprendizaje de pocos disparos y la ingeniería rápida no ayudan a obtener las respuestas adecuadas.
El ajuste fino consiste en volver a entrenar un modelo base preentrenado en un conjunto de datos especializado. En la práctica, sólo se reentrenan algunas capas del modelo base (no todo el modelo) con los nuevos datos. El tutorial de ajuste de Azure explica los pasos para ajustar un popular modelo de OpenAI.
Recuerda que para afinar con éxito un modelo base, necesitas grandes volúmenes de datos relevantes y de alta calidad, con miles de ejemplos de entrenamiento. Además, el ajuste fino implica invariablemente grandes costes iniciales para entrenar el modelo. Además, el modelo ajustado tiene que alojarse a tu costa antes de desplegarse.
Proteger tus claves API
Se puede abusar de las claves API expuestas públicamente para acceder a información sensible, realizar tareas inseguras y/o ilegales, o hacer solicitudes no autorizadas, lo que puede suponer una gran factura para el propietario de la cuenta. Por tanto, es crucial gestionar de forma segura las claves API en lugar de codificarlas en el código fuente. Para ello, se pueden adoptar varios enfoques:
- Para los servicios en la nube, utiliza herramientas de gestión de claves como AWS Secrets Manager y Azure Key Vault.
- Utiliza los archivos
.env
para almacenar claves en formato clave-valor. Añade este archivo a la lista.gitignore
para asegurarte de que no se envíe al repositorio de código . - Para los servicios basados en el cuaderno Jupyter, utiliza la opción de almacenar claves como parte del entorno. Este método se ha descrito anteriormente en este tutorial.
Aconsejo restringir los permisos para qué tareas se pueden utilizar las claves. También es útil rotar o regenerar las claves periódicamente para que las antiguas no puedan utilizarse indebidamente en caso de que se filtren.
Conclusión
En este tutorial, hablamos de empezar con una cuenta Azure, configurar los servicios de OpenAI, crear una nueva instancia de OpenAI y desplegar un modelo. A continuación vimos ejemplos de utilización de modelos OpenAI para tareas prácticas. También cubrimos cómo supervisar el uso y el rendimiento de los recursos de Azure OpenAI.
Para profundizar en el conocimiento de Microsoft Azure, sigue el tema Fundamentos de Azure del DataCamp. Para saber más sobre los conceptos básicos de la OpenAI, sigue el tema Fundamentos de la OpenAI del DataCamp.
Obtén una certificación superior en IA
Preguntas frecuentes
¿En qué se diferencia Azure OpenAI de OpenAI?
Azure OpenAI permite a los usuarios de Azure acceder a los modelos de OpenAI desde la plataforma Azure. Así, los usuarios de Azure pueden evitar tener que configurar y gestionar otra plataforma de software. También facilita la integración con otros servicios basados en Azure.
¿Permite Azure OpenAI afinar los modelos?
Sí, puedes suministrar conjuntos de datos de entrenamiento y validación adaptados a tu caso de uso específico y utilizarlos para afinar un modelo base.
Sin embargo, ten en cuenta que el rendimiento del modelo afinado depende en gran medida de la calidad de los datos de entrenamiento. Los datos de mala calidad o irrelevantes provocan un rendimiento degradado en comparación con el modelo base.
¿Qué métodos puedo utilizar para acceder a Azure OpenAI?
Puedes acceder a los servicios de Azure OpenAI de dos formas: mediante la aplicación web de Azure o mediante la API. La aplicación web funciona como la interfaz web ChatGPT. Puedes interactuar mediante programación con los modelos utilizando la API. La API permite integrar las herramientas de IA con otras aplicaciones.
¿Qué idiomas puedo utilizar con la API Azure OpenAI?
Azure OpenAI admite varios lenguajes como C#, Go, Java, JavaScript, Python y REST (peticiones HTTP). Python es uno de los lenguajes más utilizados debido a su popularidad en el ámbito de la ciencia de datos y la IA/ML. Y lo que es más importante, el ecosistema Python incluye muchas herramientas para trabajar con grandes conjuntos de datos.
Para integrarte con aplicaciones del lado del servidor, utiliza el mismo lenguaje que el resto de tu aplicación.
¿A qué modelos puedo acceder utilizando Azure OpenAI?
Azure OpenAI da acceso a modelos como GPT-4, GPT-4o, GPT-3.5, DALL-E (texto a imagen), Whisper (voz a texto), y muchos más. Puedes encontrar una lista de los modelos disponibles actualmente en la documentación de Azure.
Arun es un antiguo fundador de startups que disfruta construyendo cosas nuevas. Actualmente explora los fundamentos técnicos y matemáticos de la Inteligencia Artificial. Le encanta compartir lo que ha aprendido, así que escribe sobre ello.
Además de en DataCamp, puedes leer sus publicaciones en Medium, Airbyte y Vultr.
¡Aprende más sobre Azure con los siguientes cursos!
curso
Understanding Microsoft Azure Architecture and Services
programa
Microsoft Azure Fundamentals (AZ-900)
tutorial
Sinapsis Azure: Guía paso a paso para principiantes
tutorial
Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Anneleen Rummens
20 min
tutorial
Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas
tutorial
Base de datos Azure SQL: Configuración y gestión paso a paso

Anneleen Rummens
25 min
tutorial