Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
a1edc82
Update README.md
changcheng967 May 1, 2025
bb302c9
Update README.md
changcheng967 May 1, 2025
096d702
Change model link to self trained network
changcheng967 Sep 1, 2025
e223aae
Create main.yml
changcheng967 Sep 1, 2025
0c1ede1
Update main.yml
changcheng967 Sep 1, 2025
a726c64
Update main.py
changcheng967 Sep 1, 2025
2ef8131
Update main.py
changcheng967 Sep 1, 2025
1635483
Create run-katago-cgos.yml
changcheng967 Sep 4, 2025
ce66b2e
Extract KataGo zip into katago/ folder, preserving files flat inside
changcheng967 Sep 5, 2025
086664a
Update main.py
changcheng967 Sep 5, 2025
97c2030
Update main.py
changcheng967 Sep 5, 2025
aa32f7f
Update main.py
changcheng967 Sep 5, 2025
8a47813
Update README.md
changcheng967 Sep 5, 2025
1d336f8
Update README.md
changcheng967 Sep 5, 2025
3d8663b
Update main.py
changcheng967 Sep 7, 2025
25f909c
Update main.py
changcheng967 Sep 16, 2025
0dd8b80
Update main.py
changcheng967 Sep 16, 2025
758cf77
Update index.html
changcheng967 Sep 17, 2025
e96b7f1
Create release-site.yml
changcheng967 Sep 17, 2025
cbca9f5
Delete script.js
changcheng967 Sep 17, 2025
d2ae040
Delete styles.css
changcheng967 Sep 17, 2025
7f2936c
Update and rename index.html to index.md
changcheng967 Sep 17, 2025
cfac3eb
Update release-site.yml
changcheng967 Sep 17, 2025
82597b4
Update release-site.yml
changcheng967 Sep 17, 2025
770fb52
Update release-site.yml
changcheng967 Sep 17, 2025
0b274f8
Update release-site.yml
changcheng967 Sep 17, 2025
4ab235a
Update index.md
changcheng967 Sep 17, 2025
5718767
Create _config.yml
changcheng967 Sep 17, 2025
ca52dd9
Create Gemfile
changcheng967 Sep 17, 2025
cca7465
Update release-site.yml
changcheng967 Sep 17, 2025
6009554
Delete .github/workflows/release-site.yml
changcheng967 Sep 17, 2025
39cf1b3
Create release.yml
changcheng967 Sep 17, 2025
1fc323d
Create jekyll.yml
changcheng967 Sep 17, 2025
8c1bce7
Delete .github/workflows/release.yml
changcheng967 Sep 17, 2025
0b29013
Update jekyll.yml
changcheng967 Sep 17, 2025
5222b55
Update index.md
changcheng967 Sep 17, 2025
7c757a0
Update index.md
changcheng967 Sep 17, 2025
a07c50d
Update jekyll.yml
changcheng967 Sep 17, 2025
e91cd15
Update _config.yml
changcheng967 Sep 17, 2025
cd24eaf
Update and rename index.md to index.html
changcheng967 Sep 17, 2025
ec5083c
Create release.html
changcheng967 Sep 17, 2025
6662b2c
Update jekyll.yml
changcheng967 Sep 17, 2025
9f6541c
Update jekyll.yml
changcheng967 Sep 17, 2025
5c64c21
Update jekyll.yml
changcheng967 Sep 17, 2025
80c809b
Update jekyll.yml
changcheng967 Sep 17, 2025
bebbfb9
Update jekyll.yml
changcheng967 Sep 17, 2025
17561d5
Update jekyll.yml
changcheng967 Sep 17, 2025
d7c087a
Update jekyll.yml
changcheng967 Sep 17, 2025
b533ac3
Update _config.yml
changcheng967 Sep 17, 2025
2de5f77
Update jekyll.yml
changcheng967 Sep 17, 2025
692c514
Update jekyll.yml
changcheng967 Sep 17, 2025
b7d88ca
Update jekyll.yml
changcheng967 Sep 17, 2025
79176af
Update release.html
changcheng967 Sep 17, 2025
2226bc2
Update _config.yml
changcheng967 Sep 17, 2025
20b76de
Update release.html
changcheng967 Sep 17, 2025
6c92b1a
Update index.html
changcheng967 Sep 17, 2025
ecde605
Update README.md
changcheng967 Sep 17, 2025
3e1cb34
Update README.md
changcheng967 Sep 17, 2025
4eda9ea
Update main.py
changcheng967 Sep 17, 2025
ab12b44
Update release.html
changcheng967 Sep 17, 2025
3ce5848
Update release.html
changcheng967 Sep 17, 2025
f026bda
Create dependabot.yml
changcheng967 Sep 17, 2025
95dfe99
Bump actions/configure-pages from 3 to 5 in /.github/workflows
dependabot[bot] Sep 17, 2025
63bf525
Bump actions/setup-python from 4 to 6 in /.github/workflows
dependabot[bot] Sep 17, 2025
3d75436
Bump actions/checkout from 3 to 5 in /.github/workflows
dependabot[bot] Sep 17, 2025
9aed1ea
Merge pull request #8 from changcheng967/dependabot/github_actions/do…
changcheng967 Sep 17, 2025
ae7ce8d
Merge pull request #10 from changcheng967/dependabot/github_actions/d…
changcheng967 Sep 17, 2025
da6476b
Merge pull request #9 from changcheng967/dependabot/github_actions/do…
changcheng967 Sep 17, 2025
76b76a2
Bump actions/upload-pages-artifact from 3 to 4 in /.github/workflows
dependabot[bot] Sep 17, 2025
2759fbb
Merge pull request #7 from changcheng967/dependabot/github_actions/do…
changcheng967 Sep 17, 2025
356d5c2
Update main.py
changcheng967 Sep 18, 2025
076cfc4
Update main.py
changcheng967 Sep 18, 2025
07592dd
Create shuffle
changcheng967 Sep 19, 2025
856d6be
Create Stop additional shuffle
changcheng967 Sep 19, 2025
5751a8e
Create main(cuda).py
changcheng967 Sep 20, 2025
fb3b735
Update release.html
changcheng967 Sep 22, 2025
dcbd1ee
Merge pull request #11 from changcheng967/main
changcheng967 Sep 22, 2025
2f48d73
Change to only triggered manually
changcheng967 Sep 22, 2025
f30d22c
Create train
changcheng967 Sep 23, 2025
4fff640
Potential fix for code scanning alert no. 1: Workflow does not contai…
changcheng967 Sep 24, 2025
519a571
Potential fix for code scanning alert no. 2: Workflow does not contai…
changcheng967 Sep 24, 2025
19cc3d7
Merge pull request #16 from changcheng967/alert-autofix-2
changcheng967 Sep 24, 2025
9225d59
Merge pull request #15 from changcheng967/alert-autofix-1
changcheng967 Sep 24, 2025
30b70ac
Update release.html
changcheng967 Sep 27, 2025
2bb2858
Update index.html
changcheng967 Sep 27, 2025
14a6616
Update jekyll.yml
changcheng967 Sep 27, 2025
d6a0452
Update index.html
changcheng967 Sep 27, 2025
58ec352
Update index.html
changcheng967 Sep 27, 2025
eaf357e
Update index.html
changcheng967 Sep 27, 2025
e1ce029
Update index.html
changcheng967 Sep 27, 2025
eef6e59
Update train
changcheng967 Sep 28, 2025
7ab59fe
Delete commands/Stop additional shuffle
changcheng967 Sep 28, 2025
2e2b34c
Update and rename shuffle to Create train.json.txt
changcheng967 Sep 28, 2025
87bb499
Rename train to train.txt
changcheng967 Sep 28, 2025
3f9f317
Create shuffle.txt
changcheng967 Sep 28, 2025
745bcd6
Rename Create train.json.txt to create (train.json).txt
changcheng967 Sep 28, 2025
f1b3e06
Update train.txt
changcheng967 Sep 28, 2025
f221d53
Add ELO estimator, training analyser, and results file
changcheng967 Sep 28, 2025
23c8a36
Update LICENSE
DouletMedia2025 Sep 28, 2025
8d07efa
Delete main(cuda).py
DouletMedia2025 Sep 28, 2025
235a69e
Delete logo.png
DouletMedia2025 Sep 28, 2025
c1469c6
Delete .github/workflows/run-katago-cgos.yml
DouletMedia2025 Sep 28, 2025
d89a97e
Update README.md
DouletMedia2025 Sep 28, 2025
1d8f05b
Merge pull request #17 from Doulet-Media/DouletMedia
changcheng967 Sep 28, 2025
5496ffb
Update results.xlsx with new data
changcheng967 Sep 29, 2025
9d8076f
Merge branch 'main' of https://github.com/changcheng967/Kata_web
changcheng967 Sep 29, 2025
e10193c
Merge branch 'main' into Training
changcheng967 Sep 29, 2025
6cf62b6
Merge pull request #20 from changcheng967/Training
changcheng967 Sep 29, 2025
4df5393
Revert "Training"
changcheng967 Sep 29, 2025
0f36b89
Merge pull request #21 from changcheng967/revert-20-Training
changcheng967 Sep 29, 2025
7fe493c
Merge pull request #23 from changcheng967/main
changcheng967 Sep 29, 2025
3666c80
Update README.md
changcheng967 Sep 29, 2025
54bb708
Update README.md
changcheng967 Sep 29, 2025
15cb1e2
Update ELO estimator.py
Little-giraffe07745 Sep 29, 2025
6bfb8bd
Update ELO estimator.py
Little-giraffe07745 Sep 29, 2025
6f81b71
Fix typos and reverse changes
changcheng967 Sep 29, 2025
84853b8
Update shuffle.txt
changcheng967 Sep 29, 2025
a40bf4c
Update create (train.json).txt
changcheng967 Sep 29, 2025
f61a4c5
Update create (train.json).txt
changcheng967 Sep 29, 2025
436efd5
Fix errors in code
changcheng967 Sep 29, 2025
163ab80
Create Discord.yml
changcheng967 Sep 30, 2025
6b731b9
Update Discord.yml to use new discord action version
changcheng967 Sep 30, 2025
007f6db
Update Discord.yml
changcheng967 Sep 30, 2025
4fba665
Update Discord.yml
changcheng967 Sep 30, 2025
82b41ec
Remove file because job failed
changcheng967 Sep 30, 2025
c6eec33
Update results.xlsx with new data
changcheng967 Sep 30, 2025
807c2bc
Update shuffle.txt to today
changcheng967 Sep 30, 2025
8cb8254
Update create (train.json).txt to today
changcheng967 Sep 30, 2025
5074c71
Update train.txt
changcheng967 Sep 30, 2025
0999645
Update train.txt to today
changcheng967 Sep 30, 2025
982fe76
Fix path
changcheng967 Sep 30, 2025
47015f4
Update results.xlsx with new data
changcheng967 Oct 1, 2025
8f725db
Update results.xlsx with new data
changcheng967 Oct 1, 2025
5115421
Merge pull request #27 from changcheng967/Frank's-branch
Little-giraffe07745 Oct 1, 2025
08a1e3a
Merge pull request #29 from changcheng967/main
changcheng967 Oct 1, 2025
6733eab
Update shuffle.txt to today
changcheng967 Oct 1, 2025
57335c3
Update create (train.json).txt
changcheng967 Oct 1, 2025
c9a6893
Update train.txt
changcheng967 Oct 1, 2025
d6ff66a
Update train.txt
changcheng967 Oct 1, 2025
9daa584
Update shuffle.txt
changcheng967 Oct 2, 2025
3e23def
Update create (train.json).txt
changcheng967 Oct 2, 2025
54be99b
Update train.txt
changcheng967 Oct 2, 2025
05e74d2
Update results.xlsx with KW21 and KW22 data
changcheng967 Oct 2, 2025
2ac5995
Update shuffle.txt
changcheng967 Oct 3, 2025
99f6955
Update shuffle.txt
changcheng967 Oct 3, 2025
612efbd
Update create (train.json).txt
changcheng967 Oct 3, 2025
bd1747d
Update train.txt
changcheng967 Oct 3, 2025
dfd103c
Update train.txt
changcheng967 Oct 3, 2025
2cd5a85
Update shuffle.txt
changcheng967 Oct 5, 2025
ea74d39
Update create (train.json).txt
changcheng967 Oct 5, 2025
b7e274e
Update train.txt
changcheng967 Oct 5, 2025
fe9bc61
Update results.xlsx with new data
changcheng967 Oct 6, 2025
c3c1694
Merge pull request #32 from changcheng967/main
changcheng967 Oct 6, 2025
4c71751
Update results.xlsx with new data
changcheng967 Oct 6, 2025
28981e1
Update main.py
changcheng967 Oct 6, 2025
509ab36
Merge pull request #33 from changcheng967/Training
changcheng967 Oct 6, 2025
40eeaa9
Create Exporting.txt
changcheng967 Oct 6, 2025
39f1321
Update main.py
changcheng967 Oct 16, 2025
0a77ca6
Update shuffle.txt
changcheng967 Oct 16, 2025
975cbda
Update create (train.json).txt
changcheng967 Oct 16, 2025
3d1873a
Update model checkpoint and names in Exporting.txt
changcheng967 Oct 16, 2025
bd67ac8
Update model checkpoint and names in Exporting.txt
changcheng967 Oct 16, 2025
9b73b75
Update model checkpoint and names in Exporting.txt
changcheng967 Oct 16, 2025
3fa5c94
Update Exporting.txt
changcheng967 Oct 16, 2025
c227348
Update model checkpoint and names in Exporting.txt
changcheng967 Oct 17, 2025
b03ac0b
Update main.py
changcheng967 Oct 17, 2025
c94019d
Update training parameters in train.txt
changcheng967 Oct 17, 2025
20da6ca
Update model checkpoint and names in Exporting.txt
changcheng967 Oct 18, 2025
b194802
Update model URL and filename for Kata_web
changcheng967 Oct 18, 2025
dfb16de
Update engine description and parameters in main.py
changcheng967 Oct 18, 2025
3b15136
Update train.json with new row counts
changcheng967 Oct 18, 2025
a515d0c
Modify training script parameters for KW29 model
changcheng967 Oct 18, 2025
0c509ae
Update Exporting.txt
changcheng967 Oct 18, 2025
238c54e
Update main.py
changcheng967 Oct 19, 2025
ad4f851
Update main.py
changcheng967 Oct 19, 2025
24249db
Update main.py
changcheng967 Oct 20, 2025
c87d766
Merge branch 'Training' into main
changcheng967 Oct 21, 2025
2af8a26
Initial plan
Copilot Oct 30, 2025
d225135
Add comprehensive license key generator system for DouEssay v10.0.0
Copilot Oct 30, 2025
0b50bed
Fix code review issues: remove redundant import, add check_hardware p…
Copilot Oct 30, 2025
788095b
Fix security vulnerabilities: sanitize error messages to prevent stac…
Copilot Oct 30, 2025
ecb2182
Add security summary and complete comprehensive testing
Copilot Oct 30, 2025
af5cc0a
Merge pull request #35 from changcheng967/copilot/add-license-key-gen…
changcheng967 Oct 30, 2025
fbc45c4
Revert "Add enterprise license key generator with RSA-4096 cryptograp…
changcheng967 Oct 30, 2025
d923d41
Merge pull request #36 from changcheng967/revert-35-copilot/add-licen…
changcheng967 Oct 30, 2025
693dfab
Bump actions/checkout from 5 to 6 in /.github/workflows
dependabot[bot] Nov 20, 2025
068a91f
Merge pull request #37 from changcheng967/dependabot/github_actions/d…
changcheng967 Dec 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2
updates:
# Python dependencies from requirements.txt
- package-ecosystem: "pip"
directory: "/" # Root directory
schedule:
interval: "daily"

