DAY 265

Laya vs Jev 兩個 AI 互打,換台電腦就翻盤

SLIDES · 4
Day 265 Laya vs Jev 兩個 AI 互打,換台電腦就翻盤 — 投影片 1Day 265 Laya vs Jev 兩個 AI 互打,換台電腦就翻盤 — 投影片 2Day 265 Laya vs Jev 兩個 AI 互打,換台電腦就翻盤 — 投影片 3Day 265 Laya vs Jev 兩個 AI 互打,換台電腦就翻盤 — 投影片 4
1 / 4

網路上常看到這種標題:某個免費的 AI 打贏了付費的那個,底下附一張比分圖。看到這種東西,你大概會想,那我是不是該換過去。

這幾天我就照著一組這樣的數據自己跑了一遍。同一份測試、同一套程式,從 MacBook Air 換到 MacBook Pro,貪食蛇的輸贏就整個反過來。

這件事要從昨天那篇說起。Day 264 我介紹了 Jev——一個只會做「選擇題」跟「是非題」的 AI。你給它一段文字,它從你事先定好的選項裡挑一個,不會寫回覆、不會解釋理由。它要付費,而且每問一次都要連出去問原廠的伺服器。

這種東西一出來,免費公開的對手通常不會讓人等太久。Laya 就是:同樣只做選擇題,但它可以整個裝進你自己的電腦裡,用你的處理器算,不用連網也不用付錢。

然後有人把這兩個放在一起打電動。一位叫 PromptEngineer48 的開發者寫了一個對戰擂台,讓 Laya 跟 Jev 玩貪食蛇跟格鬥遊戲——蛇要往哪轉、現在要不要出拳,每一步都是 AI 當下自己決定的,沒有寫好的腳本。他跑出來的結果是免費的 Laya 以 90:50 贏了付費的 Jev,第一場格鬥還直接把對手打倒——不過他自己也記了,第二場格鬥反而是 Jev 血量領先。整套他都公開了,大家可以自己跑。

我照著跑了一遍,格鬥那場結果就反過來了。而且把同一套東西從 MacBook Air 換到 MacBook Pro,貪食蛇也跟著翻盤。

這篇分享:這個對戰擂台怎麼讓 AI 打電動、我在兩台筆電上各跑出什麼數字、為什麼單場的「哪個 AI 贏」其實是在問「你家電腦多快」,以及看完它們玩之後,我對「這種 AI 適合幫我們做決定嗎」的答案。不用會寫程式也讀得完,要動手的部分我放在最後。

格鬥場一場打完的畫面。左邊 Laya 裝在這台筆電裡、右邊 Jev 連出去問,下方各自列出做了幾次決定、每秒幾次、回答要等多久,以及六個動作各自的機率

先講它怎麼讓 AI 打電動

擂台有兩種模式,兩個 AI 兩種都要打。

一種是貪食蛇。一場 60 秒,場上隨時有三顆蘋果,蛇自己一直往前跑,AI 只管方向跟要不要衝刺。吃到一顆蘋果 10 分,時間到比誰分數高。這條蛇不會死:撞到自己的身體會穿過去,撞到邊界會從另一邊冒出來。所以它考的不是閃避,是找得到找不到蘋果。

另一種是格鬥。一場 90 秒,兩邊各 100 點血,每一步從六個動作裡挑一個。把對方打到 0 血就直接結束,撐到時間到就比誰剩的血多。防禦擋下來傷害只剩 18%,所以這邊考的是接不接得住對面當下的動作。

兩邊拿到一模一樣的畫面資訊,回答一模一樣的兩個問題。

貪食蛇問:

  • 要往哪轉?大左轉、左轉、直走、右轉、大右轉,五選一
  • 現在衝刺會比較早吃到蘋果,還是會衝過頭?是或不是

格鬥場問:

  • 現在要做什麼?前進、後退、出拳、踢、防禦、跳,六選一
  • 現在該不該出那記又慢又重的攻擊?是或不是

兩題一次問完。沒有腳本,每一步都是 AI 當下的回答。

差別只在 AI 跑在哪。Laya 整個裝在這台筆電裡,算的時候用筆電自己的處理器;Jev 每一步都要連出去問一次。

作者也做了幾件事讓兩邊比得公平一點:兩邊的蘋果出現順序完全一樣;開打前先讓兩邊各練一次;最重要的是,整場的節奏是照「比較慢的那一邊」去調的。慢的一方不會因為慢再吃第二次虧,它的劣勢只會反映在「每秒能做幾次決定」上。

不過有一項不對稱:程式讓 Laya 同時發 2 個問題出去、Jev 可以同時發 3 個,因為 Jev 要連出去跑一趟。所以 Jev 的「每秒幾次決定」本來就先多了 1.5 倍。

這個設計等一下會變成重點。

MacBook Air 上,Laya 慢到打不了架

M3 MacBook Air、16 GB。Laya 本來想用顯示晶片加速,一開就當掉,只好退回用一般處理器慢慢算。

