微软最新推出的大语言模型框架AutoGen,号称目前地表最强AI Agents。不知道有多少朋友和我一样,在感受了LangChain Agents的大力出奇迹后,又心痒难耐想把AutoGen搞起…
好吧,那就一起来吧。AutoGen在构建复杂的基于大语言模型工作流方面,挺好用的,大家可以看[AutoGen:Enabling next generation large language model applications]文档的介绍。我的天啊,LangChain还没有怎么搞熟,下一代的AutoGen就来了。
何为AutoGen
AutoGen是一个AI应用开发框架,允许使用多个代理程序,也就是Agents来开发具有相互对话能力,以解决任务度的大语言模型应用程序。简化了复杂的大语言模型工作流的编排、自动化和优化,它最大程的提高了大语言模型的性能。
什么神仙打架,八仙过海,各显神通,说的就是AutoGen吧。以后,我们的AI应用就是复仇者联盟,写代码的我们只要打下响指,一切搞定…
LLM工作流
设计、实施和优化一个能够充分发挥大语言模型潜力的工作流程是需要大量的工作和专业知识的。自动化这些工作流程具有极大的价值。随着开发人员开始开发越来越复杂的基于大语言模型应用程序,工作流会更加的复杂。AutoGen尝试在这些方面帮我们解决一些问题。
接下来,就让我们结合[Getting Started | AutoGen (microsoft.github.io)]来一起学习起来吧。
AutoGen
AutoGen允许以最少的Code,来构建基于多代理对话的LLM应用。下面,我们来看官方给的例子。在这个例子中,我们要搞明白AutoGen和agents 之间的关系,agents和agents是怎么相互对话的。
Multi agent conversation framework
- ConversableAgent
是一个基于对话的,其它可对话的代理。它管理着AssistantAgent、UserProxyAgent和GroupChatManager,它们分别代表不同的代理类型。
- AssistantAgent
在AutoGen中担任AI助手的角色。它会默认使用LLM,为用户编写代码(比如python),然后由用户执行。它还可以接收执行结果并提出更正或修改建议。
- UserProxyAgent
它就好像管家,当得到我们的授权后(征求我们的输入,或提供一些提示,比如是否继续还是退出?),会代理我们去做一些事情。它还具有执行代码和调用函数的能力(接收到的消息中),就好像您家大业大,您是王多鱼,那么管家也是需要指使人去修剪草坪,做饭 什么的,听起来太美好了…
- GroupChatManager
群组聊天管理器,它可以包含多个AssistantAgent\UserProxyAgent。按功能逻辑,封装起来。
UserProxyAgent和AssistantAgent 自动对话Demo
上图,最左边是两个Agent,分别是Assistant Agent和User Proxy Agent。在中间,用户发出指令后,不再需要干预,这两种Agent就自动相互对话解决了问题。最右边,输出了结果。
为了更好的理解Agent间的自动对话,我们上代码。
Solving Tasks Requiring Web Info Demo
- 首先我们来安装两个包,分别是AutoGen和docker。
%pip install pyautogen~=0.2.0b4 docker -q -U
- 加载配置列表
在配置列表中定义了模型和对应的API_KEY。
llm_config={
"timeout": 600,
"cache_seed": 42,
"config_list": config_list,
"temperature": 0,
}
# 根据自己的模型使用情况和API_KEY 设置
config_list = [
{
'model': 'gpt-3.5-turbo',
'api_key': '*****************************'
}
]
- 创建Agents
# create an AssistantAgent instance named "assistant"
assistant = autogen.AssistantAgent(
name="assistant", # 助理Agent
llm_config=llm_config # 配置
)
# create a UserProxyAgent instance named "user_proxy"
user_proxy = autogen.UserProxyAgent(
name="user_proxy", #代理Agent
human_input_mode="TERMINATE",
max_consecutive_auto_reply=10,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
code_execution_config={"work_dir":"web"},
llm_config=llm_config,
system_message="""Reply TERMINATE if the task has been solved at full satisfaction.Otherwise, reply CONTINUE, or the reason why the task is not solved yet.
"""
)
- 接下来两个Agent一起合作,通过一篇文章的链接,告诉我们谁应该来阅读这篇论文。
user_proxy.initiate_chat(
assistant,
message="""
Who should read this paper: https://arxiv.org/abs/2308.08155
"""
)
代码执行后,我们看下过程:
如上图,首先user_proxy,这个人类代理向assistant助手,提问谁应该来读这篇文章。
助理会尝试回答这个问题,需要了解论文中的内容和它上下文信息。它给到我们一段python脚本,去获得论文的内容,将摘要信息抽取出来,并告诉proxy 运行这段代码。
在这里user_proxy 就成功执行(execution succeeded)了刚刚assistant给的代码, 助理接下来根据这个摘要,来决定接下来哪些人是适合读这篇文章的。
最后给了我们一个输入框,告诉我们可以回车,或者是输入exit来终止这次会话。 由此可见,这次的任务绝大部份工作都是由user_proxy和assistant之间,通过对话自动完成的
总结
这就是AutoGen如何使用,帮助我们将大语言模型的工作流拆分成独立的、可控的、可调试的小的功能单元,以Agent的形式存在,Agent与Agent之间的基于对话的交流,完成自动化的,基于大语言模型工作流的执行。
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