Limitaciones de un único modelo de IA
Frank Fischer
7 de agosto de 2023
0 minutos de lecturaHoy, las conversaciones sobre IA suelen estar influidas por emociones como el miedo y el asombro, además de por la idea de que la IA se reduce a los modelos de lenguaje grandes (LLM); pero esa no es toda la historia. Así que dejemos de lado esos temores y analicemos los datos que explican por qué la IA es mucho más que los LLM.
¿Qué es la IA?
Es conveniente tener algunos conocimientos básicos sobre la IA. En la década de 1950, investigadores y profesionales debatían cómo podría ser la inteligencia artificial y cómo la identificaríamos. Si le preguntas a ChatGPT, responde: “La inteligencia artificial puede identificarse como un sistema o una máquina que demuestra capacidades para aprender, comprender, razonar, percibir y responder a su entorno de maneras que tradicionalmente se asocian con la inteligencia humana; se caracteriza por su capacidad para adaptarse a situaciones nuevas, resolver problemas, tomar decisiones y comprender ideas o patrones complejos”. Es un buen resumen.
Si preguntas qué es la IA hoy, la mayoría de las veces la respuesta describe un LLM, un tipo de red neuronal de aprendizaje profundo. Sin embargo, la IA abarca muchas otras tecnologías diversas y completas. A menudo, la IA especializada (a veces llamada “IA limitada”) o una combinación de métodos es la mejor opción.
Para simplificar, los métodos de IA se dividen, a grandes rasgos, en dos categorías principales: un enfoque lógico y uno estadístico. “Los agentes inteligentes deben poder manejar la complejidad y la incertidumbre del mundo real. La IA lógica se ha centrado principalmente en la primera, y la IA estadística, en la segunda”. Por ejemplo, en ciberseguridad es muy común usar ML (IA estadística) para detectar intrusiones o IA lógica en SAST. Para obtener un análisis más detallado de los distintos enfoques de la IA, consulta la publicación de Russell y Norvig.2
La IA generativa, que puede producir contenido como texto, imágenes, películas o código fuente, y los LLM, que pueden usar el lenguaje cotidiano como interfaz (por ejemplo, en un chat), son relativamente nuevos en este campo. La IA generativa funciona mediante un proceso llamado redes generativas antagónicas (GAN). La idea es entrenar un modelo de ML (“Discriminador”) para clasificar un contenido como válido o incorrecto (por ejemplo, retratos de personas). Otro modelo de ML (“Generador”) intenta crear un contenido (como una imagen) que el discriminador acepte. Al entrenar ambos en conjunto —mediante aprendizaje no supervisado—, el sistema puede generar contenido que apenas se distingue, o ya no se distingue, de una creación humana. Un LLM amplía esta idea mediante el uso de un Transformer. Luego, el texto se convierte en un formato de datos que el ML puede procesar (“Transformer”). Se usan grandes cantidades de texto para entrenar el modelo. El modelo se usa para generar respuestas textuales a consultas textuales, a menudo llamadas “prompts”. Las respuestas a una misma pregunta pueden variar mediante un factor que determina cuánta aleatoriedad usa el sistema; GPT lo llama “temperatura”. Los LLM actuales suelen tener una fecha de corte que indica cuándo se recopilaron los datos usados para entrenarlos. Sin embargo, los desarrolladores de IA planean superar esta limitación conectando los LLM a internet, para que tengan acceso a información actualizada. Por último, los LLM pueden especializarse y entrenarse en varios temas, incluida la generación de código fuente (consulta el informe de Google sobre PaLM 2).
Los LLM usan una técnica llamada aprendizaje profundo que simula las neuronas del cerebro humano. Sin embargo, existen muchas otras maneras de hacer que las máquinas aprendan estadísticamente, como las máquinas de vectores de soporte, los algoritmos evolutivos, las cadenas de Markov y más. Como se mencionó antes, también existe la otra escuela, la IA lógica, que se usa para crear sistemas expertos con tecnologías como Prolog.
IA en el SDLC
Casos concretos de uso de la IA en el desarrollo y la entrega de software.
Uso | Ubicación | Ventajas | Desventajas3 |
|---|---|---|---|
Generación de código | SAST, IDE | Productividad, menor carga cognitiva | Calidad del código, licencias, seguridad |
Refactorización y actualización del código | IDE | Productividad, menor carga cognitiva | Calidad del código, licencias, seguridad, filtración de información |
Depuración | IDE | Menor carga cognitiva | Filtración de información |
Documentación | IDE, CI | Tarea desatendida | Filtración de información |
Comprensión del código | IDE | Menor carga cognitiva | |
Encontrar problemas y generar correcciones | SAST, SCA, IaC, contenedores, IDE | Análisis semántico más profundo | Falsos positivos y tiempo de ejecución |
Pruebas (generación de pruebas, fuzzing, datos de prueba) | IDE, DAST, fuzzing | Encontrar problemas que no se habían previsto | Ejecución, es necesario responder a los resultados, casos de prueba poco realistas |
Monitoreo (procesamiento de datos, combinación de flujos de datos, detección de anomalías) | CD, Ops, SIEM | Más datos, encontrar patrones desconocidos |
Clasificación de las categorías de IA
Las tecnologías de IA se pueden aplicar en cada etapa del desarrollo de software. El eje Y muestra el aumento de la complejidad y la capacidad de la herramienta de IA. El eje X documenta las características (por ejemplo, elementos con los que los desarrolladores interactúan directamente) y las capacidades (por ejemplo, las habilidades del backend) de las herramientas correspondientes.

