Escuela Superior de Ingeniería AI: 1. Cue Engineering

🚀 Consejo para el proyecto

Una habilidad clave en la era de la IA generativa es la ingeniería de instrucciones, el arte y la ciencia de diseñar instrucciones eficaces para guiar a los modelos lingüísticos en la generación de los resultados deseados. Según DataCamp, esta disciplina emergente consiste en diseñar y optimizar instrucciones para obtener respuestas específicas de los modelos de IA, en particular los LLM (Large Language Models), lo que configura la forma en que interactuamos con la IA y aprovechamos su poder.

 

📚 Estructura del almacén

Nombre del documentodescripciones
Diseño de consejos básicosIntroducción a los conceptos y estructuras de la ingeniería rápida básica.
Diseño avanzado de tacosConsejos avanzados para optimizar y estructurar la producción.
Diseño avanzado de tacosUna guía práctica para aplicar técnicas avanzadas de diseño rápido.
Comprender la API de OpenAIUna visión general de los avisos utilizando la API OpenAI.
Llamadas a funciones en LLMCuaderno que demuestra la funcionalidad de llamada a funciones en el modelo de lenguaje.
Consejos integrados Cuaderno de ingenieríaJupyter Notebook que cubre una amplia gama de técnicas de diseño rápido.

 

🎯 Cue Design Briefs

La incitación es el proceso de proporcionar a un modelo de IA instrucciones o entradas específicas para desencadenar un resultado o comportamiento deseado. Se trata de una importante interfaz entre el ser humano y los sistemas de IA, que permite al usuario guiar eficazmente la respuesta del modelo. En el contexto de los grandes modelos lingüísticos (LLM), las instrucciones pueden abarcar desde simples consultas hasta complejos conjuntos de instrucciones, incluidos el contexto y las guías de estilo.

Entre los aspectos clave del diseño rápido figuran:

  • Versatilidad: según el modelo de IA y la tarea, las indicaciones pueden ser textuales, visuales o auditivas.
  • Especificidad: las puntas bien diseñadas proporcionan detalles precisos para generar resultados más exactos y pertinentes.
  • Optimización iterativa: el diseño de las pistas suele implicar la interpretación de la respuesta del modelo y el ajuste de las pistas posteriores para obtener mejores resultados.
  • Diversidad de aplicaciones: las pistas se utilizan en ámbitos tan diversos como la generación de textos, el reconocimiento de imágenes, el análisis de datos y la IA conversacional.

 

🌟 Consejos sobre la importancia de la ingeniería

  1. Mejorar el rendimiento de la IA: unas palabras clave bien diseñadas pueden mejorar significativamente la calidad y pertinencia de los resultados generados por la IA. Al proporcionar instrucciones y contexto claros, la ingeniería de pistas permite a los modelos generar respuestas más precisas, coherentes y útiles.
  2. Personalización y flexibilidad: Cue Engineering permite a los usuarios adaptar las respuestas de la IA a necesidades y dominios específicos sin necesidad de un reentrenamiento exhaustivo del modelo. Esta flexibilidad permite que los sistemas de IA se adapten mejor a diversas aplicaciones en una gran variedad de sectores.
  3. Atenuación del sesgo: el sesgo en los resultados de la IA puede reducirse mediante la elaboración de palabras clave que puedan guiar al modelo para que considere múltiples perspectivas o se centre en fuentes específicas de información imparcial.
  4. Mejora de la experiencia del usuario: una ingeniería de pistas eficaz mejora la experiencia del usuario al salvar la distancia entre la intención humana y la comprensión de la máquina, haciendo que las herramientas de IA sean más accesibles y fáciles de usar [4].
  5. Rentabilidad: la optimización de las palabras clave permite un uso más eficiente de los recursos informáticos y reduce la necesidad de modelos más grandes y costosos para lograr los resultados deseados.
  6. Creación rápida de prototipos e iteración: Cue Engineering permite experimentar y optimizar rápidamente las aplicaciones de IA, lo que acelera los ciclos de desarrollo y la innovación.
  7. Consideraciones éticas: un diseño reflexivo de las indicaciones ayuda a garantizar que los sistemas de IA sigan las directrices éticas y generen contenidos adecuados para diferentes contextos y audiencias.
  8. Escalabilidad: una vez que se han desarrollado señales eficaces, pueden ampliarse fácilmente a toda la organización para permitir interacciones de IA coherentes y de alta calidad.
  9. Aplicaciones interdisciplinares: Cue Engineering conecta los conocimientos técnicos y de dominio, lo que permite a los expertos en la materia aprovechar las capacidades de la IA sin necesidad de conocimientos técnicos profundos.

 

