
Objetivo de esta entrada
Publico el código fuente usado en los experimentos de la IA de gomoku. El código solo se carga cuando abres un archivo.
Modelos utilizados
- VLM: se jugaron 25.413 jugadas de partida con Qwen3-VL-8B-Instruct de Hugging Face. Ahora el servidor funciona con el valor por defecto, Qwen3-VL-2B-Instruct. Recibe a la vez una imagen del tablero y un tablero en texto, y devuelve dos números, "row col".
- LoRA: peft, r=8, alpha=16. Se entrena solo con las jugadas del lado ganador. En MPS se ejecutó en fp16 y la pérdida se volvió NaN.
- IA local: el AiPlayer en C++ de la app de Qt y ai.ts en la web. Es una heurística que primero mira las jugadas ganadoras y las que hay que bloquear, y en los demás casos elige sumando las puntuaciones de las cuatro direcciones.
- Motor: las mismas jugadas prohibidas para negras y blancas (doble tres y línea larga prohibidos, doble cuatro permitido); solo gana un cinco exacto.
Estructura de carpetas
- src: motor de gomoku en Qt6/C++, IA local, pantalla del tablero, cliente TCP que se comunica con el servidor VLM
- Archivos .py de la raíz: servidor de inferencia del VLM (vlm_pva_server.py), dataset_omook.py, que convierte los registros en datos de entrenamiento, entrenamiento de LoRA train_vlm.py, descarga de modelos
- scripts: comprobación de coordenadas del VLM y cliente de tablero en texto
- omook-web: pantalla de partida web en Next.js, motor (board.ts), IA local (ai.ts), guardado de partidas (db.ts), conexión con el VLM
La configuración de despliegue del servidor, los scripts de monitorización y automatización, los registros de partidas y la base de datos de partidas, y los pesos de los modelos quedan fuera de lo publicado. También se han omitido el código de operación web como los anuncios y la lista de otros juegos, y los archivos de configuración, por lo que algunos import apuntan a archivos no publicados.
Código fuente completo
38 archivos · 8212 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…
dataset_omook.py
Cargando el código…
download_qwen3vl.py
Cargando el código…
requirements.txt
Cargando el código…
train_vlm.py
Cargando el código…
TRAINING.md
Cargando el código…
vlm_pva_server.py
Cargando el código…
omook-web/
omook-web/app/api/game/[code]/route.ts
Cargando el código…
omook-web/app/api/game/route.ts
Cargando el código…
omook-web/app/api/vlm/move/route.ts
Cargando el código…
omook-web/app/globals.css
Cargando el código…
omook-web/app/layout.tsx
Cargando el código…
omook-web/app/page.tsx
Cargando el código…
omook-web/app/play/page.tsx
Cargando el código…
omook-web/app/play/play.module.css
Cargando el código…
omook-web/components/OmokBoard.module.css
Cargando el código…
omook-web/components/OmokBoard.tsx
Cargando el código…
omook-web/lib/ai.ts
Cargando el código…
omook-web/lib/board.ts
Cargando el código…
omook-web/lib/db.ts
Cargando el código…
omook-web/lib/gameTypes.ts
Cargando el código…
omook-web/lib/guest.ts
Cargando el código…
omook-web/lib/omk3Client.ts
Cargando el código…
omook-web/lib/renderBoardPng.ts
Cargando el código…
omook-web/lib/vlmClient.ts
Cargando el código…
scripts/
scripts/probe_vlm_coords.py
Cargando el código…
scripts/vlm_text_client.py
Cargando el código…
src/
src/aiplayer.cpp
Cargando el código…
src/aiplayer.h
Cargando el código…
src/boardmodel.cpp
Cargando el código…
src/boardmodel.h
Cargando el código…
src/boardwidget.cpp
Cargando el código…
src/boardwidget.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…
COMMENTS · CHAPTER 05
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