1. 什么是 AI Agent?
Agent 翻译为中文叫代理/智能体,智能体是指具有自主决策能力和自我学习能力的计算机程序或机器人。智能体可以通过感知环境、分析信息、制定决策并执行行动来完成任务。智能体通常包括感知模块、决策模块和执行模块,其中感知模块用于获取环境信息,决策模块用于分析信息并做出决策,执行模块用于执行决策并完成任务。
- 感知模块:根据当前环境把能用到的转换为提示,以及获取更多记忆。
- 决策模块:根据场景和历史信息,决定下一步做什么。
- 执行模块:根据现有的工具和动作,去执行决策。
2. AI + 任何行业 = Agent 可能吗?
“AI + 任何行业 = Agent” 这句话的意思是将人工智能(AI)技术应用到任何行业领域中,可以创造出一个智能代理(Agent)。智能代理是一种能够执行特定任务或服务的软件程序,它能够自主地或在人类的指导下进行操作。以下是一些例子来解释这个概念:
- AI + 医疗行业:智能代理可以分析病人的医疗记录,提供诊断建议,或帮助医生进行远程病人监护。
- AI + 金融行业:智能代理可以分析市场数据,提供投资建议,或自动化交易流程。
- AI + 制造业:在制造过程中,智能代理可以监控生产线,预测设备故障,优化生产效率。
- AI + 零售业:智能代理可以提供个性化的购物建议,管理库存,甚至自动化客户服务。
- AI + 教育行业:智能代理可以根据学生的学习进度和表现,提供个性化的学习资源和辅导。
- AI + 交通行业:智能代理可以优化交通流量,预测交通拥堵,甚至控制自动驾驶车辆。
通过将 AI 技术与不同行业的专业知识和需求相结合,可以创造出能够提高效率、降低成本、增强用户体验的智能代理。这些智能代理可以是独立的软件程序,也可以是集成到现有系统中的智能组件。
写作也是如此,上面这段话,只是我让 Kimi 简单的解释一下:AI + 任何行业 = Agent,至于上述的例子目前哪些可行,哪些不太可行,需要既懂业务场景又懂 AI 应用的专业人才去思考落地方案,本文的目标就是简单的入门一下 AutoGen
这个框架。
2. 简单实现一个绘制今年特斯拉和英伟达股票趋势的 Agent 见证一下它的魔力。
首先,我们需要安装一下 AutoGen 这个库,在提前安装好Python环境的前提下
,最简单的安装 AutoGen 的方式是从 pip 安装: pip install pyautogen
。其他安装方式参考:microsoft.github.io/autogen/doc…
既然是玩耍 AI Agent 的,那必然需要一个 LLM(大语言模型),LLM 是 Agent 的核心,当前 Agent 对自身角色定位,当前场景感知,工具的正确选择,下一步行动方向,和 LLM 密不可分,所以 LLM 的智慧程度,可以在一定程度上决定 Agent 的下限在哪里。大家可以自行找一个遵循 OpenAI 规范的大模型公司即可,这里就不推荐具体的平台了(避免广告嫌疑)。
在我们开始写 Agent 之前,思考一下,作为一个程序员,如果是我们想要实现一个这样的需求,我们一般是如何思考的呢?
- 寻找知名股票网站,抓包分析,获取对应的数据(不太正规的方式),还不如直接问大模型是否有好用的关于股票的第三方库,或者股票平台是否有开放平台提供调用方式。
- 学习第三方库的 API,测试其是否可以正常使用,不能用就继续搜索查找,直到找到为止,最后实在找不到只能抓包分析,自己实现了。
- 然后安装绘图相关的第三方库,查看绘图相关的 API,对第二步获取到的数据处理为满足绘图 API 的数据,最后对数据进行绘制,然后保存到本地。
上面的思考流程理论上是可以解决当前的需求,但是如果想要实现上述的流程,可能我们会遇到各种的问题,环境问题(比如:缺少依赖了,安装依赖,版本不对了,切换版本
),第三方库 API 使用问题,然后我们再通过各种途径或者历史经验一步一步的去解决问题
。
最近用 AutoGen 使用下来,发现 Agent 的执行流程是比较符合上述的解决问题的途径,暂不多说,简单的使用 AutoGen 写个代码去跑一下,毕竟 Talk is cheap, show you code。
AutoGen 里执行代码的环境有两种,一种是直接在当前 Python 环境执行,一种是使用 Docker 容器去执行。我比较倾向于 Docker 容器去执行。
下面是使用 Docker 容器
执行的代码,注意把 llm_config 里的信息替换为自己的 LLM 相关信息。
import os
import autogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "xxx",
"api_key": "yyy",
"base_url": "zzz",
}
with autogen.coding.DockerCommandLineCodeExecutor(work_dir="deepseek-coding") as code_executor:
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent(
"user_proxy", code_execution_config={"executor": code_executor},
)
# Start the chat
user_proxy.initiate_chat(
assistant,
message="绘制NVDA和TESLA股价本年迄今变化图。将绘图保存到名为plot.png的文件中",
)
下面的是把本地环境提供给大模型当做运行环境的代码:
import os
import autogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "xxx",
"api_key": "yyy",
"base_url": "zzz",
}
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent(
"user_proxy",
code_execution_config={"executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding_local")}
)
# Start the chat
user_proxy.initiate_chat(
assistant,
message="绘制NVDA和TESLA股价本年迄今变化图。将绘图保存到名为plot.png的文件中",
)
上述代码逻辑理解起来比较简单(AutoGen 写的真优雅),
- 初始化 Docker 环境作为代码执行器,在代码执行期间,你可以看到一个
autogen-code-exec-xx
的容器在运行 - 根据 LLM 配置初始化助手 assistant,
- 初始化用户代理 user_proxy 对象,和代码执行器绑定,赋予其代码执行的能力
- 用户向助手提需求。
代码开始执行后,我们可以查看日志,一步一步的分析这个 Agent 的执行流程。
助手表示很开心帮助你实现它,然后借助yfinance
获取股票数据和matplotlib
去画图。然后分分钟就把代码写出来了,真强啊,有种文档在心中,此刻我最强
的感觉。
最后还不忘温馨的告诉你,执行代码过程中如果有问题请告诉它,多么负责任的一位助理啊。
当你看到Provide feedback to assistant. Press enter to skip and use auto-reply, or type 'exit' to end the conversation:
的时候,你就是用户,它是在和你沟通,你可以直接回车确认,也可以告诉它一些信息,暂时先回车确认吧,让它自己思考。
然后用户一跑代码,发现你这也不行啊,生成的代码有问题,执行不起来啊,然后把报错又给了大模型 【像不像你平时直接问大模型,然后跑不起来时候的场景😊
】
然后模型想了一下,然后又告诉你,孩子啊,你没有装依赖,肯定跑不起来啊,来这是装依赖的方式,如果还有啥问题,告诉我哈。
然后 user 执行了两个代码块,一个是按照依赖,一个是跑 Python 脚本,结果又报错了。
此时作者内心独白: 【这个user 缺少反思机制,这个错误上次已经遇到过了,但是这次出错了,不自己解决,还去问大模型,真的是不能举一反三,废了
】。
然后模型不厌其烦的回复你了,缺少另外一个包,你再安装一下子,试试看。
二话不说,直接回车,然后竟然跑成功了,如下图。
然后看下工作目录: 四个临时文件,其中又一个 png 的图片。
点开图片看下,可以看起止时间的值错了:
不着急,我们还没有终止会话,我们告诉一下模型,它的起止时间有问题,看看它会不会修复。
然后模型回答的代码就是修改过的了:
然后回车执行一下:
执行成功,看下图片:
找个股票网站对比一下,看看是不是瞎写,结果曲线还真一致,可惜股票没买特斯拉啊。。。。。
直呼牛牛牛。
3. 总结
上述案例仅是简单的介绍了一些AutoGen的入门级用法,简单的几行代码,就让大模型帮我们写好了一个简单的需求,而且还支持修改优化的那种,其实还有好多的知识没介绍到(还没学会),俺还需要继续学习下去,持续输出。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。