Consejos para ingenieros

  1. Introducción a la ingeniería de claves: una visión general de los conceptos de ingeniería de claves, incluidos los principios básicos, las claves estructuradas, el análisis comparativo y las aplicaciones para la resolución de problemas.
  2. Estructuras básicas de preguntas: explora las preguntas de una y varias rondas, mostrando cómo crear preguntas sencillas y entablar un diálogo con modelos de IA.
  3. Prompt Templates and Variables: Una introducción al uso de plantillas y variables en prompts, con un enfoque en la creación de estructuras de prompt flexibles y reutilizables con herramientas como Jinja2.
  4. Zero Sample Prompting: demuestra cómo se puede guiar a los modelos de IA para que completen tareas mediante la especificación directa de tareas y técnicas de incitación basadas en roles en ausencia de un ejemplo concreto.
  5. Aprendizaje sin muestras y aprendizaje contextual: abarca técnicas que mejoran el rendimiento en tareas específicas sin necesidad de un ajuste fino proporcionando un pequeño número de ejemplos para guiar la respuesta de la IA.
  6. Consejo sobre el pensamiento en cadena (CoT): Anime a los modelos de IA a descomponer los problemas complejos en procesos de razonamiento paso a paso para mejorar la resolución de problemas.
  7. Autoconsistencia y razonamiento multitrayectoria: exploración de métodos para generar diversas rutas de razonamiento y agregar resultados para mejorar la precisión y fiabilidad de los resultados de la IA.
  8. Generación restringida y guiada: se centra en el establecimiento de restricciones en los resultados del modelo y en la aplicación de la generación basada en reglas para controlar y guiar la respuesta de la IA.
  9. Indicaciones de funciones: muestra cómo asignar funciones específicas a los modelos de IA y diseñar descripciones de funciones eficaces para obtener el comportamiento o los conocimientos necesarios.
  10. Instrucciones para el desglose de tareas: Explore técnicas para desglosar tareas complejas en subtareas más pequeñas y manejables mediante instrucciones.
  11. Cadenas y secuencias de señales: demuestra cómo conectar múltiples señales en un flujo lógico para manejar tareas complejas de varios pasos.
  12. Ingeniería de directivas: se centra en el diseño de directivas claras y eficaces para modelos lingüísticos, equilibrando especificidad y generalidad para optimizar el rendimiento.
  13. Técnicas de optimización de pistas: abarca métodos avanzados para mejorar las pistas, incluidas las pruebas A/B y la optimización iterativa basada en métricas de rendimiento.
  14. Tratamiento de la ambigüedad y mejora de la claridad: exploración de técnicas para reconocer y resolver peticiones ambiguas, y estrategias para redactar peticiones más claras y eficaces.
  15. Gestión de la longitud y complejidad de las instrucciones: explore estrategias para gestionar instrucciones largas o complejas, incluidas técnicas de fragmentación y resumen.
  16. Cuestiones negativas y evitación de resultados no deseados: muestra cómo utilizar ejemplos negativos y restricciones para alejar al modelo de respuestas no deseadas.
  17. Formatos y estructuras de las señales: estudia diversos formatos de señales y elementos estructurales para optimizar las respuestas de los modelos de IA.
  18. Sugerencias para tareas específicas: centrarse en el diseño de sugerencias para tareas específicas como resúmenes, cuestionarios, generación de código y escritura creativa.
  19. Avisos multilingües e interlingüísticos: Explore las técnicas de diseño de avisos que funcionan eficazmente en varios idiomas, así como el diseño de avisos para tareas de traducción.
  20. Ethical considerations in cue engineering: focusing on the ethical dimensions of avoiding bias and creating inclusive cues.
  21. Medidas de seguridad y protección de la IA: cubre las técnicas para evitar la inyección inmediata e implementar el filtrado de contenidos para garantizar la seguridad de las aplicaciones de IA.
  22. Evaluación de la validez de los indicios: Exploración de métodos para evaluar y medir la validez de los indicios, incluidas técnicas de evaluación manuales y automatizadas.

 

Consejos básicos

La ingeniería de pistas engloba una serie de técnicas diseñadas para optimizar la interacción con los modelos de IA. Estos métodos básicos constituyen la base de estrategias más avanzadas y son habilidades esenciales para cualquiera que desee aprovechar todo el potencial de las herramientas de IA generativa.

Las sugerencias de muestra cero son la técnica más sencilla, es decir, formular instrucciones o preguntas directamente a la IA sin contexto ni ejemplos adicionales [1][2]. Este enfoque es adecuado para tareas sencillas o para obtener respuestas rápidamente. Por ejemplo, preguntar "¿Dónde está la capital de Francia?" es una pregunta de muestra cero.

Las pistas de muestra única añaden un ejemplo a las pistas de muestra cero para guiar la respuesta de la IA [3]. Esta técnica es especialmente útil cuando se trata de formatos o estilos específicos. Por ejemplo, para generar la descripción de un producto, se puede proporcionar una descripción de ejemplo y, a continuación, pedirle que genere otra descripción para un producto diferente.

