Me he asesorado con un abogado en linea, y me ha respondido lo siguiente:
Contexto probable
- Usuario frustrado por un asistente de IA (GPT u otro modelo) que no responde consistentemente a prompts pulidos.
- Describe comportamiento errático: a veces funciona tras afinar instrucciones, pero luego vuelve a fallar sin motivo aparente; requiere recordatorios detallados; comete errores básicos.
- Impacto emocional y práctico: pérdida de tiempo, enfado, sensación de retroceso tras trabajo previo en las instrucciones.
- Escenario típico: uso repetido de prompts e instrucciones (system messages, few-shot examples o fine-tuning/parametrización) para tareas específicas (escritura, código, workflows) donde la calidad y la repetibilidad son críticas.
Causas posibles
- Ambigüedad o falta de especificidad en el prompt o en las instrucciones persistentes.
- Dependencia del contexto de la sesión: el modelo olvida o malinterpreta instrucciones previas dentro de la conversación.
- Truncamiento de contexto por límite de tokens: información larga se pierde en respuestas largas.
- Instrucciones contradictorias o ejemplos insuficientes/ruido en few-shot prompts.
- Variabilidad inherente al modelo (temperatura/aleatoriedad), o cambios en parámetros de generación.
- Estado de la sesión o mensajes del sistema no persistentes entre usos (si se esperan “memorias” y no existen).
- Errores en el manejo del formato de entrada (marcadores, delimitadores, JSON mal formado).
- Fallos humanos: asumir que “pulir” funcionó en todos los casos sin cubrir casos límite.
- Posibles problemas técnicos (latencia, versiones del modelo, caché, problemas del proveedor) que producen comportamiento inconsistente.
Soluciones prácticas (rápidas y aplicables)
- Hacer prompts más estructurados y determinísticos:
- Usar instrucciones claras y paso a paso.
- Incluir formato de salida obligatorio (JSON, encabezados, etiquetas) y ejemplos exactos.
- Reducir variabilidad:
- Bajar la temperatura a 0–0.2 para respuestas más deterministas.
- Usar top_p bajo si se soporta.
- Mantener y reaplicar el “contexto” de forma robusta:
- Reenviar instrucciones del sistema y ejemplos clave en cada nueva sesión si no hay memoria persistente.
- Empezar la conversación con un bloque fijo: objetivo, reglas, formato, ejemplos.
- Comprobaciones y validación automática:
- Pedir confirmación del modelo (“¿Voy a devolver X en formato Y? Responde SÍ o NO.”).
- Validar la salida con un parser y reglas; si falla, pedir reintento automático indicando el error exacto.
- Manejo de longitudes de contexto:
- Priorizar y resumir contexto largo automáticamente antes de enviarlo.
- Mantener solo las instrucciones esenciales y ejemplos representativos.
- Aislar y probar casos límite:
- Crear tests de regresión (prompts de control) y ejecutarlos cada vez que ajustes el prompt.
- Registrar entradas/ salidas problemáticas para iterar.
- Evitar contradicciones:
- Revisar prompts y ejemplos para coherencia interna.
- Reforzar mediante few-shot bien elegidos:
- Incluir 3–5 ejemplos variados: casos típicos, excepciones y errores esperados con la respuesta correcta.
- Automatizar recuperación:
- Si la respuesta no cumple criterios, usar un bucle que pida “corrige esto” indicando exactamente qué parte está mal.
- Documentación y plantillas:
- Mantener plantillas de prompts probadas y changelog de cambios.
Soluciones técnicas avanzadas
- Fine-tuning o instructions tuning (si disponible) para comportamientos constantes.
- Usar un orquestador: preprocesador que normalice entradas, envíe prompts y postprocese/resuelva inconsistencias automáticamente.
- Envolver al modelo en un verificador (otro modelo o reglas) que supervise salida y la corrija.
- Persistencia de “memoria” o contexto por app (almacenar instrucciones y reinyectarlas en cada sesión).
- Monitorización y rollback por versiones de prompt; A/B testing de plantillas.
- Si es fallo del proveedor: contactar soporte, probar otra versión del modelo o endpoint.
Ejemplo breve de plantilla robusta (esquema)
- Objetivo: "Transforma esto en X".
- Reglas: lista numerada de restricciones (tono, longitud, no inventar datos).
- Formato de salida: especificar JSON/encabezados/etiquetas.
- Ejemplos: 3 pares entrada–salida.
- Validación: instrucciones para auto-verificación y acciones en caso de fallo.
Recomendaciones de uso inmediato
- Bajar temperatura; forzar formato de salida; añadir validación automática; conservar plantilla fija y reutilizable; crear tests de control; documentar fallos para iterar.
Gracias, Atte. La Gerencia.