2025年6月17日

圍棋人機對奕(6)﹍適合段位實力的 AI 引擎介紹

圍棋人機對奕(6)﹍適合段位實力的 AI 引擎介紹

Wayne Fu 0 A+
go-ai-gtp-engine-dan.jpg-圍棋適合段位實力的 AI 引擎接續上一篇「適合級位實力的 AI 引擎」,本篇介紹 5 個適合段位實力的免費開源 AI 引擎。由於中、高段實力的機器人在各大對奕平台比較不多見,較難知道這些段位引擎的真實棋力 ,本篇依然會測試引擎間的強弱實力,以及說明如何安裝。
圍棋人機對奕系列文章:
(圖片出處: pixabay.com)

一、安裝 Drago

1. 準備動作 開始之前,請先安裝「AI 引擎圖形界面軟體 Drago」,本篇會使用有中文界面的 Drago,並在 Drago 上安裝本篇介紹的 5 個 AI 引擎:
  • Pachi
  • AQ
  • Ray
  • Leela
  • KataGo
2. 修改設定檔 安裝 Drago 的說明文章有提到,某些引擎在設定對奕時,無法選擇時間、規則(選項被反白),此狀況需要透過修改系統設定檔來解決。 所以安裝完 Drago 後,請在 Drago 目錄下用文書處理軟體編輯這個檔案 engines.config。本篇介紹的 Pachi、KataGo 有在預設引擎清單之中,所以可在檔案中找到對應的區塊,依照以下內容修改;另外 3 個引擎請直接新增內容,放在檔案最後面,改完後存檔: [Pachi] url = http://pachi.or.cz/ connection = not.required level = not.required boardsize = not.required chinese.rules = not.required japanese.rules = not.required time.per.move = not.required total.time = not.required overtime = not.required additional = arg:-d 0 [AQ] url = https://github.com/ymgaq/AQ connection = not.required level = not.required boardsize = not.required chinese.rules = not.required japanese.rules = not.required time.per.move = not.required total.time = not.required overtime = not.required [Ray] url = https://github.com/zakki/Ray/releases connection = not.required level = not.required boardsize = not.required chinese.rules = not.required japanese.rules = not.required time.per.move = not.required total.time = not.required overtime = not.required [Leela] url = https://www.sjeng.org/leela.html connection = arg:--gtp level = not.required boardsize = not.required chinese.rules = not.required japanese.rules = not.required time.per.move = not.required total.time = not.required overtime = not.required [KataGo 20-block] url = https://github.com/lightvector/KataGo connection = arg:gtp level = not.required boardsize = not.required chinese.rules = gtp:kata-set-rules chinese japanese.rules = gtp:kata-set-rules japanese time.per.move = not.required total.time = not.required overtime = not.required additional = arg:-model g170e-b20c256x2-s5303129600-d1228401921.bin.gz 修改的原理該篇文章已有說明,簡單說就是將此檔案跟讀秒時間相關的設定字串 "not.handled" 置換成 "not.required",在對奕設定畫面就能選擇讀秒方式了。

二、Pachi 4D

1. 介紹
  • 官網:Pachi
  • 棋力:官網作者表示硬體在中等算力之下,棋力達 KGS 2D;若使用頂級硬體配備,棋力可達 KGS 4D
Pachi 是段位引擎中,少數作者有提供棋力判斷依據的引擎。由於一般家機不可能有實驗室般的硬體,那麼 Pachi 在我們電腦上的實力應該視為 2D 比較恰當。 2. 下載 這是最新版本的 Pachi,作者表示只要 CPU 不要太舊,那麼下載這個 avc 版本執行是沒問題的,否則的話下載另一個版本 pachi-12.86-win64-noavx.zip。 解壓縮後產生許多檔案,請存放在自訂目錄,其中 pachi.exe 之後會用到。 3. 安裝引擎 在 Drago 「添加」引擎時,請選擇預設引擎清單中的「Pachi」。由於我們已經安裝好,可直接選「已安裝」→「確定」。 go-ai-gtp-engine-dan-1.jpg-圍棋適合段位實力的 AI 引擎 如上圖紅框,選擇剛剛的 pachi.exe 路徑後:
  • 系統會自動讀取設定檔中的參數,並顯示在「參數」欄位
  • 系統會自動抓引擎名稱及版本,顯示為「Pachi 12.86」
  • 按「確定」即完成添加引擎
之後進行人機對奕時,對奕引擎選擇「Pachi 12.86」即可。

三、AQ 高段

1. 介紹
  • 官網:AQ
  • 棋力:高段