# Ruby dependencies from Gemfile (e.g. github-pages)
- package-ecosystem: "bundler"
directory: "/" # Root directory
schedule:
interval: "daily"

# GitHub Actions used in main.yml
- package-ecosystem: "github-actions"
directory: ".github/workflows"
schedule:
interval: "daily"
89 changes: 89 additions & 0 deletions .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Build & Deploy Kata_web Site

on:
push:
branches:
- main
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build_and_deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v6

- name: Fetch releases JSON
run: |
mkdir -p _data
curl -s -H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
https://api.github.com/repos/changcheng967/Kata_web/releases \
> _data/releases.json

- name: Generate release markdown files
run: |
set -xe
mkdir -p _releases
prev_tag=""
# Sort releases by published_at ascending so we can track previous_tag
jq -c 'sort_by(.published_at)[]' _data/releases.json | while read -r release; do
tag=$(echo "$release" | jq -r '.tag_name' | tr '[:upper:]' '[:lower:]' | sed 's/\//-/g')
title=$(echo "$release" | jq -r '.name // .tag_name' | sed 's/"/\\"/g')
date=$(echo "$release" | jq -r '.published_at')
body=$(echo "$release" | jq -r '.body // "No description provided."' | sed 's/"/\\"/g')
assets=$(echo "$release" | jq '.assets')