El concepto de "sample less cue" se amplía proporcionando múltiples ejemplos a la IA [2]. Este enfoque es especialmente eficaz en tareas complejas o cuando se requiere coherencia en los resultados. Al proporcionar múltiples ejemplos del formato o estilo de salida deseado, la IA puede comprender y reproducir mejor los patrones.

Las instrucciones basadas en roles influyen significativamente en el tono y el contenido de la respuesta de una IA al asignarle un rol o identidad específicos [1]. Por ejemplo, indicar a la IA que "haga de especialista en asistencia técnica" antes de formular una pregunta puede dar lugar a una respuesta más técnica y de apoyo.

El replanteamiento de las preguntas es una técnica que permite guiar a la IA para que ofrezca diferentes perspectivas o respuestas más matizadas reformulando o reestructurando las preguntas [3]. Este enfoque es especialmente útil cuando los resultados iniciales no son satisfactorios o cuando hay que explorar múltiples aspectos de un tema. Por ejemplo, en lugar de preguntar "¿Cuáles son los beneficios de las energías renovables?" podría reformularse como "¿Cómo afectan las energías renovables a los distintos sectores de la economía?".

La combinación de instrucciones combina varias instrucciones o preguntas en una sola [3]. Esta técnica es muy útil para obtener respuestas múltiples o responder a preguntas complejas. Por ejemplo, si se combina "Explique la diferencia entre alojamiento compartido y alojamiento VPS" y "Recomiende cuál es más adecuado para sitios web de comercio electrónico pequeños" en una sola pregunta, se obtiene una respuesta más completa y personalizada.

Estas técnicas fundamentales proporcionan una base sólida para una ingeniería de pistas eficaz, que permite a los usuarios guiar los modelos de IA para generar resultados más precisos, pertinentes y útiles en una amplia gama de aplicaciones.

 

Estrategia avanzada

Las técnicas avanzadas de ingeniería de sugerencias utilizan métodos más sofisticados para mejorar el rendimiento y las capacidades de los grandes modelos lingüísticos. Estos métodos van más allá de las sugerencias básicas y pretenden lograr un razonamiento más complejo y resultados específicos para cada tarea.

Sugerencias para el pensamiento coherente (CoT)

Esta técnica mejora el rendimiento del modelo en tareas de razonamiento complejas al proporcionar una serie de etapas intermedias de razonamiento. Las pistas de pensamiento coherentes permiten al modelo lingüístico dividir los problemas complejos en pasos más pequeños y manejables, generando así resultados más precisos y lógicos.

autocompatibilidad

Como mejora de CoT, el enfoque de autoconsistencia implica el muestreo de múltiples vías de razonamiento y la selección de la respuesta más coherente. Este enfoque es especialmente eficaz en problemas en los que existen múltiples soluciones válidas, ya que permite al modelo explorar múltiples estrategias de razonamiento antes de determinar el resultado más fiable.

ReAct

ReAct combina razonamiento y acción, generando el modelo tanto el proceso de razonamiento como las acciones específicas de la tarea. Este enfoque permite a la IA planificar, ejecutar y adaptar dinámicamente su planteamiento, lo que la hace ideal para escenarios complejos de resolución de problemas que requieren la interacción con fuentes externas de información.

Ingeniería de señales multimodal

Esta técnica avanzada consiste en diseñar avisos que incorporen múltiples tipos de entradas, como texto, imágenes y audio. Al aprovechar diversos tipos de datos, las indicaciones multimodales hacen que las interacciones de la IA sean más holísticas y contextualmente relevantes, imitando la percepción y las capacidades de comunicación humanas.

Optimización de alertas en tiempo real

Esta tecnología emergente proporciona información inmediata sobre la validez de las instrucciones, evaluando la claridad, el sesgo potencial y la alineación de las instrucciones con el resultado deseado. Esta orientación en tiempo real simplifica el proceso de redacción de instrucciones tanto para usuarios principiantes como experimentados.

Consejos proactivos

Este enfoque dinámico permite adaptar las pistas en función de la interacción y los comentarios del usuario. Las pistas proactivas permiten al modelo de IA adaptar sus respuestas en tiempo real, aumentando así la pertinencia y validez del resultado a lo largo de toda la interacción.

Consejos para generar conocimiento

Esta técnica utiliza modelos lingüísticos para generar conocimientos relevantes antes de responder a una pregunta, potenciando su razonamiento de sentido común. Al generar primero la información pertinente y luego incorporarla a la respuesta, el modelo puede ofrecer una respuesta más perspicaz y contextualizada.

Estas técnicas avanzadas representan la vanguardia de la ingeniería de pistas y proporcionan potentes herramientas para optimizar el rendimiento de la IA en una amplia gama de ámbitos de aplicación y áreas problemáticas.

pensamiento lógico

El razonamiento Coherent Thinking (CoT) es una técnica avanzada de ingeniería de instrucciones diseñada para mejorar las capacidades de razonamiento de grandes modelos lingüísticos. El método consiste en generar múltiples vías de razonamiento para un problema dado y seleccionar la solución más coherente o completa. Al realizar el razonamiento CoT varias veces, los ingenieros de indicaciones pueden mejorar la capacidad de un modelo para resolver problemas que requieren pensamiento lógico y múltiples pasos.