AQ 是由「日本棋院」官方合作開發的圍棋 AI 專案,意在開發世界最強的圍棋 AI,因此雖然官網找不到棋力資料,網路上也搜尋不到棋力的相關線索,但可以想像實力必定不弱,之後我們可以由實測結果來觀察其棋力。 2. 下載 下載頁面有多種版本的檔案,但建議只下載 AQ-mini 的相關版本,這是 CPU 運算的版本。其他版本則是 GPU 運算,除了需要顯卡支援,還要研究 CUDA 的安裝,相當麻煩。 解壓縮後產生許多檔案,請存放在自訂目錄,其中 AQ.exe 之後會用到。 3. 安裝引擎 在 Drago 「添加」引擎時,請選擇我們加入預設引擎清單中的「AQ」。由於我們已經安裝好,可直接選「已安裝」→「確定」。 go-ai-gtp-engine-dan-2.jpg-圍棋適合段位實力的 AI 引擎 如上圖紅框,選擇剛剛的 AQ.exe 路徑後:
  • 這個引擎不需要參數,所以「參數」欄位空白
  • 系統會自動抓引擎名稱及版本,顯示為「AQ 2.1.1」
  • 按「確定」即完成添加引擎
之後進行人機對奕時,對奕引擎選擇「AQ 2.1.1」即可。 4. 人機對奕 AQ 在 Drago 進行人機對奕時,如果設定了讀秒時限,AI 很容易想過頭時盡敗。所以有時限的情況下,AQ 建議改用「GoGui」安裝及對奕。

四、Ray 高段

1. 介紹
  • 官網:Ray
  • 棋力:弈城9D
從 Ray 官網只知道是日本開發的引擎,無法得知棋力為何。不過從網路上搜尋的資料「幾款棋力達到弈城9D的免費引擎」,提到的 RN 就是 Ray,看起來是有頂尖高段、職業水準的。 2. 下載 有多種版本可以下載,但不見得都能跟 Drago 相容,有可能抓不到版本號。我測試的這個版本 rn-4.20.4 檔案 Rn.zip 是沒問題的,不過棋力應該不是最強的,有興趣可以抓其他版本的 Rn.zip 測試。 解壓縮後產生許多檔案,請存放在自訂目錄,其中 ray.exe 之後會用到。 3. 安裝引擎 在 Drago 「添加」引擎時,請選擇我們加入預設引擎清單中的「Ray」。由於我們已經安裝好,可直接選「已安裝」→「確定」。 go-ai-gtp-engine-dan-3.jpg-圍棋適合段位實力的 AI 引擎 如上圖紅框,選擇剛剛的 ray.exe 路徑後:
  • 這個引擎不需要參數,所以「參數」欄位空白
  • 系統會自動抓引擎名稱及版本,顯示為「Rayon 8.0.1+3.0」
  • 按「確定」即完成添加引擎
之後進行人機對奕時,對奕引擎選擇「Rayon 8.0.1+3.0」即可。 4. 人機對奕 Ray 在 Drago 進行人機對奕時,如果設定了讀秒時限,AI 很容易想過頭時盡敗:
  • 有時限的情況下,Ray 建議改用「GoGui」安裝及對奕。
  • 否則的話要參考官網說明,Drago 設定 Ray 引擎時,參數的欄位要填入 --const-time 5 代表一手 5 秒。而且每次想改讀秒時間都要修改引擎設定,比較麻煩。

五、Leela 9D

1. 介紹
  • 官網:Leela
  • 棋力:根據官網說明,如使用頂尖硬體設備,Leela 實力可超過 9 段
之前「可調整棋力的免費對奕軟體」介紹過 Leela,這是最強的免費圍棋對奕軟體。不過本篇使用的 Leela 引擎 LeelaGTP 是 CPU 版本,棋力應該會下降 2~3 子,不過仍可視為業餘頂尖高段。 除此之外,Leela 還有開發 Leela Zero 的版本,由於這類由 AlphaGo Zero 衍生的引擎不少,本篇取其中一個最頂尖的 KataGo 介紹就好,讓本篇介紹的多個引擎之間比較有鑑別度。 2. 下載 解壓縮後產生許多檔案,請存放在自訂目錄,其中 Leela0110GTP.exe 是 CPU 版本,建議先使用這個版本,另一個 Leela0110GTP_OpenCL.exe 則硬體不一定有辦法支援。 3. 安裝引擎 在 Drago 「添加」引擎時,請選擇我們加入預設引擎清單中的「Leela」。由於我們已經安裝好,可直接選「已安裝」→「確定」。 go-ai-gtp-engine-dan-4.jpg-圍棋適合段位實力的 AI 引擎 如上圖紅框,選擇剛剛的 Leela0110GTP.exe 路徑後:
  • 系統會自動讀取設定檔中的參數,並顯示在「參數」欄位
  • 系統會自動抓引擎名稱及版本,顯示為「Leela 0.11.0」
  • 按「確定」即完成添加引擎