{
echo "---"
echo "layout: release"
echo "title: \"${title}\""
echo "published_at: \"${date}\""
echo "tag_name: \"${tag}\""
if [ -n "$prev_tag" ]; then
echo "previous_tag: \"${prev_tag}\""
fi
echo "assets: ${assets}"
echo "---"
echo
echo "${body}"
} > "_releases/${tag}.md"

prev_tag="$tag"
done

echo "Generated release files:"
ls -R _releases

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
bundler-cache: true

- name: Build site with Jekyll
run: |
bundle exec jekyll build
echo "Built site structure:"
ls -R _site/release || true

- name: Configure Pages
uses: actions/configure-pages@v5

- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: _site

- name: Deploy site
uses: actions/deploy-pages@v4
31 changes: 31 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: KataGo Setup from training branch

on:
workflow_dispatch: # ✅ only manual trigger

jobs:
setup-katago:
permissions:
contents: read
runs-on: ubuntu-latest

steps:
- name: Checkout training branch
uses: actions/checkout@v6
with:
ref: Training # Checkout the training branch, even though workflow triggers manually

- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: 3.11

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests

- name: Run KataGo setup script
run: python main.py
env:
API_KEY: ${{ secrets.API_KEY }}
110 changes: 110 additions & 0 deletions ELO estimator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys, re, math, os
import numpy as np
from scipy.optimize import minimize

