-
Notifications
You must be signed in to change notification settings - Fork 12
/
index_zh.html
436 lines (182 loc) · 14.5 KB
/
index_zh.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
<!--For anyone who modify index.html or index_zh.html, please don't forget to keep the line number relation unchanged. They are aligned line by line.-->
<title>BadukAI</title>
<body style="background-color:#fbf3ea;">
<h5 align="right"><a href="index.html">English</a></h5>
<h1 align="center">BadukAI</h1>
<span style='text-align:center;display:block;'>
<img src='icon.png'>
</span>
<p> </p>
<p>此应用使得你可以与俩个非常强的围棋 AI 进行对弈,也可以用他们来分析:
<p>1) <b>KataGo</b>: 据我所知本应用是第一个 KataGo 的安卓单机实现。内置(扩展训练的最后一个)10b网络和(来自KG1.5.0的)20b网络,也可以从设备存储加载其他网络。10b网络运行在CPU上。20b网络专为安卓进行了优化,如果可能也会使用硬件加速。
<p>2) <b>LeelaZero</b>: 内置(与40b自我对弈网络进行了对抗训练的)15b网络和(LZ第287号)40b网络,也可以从设备存储加载其他网络。这俩网络都专为安卓进行了优化,如果可能也会使用硬件加速。速度相当快。
<p>计算速度(每秒模拟对局数)的一些例子:</p>
<p></p>
<table border="1">
<tr align="center">
<th>神经网络</th>
<th>天玑9200+</th>
<th>骁龙8+gen1</th>
<th>麒麟9000</th>
<th>骁龙888</th>
<th>天玑9000</th>
<th>天玑8100</th>
<th>天玑1100</th>
<th>骁龙778</th>
<th>骁龙768</th>
<th>骁龙855+</th>
</tr>
<tr align="center">
<td>KG 20b</td>
<td>720 </td>
<td>580 </td>
<td>500 </td>
<td>330 </td>
<td>280 </td>
<td>240 </td>
<td>130 </td>
<td>120 </td>
<td>80 </td>
<td>55 </td>
</tr>
<tr align="center">
<td>LZ 15b</td>
<td></td>
<td></td>
<td></td>
<td>1000 </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>200 </td>
</tr>
<tr align="center">
<td>LZ 40b</td>
<td></td>
<td>420 </td>
<td></td>
<td>280 </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>50 </td>
</tr>
</table>
<p> 本应用可从 <a href=
"https://play.google.com/store/apps/details?id=net.kir.baduk_ai"
>谷歌应用商店下载</a>,或者从 Github 下载:<a href=
"https://github.com/aki65/aki65.github.io/releases/download/v1.20.0/baduk_ai__arm64-v8a-rel-1.20.apk"
>64位点这里</a> (请在手机的设置里允许安装第三方来源的应用),如果64位的不兼容,<a href=
"https://github.com/aki65/aki65.github.io/releases/download/v1.20.0/baduk_ai__armeabi-v7a-rel-1.20.apk"
>试试32位</a>,下载后安装即可使用。
<p> </p>
<span style='text-align:center;display:block;'>
<img width="300" src='Screenshot_20210312-000944.jpg'>
</span>
<p> </p>
<p>界面修改自 Alexander Taylor 的杰出应用“LazyBaduk”(感谢他友好的许可)。界面的操作绝大多数不言自明,但一些提示也许很有帮助:
<ul>
<li><a href="#top_row">顶部</a></li>
<li><a href="#settings">设置</a></li>
<li><a href="#board">棋盘</a></li>
<li><a href="#control">底部</a></li>
<li><a href="#strength">如何调整AI的强度然后与之对弈</a></li>
</ul>
<h3 id="top_row">顶部</h3>
<p>左上角两个圆圈指示当前该谁落子,可以点击改变。(如果还未产生手顺的话)
<p>点击绿圆可以显示隐藏 AI 的分析。
<p>点击虚线框弹出一个对话框,可以开关局部分析模式、设置限制在局部的分析深度、填写局部外的若干可用点的坐标。对话框设置完成后在棋盘上框选一个局部。
<h3 id="settings">设置</h3>
<p>右上角是设置按钮,你可以切换神经网络、引擎,调整对局设置。
<p>设置菜单里显示了当前使用的网络的名称,如果引擎是LeelaZero,就在第一行,如果引擎是KataGo,则在第二行,点击弹出一个对话框,可管理网络:你可以删除你不想用的内置的网络(以节省存储空间),也可以从设备存储加载网络。对于KataGo,标准的或优化的网络都可以这么加载;对于LeelaZero,则只能加载优化的网络。加载优化的网络(总是包含两个文件)时,两个文件分别加载(这是必要的,因为最新版本的安卓不授予BadukAI访问两个文件的权限。你可以在<a href=
"https://github.com/aki65/aki65.github.io/releases"
>这里</a>找到优化的网络。特别地,最近的 KataGo 优化网络有:
<ul>
<li><a href="https://github.com/aki65/aki65.github.io/releases/tag/v1.16.0">
40b(需要1.16版本以上,在除了8gen2/3的骁龙和最近的天玑芯片上运行很快)</a></li>
<li><a href="https://github.com/aki65/aki65.github.io/releases/tag/v1.15.0">
60b(需要1.15版本以上,在除了8gen2/3的骁龙和最近的天玑芯片上运行很快)</a></li>
<li><a href="https://github.com/aki65/aki65.github.io/releases/tag/v1.19.13">
18b(需要1.18.8版本以上,在最近的骁龙芯片上运行很快)</a></li>
<li><a href="https://github.com/aki65/aki65.github.io/releases/tag/v1.19.22">
28b(需要1.19.5版本以上,在最近的骁龙芯片上运行很快)</a></li>
</ul>
<p>点击“编辑设置”打开一个对话框,可设置 AI 引擎的参数。绝大在多数参数将直接传递给 AI,参数的含义请在相应围棋 AI 的项目文档里找。关于“使用特定NPU加速器”选项,默认时,BadukAI 将选择合理的值,但不保证,所以你可以试试找找最快的值,请确保手机芯片上有NPU.
<p id="kyu-rank"> 如果当前使用的是 KataGo,设置里的“等级”将可用:输入"30"至"-8"的整数(表示30级至9段(网棋)),经过强度大致校准的机器人(就像 KaTrain 中一样)将成为 AI 选手(而不是 KataGo 完全体)。这些弱化的机器人完全归功于 sanderland 出色的 KaTrain 项目的基础算法。必须用20b或15b的网络,校准的强度才准确。算法所限,4段以上强度增加不多,所以"-8"实际上比9段弱得多。选择“开局库”,AI 选手将使用人类的布局。
<p>如果输入的不是30至-8的整数,AI 选手将是 KataGo 完全体。无论输入什么,分析(“回合分析”或“全部分析”)永远都是完全体。
<p>选项“对弈时胜率”,可以切换对弈过程中是否显示胜率(而不仅仅是在分析中)。如果勾选,将显示所有 AI 回合的胜率(上面提到的校准机器人不计算胜率,所以不显示,落后太多时也不会认输)。
<p>在“直方图”中,有三种图可选:
<ul>
<li>胜率随手数的变化图。(以白棋视角,下同)</li>
<li>每两手之间的胜率增减量,随手数的变化图。直方图上半部分显示增加,下半部分显示减少。在±后输入数字以设置直方图的显示范围。例如:输入10,直方图可以完整地显示最低-10%最高10%的胜率增减,其它胜率增减显示不全。</li>
<li>每两手之间的目差增减量,随手数的变化图。(±同上)</li>
</ul>
<p>点击“分析时选点显示数”,可以设置分析时显示在棋盘上的选点的个数。
<p> 下拉框“单色”可以切换到“单色围棋”模式:所有的棋子都是相同的颜色(下拉框里选择的那个颜色)。这是训练(棋形)记忆的有趣办法。由于这个设置只对新下的棋子起作用,所以如果想从单色模式回到双色模式,首先将下拉框“单色”置为“-”,接着跳转到开局(点击直方图左起第一个柱),再跳转到终局(点击直方图右起第一个柱)。这么做会强迫 BadukAI 重下一遍所有棋子,新的设置就能起作用,所有棋子都恢复了颜色。
<p>点击“管理时间设置”,可以对自己和 AI 的思考时间进行约束:AI 按照“秒/手”弈棋。在“分析时每手总模拟对局数”中输入正数,则分析时每手进行这么多的计算。否则每手消耗“秒/手”中指定的秒数。在“回合分析时限(秒)”中输入正数,AI 会在回合分析这么多时间后会停止。否则会一直分析下去直到再次点击“回合分析”。
<h3 id="board">棋盘</h3>
<p>如果你按住棋盘不松手,将显示落子的预览。滑动手指来调整落子位置(位于手指上方 3 行)。抬起手指表示落子。可以在设置中关闭 3 行偏移。
<p>您可以用两指平移、放缩、旋转棋盘(每次90度)。
<p>棋盘下方的区域显示了一个胜率直方图。直方图的柱数与对弈或加载棋谱的手数相同。点击一个柱,可以导航到相应的着手(盘面)。当前盘面由红色三角形指明。如果 AI 对盘面进行了分析,则灰色的柱变为黑白相间,黑白的长短表示胜率大小。
<p>直方图总是显示一条分支的胜率(只是应用界面没地方显示所有分支的胜率)。如果您加载了 sgf(通过加载按钮或从另一个应用程序分享到 BadukAI 的 sgf 棋谱文件),将显示棋谱的主分支。然后,如果您自己或者让 AI 行棋,添加了变化分支,直方图将显示从开局到分支变化最后一手的胜率。要跳转至分支变化的前一手并返回棋谱的主分支,请点击“返回主线”。
<p>即使只显示一个分支的胜率直方图,按钮“保存 sgf”将保存所有的分支。
<p>当 AI 分析一个盘面时,最佳选点(至多十个)会按照质量顺序出现在胜率直方图下方。点击可在棋盘上查看最佳选点的后续变化。其中第一个按钮“形势”,表示 AI 对棋盘各点所有权的预测。
<h3 id="control">底部</h3>
<p>点击“回合分析”,AI 将分析当前盘面:胜率、目差、最佳着法及其后续变化信息将不断更新,直到您再次点击“回合分析”才会停止。在管理时间设置中的“回合分析时限(秒)”中输入正数,到时间后回合分析会暂停(直到盘面被改变时继续)。
<p>点击“全部分析”,AI 将从当前盘面到终局一着一手地分析(每次分析受限于设置中的“秒/手”或“分析时每手总模拟对局数”)。之后,直方图将显示所有胜率,以便您可以观察到胜率的突然变化(这暗示着恶手),然后仔细审视相应盘面。
<p>点击“<”、“>”、“下一分支”和“返回主线”,可以遍历游戏树。“下一分支”不是更改盘面,而是跳转到游戏树的另一个分支上,跳转后可以用“>”遍历该分支。分支跳转是循环的,如果已在最后一个分支上,再点击“下一分支”会回到第一个分支,即主分支上。无论何时,“返回主线”都将回到主分支上。
<p>如果你加载的sgf只有摆设的棋子(也就是没有先后次序的棋子),第二行的导航按钮就没用了,因此,它们就变成了编辑按钮:点击“添加黑子”,可以在棋盘上添加任意数量的黑棋子(添加操作和对弈时一样)。同理可添加白棋子。点击“移除棋子”,可以像添加棋子一样在棋盘上添加叉号。把叉号放到棋盘已有的棋子上,棋子就被移除了。
<p>无论哪个编辑按钮,再次点击就能结束编辑。此时就可以像平常一样对弈了。
<p>要玩让子棋,就像如上所述那样编辑,接着点击左上角的白圆圈,切换成白棋的回合,然后点击“执白”,让AI弈白棋。
<p> 点击“加载sgf”之后,不仅可以加载 sgf 文件,也可以加载包含部分或完整棋盘的图片。 BadukAI 将识别图中的棋盘棋子,然后将识别结果展示为一个盘面。为使一切顺利,必须向 BadukAI 陈述一些信息,具体来说:
<ul>
<li>图片中的棋盘有几条横线?</li>
<li>有几条纵线?</li>
<li>是角或边吗?更一般地说,有哪些边?
</ul>
以该诘棋图为例:
<span style='text-align:center;display:block;'>
<img width="300" src='corner.png'>
</span>
<p>你应该陈述如下信息:
<ul>
<li> 7 条横线
<li> 9 条纵线
<li> 左边、下边
</ul>
如果是完整棋盘,当然是:19 条横线、19 条纵线、所有四条边。
<p>有两种操作次序:
<ul>
<li>首先加载图片(或拍照),之后对话框右侧会显示图片。再陈述信息,最后点击“识别上图中的棋子”。
</ul>
或
<ul>
<li>首先陈述信息,再打勾“立即识别新图片中的棋子...”,最后加载图片(或拍照)。 BadukAI 将立即分析图片而不在对话框中停留。
</ul>
虽然第二种更快,但仅当有图片之前就知道需要陈述的信息才行。(比如,将要被拍摄的棋盘就在你的面前)
<p>通过图片加载盘面后,可以点击“显示图片”来比较图片和盘面。棋子将显示为红色。因此,可以更易发觉识别错误并通过“添加白子”、“添加黑子”、“移除棋子”来更正。
<h3 id="strength">如何调整 AI 强度后与之对弈:</h3>
<p>对于 KataGo,你可以
<ul>
<li>通过设置中的 <a href="#kyu-rank">“等级”</a> 将强度设置为某个人类等级(网棋)</li>
<li>或者:</li>
<ul>
<li>点击设置里的第二行,从设备存储中加载较弱的网络</li>
<li>通过减少管理时间设置中的“秒/手”来减少分析量</li>
<li>在编辑配置中将“每手最大新增模拟对局数”修改为更小的数,进一步减少分析量</li>
</ul>
</ul>
</p>
<p>对于 LeelaZero,你可以
<ul>
<li>通过减少管理时间设置中的“秒/手”来减少分析量</li>
<li>在编辑配置中将“每手最大新增模拟对局数”修改为更小的数,进一步减少分析量</li>
</ul>
</p>
<hr>
<p> 如果您遇到任何问题,请告诉我...
<p>我的邮件地址:<a href="mailto:a.kirmse@gmx.de">Andreas Kirmse</a>