Puntos clave del razonamiento TdC

  • decodificación de autocompletar: Selecciona las conclusiones más comunes en razonamientos múltiples.
  • Consejos basados en la complejidad: Selecciona el resultado con la cadena de inferencia más larga.
  • intervención humanaCorrige la cadena de inferencia con la ayuda de la corrección manual cuando los resultados de la inferencia son significativamente incoherentes.
  • Mejorar la precisión: Mejorar el rendimiento del modelo en tareas de razonamiento, cálculo y toma de decisiones.

Utilizando el razonamiento CoT, los ingenieros de cue pueden crear sistemas de IA más robustos y fiables, capaces de gestionar problemas complejos en una gran variedad de ámbitos.

Ejemplo de mensaje ReAct

El método ReAct (Reasoning and Acting) es una técnica de alto nivel que combina procesos de razonamiento y acciones específicas para cada tarea con el fin de mejorar la capacidad de resolución de problemas de los grandes modelos lingüísticos (LLM). Este enfoque permite a los LLM generar alternativamente pasos de razonamiento lingüístico y realizar acciones, lo que conduce a una resolución de problemas más eficiente y dinámica.

Un consejo típico de ReAct

  1. PensamientoEl proceso de razonamiento del modelo.
  2. AcciónTarea o consulta específica que debe realizarse.
  3. Observación: Los resultados o la información obtenidos de una acción.
ejemplo típico

cuestiones: ¿Cuál es la capital del país donde se encuentra la Torre Eiffel?

  1. reflexionesPara responder a esta pregunta, tendría que averiguar dónde se encuentra la Torre Eiffel y, a continuación, identificar la capital de ese país.
  2. actuarBúsqueda de "Localización de la Torre Eiffel".
  3. atenciónLa Torre Eiffel está situada en París, Francia.
  4. reflexionesAhora que sé que la Torre Eiffel está en Francia, tengo que buscar la capital francesa.
  5. actuarBuscar "capital de Francia".
  6. atenciónLa capital de Francia es París.
  7. reflexionesTengo toda la información que necesito para responder a esta pregunta.
  8. actuar: Proporciona respuestas.
  9. soluciónLa capital del país donde se encuentra la Torre Eiffel es París, Francia.

Aplicación de la iniciativa ReAct

  • preguntas y respuestas: Mejorar la capacidad de los modelos para descomponer problemas complejos y obtener información relevante.
  • Automatización de tareasGuía al modelo a través de un proceso de varios pasos combinando razonamiento y acción.
  • Interacción con bases de conocimiento externasPermite al modelo recuperar e incorporar información adicional para apoyar su razonamiento.
  • Toma de decisionesMejorar la capacidad de los modelos para evaluar opciones y tomar decisiones con conocimiento de causa basándose en los datos disponibles.

Con la aplicación de la instrucción ReAct, los desarrolladores e investigadores pueden crear sistemas de IA más robustos y adaptables, capaces de realizar tareas de razonamiento complejas y escenarios realistas de resolución de problemas.

Señalización de estímulos específicos

El estímulo direccional (DSP) es un marco innovador para guiar a los grandes modelos lingüísticos (LLM) a generar resultados específicos deseados. La técnica utiliza un modelo de estrategia pequeño y ajustable para generar estímulos direccionales auxiliares para cada instancia de entrada, que actúan como pistas matizadas para guiar a los LLM en la generación de los resultados deseados.

Características principales del DSP

  • Generación de estímulos orientados utilizando un modelo de estrategia pequeño y ajustable (por ejemplo, T5).
  • Optimización mediante ajuste fino supervisado y aprendizaje intensivo.
  • Puede aplicarse a diversas tareas, como la generación de resúmenes, la generación de respuestas de diálogo y el razonamiento encadenado.
  • Mejorar significativamente el rendimiento con datos de anotación limitados, por ejemplo, con sólo 80 diálogos utilizados, convirtiendo el ChatGPT El rendimiento en el conjunto de datos MultiWOZ mejora en 41,41 TP3T.

Gracias al DSP, los investigadores y profesionales pueden mejorar las capacidades del LLM sin modificar directamente sus parámetros, lo que proporciona un enfoque flexible y eficaz de la ingeniería de pistas.

Pistas para generar conocimiento

La estimulación del conocimiento generado mejora el rendimiento de los modelos de IA pidiéndoles que generen hechos relevantes antes de responder a una pregunta o completar una tarea. Este proceso de dos pasos implica la generación de conocimientos (cuando el modelo genera información relevante) y la integración de conocimientos (cuando esta información se utiliza para formar respuestas más precisas y contextualizadas).