LOG10 = math.log(10.0)

def logistic(z):
return 1.0 / (1.0 + math.exp(-z))

def elo_from_z(z):
return z * 400.0 / LOG10

def parse_log(text):
# Candidate model name (Engine B)
m_b = re.search(r'第二引擎设置.*?-model\s+"([^"]+)"', text, re.S)
model_b = os.path.basename(m_b.group(1)) if m_b else "EngineB"

# 总局数: 20 比分: 11:9
m_tot = re.search(r"总局数[::]\s*([0-9]+)\s+比分[::]\s*([0-9]+)\s*[::]\s*([0-9]+)", text)
total_games = int(m_tot.group(1)) if m_tot else 0
wins_a_total = int(m_tot.group(2)) if m_tot else 0
wins_b_total = int(m_tot.group(3)) if m_tot else 0

# 引擎1 (Baseline)
m_e1 = re.search(
r"引擎1.*?总胜局[::]\s*([0-9]+).*?执黑胜局[::]\s*([0-9]+).*?执白胜局[::]\s*([0-9]+).*?总用时[::]\s*([0-9.]+).*?总计算量[::]\s*([0-9,]+)",
text, re.S)
if m_e1:
wins_a_total = int(m_e1.group(1))
wins_a_black = int(m_e1.group(2))
wins_a_white = int(m_e1.group(3))
avg_time_a = float(m_e1.group(4))
playouts_a = int(m_e1.group(5).replace(",", ""))
else:
wins_a_black = wins_a_white = 0
avg_time_a = 0.0
playouts_a = 0