Nota: Todos los recuadros morados muestran tecnologías para las que Snyk ofrece sus propias soluciones. A continuación, usaremos Snyk como ejemplo.
IA limitada
La IA limitada, también llamada IA débil, se refiere a sistemas de IA diseñados específicamente para realizar ciertas tareas, como ofrecer recomendaciones de productos en una plataforma de comercio electrónico o predecir el comportamiento de los usuarios en una aplicación. Aunque demuestran inteligencia en estas tareas específicas, estos sistemas operan dentro de parámetros restringidos y no tienen la capacidad de comprender, aprender ni aplicar conocimientos más allá de sus funciones preprogramadas, lo que los hace ideales para soluciones específicas en el desarrollo de software. Por ejemplo, Snyk usa IA limitada en Snyk Code para encontrar fuentes, destinos y sanitizadores.
IA lógica
La IA simbólica, también conocida como IA basada en reglas o IA clásica, es un enfoque que usa lógica y símbolos específicos para representar problemas y manipularlos hasta producir una solución; por ejemplo, en sistemas expertos donde la lógica del diagnóstico está codificada de forma explícita. Para los desarrolladores de software, esto podría significar diseñar un programa de diagnóstico que use reglas predefinidas para identificar y resolver errores de software, o crear un juego de ajedrez en el que la IA use un conjunto específico de reglas para decidir la mejor jugada. Por ejemplo, Snyk Code usa un solucionador lógico y reglas compiladas en una base de conocimientos.
IA generativa
La IA generativa es una rama de la inteligencia artificial que aprovecha técnicas de aprendizaje automático para producir contenido nuevo —como imágenes, texto o música— similar a los datos de entrenamiento. Para los desarrolladores de software, esto podría significar crear un programa que genere automáticamente texto similar al escrito por una persona para chatbots o respuestas automatizadas, o desarrollar un modelo de IA que diseñe interfaces de usuario nuevas y atractivas a partir de diseños existentes de alta calidad.
LLM
LLM, sigla de modelo de lenguaje grande, es un tipo de modelo de inteligencia artificial entrenado con una enorme cantidad de datos de texto, lo que le permite generar texto similar al escrito por una persona a partir de prompts. Para los desarrolladores de software, esto podría significar aprovechar un LLM para crear aplicaciones como un chatbot automatizado de atención al cliente o una herramienta de revisión de código que genere comentarios en lenguaje natural para explicar posibles problemas en el código.
Combinación de IA o IA híbrida
La IA híbrida es un enfoque que combina distintos tipos de metodologías de inteligencia artificial —como la IA simbólica y el aprendizaje automático— con elementos de la inteligencia humana para aprovechar las fortalezas y compensar las debilidades de cada uno. En el desarrollo de software, esto podría significar crear un sistema que use IA basada en reglas para la toma de decisiones inicial, aprendizaje automático para reconocer patrones y hacer predicciones, e inteligencia humana para las tareas que requieren creatividad, empatía o criterio complejo, como la aprobación final de contenido generado o la resolución de problemas complejos. Por ejemplo, el equipo de seguridad de Snyk usa el motor de Snyk Code y tecnologías de ML para crear la base de conocimientos de Snyk Code. Otro ejemplo es Code Fix, que usa IA generativa para crear sugerencias de corrección e IA lógica para encontrar esas sugerencias y, posteriormente, comprobar su viabilidad.
Una revisión de los modelos de IA
En resumen, la IA es mucho más que los LLM y ya se usa en distintas soluciones. Los LLM ofrecen una nueva interfaz increíble y posibilidades ilimitadas, pero no son la única herramienta que tenemos a nuestra disposición. Incorporar otros elementos de la IA amplía la cobertura, la inteligencia y las oportunidades de la IA en la seguridad de las aplicaciones.
Para obtener más información sobre cómo integrar la IA con éxito en tu organización, consulta nuestra guía práctica con las mejores prácticas para usar IA en el SDLC.
Referencias
1 Se sostiene que los mitos de la antigua Grecia ya mencionaban máquinas inteligentes y que la idea de la inteligencia artificial tiene, en realidad, miles de años (consulta https://en.wikipedia.org/wiki/History_of_artificial_intelligence).
2 https://homes.cs.washington.edu/~pedrod/papers/aaai06c.pdf
3 Una desventaja general es que todos los casos de uso requieren supervisión humana.
