
Objetivo deste post
Este post publica o código-fonte usado nos experimentos de IA de gomoku. O código só é carregado quando você abre um arquivo.
Modelos usados
- VLM: 25.413 jogadas de partidas foram feitas com o Qwen3-VL-8B-Instruct, do Hugging Face. Hoje o servidor está rodando o padrão, Qwen3-VL-2B-Instruct. Ele recebe juntos uma imagem do tabuleiro e um tabuleiro em texto e devolve dois números, "row col".
- LoRA: peft, r=8, alpha=16. Treina só com as jogadas do lado vencedor. No MPS, rodou em fp16 e a loss virou NaN.
- IA local: o AiPlayer em C++ do app Qt e o ai.ts da web. Uma heurística que primeiro procura jogadas vencedoras e jogadas que precisam ser bloqueadas e, no resto dos casos, escolhe somando pontuações em quatro direções.
- Motor: as mesmas jogadas proibidas para pretas e brancas (duplo três e overline proibidos, duplo quatro permitido); só exatamente cinco vence.
Estrutura de pastas
- src: motor de gomoku em Qt6/C++, IA local, tela do tabuleiro, cliente TCP que se comunica com o servidor VLM
- Arquivos .py na raiz: servidor de inferência do VLM (vlm_pva_server.py), dataset_omook.py, que transforma logs em dados de treinamento, treinamento LoRA train_vlm.py, download de modelos
- scripts: verificação de coordenadas do VLM e cliente de tabuleiro em texto
- omook-web: tela de partida na web em Next.js, motor (board.ts), IA local (ai.ts), salvamento de registros de partidas (db.ts), conexão com o VLM
As configurações de implantação do servidor, os scripts de monitoramento e automação, os logs de partidas e o banco de dados de registros de partidas, e os pesos dos modelos ficaram de fora da publicação. O código de operação da web, como anúncios e a lista de outros jogos, e os arquivos de configuração também foram retirados, por isso alguns imports apontam para arquivos não publicados.
Código-fonte completo
38 arquivos · 8.212 linhas — abra uma pasta e clique em um arquivo para carregar o código.
Raiz do projeto
CMakeLists.txt
Carregando o código…
dataset_omook.py
Carregando o código…
download_qwen3vl.py
Carregando o código…
requirements.txt
Carregando o código…
train_vlm.py
Carregando o código…
TRAINING.md
Carregando o código…
vlm_pva_server.py
Carregando o código…
omook-web/
omook-web/app/api/game/[code]/route.ts
Carregando o código…
omook-web/app/api/game/route.ts
Carregando o código…
omook-web/app/api/vlm/move/route.ts
Carregando o código…
omook-web/app/globals.css
Carregando o código…
omook-web/app/layout.tsx
Carregando o código…
omook-web/app/page.tsx
Carregando o código…
omook-web/app/play/page.tsx
Carregando o código…
omook-web/app/play/play.module.css
Carregando o código…
omook-web/components/OmokBoard.module.css
Carregando o código…
omook-web/components/OmokBoard.tsx
Carregando o código…
omook-web/lib/ai.ts
Carregando o código…
omook-web/lib/board.ts
Carregando o código…
omook-web/lib/db.ts
Carregando o código…
omook-web/lib/gameTypes.ts
Carregando o código…
omook-web/lib/guest.ts
Carregando o código…
omook-web/lib/omk3Client.ts
Carregando o código…
omook-web/lib/renderBoardPng.ts
Carregando o código…
omook-web/lib/vlmClient.ts
Carregando o código…
scripts/
scripts/probe_vlm_coords.py
Carregando o código…
scripts/vlm_text_client.py
Carregando o código…
src/
src/aiplayer.cpp
Carregando o código…
src/aiplayer.h
Carregando o código…
src/boardmodel.cpp
Carregando o código…
src/boardmodel.h
Carregando o código…
src/boardwidget.cpp
Carregando o código…
src/boardwidget.h
Carregando o código…
src/main.cpp
Carregando o código…
src/mainwindow.cpp
Carregando o código…
src/mainwindow.h
Carregando o código…
src/tcpvlmclient.cpp
Carregando o código…
src/tcpvlmclient.h
Carregando o código…
COMMENTS · CHAPTER 05
O código-fonte completo e os modelos usados 0 comentários
Ainda não há comentários. Deixe uma pergunta ou algo que queira acrescentar.
Para publicar um comentário, comece com o Google e registre um apelido e um e-mail.
Começar com o Google