# 引擎2 (Candidate)
m_e2 = re.search(
r"引擎2.*?总胜局[::]\s*([0-9]+).*?执黑胜局[::]\s*([0-9]+).*?执白胜局[::]\s*([0-9]+).*?总用时[::]\s*([0-9.]+).*?总计算量[::]\s*([0-9,]+)",
text, re.S)
if m_e2:
wins_b_total = int(m_e2.group(1))
wins_b_black = int(m_e2.group(2))
wins_b_white = int(m_e2.group(3))
avg_time_b = float(m_e2.group(4))
playouts_b = int(m_e2.group(5).replace(",", ""))
else:
wins_b_black = wins_b_white = 0
avg_time_b = 0.0
playouts_b = 0

return {
"model_b": model_b,
"total_games": total_games,
"wins_a_total": wins_a_total, "wins_b_total": wins_b_total,
"wins_a_black": wins_a_black, "wins_a_white": wins_a_white,
"avg_time_b": avg_time_b, "playouts_b": playouts_b
}

def fit_two_color(kb, nb, kw, nw):
def nll(theta):
z0, g = theta
pb = logistic(z0 + g); pw = logistic(z0 - g)
eps = 1e-12
ll = kb*math.log(pb+eps)+(nb-kb)*math.log(1-pb+eps) \
+ kw*math.log(pw+eps)+(nw-kw)*math.log(1-pw+eps)
return -ll
res = minimize(nll, [0,0], method="BFGS")
return res.x

def main():
text = sys.stdin.read()
info = parse_log(text)
n = info["total_games"]
nb = nw = n//2
kb, kw = info["wins_a_black"], info["wins_a_white"]

z0, g = fit_two_color(kb, nb, kw, nw)
elo_ab = elo_from_z(z0) # baseline minus candidate
baseline = 14085

# Candidate perspective
elo_diff_b = -elo_ab
calc_elo_b = baseline + elo_diff_b

# === Full Report (Baseline perspective) ===
print("=== Elo Report ===")
print(f"Games: {n}, Score A:B = {info['wins_a_total']}:{info['wins_b_total']}")
print(f"Elo(A−B): {elo_ab:.2f}")
print(f"Color advantage (A as Black): {elo_from_z(g):.2f}")
print(f"Win rate A: {100.0*info['wins_a_total']/n:.1f}%")
print(f"Baseline Elo: {baseline}")
print(f"Calculated Elo (A): {baseline + elo_ab:.2f}")

# === One-line Summary (Candidate perspective) ===
wins = info['wins_b_total']
losses = info['wins_a_total']
winrate = round(100.0 * wins / n, 1)
print()
print(f"{info['model_b']}\t{n}\t{wins}\t{losses}\t{winrate}\t"
f"{info['avg_time_b']:.3f}\t{info['playouts_b']:,}\t"
f"{baseline}\t{elo_diff_b:.2f}\t{calc_elo_b:.2f}")

if __name__ == "__main__":
main()
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source "https://rubygems.org"

gem "github-pages", group: :jekyll_plugins
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Kata_web - Go AI Engine
Kata_web
Copyright (c) 2025 Cheng Chang

TERMS AND CONDITIONS FOR USE, MODIFICATION, AND DISTRIBUTION
Expand Down
19 changes: 6 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
Here's the updated **README.md** with clear license requirements and a direct reference to the **LICENSE** file:

---

# Kata_web

[![pages-build-deployment](https://github.com/changcheng967/Kata_web/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/changcheng967/Kata_web/actions/workflows/pages/pages-build-deployment)

[![Build & Deploy Kata_web Site](https://github.com/changcheng967/Kata_web/actions/workflows/jekyll.yml/badge.svg)](https://github.com/changcheng967/Kata_web/actions/workflows/jekyll.yml)
## Overview
**Kata_web** is an advanced **CPU-based Go AI engine**, utilizing the **KataGo b18 (Eigen backend)** for efficient performance. This project is designed to provide **free, cross-platform** AI-assisted Go analysis while maintaining strict licensing policies.
**Kata_web** is an advanced **CPU-based Go AI engine**, utilizing the **Custom Trained KW serie Models** which uses larger LR for efficient performance and competitive level usage. This project is designed to provide **free, cross-platform** competitive AI and AI models for advanced Go competing while keeping the full source code private.

---

Expand All @@ -29,14 +24,14 @@ This project is licensed under the terms specified in the **[LICENSE](https://gi
---

## Features
- **AI-powered strategic insights** – Leverages KataGo b18 for superior game analysis.
- **AI-powered strategic insights** – Leverages Kata_web self-trained custom competitive level b28c512nbt model for superior game analysis.
- **Eigen backend for CPU support** – Optimized for non-GPU environments.
- **Cross-platform compatibility** – Runs efficiently on Linux Ubuntu with ARM-based hardware.
- **Cross-platform compatibility** – Runs efficiently on almost every hardware.(Linux x64, linux ARM, Windows x64, Windows ARM)
- **Legacy yet functional** – Free for community use, though newer models exist.

---

## Installation
## Usage
```bash
git clone https://github.com/changcheng967/Kata_web.git
cd Kata_web
Expand All @@ -51,8 +46,6 @@ python main.py
- **License Compliance**: Refer to the [LICENSE](https://github.com/changcheng967/Kata_web/blob/main/LICENSE) for legal terms.
- **Modifications**: Contact the author for derivative works.

**Violations may result in legal action or revocation of access to private components.**
**Note: This is the public version of the code which is not the full version(minimal for usage) The private version will remain private unless we are told to open source the full code by Doulet Media.**

---

Let me know if you'd like to adjust the tone or add more specifics!
49 changes: 49 additions & 0 deletions Training Analyser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import sys
import re

# Regex patterns
pacc1_re = re.compile(r"pacc1\s*=\s*([0-9.]+)")
p0loss_re = re.compile(r"p0loss\s*=\s*([0-9.]+)")
p1loss_re = re.compile(r"p1loss\s*=\s*([0-9.]+)")
nsamp_re = re.compile(r"nsamp\s*=\s*([0-9.]+)")
total_loss_re = re.compile(r",\s*loss\s*=\s*([0-9.]+)")

print("Paste logs below, then press CTRL+D (Linux/Mac) or CTRL+Z + Enter (Windows):\n")
text = sys.stdin.read()

entries = []
for line in text.splitlines():
nsamp = nsamp_re.search(line)
pacc1 = pacc1_re.search(line)
p0 = p0loss_re.search(line)
p1 = p1loss_re.search(line)
total_loss = total_loss_re.search(line)

if nsamp and pacc1 and total_loss:
entries.append({
"samples": float(nsamp.group(1)),
"pacc1": float(pacc1.group(1)),
"loss": float(total_loss.group(1)),
"p0loss": float(p0.group(1)) if p0 else None,
"p1loss": float(p1.group(1)) if p1 else None,
})

if not entries:
print("❌ No valid entries found.")
sys.exit(1)

print(f"\n📊 Training Log Detailed Analysis")
print(f"- Entries analyzed: {len(entries)}\n")

prev = None
for i, e in enumerate(entries, 1):
trend = ""
if prev:
dpacc = e["pacc1"] - prev["pacc1"]
dpacc_pct = (dpacc / prev["pacc1"]) * 100 if prev["pacc1"] != 0 else 0
dloss = e["loss"] - prev["loss"]
dloss_pct = (dloss / prev["loss"]) * 100 if prev["loss"] != 0 else 0
trend += f"Δpacc1={dpacc:+.4f} ({dpacc_pct:+.2f}%), Δloss={dloss:+.4f} ({dloss_pct:+.2f}%)"
print(f"Entry {i:02d} | Samples={e['samples']:.0f} | pacc1={e['pacc1']:.4f} | "
f"loss={e['loss']:.4f} | p0loss={e['p0loss']:.4f} | p1loss={e['p1loss']:.4f} {trend}")
prev = e
16 changes: 16 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
title: "Kata_web by changcheng967"
description: "Official Kata_web releases page"

collections:
releases:
output: true
permalink: /release/:name/

markdown: kramdown
highlighter: rouge

# IMPORTANT: For a GitHub Pages project site, baseurl must be the repo name
baseurl: "/Kata_web"

plugins:
- jekyll-feed
Loading
Loading