Principales ventajas

  • Mejorar la precisión y fiabilidad de los contenidos generados por IA.
  • Mejorar la comprensión contextual de determinados temas.
  • Capacidad para anclar las respuestas a la información objetiva.
  • El conocimiento puede ampliarse aún más incorporando fuentes externas, como API o bases de datos.

Al incitar al modelo a considerar primero los hechos relevantes, el método de incitación a la generación de conocimiento ayuda a crear resultados más informativos y sensatos, especialmente en tareas complejas o cuando se trata de temas especializados.

 

Sugerencias sobre técnicas prácticas de ingeniería

Esta Guía Técnica de Ingeniería de Consejos se basa íntegramente en NirDiamant Un repositorio de excelentes prácticas. Todo el contenido y el cuaderno Jupyter tienen copyright del repositorio original:Ingeniería Prompt.

Lo añado aquí porque es un gran recurso de aprendizaje, ¡todos los derechos reservados! Ingeniería Prompt Almacén.

🌱 Conceptos básicos

  1. Perfil del proyecto Tip

    Visión general 🔎

    Una introducción detallada a los conceptos subyacentes a la IA y a la ingeniería de modelos lingüísticos.

    Implementado 🛠️

    Combina explicaciones teóricas con demostraciones prácticas que abarcan conceptos fundamentales, indicaciones estructuradas, análisis comparativos y aplicaciones para la resolución de problemas.

  2. Estructura básica del taco

    Visión general 🔎

    Explorar dos estructuras básicas de señales: señales de una ronda y señales de varias rondas (diálogos).

    Implementado 🛠️

    Demostración de instrucciones de una y varias rondas, plantillas de instrucciones y cadenas de diálogo utilizando el modelo GPT de OpenAI y LangChain.

  3. Plantillas de consejos y variables

    Visión general 🔎

    Describe cómo crear y utilizar plantillas de avisos con variables utilizando Python y el motor de plantillas Jinja2.

    Implementado 🛠️

    Implica la creación de plantillas, la inserción de variables, el contenido condicional, el procesamiento de listas y la integración con la API OpenAI.

Tecnologías básicas

  1. Punta de muestra cero

    Visión general 🔎

    Exploración de pistas de muestra cero para permitir que los modelos lingüísticos completen tareas sin ejemplos específicos ni entrenamiento previo.

    Implementado 🛠️

    Demostración de la especificación directa de tareas, indicaciones basadas en roles, especificación de formatos e inferencia multipaso utilizando OpenAI y LangChain.

  2. Aprendizaje sin muestras frente a aprendizaje contextual

    Visión general 🔎

    Explore ejemplos de técnicas de aprendizaje contextual y de menor aprendizaje con los modelos GPT de OpenAI y la biblioteca LangChain.

    Implementado 🛠️

    Mejores prácticas para aplicar el aprendizaje básico y avanzado de muestras de alumnos menores, el aprendizaje contextual y la selección y evaluación de ejemplos.

  3. Consejos para pensar en cadena (CoT)

    Visión general 🔎

    Introducción de pistas de pensamiento en cadena (CoT) para guiar a los modelos de IA en la descomposición de problemas complejos en procesos de razonamiento paso a paso.

    Implementado 🛠️

    Cubre técnicas básicas y avanzadas de CoT, las aplica a una variedad de escenarios de resolución de problemas y las compara con las indicaciones estándar.

🔍 Estrategia avanzada

  1. Autoconsistencia y razonamiento multitrayectoria

    Visión general 🔎

    Explorar técnicas para generar diversas rutas de inferencia y agregar resultados para mejorar la calidad de las respuestas generadas por la IA.

    Implementado 🛠️

    Demostrar el diseño de diversas preguntas de inferencia, la generación de respuestas múltiples, la implementación de métodos de agregación y la aplicación de comprobaciones de autoconsistencia.

  2. Generación restringida y bootstrapped

    Visión general 🔎

    Se centra en las técnicas para establecer restricciones en los resultados del modelo y aplicar la generación basada en reglas.

    Implementado 🛠️

    Utilice PromptTemplate de LangChain para crear instrucciones estructuradas, aplicar restricciones y explorar técnicas de generación basadas en reglas.

  3. Consejos sobre personajes

    Visión general 🔎

    Explore técnicas para asignar funciones específicas a modelos de IA y diseñar descripciones de funciones eficaces.

    Implementado 🛠️

    Demostrar la creación de avisos basados en roles, asignando roles a modelos de IA y optimizando las descripciones de roles para diversos escenarios.

