No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Parámetros de Chat Completions: temperature, top_p y n

4/24
Recursos

En la era de la tecnología emergente, el manejo eficaz de modelos de inteligencia artificial como los de OpenAI define las fronteras de lo que podemos hacer con las máquinas. Hoy profundizaremos sobre cómo afinar los parámetros cuando trabajamos con estos modelos para obtener los resultados más ajustados a nuestras necesidades.

Ajustes de parámetros en modelos de OpenAI

Al trabajar con inteligencia artificial, especialmente en tareas como la generación de texto, los parámetros juegan un rol crítico para definir la precisión y utilidad de las respuestas obtenidas. Veamos, por ejemplo, cómo al calibrar adecuadamente algunos de ellos, podemos influir directamente en la calidad del output.

¿Cómo manipular el parámetro "maxTokens"?

  • Define la longitud máxima de la respuesta.
  • Al ajustarlo podemos limitar o expandir la extensión del texto generado.

¿Qué sucede al modificar la "temperatura" del modelo?

  • Este valor dicta la creatividad del modelo al responder.
  • Una temperatura baja conduce a respuestas más predecibles, mientras que una más alta promueve la variabilidad.

¿Por qué es relevante el parámetro "topP"?

  • Ayuda a controlar la diversidad de las respuestas posibles.
  • Actúa como un filtro porcentual sobre el conjunto de respuestas que el modelo considera.

La influencia del número de respuestas "n"

  • Establece cuántas variantes de respuesta deseamos obtener del modelo.
  • Al incrementar el número "n", obtenemos más opciones entre las que elegir.

Ejemplos prácticos de ajuste

Al implementar estos conceptos, nos encontramos con ejemplos concretos que ilustran la aplicación práctica de estos ajustes en problemas reales.

¿Cómo afecta la temperatura a las respuestas generadas?

Cuando preguntamos "¿Quién descubrió América?" con una temperatura cercana a cero, esperamos respuestas más directas y menos variadas. Al contrario, una temperatura más alta permite observar una diversificación en el contenido producido.

Modificación de la temperatura y su impacto

  • Baja temperatura: resulta en respuestas coherentes y conservadoras.
  • Alta temperatura: ofrece respuestas más variadas y menos predecibles.

¿Qué cambiaria al alterar el parámetro "topP"?

Una disminución en "topP" restringe la gama de respuestas, enfocándose en la probabilidad más alta, lo que se traduce en una menor variabilidad en el texto generado.

Conclusión y desafío

Claramente, la manipulación de estos parámetros transforma la manera en que los modelos de OpenAI responden a nuestros prompts. Experimentar y testear diferentes configuraciones es la clave para adaptar la IA a nuestras necesidades específicas.

Te invito a explorar estas configuraciones por tu cuenta, modifica los parámetros y observa los cambios en los resultados. ¿Qué combinación se adapta mejor a lo que buscas? Próximamente seguiremos explorando, aprendiendo y descubriendo juntos el vasto universo de las posibilidades que nos brinda la inteligencia artificial. ¡Nos vemos en la siguiente lección!

Nota: Para obtener una comprensión más exhaustiva y técnica de estos parámetros, consulta la sección de 'API Reference' en la documentación oficial de OpenAI.

Aportes 14

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Con todo respeto, me parece un poco chafa la forma en que actualizan el curso, es distractor y hasta confuso el estar analizando dos tipo de información a la vez, una que está dando la profesora y otra que aparece como mensaje haciendote pensar: "No, no es así, ahora es de esta forma...". Entiendo que esta información se está actualizando muy rápidamente hasta el punto en que en ocasiones nos sentimos abrumados y arrollados por tantas actualizaciones, pero creo que deberían buscar y conseguir una manera más eficiente de actualizar la información del curso. sugiero considerar la edición directa de los videos existentes para incluir las actualizaciones más recientes. Esto podría realizarse eliminando las secciones del video que contienen información obsoleta y reemplazándolas con segmentos actualizados.

A tomar en cuenta, según la documentación el parametro temperature y el parametro top_p se recomienda que no sean modificados al mismo tiempo en el mismo prompt, cito.

temperature: número Opcional Predeterminado a 1 Qué temperatura de muestreo usar, entre 0 y 2. Los valores más altos, como 0,8, harán que la salida sea más aleatoria, mientras que los valores más bajos, como 0,2, la harán más enfocada y determinista.

