大模型框架设计

我的大模型架构设计—基于 Athropic 最新的 J-Space 研究

1.先讲个小故事

在Anthropic发表这篇论文之前,我已经提出了“元思考-元审视”模型,即本篇文章后面的部分,没想到竟然和Anthropic撞车了。那本篇文章就按本人的思考过程来了,补充这篇论文。

2.人和AI之间思考的不同

目前AI还停留在对人类的模仿,所以,我们比较两者思考的不同之处。共发现两种不同。

(1)过程自主规划

这一点Anthropic没想到,我先说了。
人类会自主规划思考过程,比如在和人聊天时,只进行基础思考;在写代码时(while举例),会先想循环的条件,再想符合时做的事,最后再进行审视。

(2)思考缓冲区(J-Space)

我们将模型这一步思考的结果想找个地方把当前结果存储一下,用于下一轮迭代,这样可有效解决大模型目前的注意力问题,直接让正在思考的大模型把思考结果存下来,这样的设计更加精准可靠。

这里我们加入 Anthropic 的研究成果进行进一步解释,不过我要说,Anthropic 的研究是说明他们的大模型存在一个 J-Space,来进行寄存,而我的研究是,既然这个仅占大模型参数的 10%的空间就能我问你个大幅提高大模型思考和推理能力(见原文图表),那我们能不能通过编程能力给大模型造一个可供使用的更强大的 J-Space 呢?

Anthropic 的论文指出,在对模型解答提问的过程中(需要推理的问题),J-Space 中的内容极其重要且相关。当研究员提问 “会织网的动物有几条腿”时,J-Space 中首先会有蜘蛛的词元亮起,然后会输出八条腿,如果研究员将蜘蛛改为蚂蚁,结果就会变为六条腿。这说明 J-Space 既是模型思考的充分条件,也是必要条件。
研究员又尝试直接删除这个部分,发现大模型解决普通任务基本不受影响,但是一旦遇到推理任务那就会全线崩盘。
我要吐槽:哎呀,明明之前就想到了这个内容,为什么没发篇论文啊,我连名字都想好了,起个响亮的中文名字“元思考缓冲区”多好听啊

这个专题我们主要讨论了大模型与人类思考之间的差异,我们的想法是,让大模型无线逼近人类思考的方式,即可完成真正强悍的人工智能。具体如何通过编程实现,请看下文

3.下文小目录

我将整个框架分为了三个部分,所以分别对应:

  • 元思考-第四节
  • 思考-第五节
  • 元审视-第六节

接下来我会整体梳理思考过程:

  • 主要过程与产品定位-第七节

最后是本文结尾:

  • 结尾-第八节

4.元思考板块(yuan-thinking)

这一板块,对应的是我们前面说的过程自主规划内容,这里我们首先把用户提示词+系统提示词请根据用户提示词的难度与一般任务的执行方法,确定一下任务的思考过程,任务中有一个缓冲区可以寄存中间结果,请将你计划好的思考过程以 xxxxxx 格式的 todo list输出出来发给大模型
得到大模型的输出后,我们就可以按照大模型的 todo list 来构建中间的缓冲区和思考过程。

5.思考板块(normal-thinking)

对接前面的构建出的思考框架与缓冲区,我们这时首先是/clear(或新开一个对话)清空一下无关上下文,然后向大模型输入这一步的 to do,再给出缓冲区中的内容(第一次思考不需要),再给出缓冲区的使用方法,调用完成后,将结果存入缓冲区

6.元审视板块(yuan-reviewing)

进行审查,分为两块

首先是要求审查,要求大模型将输出结果与用户要求进行对比,检查:

  • 是否符合用户主要要求
  • 是否完整回答了用户的所有问题
    如果不符合要求的话,将写一下下一次的思考建议,将思考建议与上文的内容用户提示词+系统提示词重新打给元思考模型,进行思考。

然后是内容审查(只对于需要准确信息的内容),对这些内容进行一步步质疑,找出问题,能在本板块内解决的自主解决,解决完重新跑元审视流程,解决不了还是将思考建议+……一起打给元思考模型重新思考。

7.主要过程与产品定位

主要过程

过程大概是这样:用户输入-元思考-思考-元审视-输出

举个具体的例子:

  1. 用户输入了要求,要求 AI 找一下最新的科技新闻
  2. 元思考模型给出方案,调用搜索引擎搜索最新新闻并将新闻存在缓冲区,筛选科技新闻,生成新闻文稿,检查文稿并运用简洁(或其他)一点的语言润色(此处逗号隔开的是一项 todo)
  3. 思考模型 1 搜索了 50 个最新新闻存在了缓冲区
  4. 思考模型 2 筛选出来其中的 20 条科技新闻存在了缓冲区
  5. 思考模型 3 对新闻进行了简单合并存在了缓冲区
  6. 思考模型 4 对新闻稿进行了简单润色存在了缓冲区
  7. 元审视模型通过了要求审查
  8. 元审视模型驳回了内容审查,认为其中一条不符合实际
  9. 元审视模型进行了局部修改,重新审视
  10. 元审视模型通过了要求要求审查
  11. 元审视模型通过了内容审查
  12. 完成输出到用户

实现方法

我的整个框架大概是使用python编写,大概的架构是首先将你要是用的大模型的API接入到我的“元思考”框架中,然后通过这个框架把他改变成(即优化出来最好的输出)良好的输出(至少由于之前),最终在本地提供一个 API 服务(类似Llama)。

最终的请求流程图是:

1
用户对本地接口的请求-请求通过本地“元思考框架”-框架按步骤发送提示词到已经配置好的云端API-根据API的反馈完成思考-向用户发送思考结果

实现效果

本地界面:
要在本地依靠python后端,和HTML前端,完成这个本地界面,界面首先显示大模型规划的思考步骤,然后根据每一步的思考都显示出来。设计一个简洁清晰但能容纳各种情况的网页UI。

最终效果:
致力于将大模型的输出的能力提升10%~20%,特别是本地小模型,希望能使8B小模型达到32B的级别。

产品定位

此产品定位于AI Agent之间和大模型的输出之间,我愿意将这一层称之为“思考+”,做出来“元思考-元审视”框架。

8.总结

本文借鉴Anthropic的J-Space原理,思考给没有这种思考区域的模型加上这只有10%的区域,提高它的推理能力。