
Objetivo de esta entrada
Publico todo el código fuente de MariaGO que implementa lo que se explicó paso a paso en las entradas 1 a 7. Hay muchos archivos, así que están plegados por carpeta, y el código solo se carga cuando abres un archivo.
Modelos utilizados
- Modelo en producción: Qwen3-VL-8B-Instruct + adaptador LoRA lora_mix_qwen_r5 (rank 16, alpha 32)
- Entrada: modo text-only, que en lugar de una imagen del tablero recibe un tablero de texto alineado a dos cifras (aligned)
- Entorno de entrenamiento e inferencia: entrenamiento y servicio de LoRA con MLX (mlx-vlm) en un Mac Studio (Apple Silicon)
- Datos de entrenamiento: partidas SGF de KGS de 4 dan o más de u-go.net, centradas en las jugadas del ganador con más peso en las posiciones de atari y captura, mezcladas con datos dedicados a la lectura de coordenadas
- Orden de entrenamiento: partiendo del adaptador dedicado a las coordenadas, cinco rondas de r1 a r5 cambiando la proporción de datos de coordenadas y de jugadas. Solo los adaptadores que superaron un 90% o más en la prueba de coordenadas en cada ronda pasaron a la siguiente
El primer modelo que probamos
Al principio añadimos LoRA (rank 8 y después 16) a Gemma 4 E4B-it 4bit (mlx-community). Observamos que el modelo leía las coordenadas concentradas hacia un lado, así que unificamos el formato del tablero en el entrenamiento y en el servicio como aligned y cambiamos el modelo base a Qwen3-VL-8B.
Piezas de apoyo
- KataGo (b18c384nbt): análisis de la posición y un experimento de juicio en conjunto (ensemble) que elige uno de los candidatos propuestos por varios adaptadores
- Política MLP de dos capas en NumPy: un experimento de autojuego REINFORCE con máscara de jugadas legales (rl_env)
- IA heurística en C++: red de seguridad para responder al atari y jugada de reserva cuando el modelo no responde
Estructura de carpetas
- src, tests: cliente de go en Qt6/C++, motor de reglas (goboard), recuento (gamejudge), IA heurística
- vlm_server: análisis de SGF, generación de datos de entrenamiento, entrenamiento de LoRA, prueba de coordenadas, servidor de recomendación de jugadas
- rl_env: experimentos de aprendizaje por refuerzo con NumPy
- mariago-web: pantalla de partida web en Next.js y API de guardado de partidas
La configuración de despliegue del servidor, los scripts de acceso remoto y monitorización, los scripts de automatización del entrenamiento y de experimentos, y los datos de entrenamiento y los pesos de los modelos (cientos de GB) quedan fuera de lo publicado. También se han omitido el código y los archivos de configuración de operación web como anuncios, inicio de sesión y clasificaciones, las herramientas de depuración y el antiguo script de descarga del modelo Gemma, por lo que algunos import apuntan a archivos no publicados. Las rutas del código como /Volumes/MY_WORK/... corresponden al Mac del autor, así que al ejecutarlo debes cambiarlas por tus propias rutas.
Código fuente completo
76 archivos · 18.629 líneas — abre una carpeta y haz clic en un archivo para cargar su código.
Raíz del proyecto
CMakeLists.txt
Cargando el código…
README.md
Cargando el código…
mariago-web/
mariago-web/app/api/analyze/route.ts
Cargando el código…
mariago-web/app/api/game/[code]/route.ts
Cargando el código…
mariago-web/app/api/game/list/route.ts
Cargando el código…
mariago-web/app/api/game/route.ts
Cargando el código…
mariago-web/app/api/player/route.ts
Cargando el código…
mariago-web/app/globals.css
Cargando el código…
mariago-web/app/kibo/kibo.module.css
Cargando el código…
mariago-web/app/kibo/page.tsx
Cargando el código…
mariago-web/app/layout.tsx
Cargando el código…
mariago-web/app/page.tsx
Cargando el código…
mariago-web/app/play/page.tsx
Cargando el código…
mariago-web/app/play/play.module.css
Cargando el código…
mariago-web/components/GoBoard.module.css
Cargando el código…
mariago-web/components/GoBoard.tsx
Cargando el código…
mariago-web/components/ModelSelector.module.css
Cargando el código…
mariago-web/components/ModelSelector.tsx
Cargando el código…
mariago-web/lib/board.ts
Cargando el código…
mariago-web/lib/db.ts
Cargando el código…
mariago-web/lib/gameTypes.ts
Cargando el código…
mariago-web/lib/guest.ts
Cargando el código…
mariago-web/lib/katagoTypes.ts
Cargando el código…
mariago-web/lib/vlmClient.ts
Cargando el código…
mariago-web/lib/vlmModels.ts
Cargando el código…
mariago-web/package.json
Cargando el código…
mariago-web/README.md
Cargando el código…
rl_env/
rl_env/__init__.py
Cargando el código…
rl_env/board.py
Cargando el código…
rl_env/env.py
Cargando el código…
rl_env/eval_policy.py
Cargando el código…
rl_env/policy_numpy.py
Cargando el código…
rl_env/requirements-train.txt
Cargando el código…
rl_env/test_legal.py
Cargando el código…
rl_env/test_phase2.py
Cargando el código…
rl_env/test_phase3.py
Cargando el código…
rl_env/train_reinforce.py
Cargando el código…
rl_env/train_selfplay.py
Cargando el código…
src/
src/aiplayer.cpp
Cargando el código…
src/aiplayer.h
Cargando el código…
src/boardwidget.cpp
Cargando el código…
src/boardwidget.h
Cargando el código…
src/gamejudge.cpp
Cargando el código…
src/gamejudge.h
Cargando el código…
src/goboard.cpp
Cargando el código…
src/goboard.h
Cargando el código…
src/main.cpp
Cargando el código…
src/mainwindow.cpp
Cargando el código…
src/mainwindow.h
Cargando el código…
src/tcpvlmclient.cpp
Cargando el código…
src/tcpvlmclient.h
Cargando el código…
tests/
tests/atari_smoketest.cpp
Cargando el código…
tests/test_cross_lessons.py
Cargando el código…
tests/test_monitor_heuristic.py
Cargando el código…
tests/test_pass_guard.py
Cargando el código…
vlm_server/
vlm_server/__init__.py
Cargando el código…
vlm_server/__main__.py
Cargando el código…
vlm_server/cross_lessons.py
Cargando el código…
vlm_server/dataset_baduk.py
Cargando el código…
vlm_server/dataset_coords.py
Cargando el código…
vlm_server/dataset_hogu.py
Cargando el código…
vlm_server/dataset_ladder.py
Cargando el código…
vlm_server/dataset_opening.py
Cargando el código…
vlm_server/eval_vlm_vs_vlm.py
Cargando el código…
vlm_server/ladder.py
Cargando el código…
vlm_server/policy_backend.py
Cargando el código…
vlm_server/README.md
Cargando el código…
vlm_server/requirements.txt
Cargando el código…
vlm_server/server.py
Cargando el código…
vlm_server/sgf_download.py
Cargando el código…
vlm_server/sgf_parser.py
Cargando el código…
vlm_server/shapes.py
Cargando el código…
vlm_server/train_lora.py
Cargando el código…
vlm_server/TRAINING.md
Cargando el código…
vlm_server/verify_board.py
Cargando el código…
vlm_server/verify_coords.py
Cargando el código…
COMMENTS · CHAPTER 08
El código fuente completo y los modelos utilizados 0 comentarios
Todavía no hay comentarios. Deja una pregunta o algo que quieras añadir.
Para publicar un comentario, empieza con Google y registra un apodo y un correo.
Empezar con Google