🚀 Realización avanzada

  1. Consejos para el desglose de tareas

    Visión general 🔎

    Explore técnicas para desglosar tareas complejas y vincular subtareas en los avisos.

    Implementado 🛠️

    Implica el análisis del problema, la definición de subtareas, la ingeniería de señales de objetivos, la ejecución secuencial y la síntesis de resultados.

  2. Encadenamiento de pistas y serialización

    Visión general 🔎

    Demuestre cómo conectar varios mensajes y crear flujos lógicos para tareas complejas basadas en IA.

    Implementado 🛠️

    Explore las cadenas de señales básicas, las señales secuenciales, la generación dinámica de señales y la gestión de errores en las cadenas de señales.

  3. ingeniería de mando

    Visión general 🔎

    Centrarse en el diseño de instrucciones claras y eficaces para los modelos lingüísticos, equilibrando especificidad y generalidad.

    Implementado 🛠️

    Implica crear y optimizar instrucciones, probar diferentes estructuras y realizar mejoras iterativas basadas en las respuestas de los modelos.

🎨 Optimización y mejora

  1. Técnicas de optimización de pistas

    Visión general 🔎

    Explore técnicas avanzadas para optimizar los avisos centrándose en las pruebas A/B y la mejora iterativa.

    Implementado 🛠️

    Demostrar un proceso rápido de pruebas A/B, mejora iterativa y evaluación del rendimiento utilizando métricas relevantes.

  2. Manejar la ambigüedad y mejorar la claridad

    Visión general 🔎

    Se centra en técnicas para reconocer y resolver peticiones ambiguas y redactar peticiones más claras.

    Implementado 🛠️

    Incluye el análisis de indicaciones ambiguas, la aplicación de estrategias para resolver la ambigüedad y la exploración de técnicas para redactar indicaciones más claras.

  3. Gestión de la longitud y complejidad de las entradas

    Visión general 🔎

    Explore técnicas para gestionar la longitud y la complejidad de los mensajes cuando se utilizan modelos lingüísticos de gran tamaño.

    Implementado 🛠️

    Demostrar técnicas para equilibrar el detalle con la brevedad y estrategias para tratar contextos extensos, como la fragmentación, el resumen y el procesamiento iterativo.

🛠️ Aplicaciones especializadas

  1. Cuestiones negativas y evitación de salidas inesperadas

    Visión general 🔎

    Exploración de pistas negativas y técnicas para evitar resultados no deseados de grandes modelos lingüísticos.

    Implementado 🛠️

    Incluye ejemplos negativos básicos, exclusiones explícitas, aplicación de restricciones mediante LangChain y métodos para evaluar y mejorar las pistas negativas.

  2. Formato y estructura de los tacos

    Visión general 🔎

    Explorar varios formatos de pistas y elementos estructurales y demostrar su impacto en las respuestas de los modelos de IA.

    Implementado 🛠️

    Demostrar la creación de múltiples formatos de pistas, la integración de elementos estructurales y la comparación de respuestas a diferentes estructuras de pistas.

  3. Consejos específicos para cada tarea

    Visión general 🔎

    Explore la creación y el uso de instrucciones para tareas específicas como resúmenes de textos, cuestionarios, generación de códigos y escritura creativa.

    Implementado 🛠️

    Esto incluye el diseño de plantillas de instrucciones específicas para cada tarea, su implementación mediante LangChain, su ejecución con entradas de muestra y el análisis de los resultados de cada tipo de tarea.

🌍 Aplicaciones avanzadas

  1. Consejos multilingües e interlingüísticos

    Visión general 🔎

    Exploración de técnicas para diseñar instrucciones eficaces para tareas multilingües y de traducción de idiomas.

    Implementado 🛠️

    Esto incluye la creación de avisos multilingües, la detección y adaptación de idiomas, el diseño de avisos de traducción multilingüe y la gestión de distintos sistemas de escritura y conjuntos de caracteres.

  2. Consideraciones éticas en la ingeniería del taco

    Visión general 🔎

    Explorar las dimensiones éticas de la ingeniería de avisos, centrándose en evitar los prejuicios y crear avisos inclusivos y equitativos.

    Implementado 🛠️

    Incluye métodos para identificar prejuicios en las indicaciones, aplicar estrategias para crear indicaciones inclusivas y evaluar y mejorar la calidad ética de los resultados de la IA.

  3. Consejos de seguridad

    Visión general 🔎

    Destaca cómo evitar la inyección de avisos e implementar el filtrado de contenidos en los avisos para proteger las aplicaciones de IA.

    Implementado 🛠️

    Incluye técnicas para evitar la inyección puntual, implementaciones de filtrado de contenidos y comprobación de la eficacia de las medidas de seguridad.

  4. Evaluar la eficacia de los avisos

    Visión general 🔎

    Explorar métodos y técnicas para evaluar la validez de las pistas de los modelos lingüísticos de IA.

 

Comprender la API del Modelo de Lenguaje Extenso (LLM)

Hablemos de la API Large Language Model (LLM).

Hay un par de maneras de utilizar la API, una es enviar una solicitud HTTP directa, y la otra es instalar el paquete oficial de OpenAI a través de pip, que siempre está actualizado con las últimas características.

pip install openai

Dado que este formato de API es tan popular, muchos otros proveedores ofrecen API en el mismo formato, que se denomina "compatible con OpenAI".

Lista de proveedores que ofrecen API compatibles con OpenAI

A continuación se muestra una lista de proveedores compatibles con la API de OpenAI, y los desarrolladores pueden aprovechar estos servicios de forma similar a lo que ofrece OpenAI:

  • Groq
    • Groq La mayoría de las API proporcionadas son compatibles con las bibliotecas cliente de OpenAI. Los usuarios sólo tienen que cambiar el base_url y utilizar la clave API de Groq para configurar sus aplicaciones para que se ejecuten en Groq.
  • Mistral AI
    • Mistral Proporciona una API que admite solicitudes compatibles con OpenAI, lo que permite a los desarrolladores acceder a varios modelos a través de este servicio.
  • Cara de abrazo
    • Hugging Face proporciona acceso a un gran número de modelos a través de una API, configurada de forma similar a la API de OpenAI. Hugging Face es conocida por su gran biblioteca de modelos.
  • Google Vertex AI
    • Google Vertex AI permite a los usuarios interactuar con grandes modelos lingüísticos de forma coherente con la API OpenAI.
  • Microsoft Azure OpenAI
    • Microsoft proporciona acceso a los modelos de OpenAI a través de su plataforma Azure para facilitar la integración con los servicios Azure existentes.
  • Antrópico
    • Antrópico También se puede acceder a los modelos a través de una API que imita la estructura de OpenAI, lo que permite interacciones similares.

Estos proveedores permiten a los desarrolladores aprovechar las diferentes capacidades de la IA manteniendo la compatibilidad con la estructura familiar de la API OpenAI para facilitar la integración en aplicaciones y flujos de trabajo.

También hay proveedores que utilizan diferentes arquitecturas y tipos de API, pero podemos utilizar algo como la API litellm Una biblioteca cliente de este tipo proporciona un paquete cliente unificado para distintos tipos de modelos lingüísticos de gran tamaño.

Además, empresas como Llave de puerto Una pasarela de este tipo proporciona API compatibles con OpenAI para cualquier modelo lingüístico de gran tamaño.

En este artículo, conocerá los diferentes parámetros de la API.

Parámetros clave

Temperatura

  • descripcionesEl parámetro : Temperatura controla la aleatoriedad de la salida del modelo, oscilando entre 0 y 2.
  • afectar (normalmente de forma negativa):
    • Valor bajo (0-0,3)El resultado es más determinista y centrado, y a menudo repite respuestas similares.
    • Media (0,4-0,7)Equilibrio entre creatividad y coherencia.
    • Valor alto (0,8-2)Generan una producción más diversa y creativa, pero pueden producir resultados sin sentido.
  • ejemplo típico:
    response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "完成句子:'幸福的关键是'。"}],
    temperature=1
    )
    

Top_p

  • descripcionesEste parámetro permite el muestreo de núcleos, en el que el modelo sólo tiene en cuenta el mayor p Calidad probabilística del resultado.
  • reino: De 0 a 1, los valores más bajos limitan la salida al Token más probable.
  • ejemplo típico:
    response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "写一首诗。"}],
    top_p=0.9
    )
    

Fichas máximas

  • descripciones: Define el número máximo de Ficha Cantidad (palabras o partes de palabras).
  • valor por defecto: Para la mayoría de los modelos, esto se fija generalmente a un máximo de 4096 Token.
  • ejemplo típico:
    response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "讲一个故事。"}],
    max_tokens=150
    )
    

Llamada a función

  • descripcionesEsta función permite al modelo interactuar con API o servicios externos llamando a funciones predefinidas en función de la información introducida por el usuario.
  • ejemplo típico:
    functions = [
    {
    "name": "get_current_weather",
    "description": "获取某地的当前天气。",
    "parameters": {
    "type": "object",
    "properties": {
    "location": {"type": "string"},
    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
    },
    "required": ["location"]
    }
    }
    ]
    response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "纽约的天气如何?"}],
    functions=functions,
    function_call={"name": "get_current_weather"}
    )
    

Funciones en las llamadas a la API

Comprender las funciones implicadas en una llamada a la API ayuda a estructurar la interacción de forma eficaz.

Función del sistema

  • metaProporciona instrucciones o contexto de alto nivel que guían el comportamiento del modelo a lo largo del diálogo.
  • uso: Se establece al principio del conjunto de mensajes para establecer el tono o las reglas de la interacción.
  • ejemplo típico::
    messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What can you do?"}
    ]
    

rol de usuario

  • metarepresenta la entrada de un usuario humano, guiando el diálogo a través de preguntas o avisos.
  • uso: Se utiliza más comúnmente en las interacciones para hacer preguntas o proporcionar declaraciones.
  • ejemplo típico::
    {"role": "user", "content": "Can you explain how OpenAI works?"}
    

Asistente

  • meta: representa la respuesta generada por el modelo a partir de las entradas del usuario y los comandos del sistema.
  • usoEl modelo asume automáticamente este papel cuando responde a una consulta del usuario.
  • ejemplo típico::
    {"role": "assistant", "content": "OpenAI uses advanced machine learning techniques to generate text."}
    