(以下的秒數都是中位數:一半的回答比它快、一半比它慢。)

Laya(裝在這台筆電裡) Jev(連出去問)
貪食蛇 60 秒 30 分,回答一次等 1.86 秒,每秒 1.07 次決定 10 分,回答一次等 0.67 秒,每秒 4.29 次決定
格鬥 90 秒 剩 30 血,回答一次等 6.56 秒,每秒 0.25 次決定 剩 86 血,回答一次等 0.69 秒,每秒 3.85 次決定

裝在自己筆電裡的 AI,比連出去問一趟還慢:貪食蛇慢 2.8 倍,格鬥慢 9.5 倍。作者那台記錄到的是 0.13 秒。

貪食蛇那場 Laya 還是贏了,30:10。因為節奏被調慢去配合它,蛇整場爬得很慢,Jev 想得再多也沒有蘋果可吃。

格鬥那場就撐不住。90 秒裡 Laya 只做了 23 次決定,Jev 做了 347 次。開場鎖定節奏的時候,踢擊的預備動作就已經拉長到 4.3 秒去等它,還是不夠——後來 Laya 又變得更慢。

搬到 MacBook Pro,讓 Laya 跑得動

M1 Pro、32 GB,這台的顯示晶片 Laya 用得上。

等待時間整個掉下來:貪食蛇從 1.86 秒變 0.44 秒,格鬥從 6.56 秒變 0.53 秒。(這是用顯示晶片跟用一般處理器的差別,中間還混進了不同的網路路徑,不算是單純在比硬體。)

然後單場結果整個翻過來:貪食蛇 Jev 110:70 贏,格鬥 Jev 在 33.6 秒把 Laya 打倒。

一模一樣的兩個 AI、一模一樣的程式,換一台電腦,貪食蛇的輸贏整個反過來,格鬥也從撐完 90 秒變成 33.6 秒被打倒。

所以我跑了 75 場

單場什麼都證明不了,這件事我自己的數據就打自己臉:同一台 MacBook Pro,我手動跑的那場格鬥是 Jev 把 Laya 打倒,讓它自己連跑 37 場卻是 Laya 贏 36 場。

於是我寫了一支程式自動跑,一次只跑一場,蛇跟格鬥輪流。50 組不同的亂數種子(貪食蛇就是蘋果出現順序),每組打兩次、左右邊對調,免得有一邊因為位置佔了便宜。原本要各跑 100 場,跑到貪食蛇 38 場、格鬥 37 場的時候遇到一個錯誤中斷了。

先看速度,因為速度這時候已經拉平了:

Laya Jev
貪食蛇回答一次要等 0.44 秒 0.65 秒
貪食蛇 38 場總共做了幾次決定 10,438 10,357
格鬥回答一次要等 0.51 秒 0.65 秒
格鬥 37 場總共做了幾次決定 4,579 5,230

兩邊做決定的次數幾乎一樣,格鬥還是 Jev 多一點——但 Jev 是靠同時多問一個問題才追平的,換算回單次問答,Laya 還是比較快。作者那邊一邊每秒 13.4 次、另一邊只有 2.9 次的差距,在這裡不見了。

再看勝負:

Laya 贏 Jev 贏 平手
貪食蛇 38 場 2 34 2
格鬥 37 場 36 1 0

兩個遊戲都是一邊倒,只是方向相反。

貪食蛇那邊 Jev 是真的比較會找蘋果:每場大多是 Jev 120 分、Laya 60 分,38 場下來 Jev 吃掉 470 顆、Laya 228 顆。

格鬥那邊 Laya 贏在一直出拳。典型的一場是 Laya 出手 17 次、命中 10 次,Jev 出手 9 次、命中 5 次。與其說它算準了時機,不如說它本來就偏向出拳。

那個「4 倍快」量到的是什麼

他那支影片的標題是「Laya (Free) vs Jev (Paid): Same Game, 4× Faster Winner」。而他自己寫的說明裡講得很清楚:Laya 回答一次約 0.13 秒,Jev 約 0.96 秒,而且他特別註明「Jev 的等待時間包含我從印度連出去的網路來回」。

同一份說明裡他還做了一個跟遊戲無關的測試:拿 8 個固定的蘋果位置問方向,Jev 答對 8 題,Laya 答對 7 題,而且比較沒把握。他自己下的結論是「Laya 在這裡的優勢是速度,不是判斷」。

那個 4 倍量到的,是這個 AI 就裝在他那台電腦裡、那個 AI 每問一次都要飛過半個地球。換一台電腦、換一條網路,數字就換了。

Day 264 我把 Jev 的成績單重跑了一遍,看到的是官方那組「快 193 倍、便宜 444 倍」沒有點名在跟誰比。這個對戰擂台是同一件事的另一面——這次連「誰贏」都是你家電腦決定的。

但盯著畫面看,兩邊都不怎麼精準

看數字會覺得 Jev 比較會找蘋果,看畫面是另一回事。

