Dependencia excesiva
Descripción
Los usuarios o sistemas confían en las salidas del LLM sin verificación, aceptando alucinaciones o errores como hechos. La dependencia excesiva conduce a decisiones erróneas y a la propagación de información falsa.
Riesgo
Los LLM pueden producir salidas convincentes pero incorrectas, incluyendo hechos alucinados, razonamiento defectuoso o información desactualizada. La confianza ciega en las respuestas del LLM sin verificación puede provocar una toma de decisiones deficiente, la propagación de información falsa o errores críticos en dominios sensibles como la salud, el ámbito legal o los servicios financieros. La dependencia excesiva es especialmente peligrosa cuando las salidas del LLM impulsan procesos automatizados.
Escenarios de ataque
Un sistema de diagnóstico médico depende únicamente del análisis del LLM sin revisión de un médico, lo que da lugar a recomendaciones de tratamiento incorrectas basadas en síntomas o interacciones farmacológicas alucinados.
Una herramienta de investigación jurídica presenta citas de casos generadas por el LLM que no existen, las cuales los abogados incluyen en escritos judiciales sin verificación, lo que resulta en sanciones por citar casos falsos.
Mitigaciones
Verificación de salidas
Implementar pasos de verificación para las salidas críticas del LLM. Contrastar los hechos con fuentes autorizadas y marcar las respuestas inciertas.
Puntuación de confianza
Mostrar los niveles de confianza junto con las salidas del LLM. Utilizar técnicas como la verificación de autoconsistencia o el muestreo múltiple para evaluar la confiabilidad.
Revisión humana
Exigir la revisión de expertos humanos para las decisiones de alto riesgo. Diseñar flujos de trabajo que posicionen al LLM como asistente, no como quien toma las decisiones.
Educación del usuario
Comunicar claramente las limitaciones del LLM a los usuarios. Mostrar advertencias sobre posibles errores y la necesidad de verificación en contextos críticos.
Ejemplos de código
# Correcto: Verificación y puntuación de confianza
from typing import Tuple, List
import requests
class RespuestaLLMVerificada:
def __init__(self, cliente_llm, api_verificador_hechos):
self.llm = cliente_llm
self.verificador_hechos = api_verificador_hechos
def obtener_respuesta_verificada(self, prompt: str) -> Tuple[str, float, List[str]]:
# Generar múltiples respuestas
respuestas = [self.llm.complete(prompt) for _ in range(3)]
# Verificación de autoconsistencia
confianza = self._calcular_consistencia(respuestas)
respuesta_principal = respuestas[0]
# Verificar hechos de las afirmaciones críticas
citas = self._verificar_hechos(respuesta_principal)
# Agregar aviso para confianza baja
if confianza < 0.7:
respuesta_principal = (
"[Confianza baja - verificar antes de usar]\n\n" +
respuesta_principal
)
return respuesta_principal, confianza, citas
def _calcular_consistencia(self, respuestas: List[str]) -> float:
# Comparar similitud semántica
pass
Requisitos de evidencia
- Avisos en la interfaz de usuario sobre las limitaciones del LLM
- Flujos de trabajo de verificación de hechos
- Implementación de puntuación de confianza y umbrales
- Requisitos de revisión humana para decisiones críticas
- Materiales de capacitación para usuarios sobre las capacidades y límites del LLM