Modelos de código abierto y datos de entrenamiento | Open Source para Inteligencia Artificial
|Una parte muy importante del ecosistema de IA son los modelos de código abierto. Lo que conocemos y amamos del código fuente y las bibliotecas es algo menos común en el mundo del aprendizaje automático, pero ha estado ganando mucha más atención últimamente.
Por qué el código abierto es un impulsor importante para la IA general
Una visión simplificada de los modelos de IA los divide en dos partes principales. Primero, hay una colección de funciones matemáticas, a menudo llamadas «capas», que están diseñadas para resolver problemas específicos. Estas capas procesan datos y hacen predicciones basadas en la entrada que reciben.
La segunda parte implica ajustar estas funciones para que funcionen bien con los datos de entrenamiento. Este ajuste se realiza a través de un proceso llamado «retropropagación», que ayuda al modelo a encontrar los mejores valores para sus funciones.
Estos valores, conocidos como «pesos», son los que permiten que el modelo haga predicciones precisas. Una vez que se entrena un modelo, consta de dos partes principales: las funciones matemáticas (la red neuronal en sí) y los pesos, que son los valores aprendidos que permiten que el modelo haga predicciones precisas. Tanto las funciones como los pesos se pueden compartir o publicar, de manera muy similar al código fuente en un proyecto de software tradicional. Sin embargo, compartir los datos de entrenamiento es menos común, ya que a menudo son de propiedad exclusiva o confidenciales. Como puede imaginar, la apertura de la fuente de las cantidades de datos necesarias para entrenar los modelos más capaces es algo que no todos los proveedores querrían hacer. No solo porque podría costar la ventaja competitiva, sino que también hay especulaciones sobre la atribución adecuada y los derechos de uso de algunos de los modelos más grandes que existen. Para aprender muchas veces, solo utilizamos modelos de código abierto. No solo por las restricciones de uso o limitaciones legales, en su mayoría ocultas, sino también porque nosotros, los autores y experimentadores, creemos que el código abierto es una parte esencial del desarrollo de software y la comunidad de código abierto es un gran lugar para aprender.
Datos de entrenamiento de código abierto
Como puede haber adivinado, los datos de entrenamiento son el factor fundamental que hace que un modelo sea capaz de generar características específicas. Si entrena un modelo con documentación legal, no podrá generar un modelo lo suficientemente bueno para las predicciones deportivas.
El dominio y el contexto de los datos de entrenamiento son cruciales para el éxito de un modelo.
Hablaremos sobre la elección del modelo adecuado para determinados requisitos y el proceso de selección en el capítulo dos, pero tenga en cuenta que, en general, es importante comprender el impacto de la calidad de los datos para entrenar los modelos. Los datos de baja calidad pueden generar una variedad de problemas, como una precisión reducida, mayores tasas de error, sobreajuste, subajuste y resultados sesgados. El sobreajuste ocurre cuando un modelo aprende los detalles específicos de los datos de entrenamiento tan bien que no puede generalizarlos a datos nuevos e invisibles. Esto significa que el modelo tendrá un rendimiento muy deficiente en datos de prueba o validación, que se extraen de la misma población que los datos de entrenamiento pero que no se usaron durante el entrenamiento.
En contraste con eso, un modelo subadaptado es como intentar encajar una clavija cuadrada en un agujero redondo: simplemente no coincide con la naturaleza real de los datos. Como resultado, el modelo no puede predecir ni clasificar con precisión los datos nuevos e invisibles. En este contexto, los datos que hacen referencia a información desordenada o que contiene errores se denominan «ruidosos». Esto dificulta que los modelos de IA aprendan con precisión.
Por ejemplo, si estás entrenando un modelo para que reconozca imágenes de gatos, los datos “ruidosos” pueden incluir imágenes borrosas, mal etiquetadas o fotos que ni siquiera son de gatos. Este tipo de datos incorrectos o irrelevantes pueden confundir al modelo, lo que hace que cometa errores o brinde resultados inexactos. Además, los datos que son inconsistentes, como los valores faltantes o el uso de diferentes formatos para el mismo tipo de información, también pueden causar problemas. Si el modelo no tiene datos limpios y confiables de los que aprender, su rendimiento se verá afectado, lo que dará como resultado predicciones deficientes o sesgadas. Por ejemplo, si un modelo de IA se entrena con datos que incluyen información sesgada o estereotipada, puede terminar tomando decisiones injustas basadas en esos sesgos, lo que podría afectar negativamente a las personas o los grupos.
Puedes mitigar estos riesgos priorizando la calidad de los datos desde el principio. Esto implica recopilar datos de alta calidad de las fuentes adecuadas, limpiar y preprocesar los datos para eliminar el ruido, los valores atípicos y las inconsistencias, validar los datos para garantizar que cumplan con los estándares requeridos y actualizar y refinar regularmente el modelo utilizando datos nuevos de alta calidad. Y es posible que ya haya adivinado que esto es algo que los desarrolladores solo deberían hacer en raras ocasiones, pero que es absolutamente necesario tener en cuenta. Especialmente si observan que sus modelos no funcionan como se esperaba. Un ejemplo muy simple de por qué esto es relevante para usted puede ser el procesamiento de JSON para lo que se denomina «llamada de función» o «integración de agente». Si bien hablaremos de esto en el Capítulo 10 con más detalle, debe saber que un modelo que no haya sido entrenado con datos JSON no podrá generarlos. Este es un problema muy grave y que sugiero analizar desde el principio.