Por lo general, recomendamos modificar esto o top_p, pero no ambos.

top_p: Una alternativa al muestreo con temperature, llamado muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Por lo tanto, 0.1 significa que solo se consideran las fichas que comprenden el 10 % de la masa de probabilidad superior.

Por lo general, recomendamos modificar esta o temperature, pero no ambas.

UX Tip:
Con el argumento stream=True podemos ir capturando pequeños fragmentos de la respuesta para mostrarlos en tiempo real y no esperar hasta que el modelo termine para visualizar el resultado.

response = openai.Completion.create(
    model="text-davinci-003",
    prompt="Qué son LLM models",
    max_tokens=300,
    temperature=0.3,
    n=1,
    stream=True,
)
for chunk in response:
    print(chunk.choices[0].text, end="")

Según leo en la documentación, menciona que si usas el parámetro temperature, no uses el parámetro top_p y viceversa.

Hay actualizaciones que salen durante todo el video y ni si quiera te da tiempo de verlos, entre otros detalles, el curso me esta desanimando...
Para ver las tres respuestas ahora es asi: *#%%* response = openai.chat.completions.create( model = 'gpt-3.5-turbo', messages = \[ {"role": "system", "content" :"Eres un asistente que da informacion a dudas"}, {"role": "user", "content" :"¿Quién descubrió América?"} ], max\_tokens = 50, temperature=0.9, top\_p=1, n=3, ) print(response.choices\[0].message.content) print(response.choices\[1].message.content) print(response.choices\[2].message.content)

siento que la profesora no domina bien el tema, por ejemplo uso top_p y temperatura al mismo tiempo, y openIA dice que no use mabos al mismo tiempo,

el codigo actual se veria asi ```python response = openai.chat.completions.create( model="gpt-3.5-turbo", messages = [ {"role":"system","content":"Eres un asistente que da informacion a dudas"}, {"role":"user","content":"¿quien descubrio a ameria?"}, ], max_tokens=50, temperature=1, top_p=1, n=2)print(response.choices[0].message.content) ```response = openai.chat.completions.create( model="gpt-3.5-turbo", messages = \[ {"role":"system","content":"Eres un asistente que da informacion a dudas"}, {"role":"user","content":"¿quien descubrio a ameria?"}, ], max\_tokens=50, temperature=1, top\_p=1, n=2)print(response.choices\[0].message.content)
Hola El nuevo código actualizado es: response = openai.ChatCompletion.create( Lo demás permanece igual

Para puntualizar una cosa.

En la documentación OpenAI recomienda modificar el parámetro temperature o top_p pero no ambos.

Fuente: API Reference OpenIA - temperature

Ejemplo donde utilizo el parámetro stream: ```python import openai import APIkey # Clave API openai.api_key = APIkey.apikey # Modelo model = "gpt-4o-mini" response = openai.chat.completions.create( model=model, messages=[ {"role": "system", "content": "Eres un asistente que da informacion a dudas"}, {"role": "user", "content": "¿Quién es Katherine Johnson?"} ], temperature = 0.9, max_tokens = 100, top_p = 1, n = 1, stream = True ) for chunk in response: # print(chunk) choices = chunk.choices if choices: delta = choices[0].delta if delta.content: print(delta.content, end='', flush=True) # Imprimir en tiempo real ```
El código fue actualizado: Por favor tener en cuenta el siguiente: response = openai.ChatCompletion.create(    model = "gpt-3.5-turbo",    messages = \[        {"role": "system", "content" : "Eres un asistente de información"},        {"role": "user", "content": "Quien eres tu"}    ],    max\_tokens = 50,    temperature = 1,    top\_p = 1,    n = 1) print(response.choices\[0].message. Content)
Si bien la documentación dice que se recomienda el uso de uno u otro para el caso de temparature y top\_p es solo eso... una recomendación. Si juegan con ambos parámetros en distintos valores verán resultados diversos, por lo que uso dependerá del fin de la aplicación a crear.
Ojo aunque es importante conocer y aprender como hacer fine-tuning se deber considerar lo siguiente: “On July 6, 2023, we announced the deprecation of ada, babbage, curie and davinci models. These models, including fine-tuned versions, will be turned off on January 4, 2024. We are actively working on enabling fine-tuning for upgraded base GPT-3 models as well as GPT-3.5 Turbo and GPT-4, we recommend waiting for those new options to be available rather than fine-tuning based off of the soon to be deprecated models.”