Otros parámetros

corriente (de agua, etc.)

  • descripciones: Si se establece en true, permite el streaming al generar respuestas parciales, para aplicaciones en tiempo real.

Logprobs

  • descripciones: Devuelve la probabilidad logarítmica de la predicción de la Ficha, que se utiliza para comprender el comportamiento del modelo y mejorar el resultado.

resúmenes

La API OpenAI ofrece un potente conjunto de parámetros y roles que los desarrolladores pueden utilizar para crear aplicaciones altamente interactivas. Ajustando parámetros como la temperatura y haciendo un uso eficaz de los roles estructurados, los usuarios pueden adaptar las respuestas a necesidades específicas al tiempo que garantizan la claridad y el control del diálogo.

A continuación se muestran ejemplos de cómo utilizar las APIs de varios proveedores compatibles con OpenAI, así como ejemplos de aplicación del Modelo de Lenguaje Grande Ligero (LLM).

Ejemplo de uso de la API OpenAI de un proveedor compatible

1. Groq

Para utilizar la API de Groq, debe establecer la URL base y proporcionar la clave de API de Groq.

import os
import openai
client = openai.OpenAI(
base_url="https://api.groq.com/openai/v1",
api_key=os.environ.get("GROQ_API_KEY")
)
response = client.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Tell me a joke."}]
)
print(response.choices[0].message['content'])

2. Mistral AI

Mistral AI También proporciona una API compatible con OpenAI, y aquí te explicamos cómo utilizarla:

import requests
url = "https://api.mistral.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {os.environ.get('MISTRAL_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "mistral-7b",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])

3. Cara de abrazo

Se necesitan tokens de acceso para utilizar la API Hugging Face. A continuación se muestra un ejemplo de código:

import requests
url = "https://api-inference.huggingface.co/models/gpt2"
headers = {
"Authorization": f"Bearer {os.environ.get('HUGGINGFACE_API_KEY')}"
}
data = {
"inputs": "Once upon a time in a land far away,"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()[0]['generated_text'])

4. Google Vertex AI

El siguiente código puede utilizarse para interactuar con Google Vertex AI:

from google.cloud import aiplatform
aiplatform.init(project='your-project-id', location='us-central1')
response = aiplatform.gapic.PredictionServiceClient().predict(
endpoint='projects/your-project-id/locations/us-central1/endpoints/your-endpoint-id',
instances=[{"content": "Who won the World Series in 2020?"}],
)
print(response.predictions)

5. Microsoft Azure OpenAI

A continuación se muestra un ejemplo de código que llama al servicio OpenAI de Azure:

import requests
url = f"https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15"
headers = {
"Content-Type": "application/json",
"api-key": os.environ.get("AZURE_OPENAI_API_KEY")
}
data = {
"messages": [{"role": "user", "content": "What's the weather today?"}],
"model": "gpt-35-turbo"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])

6. Antrópico

Utilizando la Claude A continuación se muestra un ejemplo de código para el modelo y su API:

import requests
url = "https://api.anthropic.com/v1/complete"
headers = {
"Authorization": f"Bearer {os.environ.get('ANTHROPIC_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "claude-v1",
"prompt": "Explain quantum physics in simple terms.",
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['completion'])

El ejemplo muestra cómo utilizar eficazmente un modelo ligero a la vez que se obtienen resultados significativos en una tarea de generación de texto.

Fuente:

https://www.coltsteele.com/tips/understanding-openai-s-temperature-parameter
https://community.make.com/t/what-is-the-difference-between-system-user-and-assistant-roles-in-chatgpt/36160
https://arize.com/blog-course/mastering-openai-api-tips-and-tricks/
https://learn.microsoft.com/ko-kr/Azure/ai-services/openai/reference
https://community.openai.com/t/the-system-role-how-it-influences-the-chat-behavior/87353
https://community.openai.com/t/understanding-role-management-in-openais-api-two-methods-compared/253289
https://platform.openai.com/docs/advanced-usage
https://platform.openai.com/docs/api-reference

https://console.groq.com/docs/openai
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://www.reddit.com/r/LocalLLaMA/comments/16csz5n/best_openai_api_compatible_application_server/
https://docs.gptscript.ai/alternative-model-providers
https://towardsdatascience.com/how-to-build-an-openai-compatible-api-87c8edea2f06?gi=5537ceb80847

https://modelfusion.dev/integration/model-provider/openaicompatible/
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://docs.gptscript.ai/alternative-model-providers
https://console.groq.com/docs/openai

 

Tip Project Primer II (Llamadas a funciones)

Las siguientes bibliotecas, herramientas y configuraciones son necesarias para la carga.

https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/function_calling.ipynb

 

Primeros pasos con Cue Engineering

Las siguientes bibliotecas, herramientas y configuraciones son necesarias para la carga.

https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/prompt_engineering.ipynb

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...