之後進行人機對奕時,對奕引擎選擇「Leela 0.11.0」即可。

六、KataGo 9P

1. 介紹
  • 官網:KataGo
  • 棋力:根據「KataGo Wiki」說明,KataGo 在 2019 的版本就已經超越人類,而最新的版本仍在進化中。
KataGo 是免費開源圍棋 AI 引擎中棋力最強的,在最強算力的硬體上執行可以輕鬆勝過人類最強的職業棋士。不過本篇使用的引擎是 CPU 版本,棋力會下降 2~3 子,但應該仍是樂勝其他 AI 引擎。 2. 下載 KataGo 的版本眾多,為了省麻煩建議找 CPU 版本安裝,注意看檔名要有 "eigen"、"womdpws" 等字串比較保險。解壓縮後產生許多檔案,請存放在自訂目錄,其中 katago.exe 之後會用到。 KataGo 引擎還需要權重檔案,而權重檔案也需要匹配引擎版本。如果不想麻煩的話,上面的引擎版本跟權重檔案是能夠匹配執行的,不必太強的 CPU 就能順利執行。下載後可將檔名改短一點,例如 weight.gz,請存放在 katago.exe 的同一個路徑,並記住檔案名稱,之後會用到。 如果有時間調配出最強引擎版本+權重檔案,上面的「權重檔案下載頁面」有大量愛好者自行訓練後上傳的權重檔案,找 .gz 檔下載即可,或在頁面上找「Strongest confidently-rated network」這裡的檔案,這是官方推薦的最強權重檔。如果執行時報錯,顯示權重檔需要的引擎版本不對,請根據錯誤訊息找對應的引擎版本下載。 3. 安裝引擎 在 Drago 「添加」引擎時,預設引擎清單中就有 KataGo。由於我們已經安裝好,可直接選「已安裝」→「確定」。 go-ai-gtp-engine-dan-5.jpg-圍棋適合段位實力的 AI 引擎 如上圖紅框,選擇剛剛的 katago.exe 路徑後:
  • 系統會自動抓引擎名稱及版本,顯示為「KataGo 1.9.1」
  • 系統會自動讀取設定檔中的參數,並顯示在「參數」欄位,但參數內容需要修改
  • 點擊參數欄位最右邊的三點按鈕修改,內容改為 "-model weight.gz -config default_gtp.cfg"
  • 如果前面權重檔案的名稱使用其他檔名的話,參數內容的 weight.gz 請改成自訂檔名
  • 按「確定」即完成添加引擎
之後進行人機對奕時,對奕引擎選擇「KataGo 1.9.1」即可。 4. GPU 版本 這是額外補充的部份,並非本篇之後段位引擎對戰的版本。雖然 KataGo 已經夠強了,但如果有獨立顯卡的話,KataGo 安裝 GPU 版本又會是另一個世界,可參考這篇「安裝Katago TRT版本步驟」的詳細說明,安裝 KataGo TensorRT 版本,並為系統安裝以下工具:

七、段位 AI 對戰紀錄

這 5 個段位引擎的棋力只有 Pachi 比較有底,而 KataGo 的棋力太過夢幻無法預估上限,要對其餘棋力強弱進行猜測還滿困難的,我大概只能先預測這兩個引擎分別是墊底跟第一。 我使用了「GoGui」模擬 5 位 AI 進行循環圈對戰,10 局分勝負,過程細節之後會另寫一篇分享。 最終結果為:
  • KataGo:全勝,險勝 Ray
  • Ray:2勝1負1和,與 Leela 打成平手
  • AQ :2勝2負
  • Leela:1勝2負1和
  • Pachi:全敗
果不其然 Pachi 4D 的棋力在神仙打架中只能敬陪末座,KataGo 碾壓群雄也在預料之中。而 Ray 的棋力不太穩定,能夠小輸 KataGo,也能跟 Leela 打成平手。最後則是 AQ 出乎意料勝過 Leela。

八、總結

有了對戰結果後,就能提供給圍棋段位棋友的對奕訓練推薦:
  • 有了段位實力後,可先挑戰 Pachi,也許先從讓子棋開始訓練
  • 有業餘中、高段實力時,可挑戰 Leela,大概也是要先從讓子棋開始
  • 然後才是挑戰 AQ、Ray
至於 KataGo 的話,這可不是可以挑戰的對象,但其超強棋力可以用來當作分析工具,會比對奕更有益處。之後也會再寫一篇利用圍棋 AI 引擎,幫助我們覆盤、分析著手等等,比較推薦的工具。
圍棋人機對奕系列文章:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

沒有留言:

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP