微软最新推出的大语言模型框架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
代码的python notebook 地址 [notebook](autogen/notebook/agentchat_web_info.ipynb at main · microsoft/autogen (github.com)) 可以在colab上运行代码看效果。
- 首先我们来安装两个包,分别是AutoGen和docker。
python
复制代码%pip install pyautogen~=0.2.0b4 docker -q -U
- 加载配置列表
在配置列表中定义了模型和对应的API_KEY。
python复制代码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
python复制代码# 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一起合作,通过一篇文章的链接,告诉我们谁应该来阅读这篇论文。
python复制代码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大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。
以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/fd581f303c27d1fd756e65f392c0537e.png)
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。