重要: 由于ISP擅自更改网络策略, 目前论坛正在通过备用网络方案服务.

在此期间, 服务可能不稳定或出现故障. 请避免使用高带宽业务如网盘等.

我们正在全力寻找替代方案.

If you're reading through English, please translate the content above. Thanks for understanding.

训练的时候感觉就像坐在一个大号电烤炉旁边.

可能该考虑下夏天的时候把办公位搬去二楼了.

我设计了一套过滤系统, 协助agent模型提取信息. 基本上就是将mas存档每一个有意义的项提取出来, 然后手工设计触发器和提示词.

我的依据是, 目前为止agent模型的泛化能力表现不如预期. 我们应该给agent模型尽可能大的容错性, 确保其即使无法输出正确引导也要让核心模型获得必要信息.

虽然比起一项技术来说更像是水磨工夫, 但是我将这套系统称为MFocus. maica使用多个模型组合完成任务的核心思路, 就是通过辅助模型和驱动, 使获取的信息可读化, 友好化, 让核心模型专注于自己的任务, 即角色扮演.

我知道财大气粗的方案肯定能做得更好, 但maica或许更适合广泛适应的角色扮演. 只有在完成之后才能检验了.

ps.加一层循环应该能让代码好看很多, 但是我懒得弄了.

    我已经将mfocus推送到git.

    其实我比较担心大量正则查找的性能问题, 但是也没有别的办法可想了-基本没有.

    • 此前可以正常运行的awq量化出现了问题. 我提交了issue, 希望会有人替我想想办法.
    • 出于我不知道的原因, 使用gptq量化的过程中显存溢出了, 在此之前我没有遇到过这种情况, 可能也是qwen2本身的问题. 如果我要继续对核心模型进行gptq, 我可能需要一张专用的显卡.
    • 使用直接插入emotion的数据集微调效果不佳. 很可能是被拆分为不同的system prompt使其关联性减弱, 而直接插入的表情字符在token切分过程中也出了问题. 需要格式化?
    • 修改system prompt导致了其它问题. 虽然看起来像过拟合的一种, 但超过一定step之后模型表现的态度出现了直观的反转. 我猜测插入的内容可能打乱了分词表和接龙的原有结构, 这是过拟合的另外一个表现.

    我首先需要定位量化流程中存在的问题, 然后尝试格式化表情字符并再次观察训练效果, 再对驱动进行改装.

    如果实际结果证明使模型直接输出情绪标识真的是不可行的, 我们只能fallback到原有的计划, 即为agent模型引入更多任务.

    假设什么都一切顺利每次都是错的. 这会是一场苦战.

    #196 Edge

    我做过一个语义搜索的小demo,用词嵌入代替文献检索中的关键词检索与正则匹配。

    步骤如下:

    1. 爬取指定期刊上的部分文献,包含题目、关键词和摘要
    2. 用openai的embeddings模型做嵌入,结果保存至本地的向量数据库
    3. 用户提供想法文本,这段文本也会转化为向量,计算与本地数据库中的向量的距离

    这种做法是考虑到文本与关键词间有稳定的匹配关系,在这里可能表现不好,因为缺少角色指令、态度明确的数据集。不过我认为这是一个十分轻量的方案,并且辅以文本分类也许可以减少部分人工。

    如果您认为这一想法值得考虑,我会在这几天里把相应代码整理出来。

      #199 Vadera 我知道langchain有相关的功能, 但是情况在Mfocus上有一定的区别.

      1. Mfocus的目标并不是检索, 而是分析+提取. 在文本输入之初, 我们并不知道我们"需要"形如什么的数据, 这极大地削弱了langchain检索的功用.
      2. Mfocus的数据实际上来说并不多, 只有最多一百多条. 在这样一个相对小的规模上, 全部用正则比部署一个模型可能还省一些.
      3. Mfocus需要读取存档, 而存档的数据并不是人类直接可读的, 它的键名包含很多缩写, agent基本上不可能理解它.

      我确实很认真地考虑过langchain检索的可行性, 但是结论是那只适合检索海量信息和文献. maica的需求对它来说太小而且太刁钻了.

      关于对mfocus的进一步优化, 我有一些设想. 但是再做优化基本上就是要求agent去做它比较不擅长的任务了.

      我只能把这些放在解决核心问题后面.

      我觉得我有点太累了. 正好今天手机到了, 我打算放个假陪陪手机.

      已经看不懂了哈哈哈,但是加油

      假没有放太久. 我正在尽快整理数据集投入第二次训练, 至少先做完我有能力做的内容.

      在此同时, 我希望能等到swift的答复. 我在修普诺斯和密斯特拉上都复现了awq失败的问题, 我觉得这不是我的问题.

      除了核心模型的设计和技术, 我也确实有必要在接下来抽时间改良mfocus的设计. 我希望首先将存档整理为可读的语言, 再让agent模型进行关联度的检索. 这个方案或许会引入额外的计算量, 但是我想效果会极大地优于正则和langchain.

      有时候空调开得太低会让我感觉到很消极, 原因尚不清楚.

        我可能至少要等上两三天才能收到关于量化问题的解决方案, 在此之前我们只能使用全量模型进行测试.

        实际上用全量模型执行生产部署也是可行的, 但显存会非常紧张而且无可拓展. 我不希望陷入这种局面.

          进展: 使用第三代数据集训练的模型基准效果良好, 但是输出的表情未免太少了.

          我接下来会验证这是否源于拟合不足. 既然其破坏性不明显, 或许也可以通过组合拳的方法解决.

          今天抽空给卡尔萨斯的冷排换了风扇. 非常累人, 提升只能说勉强有. 这个冷排太差劲了.

          测试了基本接口的各项功能, 子模组前端应该已经投入开发. 正在补全必要的接口.

          正在对mfocus的改良进行进一步实证.

          今天太累了, 晚上这几个小时就歇过去了.

          闲不下来, 至少不能让机器闲着.

          在改良mfocus的测试中, agent模型的表现意外地还不错. 我对这个想法有了一点信心. 至少肯定比正则好.

          既然现在也没办法对核心多做什么了-我的issue还没人回, 我打算继续测试agent的最佳表现实践. 它肯定可以做得比这好得多.

          同时, 这个测试应该说证明了agent的泛化能力比我想象中强-前体分析也有改良的空间.

          这个草台班子为什么还不理我的issue 我急死了

          新功能搞那么多, 就不能把严重bug修一下吗

          对于基本的抽取, 深度训练后的agent表现良好, 对于一些比较绕的情况也能抽取正确的信息.

          我只是没办法让它停止回答"你好". 可能只能从硬编写上去掉它了.

          这是mfocus工作的完整流程展示. 虽然其稳定性其实很差, 但是能通过打补丁的方法改善.

          在案例中, 针对"我们现在干点什么好呢"的提问, mfocus能够从存档中抽取"[player]想过和莫妮卡去爬山", 并依据"爬山"的关键信息从互联网中搜索附近的景点--虽然它暂时还不知道附近是哪附近. 最终这些数据将被呈递给maica核心用于生成最终回答.

          这一套系统的复杂度和不确定因素太高, 毕竟很难完全控制模型的输出会是什么样子, 很可能会有损坏的格式. mfocus的驱动程序中带有数套保险, 能够确保mfocus在错误结束的情况下仍然能够呈递有限的信息, 或过滤误导性的内容.

          openserp的信息提取能力有点差劲, 页面上带点富文本的可能就抽不出来了.

          我很希望有一个免费好用的搜索引擎api.