个人随想-gpt-o1大模型中推理链的一个落地实现
首先祝大家中秋节快乐。
最近openai又推出了新的模型openai o1还有它的mini版。官网的介绍,就是它的推理能力很强,比gpt-4o有很大的提升。
最近也跟同行在聊这个o1,看看落地方面有哪些可行性。在我们自己的实验上,把o1用在Chain of Goal-Oriented Reasoning 也就是CoGOR上,效果还是不错的。
有人估计没听说过CoGOR,我稍微解释一下你们就明白了。
记得很多客户跟我们抱怨说,现在的gpt做一些问答,还是可以的,但是真的想让它做一些具体的任务,总觉得不够好。
第一:一个任务,我需要跟它互动很多次,它才能大致理解我的内容。
第二:一旦任务过长,模型会出现幻觉,或者“前言不接后语”,导致最终的结果不对,我又要重新开始提问。
我说,你举个例子:
客户说:就比如,前段时间出来的llama3.1,我要给领导跟同事做一个介绍。我就问了大模型,“帮我写一个介绍llama3.1的文章?“
写出来的东西,乱七八糟,然后我就只能继续跟大模型说:请介绍得再深入一点。
接下来,llm又给我介绍了一大堆,除了字数变长了,其它的,我真没发现有啥区别,这个东西,我跟本没法用,更别说去汇报了。
不光是这个客户,我相信很多的人去让大模型帮你生成一些文档啊,内容性的报告啊,估计都会有这样的问题。
比如我一个以前的同事,作为公司的中高层吧,经常需要写一些报告啥的,我让他问问gpt,直接回复一句:gpt太扯了。。。
不知道大家有没有遇到类似的经历。
其实大家应该能想到,gpt生成的结果不好,是因为你给gpt的前置内容太少了。
直接让gpt帮你写llama3.1的介绍文章,或者直接让gpt帮你写进入和建设企业的技术壁垒,别说gpt了,一般的人,也不知道该从哪里下手。
那么如何可以很好的解决这样的问题呢?
我这里大致介绍一下我们这里的落地实现,抛砖引玉,欢迎各位大神多多讨论:
其实大家应该都可以想到,大模型对于您的问题回答的不好,应该是您给大模型提供的信息太少。现在很多人给大模型交互,就一句话:给我写一个关于xx的报告。给我写一个关于xx的研究文章。稍微好一点的,最多加上一句:字数不低于xxx个字。
对于这样的指令,大模型其实很难把握住用户的具体需求,而你要让用户学习提示词,把所有关于你的需求都写清楚,这也不太可能,很多时候,用户都不知道自己写的这个报告,要包含哪些方面。
那怎么办呢?
我们借助于llm的推理能力,来与客户沟通需求,再完全确定需求后或者达到一定的询问次数后或者用户主动结束需求沟通后,再进行下一步的具体任务执行。
估计很多人很懵,那我来举个例子,还是以上面的llama3.1的报告为例:
Human:请帮我写一个关于llama3.1的bolg。
AI:这是一个很好的goal。llama3.1是一个很有价值的模型。让我们完善这个目标并收集必要的信息,以确保文章的信息更加丰富。我们已经确定了一些目标,让我们进一步探讨这些要求,并添加更多具体细节。请问,您的文章受众目标是谁,他们是Ai爱好者、开发人员还是一般的技术读者。您需要这篇文章大概多少字。您想强调llama3.1的哪些方面?例如:性能、新功能或者潜在的应用程序?
Human: 文章的受众目标是AI开发人员,字数最大不要超过500个字。请重点介绍llama3.1的性能以及与其他的sota模型的对比,比如:gpt-4o、claude 3.5等等。模型的基本参数您可以从meta的官方网站或者官方blog获取。模型的对比信息,您可以参考一些reddit的文章。
AI:谢谢您提供的具体的需求,我们已经更新了您的上下文。让我们进一步完善您的需求并创建更有效的blog,从而为您的AI开发人员提供更有效的帮助。请问您是否希望我们重点关注特定的reddit文章的信息从而获取llama3.1的性能对比信息?您是否希望在您的blog中包含视觉(图片或表格)元素?考虑到只有500个字,您希望如何对内容进行优先级的排序,例如:我们是否应该为模型规格分配更多的word,性能比较和潜在的应用是否可以将word的比例降低?
Human:请参考r/localllama的reddit的文章,这个里面应该有关于llama3.1的性能对比信息。文章中只需要性能对比的内容,不需要视觉或者图片信息。请重点关注llama3.1的性能信息。另外,所有引用的信息,请标明引用的地址,方便我做更加详细的了解。
AI:。。。。。。。。
Human:。。。。。
(这里不想打字了,太累了)
整个逻辑,我详细大家应该都能听懂,无非就是利用AI的能力去收集用户的信息,那么有人问了,如何结束用户收集呢?
这个其实很简单,用户可以直接输入 : finish 或者 end。应用收到指令后,就结束需求收集的过程,然后就开始进行下面具体的应用处理了。您可以使用langgraph、autogen、crewai等等,任何您觉得您最熟悉的multi-agent框架去处理你的业务即可。或者,你的系统可以默认3次收集,3次与用户交互结束后,就自动进入到业务处理。
看起来很简单吧,对于需求的收集,以前我们用的是sonnet以及gpt-4o,现在我们已经换成了gpt o1。个人觉得效果比前两个好。
需求收集完的业务逻辑处理,就很简单了,无非就是各种multi-agent的处理,大家应该都会,如果不会的,也可以留言,我过几天再出一期。
ok,难度不大,大家应该也都能想到,我这里就是正好想到了,跟大家汇报一下我们最近的o1的落地实践。
最后再一次祝大家中秋节快乐。
哦,对了,别忘了关注我的视频号。谢谢啦