MatIA es un tutor de matemáticas impulsado por el modelo Llama 3.2 3B, finetuneado con datasets especializados en matemáticas para proporcionar una experiencia de aprendizaje interactiva y personalizada. Diseñado para funcionar en dispositivos móviles y en entornos sin conexión a internet, MatIA adapta el nivel de dificultad y los conceptos según el nivel educativo y la experiencia del estudiante, acercando así la educación matemática a más personas.
Para el entrenamiento, utilizamos los siguientes datasets:
Ambos datasets fueron traducidos al español utilizando los scripts en preprocess/multicore_translate_data.py
, los cuales permiten procesamiento en modo multicore o en modo simple. Los datasets traducidos se encuentran disponibles en Hugging Face:
Agradecemos a los creadores originales de estos datasets en inglés.
El entrenamiento se realizó en Hugging Face Space utilizando el script train/run_train.ipynb
. Durante el proceso:
- Se empleó
chat_template.py
entrain/script
para procesar los datos y formatearlos de acuerdo con el estándar de LLaMa 3, empleando sus tokens especiales. Más detalles sobre el formato en la documentación de LLaMa 3. - Se utilizó
SFTTrainer
para optimizar el modelo, ajustando los parámetros específicos para el contexto matemático. Ver más en la documentación de SFTTrainer.
El entrenamiento se realizó en una instancia con GPU A10G y tuvo una duración de 10 horas.
Para maximizar la eficiencia, el modelo fue cuantizado usando gguf
en colaboración con ggml-org. Las versiones cuantizadas disponibles son:
Para correr MatIA de manera local:
-
Instalación:
- Instala Ollama.
- Instala los recursos de Flutter para VS Code.
-
Correr el servidor:
- Ejecuta uno de los siguientes comandos para inicializar el modelo en Ollama:
ollama run hf.co/jrobador/MatIA-Q8_0-GGUF # Para el modelo Q8 ollama run hf.co/jrobador/MatIA-Q4_K_M-GGUF # Para el modelo Q4_K_M
- Ejecuta uno de los siguientes comandos para inicializar el modelo en Ollama:
-
Configurar Flutter:
git clone https://github.com/jrobador/finetuned-llama3.2-3B_mat-IA.git cd finetuned-llama3.2-3B_mat-IA/flutter_app/app flutter clean flutter pub get flutter pub upgrade flutter run -d chrome
La aplicación interactúa con el servidor de Ollama en localhost:11434
, gestionando las peticiones de manera local.
También hemos desplegado una versión de MatIA en Vercel: https://flutter-app-mat-ia.vercel.app/. Esta versión depende de un servidor temporal conectado a una instancia de Google Cloud con GPU Tesla T4 mediante Ngrok.
Nota: Por limitaciones de conexión, el servidor Ollama no está conectado a la página web.
Para una explicación completa del proyecto y una demostración en video, visita el siguiente enlace: