sábado, 24 de agosto de 2024

Inteligencia artificial y Scratch

 Preparando una actividad sobre Machine Learning en el aula, sobre cómo se puede trabajar con los estudiantes qué es el aprendizaje automático y como se realiza (y de paso trabajar sesgos) me encontré con un proyecto que me pareció interesante para trabajar contenidos curriculares que tengan que ver con identificar ciertos espacios culturales, turísticos, históricos.

Es algo muy simple que puede llegar a escalar, pero para comprender que es el aprendizaje automático y como se puede relacionar con el lenguaje Scratch (que se usa en la escuela desde 4to grado aproximadamente).

ML4KManos a la obra, vamos a entrenar a una inteligencia artificial. para ello podemos utilizar Machine Learning for kids (a partir de ahora lo llamaré ML4K) o LearningML (LML) ambos sitios tienen un funcionamiento similar, aunque ML4K posee interfases con otros lenguajes (Python, Appinventor) además de Scratch. 


Debo confesar que tengo mi corazoncito en LML, pero en este caso utilicé ambos sitios. 

Primero recorrí los proyectos de ML4K para encontrar alguno que pudiese transversalizar con el diseño curricular, después de pasar por varios me decidí por INFORMACIÓN TURISTICA una app de recomendaciones para turistas.

El sitio nos permite descargar el material para el docente y para los estudiantes. Allí me encontré con algunos problemas, ya que propone crear una cuenta docente y conectar y crear una cuenta de IBM Watson... cosa que no pude hacer ya que parecería que ahora se llama Watsonx y a pesar de tener free  trial pide datos de la tarjeta de crédito, algo que no estoy dispuesta a dejar.
 Por suerte el proyecto puede funcionar sin problemas sin cuenta de profesor y sin Watson, así que.... sigamos adelante!

Primer punto que propone es mostrar en Scratch como trabajaría una app sin inteligencia artificial. Uno le dice lo que quiere hacer y "al azar" le recomienda un shopping, un museo, un lugar de pesca o un parque de diversiones.
Lo utilicé en LML, y adapté un poco lo que propone ML4K. Los bloques en ambos son similares (no iguales). Así, en este código, uno dice "me gusta pescar" y al azar hace la recomendación (por ejemplo, ir a un museo).

Ahora, es momento de entrenar nuestro modelo para utilizar IA en nuestro proyecto. Mínimo habría que encontrar 5 frases que podría preguntar un turista para que le recomendemos uno u otro lugar (hay que pensar 20 frases... son muchas... ¿Qué puedo hacer? 💡💡💡

Por suerte, tengo a mi asistente ChatGPT, al que le puedo pedir algo así como "Necesitaria 20 frases  que un turista podria decir a un guía local para expresar que quiere ir a un museo, otras 20 para ir a un parque de diversiones, otras 20 para ir de pesca, otras 20 para una galeria de arte. las frases serán utilizadas para entrenar a una IA, por lo que deben ser variadas." La verdad es que afiné varias veces el prompt, el resultado puede ser utilizado aunque no es excelente.

Ya tengo las frases, y acá es cuando decido utilizar LML ya que me permite incorporar el set de datos de forma automática importando un archivo .JSON - Este archivo tiene un formato especial, así que se lo muestro a ChatGPT y le pido que sus recomendaciones las arme en ese formato.
Como ven, está la opción de copiar código, así que copié, pegué en un archivo de texto (bloc de notas) y lo nombre con la extensión .JSON.

Luego en LML dije que quería entrenar con textos, y desde la opción Archivo / Subir desde el  ordenador ingresé las frases que había preparado chatGPT.
Próximo paso: decirle que aprenda (entrenar el modelo) y probar con algunas frases. En ese momento, si las respuestas son erróneas, se pueden agregar más frases y volver a entrenar. Si estamos en clase, podemos trabajar el tema de los sesgos y brindarles a los estudiantes la posibilidad de que entrenen para que, por ejemplo, la posibilidad de que los envíe a un shopping sea mayor que a un museo... ¿Esto sucederá en la vida real? 🤔🤔

Y ahora.... ¡Vamos a Scratch! ¿Recuerdan el código anterior? Vamos a modificarlo utilizando bloques de IA.

Podemos seguir probando agregando datos de entrenamiento, podemos colocar como fondo algún lugar turístico, podemos generar más etiquetas... ahora sólo es dar rienda a la imaginación y tener en claro cuales son los objetivos de aprendizaje que queremos que se logren.

Les dejo los archivos de entrenamiento, el proyecto Scratch sin entrenamiento y el entrenado. Recuerden que deben abrirlo dentro del entorno de LML, si lo querés hacer desde ML4K el lote de entrenamiento no se puede importar (o no encontré como hacerlo) así que hay que copiar y pegar cada frase. La lógica del programa es similar.

¿Qué les pareció este ejemplo? ¿Es factible de llevar al aula?

¡Gracias a Aldo Ferrari que se tomó su tiempo para hacer pruebas conmigo!







No hay comentarios:

Publicar un comentario

Los comentarios serán moderados antes de mostrarse. De ser posible, omitir mensajes anónimos.