The same post in English
¿Cómo funciona ChatGPT? Supongamos que pasamos por alto por
el momento que ChatGPT utiliza una red
neuronal artificial, y vamos a representar su algorimo de la manera
tradicional. Dicho algoritmo se puede dividir en dos partes:
- Entrenamiento: se le proporcionan
datos (archivos de texto), que se utilizan para construir dos conjuntos de
datos:
- Una lista de todas las palabras que aparecen en el conjunto de todos
los textos, sin repetición, pero sin importar su orden ni el número de
veces que aparece cada una.
- Una matriz de índices a la lista de palabras, que informa sobre el
número de veces que aparece una palabra determinada a continuación de una
serie de palabras. Por ejemplo, si en los textos aparece la siguiente serie:
viajes en el tiempo, en la
matriz aparecerán los índices de las palabras viajes, en, el, y
tiempo, seguidos por el índice de la palabra siguiente,
seguidos por el número de veces que aparece esa sucesión de cinco
palabras en todos los textos utilizados para el entrenamiento.
La formación de estos dos conjuntos de datos (o sea, el entrenamiento)
es la parte más costosa y lenta del proceso.
- Consulta: Se acepta una
pregunta y se construye la respuesta añadiendo palabras de la siguiente
manera:
- Se toman todas o una parte de las palabras de la pregunta y se busca
cuál es la palabra siguiente en el conjunto de todos los datos guardados
en la matriz de índices. En general se obtendrá, no una sola posibilidad,
sino varias, junto con el número de veces que aparecen. Por ejemplo, así:
Palabra1 6 veces
Palabra2 4 veces
Palabra3 2 veces
Palabra4 1 vez
Palabra5 1 vez
- Se suman las veces que aparecen todas esas palabras. En el ejemplo,
14.
- Se obtiene un número aleatorio entre 1 y 14. Supongamos que es 7.
- Como 7 es mayor que 6 (el número de veces que aparece la primera
palabra), pero menor o igual que 10 (el número de veces que aparecen las
dos primeras palabras) se selecciona la Palabra2. Esta será la primera
palabra de la respuesta.
- Se añade Palabra2 al final de la serie de palabras de la pregunta y
se repite el proceso. En cada paso se va añadiendo una palabra nueva. La
serie de todas las palabras añadidas, cuando el proceso se detiene, constituye la
respuesta.
Sencillo, ¿no? Por eso se me
ocurrió construir un modelo de juguete de ChatGPT, utilizando un algoritmo
tradicional en lugar de una red neuronal artificial, para ver si se obtenían
resultados comparables, a pesar de la pequeñez del modelo. Para entrenarlo utilicé
el texto de una de mis novelas, Un rostro en el
tiempo, que tiene unas 33.000 palabras. El número de palabras
diferentes es 6211. Por supuesto, esto no es comparable en absoluto con los
textos utilizados para entrenar a ChatGPT, que son miles de millones de
archivos obtenidos de Internet.
A continuación, programé el
algoritmo de consulta, como he explicado más arriba. El programa, escrito en el
lenguaje APL, constaba de 18 instrucciones. ¡Sí, sólo 18 instrucciones! Porque
es un algoritmo bastante sencillo y APL es un lenguaje muy potente, en el que
la búsqueda de todas las apariciones de una serie de cuatro índices B en una MATRIZ
de 33.000 filas se escribe así:
MATRIZ[;1 2
3 4]˄.=B
Como primera consulta, le propuse
esta:
viajes en el tiempo
Y sorprendentemente obtuve esta
respuesta:
son imposibles!
Repetí la consulta y obtuve esta
respuesta:
son imposibles como ha dicho Lavalle
Repetí la consulta y obtuve esta
respuesta:
son uno de sus temas favoritos
No esta mal, ¿no? ¿Impresionante?
Ahora supongo que a alguien se le ocurrirá decir que mi programa muestra signos
de ser consciente, como están diciendo de ChatGPT.
¿En qué se diferencian mi
programa y ChatGPT, aparte del enorme volumen de datos con el que ChatGPT ha
sido entrenado? En casi nada, porque una red neuronal artificial no es más que
un modo de implementar un algoritmo de una manera que no asegura que el
algoritmo se ejecute siempre correctamente, pero a cambio obtiene resultados
bastante aceptables en un tiempo muy pequeño. Pero ChatGPT tiene la misma
consciencia que mi pequeño modelo, o sea, ninguna.
Hilo Temático sobre Inteligencia Natural y Artificial: Anterior Siguiente
Manuel Alfonseca
Esta nueva entrada de Manuel Alfonseca es, simplemente, genial. En solo 703 palabras explica de forma colosalmente didáctica "las tripas" de este tipo concreto de IA generativa que es el ChatGPT.
ResponderEliminarEl ejemplo que semanalmente nos brinda Alfonseca bien podría servir de guía a los “expertos” que actúan de muy otra forma. Me refiero a los que exponen sus conocimientos para demostrar lo que solo ellos saben en lugar de procurar que el lector se entere de lo que exponen. Son expertos que, metidos a divulgadores, no hacen sino decirnos que su saber está solo a la altura de ellos, no del común de los lectores. Son la antítesis de Manuel.
Un segundo mérito de esta entrada de Manuel Alfonseca es, en mi opinión, el siguiente. A su modo, Alfonseca viene a decirnos que la “nueva informática” (léase la IA) se “adorna” con categorías provenientes de otras ciencias (neuronas, aprendizaje) con el fin de ganar prestigio. Una reflexión propia del filósofo francés Éric Sadin, inexplicablemente desconocido en España: La inteligencia artificial o el desafío del siglo. Anatomía de un antihumanismo radical (Buenos Aires: La Caja Negra Editora, 2020).
Por todo ello (y por el uso de APL :-), opino que esta entrada de Manuel Alfonseca es merecedora de los mejores elogios.
Exacto, hablar de conciencia en este tipo de algoritmos es algo tan absurdo que casi produciría risa, si no fuera por las implicaciones filosóficas y morales que tiene (afecta a cómo nos percibimos a nosotros mismos).
ResponderEliminarNo deja de ser un modelo que intenta predecir la siguiente palabra en una secuencia de palabras, aunque al tener tantos datos de entrenamiento y una manera más sofisticada de representar la información, puede llegar mucho más lejos y parecer más inteligente.
Totalmente de acuerdo con los dos comentarios: usaré esta entrada en mis clases de modelización y simulación para presentar ChatGPT. Gracias, Manuel.
ResponderEliminarMuy interesante Manuel, has logrado desmitificar al 'monstruo' que nos amenaza. Al final, en la caja negra, sólo hay un algoritmo implementado en código de algún lenguaje de programación.
ResponderEliminarSi esto es así, de lo que estoy seguro, viniendo del profesor, se me ocurren varias preguntas:
ResponderEliminarPor un lado si es un algoritmo tan simple y tan sencillo de implementar; ¿por qué no se llegó a el antes? Siendo como son las aplicaciones de ChatGPT tan enormes y la cantidad de dinero que se está invirtiendo en estas tecnologías igualmente tan gigantesca (Microsoft lleva invertido en OpenIA decenas de miles de millones de dólares).
Por otro lado ¿las IAs generativas de imágenes como Dall-e o Stable Difussion también se basan en algoritmos tan sencillos? ¿Y las que describen las imágenes en texto como Flamingo no son mas que la inversión de dicho algoritmo?
Yo tenía entendido que este salto que ha dado la IA en estos últimos años era debido al desarrollo por parte de Google de una tecnología llamada “Transformers” que esta empresa hizo de dominio público y luego aprovechó OpenIA.
Un saludo.
"Transformers" es una arquitectura de redes neuronales artificiales que Google usa en muchas de sus aplicaciones: Google Translate e incluso en los buscadores.
Eliminar¿Por qué es útil esta arquitectura? Porque las redes neuronales artificiales pueden entrenarse (ajustando los parámetros de sus "neuronas") hasta conseguir que realicen una función, que usualmente puede representarse también con un algoritmo clásico.
El problema del algoritmo clásico es que, cuando tiene que trabajar con un número enorme de datos, suele ser muy lento. Si a mi modelo lo entrenara con miles de millones de archivos, las dos componentes serían tan enormes, que para contestar a cualquier pregunta necesitaría minutos, o quizá horas. Sería totalmente inaceptable.
Con una red neuronal, como digo en el artículo, se consigue aproximarse al algoritmo para el que ha sido entrenada y realizarlo en un tiempo muy corto, pero a cambio no estamos seguros de que el resultado sea siempre el óptimo. Lo que pasa es que, en muchas ocasiones, no necesitamos el resultado óptimo, nos basta con una aproximación. Por eso las redes neuronales artificiales resultan útiles.
No he mirado la aplicación Flamingo, así que no puedo contestar a la pregunta de si aproxima un algoritmo inverso al que yo he detallado.
Gracias por esta entrada. La mayoría de lo que se escribe a nivel divulgativo no logra desmitificar la IA, pero es importantísimo hacerlo, para entenderla mejor, y de paso entendernos mejor a nosotros y al mundo. Y para desmitificar hay que dar explicaciones comprensibles, no basta con el consabido "miles de millones de parámetros".
ResponderEliminarNo puedo estar más de acuerdo con Gonzalo Génova. A mi juicio, la literatura de divulgación sobre IA presenta importantes aspectos a mejorar.
EliminarPrima la necesidad de los autores por demostrar lo que saben sobre su vocación por enseñar al que no sabe. Y esto hace que el lector no se sienta atraído por textos que, pudiendo ser técnicamente rigurosos, le resultan fuera de su alcance. Me atrevo a decir que los ciudadanos ansiosos por saber de qué va esto de la IA, pero que no saben ni cómo ni dónde ni a quién preguntar, constituyen un público objetivo que se encuentra huérfano, desatendido.
Falta, por otra parte, un discurso holístico, abarcador, que permita al lector comprender con facilidad qué tienen que ver unas piezas del puzle de la IA con otras. Así, se habla de robots, redes neuronales artificiales, computación cuántica o programación simbólica en una especie de revoltijo o totum revolutum que acaba por desanimar. Sí, hay mucha demanda de literatura de divulgación no satisfecha por una oferta, en verdad escasa, en cantidad y calidad. Por eso me ha parecido muy oportuno el comentario de Gonzalo Génova y, en este mismo sentido, excepcionalmente lúcida esta entrada de Manuel Alfonseca.