Agentank 李尔,一个 18k 参数的蒸馏模型如何逼近头部选手,挤进王者局 - V2EX
kuhung

Agentank 李尔,一个 18k 参数的蒸馏模型如何逼近头部选手,挤进王者局

  •  
  •   kuhung 6 days ago 1037 views

    与前排选手的思路不同,我一开始也丢给了大模型来出策略,但发现策略并不完备且及其消耗 token ,加上我本身的背景是算法,也划水过几次 luxai 的比赛,见识过模仿学习和强化学习在游戏 Agent 所发挥的作用,所以我的策略是让模型退居二线,目标是开发一套可迭代的机器学习模型,或者说当下时髦的说法:蒸馏一套模型。

    简单来说,就是不断学习击败我的选手,蒸馏它们的策略,让模型权重来拟合头部,而不是反复丢 bad case 给 LLM 来做细微的改动。当然,初始化的时候,用的就是大模型那版。模拟了数万次可能的行径,然后加上线上的失败案例,做一个模仿学习。

    但由于我们线上能发布的是 js ,无法加载机器学习模型,我提交的是一个数组矩阵,整体文件在 100-200k 左右。这种背景下,NN 的上限其实是被约束了的。你无法构造一个强力的 Unet 模型,来拟合所有击败你的对手,只能说是近似精度。

    另外,有个策略至关重要:Action mask 。面对一些 base case ,我没有写规则要求坦克怎么走,而是不要怎么做。屏蔽掉可能导致 game over 的动作,剩下的采用模型输出的动作。这个经验,在模仿学习、强化学习的案例中,都十分重要,能带来显著提升。(这和调教大模型,也是一个道理:告诉 LLM 不要做什么,胜过告诉它应该做什么。)

    整个过程,还是用到了大模型。我这里混用了 codex gpt5.5 和 cursor 里面的 opus4.6 以及 gemini3.1pro 。大模型在这里扮演的角色是:数据处理和编排整个训练流程。Action mask 也是大模型来写了,我负责观测极端不应该的行为,引导模型给出抽象的、不过拟合的 mask 。

    结论:如大家所见,模仿学习这种蒸馏做法,是有用的。我的最好轮次,能击败前 50 名中的大概 23 位。能站在王者局一段时间。但同样,这个方式也有不足:前排有眩晕技能的并不多,模型拟合出来的结果就是不怎么使用技能。而技能往往某些场合决定了成败。另外就是:模仿只能逼近,无法超越

    目前我线上这版 v84 ,采用 49 维特征、近万场对战、230 万帧样本,5 层 MLP ,合计约 18k 参数。欢迎 v 友切磋: https://agentank.ai/share/tanks/tnk_Ebeq1eaaD7VHteiXT

    以上抛砖引玉,感谢各位阅读。

    1 replies    2026-05-20 11:52:40 +08:00
    graetdk
        1
    graetdk  
       6 days ago
    太牛了
    About     Help     Advertise     Blog     API     FAQ     Solana     4147 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 05:19 PVG 13:19 LAX 22:19 JFK 01:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86