Módulo 2 - Advanced Prompt Engineering - Contenido PDF

Summary

Este documento describe el módulo 2 de un curso de inteligencia artificial aplicada a la formación, centrándose en la ingeniería de prompts. Explica conceptos como tokens, distribuciones de probabilidad y herramientas para crear prompts efectivos.

Full Transcript

CURSO “INTELIGENCIA ARTIFICIAL APLICADA A LA FORMACIÓN” MODULO 2: ADVANCED PROMPT ENGINEERING [email protected] Telf. 954 486 800 Indice 1. Entre tokens anda el juego. 2. Prompt Engineering: Aprendiendo a...

CURSO “INTELIGENCIA ARTIFICIAL APLICADA A LA FORMACIÓN” MODULO 2: ADVANCED PROMPT ENGINEERING [email protected] Telf. 954 486 800 Indice 1. Entre tokens anda el juego. 2. Prompt Engineering: Aprendiendo a hablar con la Inteligencia Artificial. 3. Uso de parámetros avanzados en el Prompt Engineering. 4. Herramientas de apoyo para crear mis prompts. ”La inteligencia artificial es más importante y profunda que otros descubrimientos como el fuego, la electricidad o internet”. Sundar Pichai, CEO Google 01 Entre tokens anda el juego LA IA me entiende FAKE ¿A qué os suena “eso” de los tokens? La importancia de los tokens Un token en el contexto de procesamiento de lenguaje natural y modelos de lenguaje como ChatGPT, es una instancia de texto segmentado que el modelo trata como una unidad individual para procesamiento. Una de las principales características de los LLM es que su resultado es una distribución de probabilidades sobre el siguiente token de un texto. Esto significa que, dado un fragmento de texto, el modelo puede proporcionar un conjunto de posibles palabras siguientes, cada una de ellas con una probabilidad asociada. La predicción del modelo suele ser la palabra con la probabilidad más alta, pero pueden utilizarse diferentes estrategias de muestreo para introducir aleatoriedad y creatividad en el resultado como veremos más adelante. La importancia de los tokens La tokenización consiste en descomponer el lenguaje humano en partes más pequeñas o "tokens". Estos tokens pueden ser tan pequeños como caracteres individuales o tan grandes como frases enteras. Lo más habitual es que correspondan a palabras o subpalabras, ya que permiten una compensación más equilibrada entre la conservación de la información lingüística y el mantenimiento de un número manejable de tokens. Para que un ordenador pueda procesar un texto, tiene que convertirlo en representaciones numéricas que pueda entender y manipular. A cada token único del texto se le asigna un identificador numérico único. Así, el proceso de tokenización transforma una cadena de texto legible por humanos en una secuencia de números legibles por máquinas. Words Embeddings Libros en Wikipedia agrupados por género en sólo dos dimensiones Fuente: https://devopedia.org/word-embedding Words Embeddings Los embeddings son representaciones vectoriales de los tokens que capturan sus propiedades semánticas y sintácticas y que se utilizan para el entrenamiento de los modelos. Hay dos métodos de entrenamiento populares: 1. Bolsa continua de palabras (CBOW): Predice una palabra objetivo basada en sus palabras de contexto. 2. Skip-gram: Predice palabras de contexto dadas una palabra objetivo. Por lo general, varían de 50 a 300 dimensiones, lo que permite una rica representación de las relaciones entre palabras. Para que nos hagamos una idea del tamaño de los tokens de entrenamiento en modelos LLM: ChatGPT4: más de 20.000 billones de tokens ChatGPT3: 410.000 millones de tokens. Wikipedia: Extensión de 30.000 millones de tokens. Dimensionalidad | Ejemplo Fuente: https://devopedia.org/word-embedding Muestro de los tokens Los LLM son modelos autorregresivos, lo que significa que generan secuencias de un elemento cada vez. A partir de un mensaje inicial, estos modelos predicen la palabra siguiente tomando muestras de la distribución de probabilidad de las palabras posibles. Este proceso se repite y el modelo utiliza su resultado anterior como entrada para el siguiente paso, hasta que genera la longitud de texto deseada. Para obtener cualquier resultado de un LLM autorregresivo, debemos recurrir al muestreo introduciendo indicaciones en nuestros prompts, para extraer información de las distribuciones de palabras predichas por el modelo. Estas estrategias influyen directamente en el equilibrio entre aleatoriedad y previsibilidad de los resultados del modelo. Predicción de un nuevo Token La importancia de los tokens Una regla general útil es que un token generalmente corresponde a ~4 caracteres Palabras = 119 de texto para un texto común (escrito en inglés). Esto se traduce en aproximadamente ¾ de palabra (es decir, 100 tokens ~= 75 palabras). Pero la tokenización dependerá del idioma Idioma Tokens por palabra Palabras en 16 tokens Español 1,2 ~13 Inglés 1,3 ~12 Ejemplo de número Chino 1 ~16 de palabras en 16 tokens en Francés 1,4 ~11 diferentes idiomas Ruso 1,5 ~11 Alemán 1,6 ~10 Herramienta Tokenizer de OpenAI https://platform.openai.com/tokenizer Modelo de precios de Openai https://openai.com/api/pricing OpenAI aplica un modelo de precios basado en el consumo, donde los usuarios abonan según la cantidad de tokens generados por la API, en función del modelo seleccionado. La tarificación varía dependiendo del modelo de lenguaje utilizado, como GPT-4o GPT-o1, por ejemplo, y se ajusta según el tamaño y la complejidad de las solicitudes presentadas. Las tarifas se establecen según el número de tokens consumidos por cada solicitud, con precios diferenciados que reflejan la calidad de los tokens empleados, adecuados para tareas de diversa complejidad. FAKE !Todos los modelos son iguales! COMPAREMOS 02 Prompt Engineering: Aprendiendo a hablar con la Inteligencia Artificial ¿Qué es el Prompt Engineering? Prompt Engineering es una disciplina emergente que se enfoca en optimizar las interacciones entre los humanos y los sistemas de inteligencia artificial (IA). Al aprender a diseñar prompts efectivos, los usuarios pueden generar respuestas más precisas y útiles de la IA, mejorando así la colaboración y la toma de decisiones. En esta módulo, nos adentraráremos en los conceptos clave, estrategias y mejores prácticas de la Prompt Engineering. Tokenización Análisis de Análisis sentimientos Morfológico Cómo la IA interpreta y IA responde a los Prompts Conceptos clave sobre NLP/PLN NER Etiquetado Pragmática Conceptos clave del Prompt Engineering 1 2 3 Comprender a los Claridad y Iteración modelos de IA especificidad y refinamiento Tener un conocimiento Los prompts deben ser El diseño de prompts es básico del claros, concisos y un proceso iterativo que funcionamiento y las específicos para evitar requiere pruebas y ajustes capacidades de los ambigüedades y obtener constantes. sistemas de IA es respuestas precisas. fundamental para Es importante monitorear diseñar prompts Esto implica definir los resultados y estar efectivos. objetivos, contexto y abierto a hacer mejoras Esto incluye entender restricciones de manera para optimizar el cómo procesan y detallada. rendimiento. generan la información los modelos de lenguaje. Cómo la IA interpreta y responde a Prompts Natural Language Processing (NLP) o PLN (castellano) ORDEN ACCIÓN REQUERIDA TRABAJO DE LA IA Implica acciones como la segmentación de palabras LEER Y ENTENDER EL (dividiendo en tokens las mismas); 1 TEXTO Y EL HABLA identificar la raíz de la palabra e identificar la palabra del discurso (verbos, adjetivos…). Conlleva conocer la relación entre las ENTENDER EL SIGNIFICADO palabras y la interpretación del 2 DE LAS FRASES Y significado de la frase en su ORACIONES conjunto. Abarca el buscar información, GENERAR UNA RESPUESTA realizar una acción y/o generar una 3 O ACCIÓN ADECUADA respuesta en lenguaje natural entendible por los seres humanos. Formulación de Prompts Esta estrategia abarca la construcción de un marco estructurado para la selección y empleo efectivo de prompts con el objetivo de guiar a modelos de procesamiento de lenguaje hacia respuestas concretas y valiosas al interactuar con un sistema basado en LLM. Una estrategia de formulación de prompts exitosa a menudo integra varios de los siguientes componentes esenciales: Adopción de un Rol Precisión y Concreción > Dirige al GPT a asumir un papel específico, lo que orienta el estilo y el > Emplea un lenguaje explícito y sin ambigüedades para disminuir la posibilidad matiz de las respuestas generadas. de equívocos o respuestas que no sean pertinentes. Crea el Contexto Hacer preguntas Abiertas y > Aporta los datos de fondo necesarios para asegurar que la respuesta > Cerradas Utiliza cuestionamientos abiertos para invitar obtenida sea pertinente y adecuada a la a respuestas amplias y descriptivas, así como demanda o circunstancia única del interrogantes cerrados para promover usuario. respuestas concisas y directas. Define la Estructura Restricción de la Amplitud de > de la Respuesta > Respuesta Indica la forma preferida en la que debe Limita el rango de respuesta donde sea apropiado, para que la respuesta sea entregarse la respuesta, lo cual facilita la más concentrada y manejable. recepción de información de una manera más digerible y práctica. Diseño de Prompts Adopción de un Rol > La asignación de roles definidos a un GPT es una técnica que puede enriquecer la especificidad y relevancia de las respuestas. Al adoptar un papel, el chatbot puede producir respuestas que son más afinadas a expectativas particulares. Prompt Efectivo: "Ponte en los zapatos de Prompt Ineficaz: "Cuéntame sobre sitios un guía turístico local. ¿Qué itinerario interesantes en Barcelona." recomendarías para un día completo en Barcelona para alguien interesado en la arquitectura modernista?” Explicación: Al instruir al chatbot para que Explicación: Este prompt carece de un rol actúe como un "guía turístico local", se le definido y es demasiado amplio, lo cual está dirigiendo para que proporcione una probablemente resultará en una respuesta detallada y enfocada, adecuada descripción general y menos informativa para una persona con intereses específicos sobre puntos de interés. en arquitectura. Diseño de Prompts Crea el Contexto > Es fundamental suministrar información relevante para moldear las respuestas hacia la especificidad y la utilidad. Un contexto bien definido es clave para obtener información precisa del chatbot. Prompt Efectivo: "Como aficionado a la Prompt Ineficaz: "Necesito historia medieval, estoy buscando libros recomendaciones de libros de historia.” que profundicen en la vida cotidiana de esa época. ¿Podrías sugerir títulos que cubran este tema de forma detallada?” Explicación: Al especificar un área de Explicación: Este prompt no proporciona interés particular ("aficionado a la historia suficiente información, omitiendo la época medieval" y "vida cotidiana de esa época"), histórica y el enfoque particular, lo que el prompt guía al chatbot para ofrecer podría resultar en sugerencias genéricas y recomendaciones personalizadas y menos pertinentes. pertinentes. Diseño de Prompts Definición de la Estructura de Respuesta > Es crucial sugerir el esquema que la respuesta debe tomar para obtener información organizada y directamente aplicable. Prompt Efectivo: "Desglosa en pasos Prompt Vago: “Quiero cocinar una lasaña claros cómo preparar una lasaña vegetariana.” vegetariana para una cena de seis personas.” Explicación: Solicitar una descomposición Explicación: Sin solicitar una estructura en pasos invita al chatbot a entregar una específica, el prompt deja abierta la respuesta secuenciada y ordenada, lo que posibilidad de recibir una respuesta proporciona claridad y facilita la ejecución genérica que podría no detallar el proceso de la tarea. de manera útil o práctica. Diseño de Prompts Precisión y Concreción > Asegúrate de formular tus prompts de manera que sean lo más directos y específicos posible para evitar confusiones. Prompt Detallado: "Resume en cinco Prompt Genérico: "Háblame sobre puntos clave la importancia de las redes marketing en redes sociales." sociales en las campañas de marketing digital actuales." Explicación: Pedir una síntesis en "cinco Explicación: Este prompt carece de puntos clave" proporciona una directriz directrices específicas y es demasiado clara para la estructura de la respuesta, abierto, lo que podría resultar en una enfocándose en los aspectos cruciales de respuesta extensa y menos enfocada. un tema específico. Diseño de Prompts Hacer Preguntas Abiertas y Cerradas > El arte de preguntar reside en saber cuándo pedir detalles con preguntas abiertas y cuándo solicitar concisión con preguntas cerradas. Prompt Optimizado: "Describe el proceso Prompt Incompleto: "Explica la de elaboración del vino desde la cosecha elaboración del vino." hasta el embotellado" vs "¿Es el proceso de maceración necesario para todos los tipos de vino?" Explicación: El primer prompt es abierto y Explicación: Este prompt es ambiguo y no espera una explicación detallada del especifica si se requiere un resumen o un proceso de vinificación, mientras que el desglose detallado, lo que puede resultar segundo es cerrado, apuntando a una en una respuesta que no satisfaga las respuesta específica y concisa sobre un necesidades de información. paso en particular de la vinificación. Diseño de Prompts Restricción de Amplitud de Respuesta > Es conveniente concretar el alcance de la consulta para evitar respuestas que sean demasiado extensas y para asegurar una información más puntual y pertinente. Prompt Refinado: "Identifica y describe Prompt Amplio: "Cuéntame sobre las brevemente las tres herramientas herramientas de edición fotográfica." principales de edición fotográfica para principiantes." Explicación: Solicitar "tres herramientas Explicación: Este prompt no delimita el principales" y pedir una "breve descripción" rango de respuesta y podría dar lugar a un impone un marco que restringe la exceso de información, incluyendo detalles respuesta a información precisa y que no son esenciales para un principiante. condensada. Consideraciones adicionales para enriquecer la creación de prompts Personalización del Prompt Iteración y Refinamiento v Adaptar el prompt a las necesidades y conocimientos previos del usuario v Los prompts a menudo requieren ajustes después de las primeras interacciones para puede mejorar la relevancia y la utilidad refinar las respuestas. Incluir un sistema de de las respuestas. feedback para iterar y mejorar los prompts podría ser un paso crítico adicional. Consideraciones de Sesgo y Culturalmente Consciente v Diversidad Es fundamental tener en cuenta los sesgos v Especialmente cuando se interactúa en contextos multiculturales, tener en cuenta las potenciales en los datos de entrenamiento diferencias culturales puede ser crucial para del LLM. Diseñar prompts que intenten evitar malentendidos y para garantizar que las minimizar los sesgos y sean inclusivos puede respuestas sean apropiadas. mejorar la calidad y la equidad de las respuestas. Validación de Respuestas Ética y Privacidad v Establecer procesos de verificación para asegurar que las respuestas de la IA v Asegurar que el prompt no incite a la IA a generar respuestas que pudieran mantengan una alta calidad informativa y comprometer la privacidad o la estén actualizadas, especialmente en seguridad del usuario o de terceros. campos donde la información cambia rápidamente. Errores comunes al realizar prompts Vaguedad e imprecisión en el Falta de contexto x lenguaje Usar un lenguaje ambiguo o vago que x No proporcionar al modelo suficiente información sobre el contexto de la puede ser interpretado de diferentes solicitud. Omitir detalles importantes que maneras por el modelo. No proporcionar podrían ayudar al modelo a comprender instrucciones claras y concisas sobre lo que mejor la intención del usuario. Asumir que se espera del modelo. Evitar el uso de el modelo tiene conocimiento previo términos específicos y relevantes para la sobre el tema o la tarea. tarea en cuestión. Exceso de complejidad Falta de alineación entre el x Diseñar prompts demasiado largos o x prompt y los objetivos elaborados que pueden abrumar al modelo. Diseñar prompts que no guíen al modelo Incluir información irrelevante o innecesaria hacia la respuesta deseada. No que distrae al modelo de la tarea principal. proporcionar ejemplos o referencias que Utilizar un lenguaje demasiado técnico o ayuden al modelo a comprender el estilo o especializado que el modelo no puede formato esperado. Omitir la definición de comprender. métricas de éxito para evaluar la calidad de la respuesta del modelo. Errores comunes al realizar prompts Falta de iteración y Ignorar las capacidades y x refinamiento Conformarse con el primer intento de x limitaciones del modelo Al diseñar prompts, es fundamental prompt sin probar diferentes variaciones. tener en cuenta las capacidades y No evaluar el rendimiento del prompt con limitaciones del modelo de lenguaje diferentes ejemplos o datos. Resistirse a grande que se utilizará. Ignorar estos ajustar el prompt en función de los aspectos puede conducir a comentarios o la retroalimentación del resultados insatisfactorios o incluso a modelo o los usuarios. errores. Vaguedad e imprecisión en el Falta de contexto x lenguaje x Ejemplo: Ejemplo: En lugar de decir "Resume este En lugar de decir "Escribe un poema artículo", un prompt con más sobre el amor", un prompt más preciso contexto sería: "Resume este artículo sería: "Escribe un poema de amor en sobre las últimas investigaciones en estilo soneto que describa la alegría y la inteligencia artificial, enfocándote pasión de un nuevo amor". en los principales hallazgos y sus implicaciones para el futuro". Errores comunes al realizar prompts Exceso de complejidad Falta de alineación entre el x Ejemplo: x prompt y los objetivos En lugar de decir "Genera un código Ejemplo: Python que implemente un algoritmo En lugar de decir "Escribe una historia", de clasificación", un prompt más simple un prompt con objetivos más claros sería: "Genera un código Python que sería: "Escribe una historia de ciencia ordene una lista de números de menor ficción ambientada en el año 2.300 que a mayor". explore las consecuencias de la inteligencia artificial en la sociedad humana". Falta de iteración y Ignorar las capacidades y x refinamiento x limitaciones del modelo Ejemplo: Ejemplo: En lugar de usar un prompt único para Solicitar al modelo que genere un todas las tareas, es importante iterar y código complejo para una tarea refinar el prompt en función de la tarea específica sin proporcionar información específica, el contexto y los objetivos sobre el lenguaje de programación, las deseados. bibliotecas o los algoritmos que el modelo conoce o puede utilizar. Pasos para formular mis Prompts Para sacar más rendimiento a la IA Requerimientos y consideraciones Solicita claramente Tabla la tarea a desarrollar Lista Lenguaje técnico Términos negativos Developer Traduce Persuasivo Evitar alucinaciones Matemático Analiza Citar fuentes Comercial Resume Contable Redacta Define el contexto de la situación Indica el rol que debe adoptar la IA Pasos para formular mis Prompts Reglas de éxito Para qué quieres la respuesta A quién se dirige Sobre qué quieres hablar Ejemplos Pistas de la respuesta Facilitar un rol esperada Experto en la materia Identificarse Pasos para formular mis Prompts Recomendaciones de Uso Estructura de la respuesta Pídele síntesis o resumen Palabras clave Ampliación de la información Solicita descripción detallada Diferentes perspectivas Indica el estilo de la respuesta Especifica el nº de respuestas Directrices específicas Indica el formato de respuesta Haz preguntas específicas Beneficios y Adversidades 03 Uso de parámetros avanzados en el Prompt Engineering Parámetros que nos ayudan a controlar la creatividad, coherencia, y diversidad en las respuestas generadas Parámetros en Prompts Frequency Presence Stop Few-Shot Temperatura Top-P Top-K Max Tokens Best Of Penalty Penalty Sequences Learning Parámetros que nos ayudan a controlar la creatividad, coherencia, y diversidad en las respuestas generadas Temperatura: Sus valores van entre 0 y 2. Temperatura baja (cerca de 0): El modelo se vuelve más conservador y repetitivo, eligiendo las palabras más probables. Esto puede ser útil si necesitas respuestas precisas y coherentes. Temperatura alta (cerca de 2): El modelo se vuelve más creativo y arriesgado, eligiendo palabras menos probables. Esto puede generar respuestas más variadas y creativas, pero también puede aumentar la incoherencia. Temperatura por defecto de modelos LLM = 1,0 Parámetros | Temperatura La temperatura afecta la distribución de probabilidad que el modelo usa para seleccionar la siguiente palabra en una secuencia. 0 = La probabilidad se 0,7 = Las probabilidades se 1 = Las probabilidades se concentra completamente en ajustan para ser más mantienen como en la la palabra con mayor conservadoras que en la distribución original, sin ningún probabilidad ('A’). distribución original, pero ajuste. Resulta en una respuesta permiten algo de variación. El modelo mantiene un completamente predecible y Respuesta equilibrada, que es equilibrio entre coherencia y determinista. algo conservadora pero todavía creatividad permite diversidad. En la práctica, las temperaturas más comúnmente utilizadas están en el rango de 0 a 2. Dependiendo de la seleccionada al modelo puede afectarle de la siguiente forma: 0,0: Completamente determinista, eligiendo siempre la opción con mayor probabilidad. 0,1 a 0,7: Conservadoras y predecibles, pero con algo de variación. 0,7 a 1,0: Buen equilibrio entre creatividad y coherencia. 1,0 a 2,0: Más creativas y variadas, pero menos predecibles y coherentes. Más de 2,0: Muy altas, resultando en salidas muy aleatorias y potencialmente incoherentes.. Parámetros | Temperatura Comparativa entre modelos 2.5 2 2 2 2 2 1.5 1 1 1 1 1 1 1 0.5 0 0 0 0 0 0 Gemini 1.5 Pro ChatGPTo1 Azure OpenAI Llama3 Claude 3.5 Sonnet Mínimo Máximo usual Predeterminado Parámetros | Top_P TOP_P o Nucleus Sampling (muestro de núcleos) Este parámetro permite que el modelo elija palabras de un conjunto de las más probables cuya probabilidad acumulada alcanza un umbral 'P’. En lugar de considerar todas las palabras siguientes posibles, el muestreo top-p sólo tiene en cuenta el conjunto más pequeño de palabras principales cuya probabilidad acumulada supere un determinado umbral. Parámetros | Top_P Funcionamiento de Top_P: 1) El modelo calcula las probabilidades de todas las palabras posibles en el vocabulario., ordena las palabras de acuerdo con sus probabilidades, de mayor a menor. 2) Estas palabras se ordenan de acuerdo con sus probabilidades, de mayor a menor. 3) Se selecciona el conjunto más pequeño de palabras cuya suma de probabilidades es al menos P (por ejemplo, el 90% = 0,9). 4) La palabra final se elige al azar de entre este conjunto reducido, basado en sus probabilidades normalizadas. Parámetros | Top_P El rango de "Top_P" va de 0 a 1, donde: Top_P = 0: No es útil en la práctica ya que significaría que no se selecciona ninguna palabra, resultando en una generación de texto imposible. Top_P cercano a 0: (pero > 0): Selecciona únicamente las palabras más probables, haciendo la generación de texto extremadamente conservadora y predecible. Top_P cercano a 1: (pero < 1): Incluye un gran conjunto de palabras, proporcionando un equilibrio entre variabilidad y coherencia. Top_P = 1: Considera todas las palabras del vocabulario del modelo, equivalente a no aplicar ninguna restricción de probabilidad acumulada y usando la distribución original completa. Parámetros | Top_P (ejemplos) Ejemplos de valores comunes, son: Top_P = 0,1: Muy restrictivo, eligiendo solo las palabras más probables. Top_P = 0,5: Moderadamente restrictivo, balanceando entre las palabras más probables y algunas menos probables. Top_P = 0,9: Permisivo, incluyendo un amplio conjunto de palabras con suficiente probabilidad acumulada. Top_P = 1: No restrictivo, considerando todo el vocabulario. Top-P por defecto en LLMs = cercano a 1,0 Parámetros | Top_P El cielo es… Parámetros | Top_P El cielo es… Parámetros | Top_P Comparativa entre modelos 1.2 1 1 1 1 1 1 1 1 0.94 0.9 0.9 0.8 0.6 0.4 0.2 0 0 0 0 0 0 Gemini 1.5 Pro ChatGPTo1 Azure OpenAI Llama3 Claude 3.5 Sonnet Mínimo Máximo usual Predeterminado Temperatura Vs Top_P Diferencias TEMPERATURA TOP_P Parámetros | Top_K TOP_K: es un método de muestreo que limita el conjunto de opciones disponibles para el modelo al generar la siguiente palabra en una secuencia de texto. En lugar de considerar todas las palabras posibles en el vocabulario del modelo (miles), "Top_K" restringe la selección a las K palabras con las mayores probabilidades. Como funciona: 1) Cálculo de Probabilidades: Cuando el modelo genera una palabra, calcula la probabilidad de todas las palabras posibles en el vocabulario. 2) Ordenamiento: Estas palabras se ordenan de acuerdo con sus probabilidades, de mayor a menor. 3) Selección de las Top_K: Solo se consideran las primeras K palabras con las mayores probabilidades. Las demás se descartan. 4) Muestreo: La palabra final se elige al azar de entre este conjunto reducido, basado en sus probabilidades normalizadas. Parámetros | Top_K Banda Mínima de "Top_K“ Top-K = 1: Esto es lo mínimo que puedes establecer para "Top-K". En este caso, el modelo siempre seleccionará la palabra con la mayor probabilidad, haciéndolo completamente determinista y eliminando toda variabilidad creativa. Banda Máxima de "Top_K“ Top-K = Vocabulario Completo: El valor máximo para "Top-K" es el tamaño completo del vocabulario del modelo. En este caso, no se descarta ninguna palabra, y el modelo considera todas las palabras posibles en su vocabulario. Parámetros | Top_K Parámetros | Top_K Menores Valores de Top_K: Proporcionan un texto más predecible y coherente, útil para tareas que requieren precisión y menor variabilidad. Mayores Valores de Top_K: Aumentan la creatividad y diversidad del texto generado, útil para tareas creativas y exploratorias. Parámetros | Top_K ¿Por qué NO está "Top_K" por defecto en los modelos? "Top-K" selecciona siempre un número fijo de las palabras con mayor probabilidad, independientemente de cómo se distribuyan esas probabilidades. Esto puede ser problemático en varios escenarios: En distribuciones donde las probabilidades están muy concentradas en unas pocas palabras, "Top_K" puede ser demasiado restrictivo. Por otro lado, en distribuciones más dispersas, "Top_K" puede ser demasiado permisivo. Parámetros | Top_K Casos de Uso "Top-K" puede ser una opción útil en ciertos contextos específicos, a pesar de sus limitaciones. Algunos de sus casos de uso, son: 1) Control Estricto de la Variabilidad: Situación: Cuando se necesita un control muy estricto sobre la variabilidad y se quiere limitar las opciones a un conjunto fijo de palabras. Ejemplo: Generar texto en un entorno técnico o formal donde la precisión es crucial, y se desea minimizar la variabilidad. 2) Textos Cortos y Predecibles: Situación: Para tareas que requieren la generación de textos cortos y altamente predecibles. Ejemplo: Rellenado de frases en aplicaciones de autocompletado o asistentes virtuales, donde se prefieren respuestas estándar y consistentes. Parámetros | Top_K Casos de Uso 3) Evaluaciones y Comparaciones: Situación: Durante la evaluación y comparación de modelos de lenguaje, donde se quiere estudiar cómo el modelo se comporta con un conjunto fijo de opciones. Ejemplo: Investigaciones y experimentos en el desarrollo de modelos de IA para entender el impacto de la limitación del conjunto de palabras. 4) Reducción de Complejidad Computacional: Situación: En situaciones donde es crucial reducir la complejidad computacional, como en dispositivos con recursos limitados. Ejemplo: Aplicaciones móviles o embebidas donde el procesamiento y la memoria son limitados, y se necesita mantener la eficiencia. Top-P Vs Top-K Concepto Top-P Top-K Se adapta dinámicamente a la Utiliza un número fijo de palabras, Adaptabilidad distribución de probabilidades. sin adaptación. Equilibrio flexible entre Coherencia vs Creatividad Control estricto de la variabilidad. coherencia y creatividad. Distribuciones Concentradas Evita ser demasiado restrictivo. Puede ser demasiado restrictivo. Selecciona palabras relevantes sin Puede incluir demasiadas Distribuciones Dispersas excesiva permisividad. palabras irrelevantes. Más compleja y requiere ajuste Más simple de implementar y Implementación dinámico. ajustar. Incertidumbre en el número de Número fijo de palabras, Recursos Computacionales opciones seleccionadas. predecible en recursos. Balance creativo/coherente, Generación predecible y Contextos de Uso tareas con distribuciones consistente, recursos limitados. variadas. Parámetros | Frequency Penalty "Frequency Penalty" es una técnica utilizada en la generación de texto con modelos de lenguaje como GPT para controlar la repetición de palabras y promover la diversidad en las respuestas. Penaliza la generación de palabras que ya han aparecido frecuentemente en el texto generado, siendo su objetivo el de reducir la repetición de palabras y fomentar la generación de texto más variado y natural. ¿Cómo funciona? El modelo ajusta las probabilidades de las palabras candidatas en función de cuántas veces han aparecido previamente en el texto generado. Las palabras que ya han aparecido se penalizan, reduciendo su probabilidad de ser seleccionadas nuevamente. Parámetros | Frequency Penalty Aplicaciones prácticas de la "Frequency Penalty" 1) Generación de Contenido Creativo: En la escritura de historias, poemas, y otros contenidos creativos, donde la repetición puede ser una distracción. 2) Resúmenes y Síntesis: En la generación de resúmenes de textos largos, para asegurar que se cubren diferentes puntos sin repetición excesiva. 3) Asistentes Virtuales y Chatbots: En diálogos interactivos, para evitar respuestas repetitivas y mantener la conversación fresca y dinámica con el usuario. Parámetros | Frequency Penalty La penalización de frecuencia varía de -2,0 a 2,0 y afecta la forma en que el modelo penaliza los nuevos tokens en función de su frecuencia en el texto. Valores positivos : Disminuye la probabilidad de repetir las mismas líneas al penalizar los tokens frecuentes. Valores negativos : Aumentan la probabilidad de repetición. Para reducir levemente la repetición, los valores típicos son de entre 0,1 y 1. Valores superiores de hasta 2 pueden reducir significativamente la repetición, pero pueden reducir la calidad de la muestra. Frequency Penalty en casi todos los modelos = 0,0 Parámetros | Frequency Penalty haz un ejemplo de un cuento de 30 palabras en castellano con un Frequency Penalty = xx Frequency Penalty = 0 Frequency Penalty = 0,5 Frequency Penalty = 1,0 Había una vez un gato Había una vez un gato En una ocasión, un que vivía en una casa que vivía en una casa felino habitaba en una grande. grande. espaciosa residencia. El gato era muy feliz El gato era muy feliz Este gato disfrutaba en la casa. en su hogar. de una vida plena en su entorno. Un día, el gato Un día, el felino encontró un amigo. encontró un amigo Cierto día, descubrió inesperado en el un nuevo amigo en el jardín. jardín. Parámetros | Frequency penalty Comparativa entre modelos 2.5 2 1.5 1 0.5 0 Gemini 1.5 Pro ChatGPTo1 Azure OpenAI Llama3 Claude 3.5 -0.5 Sonnet -1 -1.5 -2 -2.5 Mínimo Máximo usual Parámetros | Presence Penalty Es otra técnica utilizada en la generación de texto para controlar la repetición de palabras y fomentar la diversidad en las respuestas. A diferencia de la "Frequency Penalty", que penaliza las palabras en función de su frecuencia, la "Presence Penalty" penaliza simplemente por la presencia de una palabra en el texto generado, independientemente de cuántas veces aparezca. Supongamos que tenemos el texto inicial "Había una vez un gato". Con un Frequency Penalty, si la palabra "gato" ya ha aparecido dos veces en el texto generado, su probabilidad se reducirá proporcionalmente a su frecuencia: Texto generado: "Había una vez un gato que vivía con otro gato en una casa.“ Efecto del Frequency Penalty: La probabilidad de "gato" se reduce más con cada aparición adicional, promoviendo la diversidad en el texto. Parámetros | Presence Penalty Ejemplo con Presence Penalty Para el mismo texto inicial, "Había una vez un gato". Con un Presence Penalty, si la palabra "gato" ya ha aparecido en el texto, su probabilidad se reduce independientemente de cuántas veces haya aparecido: Texto generado: "Había una vez un gato que vivía en una casa con un perro.“ Efecto del Presence Penalty: La palabra "gato" se penaliza después de su primera aparición, promoviendo el uso de nuevas palabras. ¿Cuándo usar una u otra? Frequency Penalty es ideal para reducir la repetición basada en la frecuencia de aparición, asegurando que las palabras no se repitan demasiado. Presence Penalty es mejor para asegurar que las palabras ya mencionadas no se repitan, promoviendo la inclusión de palabras nuevas. Parámetros | Presence Penalty Los parámetros penalización varía de -2,0 a 2,0 y afecta la forma en que el modelo ajusta la probabilidad de que el modelo introduzca nuevas palabras o temas en el texto generado. Valores positivos: Penalizan la repetición de tokens que ya han aparecido en el texto, incentivando la introducción de nuevos términos y promoviendo respuestas más variadas y creativas. Valores negativos : Reducen la penalización por repetición, aumentando la probabilidad de que el modelo reutilice palabras o frases, lo que puede ser útil en contextos donde se desea énfasis o reiteración. Presence Penalty en casi todos los modelos = 0,0 Parámetros | Presence penalty Comparativa entre modelos 2.5 2 1.5 1 0.5 0 -0.5 Gemini 1.5 Pro ChatGPTo1 Azure OpenAI Llama3 Claude 3.5 Sonnet -1 -1.5 -2 -2.5 Mínimo Máximo usual Parámetros | Max_Tokens Este parámetro define el número máximo de tokens (limita la cantidad total de tokens) que el modelo puede generar en respuesta a una solicitud. Sus beneficios son: Control de longitud: Permite al usuario controlar la longitud del texto generado. Esto es útil para asegurarse de que las respuestas no sean demasiado largas ni demasiado cortas para el contexto. Gestión de Costes: Ayuda a gestionar los recursos computacionales y el tiempo de respuesta. Generar menos tokens, y por lo tanto, pagamos menos por estos si utilizamos APIs. Respuestas más afinadas: Permite ajustar las respuestas para que se adapten a formatos específicos, como resúmenes, respuestas breves o explicaciones detalladas. Ojo con no pasarte recortando el nº de tokens Ejemplo: “max_tokens=1” Parámetros | Max_Tokens El valor de "Max Tokens" debe ajustarse según las necesidades específicas del contexto: Valores Bajos (por ejemplo, 10-50 tokens): Útil para respuestas cortas y concisas, como respuestas de chat o publicaciones en redes sociales. Valores Intermedios (por ejemplo, 50-200 tokens): Adecuado para párrafos, explicaciones detalladas y resúmenes. Valores Altos (por ejemplo, 200-1000 tokens): Ideal para generar textos largos, como artículos, ensayos o capítulos de libros. El número de tokens de respuesta por defecto en la mayoría de los modelos es de 16 tokens con un máximo de 4.096 tokens Parámetros | Stop Sequences Esta funcionalidad permite especificar una o más secuencias de caracteres que, al ser generadas, hacen que el modelo termine la generación de texto de inmediato. La secuencia de orden de parada puede ser cualquier cadena de caracteres, como una palabra, una frase, un símbolo, o una combinación de estos. Algunas de sus ventajas: Permite un control preciso sobre dónde y cuándo debe detenerse la generación de texto, lo cual es útil para aplicaciones que requieren formatos específicos o respuestas concisas. Ayuda a prevenir la generación de texto no deseado o irrelevante, mejorando la coherencia y relevancia del contenido generado. Proporciona flexibilidad al permitir múltiples secuencias de parada, adaptándose a diversas necesidades y contextos. Parámetros | Stop Sequences Las principales secuencias de parada del modelo son: Salto de Línea: stop= “ ” Signos de Interrogación y Útil en la generación de texto que Exclamación. incluye citas o diálogos stop= ? y stop= ! entrecomillados Indican el final de una pregunta o exclamación. Útil en la generación de preguntas o respuestas emocionadas en diálogos. Punto: stop=. Dos puntos: stop= : Marca el final de una oración. Utilizado para introducir listas, Utilizado para asegurar que la explicaciones o citas. Ayuda a respuesta termine con una delimitar respuestas que deben oración completa, evitando que finalizar antes de una se generen oraciones explicación o listado. truncadas. Parámetros | Stop Sequences Las principales secuencias de parada del modelo son: Salto de Línea: stop= “ ” Signos de Interrogación y Útil en la generación Ejemplo de Prompt:de texto que "Escribe Exclamación. incluye citas una frase o diálogos famosa dicha por stop= ? y stop= ! entrecomillados Albert Einstein“ Indican elde Ejemplo final de una Prompt pregunta con ?: Respuesta esperada: "La vida es o exclamación. Útil en la "¿Cuál es la capital de Francia?“ como montar en bicicleta. Para generaciónesperada: de preguntas Respuesta "La o mantener el equilibrio, debes respuestas emocionadas en capital de Francia es París.“ seguir adelante." diálogos. Punto: stop=. Dos puntos: stop= : Ejemplo de Prompt: Marca el final "Explica de una oración. Ejemplo Utilizado de Prompt: para "Lista introducir de listas, brevemente Utilizado paralaasegurar importancia que del la tareas para hoy explicaciones sábado:“ o citas. Ayuda a reciclaje.“ respuesta termine con una Respuesta esperada:que delimitar respuestas "1. deben Respuesta esperada: oración completa, "El evitando que Comprar en el de finalizar antes supermercado. una 2. reciclaje se generenes crucial para reducir oraciones Ir al gimnasio. explicación 3. Leer un libro." o listado. la contaminación." truncadas. Parámetros | Stop Sequences Las principales secuencias de parada del modelo son: Finalizar: stop= "fin del Finalizar stop= #end resumen" Útil para controlar la Útil en la generación de generación de contenido contenido técnico o basado en palabras clave o estructurado donde se utilizan frases específicas del contexto. delimitadores únicos. Ejemplo de Prompt: "Describe las Ejemplo de Prompt con #end: funciones del sistema operativo y “Escribe un código de ejemplo finaliza con 'fin del resumen’.” en Python y finaliza con '#end’.” Respuesta esperada: "Un sistema operativo gestiona los Respuesta esperada: recursos de hardware y software def suma(a, b): del sistema. Coordina las return a + b actividades de los programas y #end facilita la comunicación con el hardware. Fin del resumen." Parámetros | Best of Es una funcionalidad en los modelos de lenguaje como GPT-4 que permite mejorar la calidad del texto generado mediante la generación de múltiples respuestas y seleccionando la mejor de ellas según un criterio predefinido. Este parámetro es especialmente útil en aplicaciones donde la calidad y relevancia del texto son cruciales. ¿Cómo Funciona "Best Of"? 1) Generación Múltiple: El modelo genera varias respuestas independientes para un mismo prompt. 2) Evaluación y Selección: De las respuestas generadas, se evalúan según un criterio predefinido, como la coherencia, relevancia, o la probabilidad acumulativa de las palabras generadas. 3) Selección Final: Se selecciona la respuesta que mejor cumple con el criterio establecido, y se presenta como el resultado final. Parámetros | Best of (ejemplo) Prompt: "Describe la importancia de la biodiversidad. best_of=3” Proceso: El modelo generará tres respuestas independientes sobre la importancia de la biodiversidad. Posibles Respuestas Generadas: "La biodiversidad es crucial para mantener los ecosistemas equilibrados y funcionales, proporcionando servicios esenciales como polinización, purificación del agua y control de plagas.“ "La biodiversidad sostiene la vida en la Tierra, permitiendo la existencia de una amplia variedad de especies que interactúan y dependen unas de otras.“ "La biodiversidad es fundamental para la salud de los ecosistemas, ofreciendo beneficios como recursos alimentarios, medicinas y resiliencia frente al cambio climático.“ Respuesta Seleccionada: "La biodiversidad es crucial para mantener los ecosistemas equilibrados y funcionales, proporcionando servicios esenciales como polinización, purificación del agua y control de plagas." Parámetros | Best of | Ajustes El valor de "Best Of" debe ajustarse según las necesidades específicas del contexto: a) Valores Bajos (2-3): Para aplicaciones donde la rapidez es importante y se necesita un balance entre calidad y tiempo de respuesta. b) Valores Intermedios (4-5): Para aplicaciones que requieren mayor calidad y tienen un margen de tiempo mayor para procesar múltiples respuestas. c) Valores Altos (>5): Para aplicaciones donde la calidad es crítica y se dispone de recursos computacionales y tiempo suficiente para generar y evaluar muchas opciones. “Best_of” = No activo por defecto Técnicas avanzadas de Prompts Encadenamiento Anidamiento Condicional El encadenamiento implica la creación El anidamiento implica la inclusión Los prompts condicionales permiten de una serie de prompts conectados de prompts más pequeños dentro de crear prompts que se adaptan a entre sí, donde cada prompt se basa en un prompt más grande. Esta técnica diferentes situaciones o entradas del la salida del anterior. Esta técnica es útil es útil para tareas que requieren usuario. Esta técnica es útil para para tareas que requieren múltiples múltiples subtareas o que involucran tareas que requieren respuestas pasos o implican un diálogo continuo dividir una tarea compleja en pasos dinámicas o que involucran lógica de entre el usuario y la IA.. más pequeños y manejables. ramificación. Ejemplo de anidamiento de Ejemplo de prompts condicionales: Ejemplo de encadenamiento de prompts: Prompt condicional: "Si el usuario prompts: Prompt principal: "Escribe un ingresa 'perro', escribe un poema Prompt 1: "Escribe una historia sobre poema sobre la naturaleza." sobre un perro. Si el usuario un robot que se enamora de un Prompt anidado 1: "Describe la ingresa 'gato', escribe un poema humano." belleza de las flores en el campo." sobre un gato." Prompt 2: "Describe el primer Prompt anidado 2: "Captura el En este ejemplo, el prompt encuentro entre el robot y el sonido del canto de los pájaros." condicional se basa en la entrada humano." Prompt anidado 3: "Transmite la del usuario para generar un Prompt 3: "Explica cómo el robot y el sensación de la brisa fresca en la poema diferente. humano desarrollan su relación." piel." Prompt 4: "Describe el final de la historia, ¿se quedan juntos o se separan?" Técnicas avanzadas de Prompts Few-Shot Learning El few-shot learning es una técnica donde proporcionas al modelo algunos ejemplos dentro del prompt para guiarlo sobre cómo debería responder a nuevas entradas. Aquí tienes dos ejemplos de few-shot learning aplicados a diferentes contextos: Ejemplo: Asistente de Soporte Técnico “Imagina que estás configurando un asistente para resolver problemas técnicos relacionados con la conectividad Wi-Fi. Quieres que el asistente siga un formato específico para preguntar y responder: Técnicas avanzadas de Prompts Few-Shot Learning P: ¿Cómo puedo reiniciar mi router? A: Para reiniciar su router, siga estos pasos: 1. Desconecte el cable de alimentación del router. 2. Espere 10 segundos. 3. Vuelva a conectar el cable de alimentación. 4. Espere a que las luces del router indiquen que está conectado. P: Mi conexión Wi-Fi sigue desconectándose. ¿Qué puedo hacer? A: Si su conexión Wi-Fi sigue desconectándose, intente lo siguiente: 1. Asegúrese de que su router esté en un lugar central de su hogar. 2. Verifique que no haya interferencias de otros dispositivos electrónicos. 3. Actualice el firmware de su router. 4. Considere cambiar el canal de Wi-Fi desde la configuración del router. P: No puedo acceder a la red Wi-Fi. ¿Qué debo verificar? A: ” En este ejemplo, el modelo debería continuar proporcionando una respuesta similar en estilo y formato a las anteriores, siguiendo las pautas mostradas en los ejemplos. Conclusiones Pruebas y Formación Colaboración Integración refinamiento Proporcionar Fomentar la Implementar un Integrar el Prompt capacitación y colaboración entre proceso iterativo Engineering en los recursos a los los usuarios y los de pruebas, procesos y equipos para expertos en IA evaluación y herramientas mejorar sus para diseñar mejora continua existentes para habilidades en prompts efectivos. de los prompts. una Prompt implementación Engineering. efectiva. Estrategias para diseñar prompts efectivos Comenzar con una clara comprensión del resultado Definir 1 deseado. ¿Qué tipo el objetivo de información o tarea se requiere? Establecer objetivos específicos guiará el 2 Estructurar el prompt diseño del prompt. Organizar el prompt en una secuencia lógica, incluyendo Realizar pruebas pasos, contexto, restricciones y iterativas, evaluar los cualquier información relevante. Probar y refinar 3 resultados y realizar ajustes es clave para Esto ayuda a la IA a entender optimizar los prompts. mejor la tarea y generar respuestas más coherentes. Esto permite identificar y corregir cualquier ambigüedad o falta de claridad. 04 Herramientas de apoyo para crear mis prompts Cómo formular mis Prompts a ChatGPT Herramienta de Prompting by Founderz aquí Fuente: https://founderz.com/es Repositorio con más de 2.500 prompts https://sintra.ai/ Plataforma con miles prompts https://www.awesomegptprompts.com/ Asistente para crear tus prompts https://poe.com/ Asistente para crear tus prompts https://www.aimind.so/prompt-generator Recursos de prompts para imágenes https://lexica.art/ Recursos de prompts para imágenes https://docs.midjourney.com/docs/image-prompts Recursos de prompts para imágenes https://stablediffusionweb.com/prompts Diversas funcionalidades en textos https://neuralwriter.com/ Marketplace de Prompts https://promptbase.com/ Para aprender más… https://learnprompting.org/es/docs/intro Para aprender más… https://platform.openai.com/docs/guides/prompt-engineering/prompt-engineering Para aprender más… https://developers.google.com/machine-learning/resources/prompt-eng?hl=es-419 Para aprender más… https://cloud.google.com/vertex-ai/generative-ai/docs/overview Para aprender más… https://learn.microsoft.com/en-us/azure/ai-services/openai/ Para aprender más… https://ai.meta.com/research/publications/the-llama-3-herd-of-models/ Para aprender más… https://docs.anthropic.com/es/docs/welcome Para aprender más… https://github.com/anthropics/courses/tree/master/anthropic_api_fundamentals Para aprender más… https://paperswithcode.com/task/prompt-engineering ”En momentos de incertidumbre y dificultades empresariales puede valer la pena detenerse un momento, pensar en lo que se necesita y, antes de seguir avanzando, determinar si los problemas o carencias pueden ser resueltos por la IA”. John McCarthy padre del término IA Fuente de la imagen: https://cwn.kr/ CURSO “INTELIGENCIA ARTIFICIAL APLICADA A LA FORMACIÓN” MODULO 2: ADVANCED PROMPT ENGINEERING [email protected] Telf. 954 486 800

Use Quizgecko on...
Browser
Browser