那條蛇不會死,最近的蘋果有多遠、在哪個方向,也是算好直接餵給它的。條件放得這麼寬,60 秒裡 Laya 最多吃到 14 顆、通常是 6 顆,Jev 最多 19 顆、通常是 12 顆。剩下的時間,蛇都在繞。

格鬥那邊更明顯。遊戲給了「防禦」這個選項,擋下來傷害只剩 18%,而且對手踢空之後會空出一段很長的空檔。37 場裡 Laya 一次都沒擋過,Jev 總共擋了 14 次。兩邊都是一路往前打。

看到蛇在繞,我自己的疑問是:它是真的判斷錯方向,還是一次只挪一點點,所以錯了也看不出來?翻了程式碼,答案偏後者,而且是刻意設計的。

那五個選項不是五個方向,是方向盤要轉多少。「大左轉」等於往左打死,「左轉」只打三成五,「直走」是回正。蛇一直往前跑,AI 的回答只決定這段路要彎多少。

而且回答不會直接照做。程式會把新答案跟上一次的答案混在一起,新的佔六成五、舊的佔三成五。原因是答案會晚個一秒左右才回來,兩個還在路上的決定如果互相打架,蛇會抖。

再來是上限:節奏調到讓慢的那一邊一個來回最多只能轉大約 85 度;每個答案自己還能轉多少也有限制,轉完就放手,蛇回到直線,等下一個答案。

所以一次答錯幾乎看不出來。你在畫面上看到的繞圈,是好幾十次決定疊出來的。

作者其實在題目裡就先警告過 AI 了。他寫的大意是:一個轉彎答案只維持一小段,然後蛇就又走直線,所以小轉幾乎改變不了方向;如果蘋果在後面或偏向一邊,就要回答大轉彎,而且要一直回答,直到蘋果快到正前方為止——這種時候只小轉,蛇會繞著蘋果轉到天荒地老。

所以這個測驗真正在考的,不是分不分得出左右,是敢不敢連續好幾次都說「用力轉」。

作者還量過一件事:把轉彎半徑放寬到 139 像素,連一支寫死的完美程式都會繞著蘋果打轉,一分鐘只吃到 2.5 顆。這行數字就寫在程式的註解裡。

我沒有把每一次的選擇存下來,所以沒辦法直接證明它們是選錯邊,還是選得不夠果斷。但從題目被寫成這樣就看得出來,作者自己認定後者才是難的地方。

看到這裡我開始懷疑:這種能力,真的適合拿來幫我們做分類、做決定嗎?

我自己的答案是分兩種情況

一種是「一題就結束」的。作者那個測試——8 個固定的蘋果位置問方向,Jev 8 題全對,Laya 對 7 題——題目擺在那裡不動,兩邊都答得不錯。Day 264 我重跑 Jev 的資安警報分類也是這樣:一則警報進來,判斷完就結束了。

另一種是「一題接一題」的。上一步的結果會變成下一步的題目,錯一次會把自己推到更難的局面,而它們沒有任何辦法發現自己在繞圈。它們不會寫字,只回一組機率,所以它們快——也所以你問它為什麼出這一拳,它答不出來。

所以我會這樣分:選項就那幾個、每一題各自獨立、答錯不會滾雪球,這是它的主場,客服訊息分類、警報分級都算。要它在一連串的決定裡自己修正方向,看它玩貪食蛇就知道了。

想自己看一場的話

整套是免費的,作者放在 GitHub:https://github.com/PromptEngineer48/laya-vs-jev-arena

兩邊都選 Laya 就完全不用花錢、不用申請任何帳號,也可以自己用鍵盤下場跟 AI 對打。想讓 Jev 上場才要去它的原廠 TypeSafe 申請一組通關密語(API key,就是讓對方認得你的一串字)。第一次叫 Laya 出場要等 30 到 60 秒下載它的大腦,那段時間不算進比賽。

裝起來要用到終端機(電腦裡那個打指令的黑底視窗)。沒碰過也沒關係:把上面那個網址整個貼給 ChatGPT 或 Claude 請它帶你做,或是找身邊會寫程式的朋友幫你開起來,兩條路都行。已經在用終端機的話,電腦裡要先有 Python 3.10 以上,然後就是這幾行:

git clone https://github.com/PromptEngineer48/laya-vs-jev-arena.git
cd laya-vs-jev-arena
pip install -r requirements.txt
python3 server.py 8740

換台電腦就翻盤的比賽,證明不了誰比較聰明;想知道它會不會判斷,自己盯著它玩一場貪食蛇就夠了。


Laya vs Jev 對戰擂台:https://github.com/PromptEngineer48/laya-vs-jev-arena 影片 Laya (Free) vs Jev (Paid): Same Game, 4× Faster Winner:https://www.youtube.com/watch?v=x1GFo1eG8d0 Laya(免費公開,Convai Innovations):https://github.com/NandhaKishorM/laya Day 264 什麼是 Jev?為什麼我覺得它過譽了?:https://www.dawsonwang.com/day/264

延伸閱讀
看完整 264 篇 →