从千问Agent看AI Agent——我们很强,但还有很长的路要走

news2024/10/3 8:28:04

前言

最近双十一做活动买了台新电脑,显卡好起来了自然也开始大模型的学习工作了,这篇文章可能是该系列的第一弹,本地私有化部署千问agent,后面还会尝试一些其他的大模型结合本地知识库或者做行业垂直模型训练的,一步一步慢慢来吧。

AI Agent

背景介绍

随着今年国外GPT4.0、claude2的出现,在加上国内“百模大战”的盛况,整个大模型领域是真的越来越卷了,但是卷也意味着会出现更多的新赛道,由此 AI Agent 的概念应运而生(2、3月)。

首先开始专注Agent领域的是OpenAI的创始成员Andrej Karpathy,它也曾在一次黑客松演讲(6月)中表示与大模型训练相比,OpenAI内部目前更关注Agent领域,这也侧面说明现在agent的火爆不是一蹴而就的,而是已经被“安排”好了的下一步。

那么,到底什么是agent?我们为什么需要agent呢?agent能带来哪些好处呢?

五层基石理论

在真正进入agent之前,我想先抛出五层基石理论。这个理论的正确性和时效性有待考量,但是至少就目前来看是合理且中肯的。

Seednapse AI创始人提出了构建AI应用的五层基石理论,包括Models、Prompt Templates、Chains、Agent 和 Multi-Agent。这五层基石为不同领域的开发者提供了灵活的工具,让他们能够更轻松地构建自己的Agent应用。

  • Models,也就是我们熟悉的调用大模型API。

  • Prompt Templates,在提示词中引入变量以适应用户输入的提示模版。

  • Chains,对模型的链式调用,以上一个输出为下一个输入的一部分。

  • Agent,能自主执行链式调用,以及访问外部工具。

  • Multi-Agent,多个Agent共享一部分记忆,自主分工相互协作。

image.png

定义

我查阅了十余篇文献,其中提到最多的就是:**在大模型的背景下,Agent可以被理解为能够自主理解、规划和执行复杂任务的系统。**但是这个回答也是基于某种背景下来理解的,如果单纯的来解释AI Agent,我个人觉得它是:一种能够自主感知环境、进行决策和执行动作的智能实体(智能体、智能助理),能够让人们以自然语言为交互方式高自动化地执行和处理专业或繁复的工作任务,从而极大程度释放人员精力。

为什么需要Agent

大语言模型的浪潮推动了 AI Agent 相关研究快速发展,AI Agent 是当前通往 AGI 的主要探索路线。大模型庞大的训练数据集中包含了大量人类行为数据,为模拟类 人的交互打下了坚实基础;另一方面,随着模型规模不断增大,大模型涌现出了上 下文学习能力、推理能力、思维链等类似人类思考方式的多种能力。将大模型作为** AI Agent 的核心大脑,就可以实现以往难以实现的将复杂问题拆解成可实现的子任 务、类人的自然语言交互等能力。由于大模型仍存在大量的问题如幻觉、上下文容 量限制等,通过让大模型借助一个或多个 Agent **的能力,构建成为具备自主思考决策和执行能力的智能体,成为了当前通往 AGI 的主要研究方向。

image.png

在特定行业场景中,通用大模型具有的泛化服务特性,很难在知识问答、内容生成、业务处理和管理决策等方面精准满足用户的需求。

因此,让通用大模型学习行业知识和行业语料成为行业大模型,再进一步学习业务知识和专业领域工具演进为场景大模型,是生成式AI深入业务场景,承担更复杂任务的关键路径。这一过程的实现,让大模型的持续进化最终以AI Agent的产品形态,开始了对业务的流程及其管理和服务模式的重构与优化。

Agent的好处

正如OpenAI联合创始人安德烈·卡帕斯(Andrej Karpathy)认为,在各类行业组织对数字化实体的打造进程中,对于通用人工智能(AGI)的应用,将广泛采用AI Agent的产品形式开展业务,而来自于各行业领域的开发人员和创业者们,将比通用大模型的开发商们更具有对AI Agent的开发优势。AI Agent,也被越来越多的人认可为是数字经济时代深刻赋能各行各业的高效生产力工具。

不同于传统的人工智能,AI Agent 具备通过独立思考、调用工具去逐步完成给 定目标的能力。AI Agent 和大模型的区别在于,大模型与人类之间的交互是基于 prompt 实现的,用户 prompt 是否清晰明确会影响大模型回答的效果。而 AI Agent 的工作仅需给定一个目标,它就能够针对目标独立思考并做出行动。和传统的 RPA 相比,RPA 只能在给定的情况条件下,根据程序内预设好的流程来进行工作的处 理,而 AI Agent 则可以通过和环境进行交互,感知信息并做出对应的思考和行动。

如何构建Agent

一个基于大模型的** AI Agent **系统可以拆分为大模型、规划、记忆与工具使用四个组 件部分。**AI Agent **可能会成为新时代的开端,其基础架构可以简单划分为 Agent = LLM + 规划技能 + 记忆 + 工具使用,其中 LLM 扮演了 Agent 的“大脑”,在这个系统中提供推理、规划等能力。

image.png

由上图可见,LLM-based Agent的概念框架,由大脑、感知、行动三个部分组成。作为控制器,大脑模块承担记忆、思考和决策等基本任务;感知模块负责感知和处理来自外部环境的多模态信息;行动模块负责使用工具执行任务并影响周围环境。下面还是简要介绍一下这三个模块:

大脑模块

是上述框架的核心,主要由大模型去做。借助大模型强大的自然语言交互能力,大脑可以很好的与外界通过自然语言进行交互,即准确理解感知模块输入的信息和生成准确的输出文本反馈。除了与外界交互,更重要的是其强大的推理、分析和决策能力。这些能力是通过大模型的训练自动涌现的。目前也没有一个特别合理的解释,说明为什么简单的语言模型,当数据量和模型参数到达一定规模,就会涌现出之前没有预料到的能力。当然,想要进行准确的推理、分析和决策,还需要一定的知识作为支撑,这些知识包括常识知识和领域知识等。大模型掌握了非常丰富全面的通用领域的尝试知识,但是对于特定领域知识还是有限。具体内容包括:自然语言交互、知识、记忆、记忆检索方法、推理和规划、可迁移性和通用性

运行机制:为确保有效交流,自然语言交互能力 至关重要。在接收感知模块处理的信息后,大脑模块首先转向存储,在知识中检索 并从记忆中回忆 。这些结果有助于Agent制定计划、进行推理和做出明智的决定 。此外,大脑模块还能以摘要、矢量或其他数据结构的形式记忆Agent过去的观察、思考和行动。同时,它还可以更新常识和领域知识等知识,以备将来使用。LLM-based Agent还可以利用其固有的概括和迁移能力来适应陌生场景 。

感知模块

指对大脑的输入控制。大脑当前最成熟的感知手段还是自然语言输入。但是人类真是的感知场景的多模态的,即我们感知一个事物主要是通过眼睛去看,通过耳朵去听,通过文字去理解等。因此,大模型的感知部分未来的发展趋势一定是多模态融合的,尤其是文本+图片(视频)+音频。当然,在特定问题上也需要对其他感知形式进行处理,最典型的就是传感器产生的数据的感知。具体内容包括:文本输入、视觉输入、听觉输入、其他输入。

行动模块

当大脑对感知的多模态信息进行整合与分析之后,就需要根据决策内容进行对应行动。最简单的行动就是返回一段文本,把答案或者执行计划用文本形式返回。稍微复杂一些的话,就是让大模型直接调用一些工具去执行操作。这个就需要大模型知道都有哪些工具,每个工具的用途是什么,这些工具的调用方法等。对于不同的需求,大模型会找到适合的工具去调用,并返回结果。这些工具可以是任意能够通过API调用的服务,当前用的最多的是搜索引擎服务。当然,对于嵌入到机器人上,执行的行为可以更复杂,例如具体的机械臂的操作等。具体内容包括:文本输出、工具使用、具身行动。


千问Agent

废话不多说,先直接甩上链接。

千问agent:https://github.com/QwenLM/Qwen-Agent

这里我再说说结论,用了几次之后感觉还凑合(毕竟我这个人很少给人差评的),具备了一些基础能力,就日常办公而言还行,但是跟我前文所述的智能体相比还是有很大的差距,甚至可以说目前的千问agent只是初具雏形。下面是摘自该项目的介绍:

Qwen-Agent 是一个代码框架,用于发掘开源通义千问模型(Qwen)的工具使用、规划、记忆能力。 在 Qwen-Agent 的基础上,我们开发了一个名为 BrowserQwen 的 Chrome 浏览器扩展,它具有以下主要功能:

  • 与Qwen讨论当前网页或PDF文档的内容。

  • 在获得您的授权后,BrowserQwen会记录您浏览过的网页和PDF材料,以帮助您快速了解多个页面的内容,总结您浏览过的内容,并减少繁琐的文字工作。

  • 集成各种插件,包括可用于数学问题求解、数据分析与可视化、处理文件等的代码解释器(Code Interpreter)。

这里也可以看出,它提供的功能其实真的很基础但实用

本地部署千问Agent

1、设置Python安装默认源(可选)

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/

将 pip 的默认软件包源(PyPI)更改为阿里云镜像源,好处就是下载速度更快和链接更稳定,但是要注意的是使用这个命令修改全局配置会影响所有使用 pip 安装软件包的项目。如果只想在特定项目中使用该镜像源,可以在项目的根目录下创建一个名为 .pip 或 pip.ini 的文件,并将相同的配置内容写入其中,这样只会影响该项目。

2、创建虚拟环境

conda create -n qwen-agent python=3.10 -y
conda activate qwen-agent

第一句命令 conda create -n qwen-agent python=3.10 -y 是指使用conda来创建一个名为"qwen-agent"的虚拟环境,并指定要安装的Python版本为3.10。其中,-n qwen-agent 指定了要创建的虚拟环境的名称为"qwen-agent",python=3.10 指定了要在该环境中安装的Python版本为3.10,-y 则表示在执行过程中不需要确认操作,直接进行安装。

第二句命令 conda activate qwen-agent 是用于激活名为"qwen-agent"的虚拟环境。激活后,系统中将会使用该虚拟环境中安装的Python版本和相关包来执行Python程序。激活后,命令行提示符通常会显示当前已经激活的虚拟环境名称,如"(qwen-agent)“,以示当前环境已经切换为"qwen-agent”。

3、安装pytorch

pip install torch2.0.0+cu118 torchvision0.15.1+cu118 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

这条命令是使用pip安装特定版本的PyTorch、torchvision和torchaudio库,同时指定了运行所需的CUDA版本为cu118,并将下载源设置为PyTorch官方提供的URL。

具体来说,命令中的参数解释如下:

  • torch==2.0.0+cu118: 这表示要安装的PyTorch版本是2.0.0,并且需要与CUDA版本cu118兼容。PyTorch是一个用于深度学习的开源机器学习库。

  • torchvision==0.15.1+cu118: 这表示要安装的torchvision版本是0.15.1,并且需要与CUDA版本cu118兼容。torchvision是PyTorch的一个独立软件包,用于对图像和视频数据进行处理。

  • torchaudio==2.0.1: 这表示要安装的torchaudio版本是2.0.1。torchaudio是一个用于处理音频数据的PyTorch扩展库。

  • –index-url https://download.pytorch.org/whl/cu118: 这是一个额外的选项,用于指定下载PyTorch和相关库时要使用的镜像源或索引URL。在这里,https://download.pytorch.org/whl/cu118 是PyTorch官方提供的针对CUDA 11.1.1版本的URL地址,它指示pip从该地址下载所需的库文件。

4、安装 flash-attention

git clone -b v1.0.8 https://github.com/Dao-AILab/flash-attention; cd flash-attention
pip uninstall -y ninja && pip install ninja
cd flash-attention && pip install .

5、部署 Qwen 模型服务

安装依赖

git clone https://github.com/QwenLM/Qwen.git; cd Qwen
pip install -r requirements.txt
pip install fastapi uvicorn openai “pydantic>=2.3.0” sse_starlette

启动模型服务,通过 -c 参数指定模型版本

  • 指定 --server-name 0.0.0.0 将允许其他机器访问您的模型服务

  • 指定 --server-name 127.0.0.1 则只允许部署模型的机器自身访问该模型服务

python openai_api.py --server-name 0.0.0.0 --server-port 7905 -c Qwen/Qwen-7B-Chat

目前,支持指定的-c参数为以下模型,按照GPU显存开销从小到大排序:

  • Qwen/Qwen-7B-Chat-Int4

  • Qwen/Qwen-7B-Chat

  • Qwen/Qwen-14B-Chat-Int4

  • Qwen/Qwen-14B-Chat

对于7B模型,请使用2023年9月25日之后从官方HuggingFace重新拉取的版本,因为代码和模型权重都发生了变化。

6、部署 Qwen-Agent

安装依赖

git clone https://github.com/QwenLM/Qwen-Agent.git
cd Qwen-Agent
pip install -r requirements.txt

启动数据库服务,通过 --model_server 参数指定您在 Step 1 里部署好的模型服务

  • 若 Step 1 的机器 IP 为 123.45.67.89,则可指定 --model_server http://123.45.67.89:7905/v1

  • 若 Step 1 和 Step 2 是同一台机器,则可指定 --model_server http://127.0.0.1:7905/v1

python run_server.py --model_server http://127.0.0.1:7905/v1 --workstation_port 7864

7、浏览器访问Qwen-Agent

打开 http://127.0.0.1:7864/ 来使用工作台(Workstation)的创作模式(Editor模式)和对话模式(Chat模式)。

image.png

8、安装浏览器助手

安装BrowserQwen的Chrome插件(又称Chrome扩展程序):

  1. 打开Chrome浏览器,在浏览器的地址栏中输入 chrome://extensions/ 并按下回车键;

  2. 确保右上角的 开发者模式 处于打开状态,之后点击 加载已解压的扩展程序 上传本项目下的 browser_qwen 目录并启用;

  3. 单击谷歌浏览器右上角扩展程序图标,将BrowserQwen固定在工具栏。

【注意】:安装Chrome插件后,需要刷新页面,插件才能生效。

当您想让Qwen阅读当前网页的内容时:

  1. 请先点击屏幕上的 Add to Qwen’s Reading List 按钮,以授权Qwen在后台分析本页面。

  2. 再单击浏览器右上角扩展程序栏的Qwen图标,便可以和Qwen交流当前页面的内容了。

image.png

image.png

结语

在《开源大模型LLaMA 2扮演Android角色?AI大模型创业会集体失败吗?》(https://baijiahao.baidu.com/s?id=1772053289038071546) 一文中曾经提到:大模型落地的方式是系统型超级应用。但系统型超级应用有点像被杜撰出来的一个词,所以这次从 AI Agent 的角度来更加具体的描述下它。

AI Agent 非常关键,没有它我们就无法扩展大模型的应用边界,无法扩展边界就无法完成大模型的成功商业化,无法成功商业化AI可能就会再亏损十年。人工智能如果仅止于现在看到的内容生成等几项应用,就还是单薄的。能不能把价值传递到更多的场景,核心就看AI Agent,所以说AI Agent是大模型与场景间价值传递的桥梁

对比千问的agent,其实和理想中的AI Agent还是有很大差距的,但是好在我们还有时间去研究、去挖掘,未来的路虽然充满挑战,但也充满希望。随着技术的不断发展和突破,相信千问Agent也会不断向着理想中的方向迈进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1362040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【编译原理】期末预习PPT后三章笔记+LL(1) II

继续预习O.o 从这一章开始看自己班发的 PPT 了 LL(1)的部分因为班里发了所以又看了一遍hhh感觉比之前那个清楚一点 目录 I. 自顶向下 一、概念(看一眼) 1、语法分析的两大类分析方法 2、算法基本思想 3、自顶向下介绍 1)一般过程 2&a…

IPv6和IPv4在技术层面的区别

随着互联网的不断发展,IPv4地址资源已经逐渐枯竭,而IPv6地址的使用逐渐成为趋势。IPv6和IPv4作为互联网协议的两个版本,在技术层面存在许多区别。本文将从地址空间、地址表示方法、路由协议、安全性、移动性以及网络性能等方面对IPv6和IPv4进…

【计算机网络】TCP原理 | 可靠性机制分析(一)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程、计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 目…

探索生成式AI:自动化、问题解决与创新力

目录 自动化和效率:生成式AI的颠覆力量 解谜大师生成式AI:如何理解和解决问题 创新与创造力的启迪:生成式AI的无限潜能 自动化和效率:生成式AI的颠覆力量 1. 神奇的代码生成器:生成式AI可以帮助开发人员像魔术一样快…

Linux network — 网络层收发包流程及 Netfilter 框架浅析

Linux network — 网络层收发包流程及 Netfilter 框架浅析 1. 前言2. 基础网络知识2.1 网络分层模型2.2 数据包协议分层2.3 sk_buff 结构2.4 收发包整体框架 3. 网络层(IPv4)收发包流程4. Netfilter 框架4.1 IPv4 网络层的 Netfilter Hook 点4.2 iptable…

jquery图形验证码

效果展示 js图形随机验证码&#xff08;表单验证&#xff09; html代码片段 <form class"formwrap"><div class"item"><input type"text" id"code_input" value"" placeholder"请输入验证码"/>…

【KD】知识蒸馏(knowledge distillation)简单介绍

最近学到了知识蒸馏的相关知识&#xff0c;来简单总结一下૮꒰ ˶• ༝ •˶꒱ა。 知识蒸馏 知识蒸馏&#xff0c;是一种模型压缩的手段。通过训练学生模仿教师的行为&#xff0c;将嵌入在大的教师模型中的知识迁移到小的学生模型。 例如&#xff0c;TinyBERT(Jiao et al.,2…

第14课 利用openCV快速数豆豆

除了检测运动&#xff0c;openCV还能做许多有趣且实用的事情。其实openCV和FFmpeg一样都是宝藏开源项目&#xff0c;貌似简单的几行代码功能实现背后其实是复杂的算法在支撑。有志于深入学习的同学可以在入门后进一步研究算法的实现&#xff0c;一定会受益匪浅。 这节课&#…

sensor 点亮出图后,画面全黑是为什么?

同事在点一个思特威的 sensor sc035hgs&#xff0c;这个 sensor 主要负责数据采集&#xff0c;然后给到后面的 NN&#xff08;神经网络&#xff09;去做处理。 点亮出图后&#xff0c;画面很黑&#xff0c;如下图所示&#xff1a; 因为没拿到板子&#xff0c;只能盲猜&#xf…

案例097:基于微信小程序+PHP的家具购物商城系统

目录 前言 系统展示 管理员模块的实现 用户管理 家具分类管理 家具新品管理 家具广告管理 小程序用户模块的实现 首页 家具信息 我的 代码实现 登录功能实现代码 注册功能实现代码 密码重置功能实现代码 修改信息功能实现代码 删除信息功能实现代码 保存信息…

H266/VVC多样化视频编码工具概述

全景视频编码 全景视频&#xff1a; 具有360度全包围视角的球面视频。 全景视频编码&#xff1a; 包括H266在内的视频编码算法都是以平面视频为对象的&#xff0c;为了采用传统的视频编码编码算法&#xff0c;全景视频需要转换为平面视频&#xff0c;其中经纬图等角映射&#…

深度学习|4.1 深L层神经网络 4.2 深层网络的正向传播

4.1 深L层神经网络 对于某些问题来说&#xff0c;深层神经网络相对于浅层神经网络解决该问题的效果会较好。所以问题就变成了神经网络层数的设置。 其中 n [ i ] n^{[i]} n[i]表示第i层神经节点的个数&#xff0c; w [ l ] w^{[l]} w[l]代表计算第l层所采用的权重系数&#xff…

记一次实战云渗透总结

点击星标&#xff0c;即时接收最新推文 云渗透思路 所谓的云渗透通常指SaaS或PaaS渗透&#xff0c;即将服务器端的某些服务搭建在云服务器上&#xff0c;源代码的开发、升级、维护等工作都由提供方进行。从原理上看&#xff0c;云渗透思路与传统渗透思路相差无几。站点必须由底…

Python中的cls语法

在Python中&#xff0c;cls 是一个用于指代类本身的约定性名称&#xff0c;通常用作类方法&#xff08;class method&#xff09;中的第一个参数。cls 类似于 self&#xff0c;它是对类的引用&#xff0c;而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举…

Kafka消息阻塞:拯救面试的八大终极解决方案!

大家好&#xff0c;我是小米&#xff0c;一个对技术充满热情的90后程序员。最近在准备社招面试的过程中&#xff0c;遇到了一个超级有挑战性的问题&#xff1a;“Kafka消息阻塞怎么解决&#xff1f;”今天&#xff0c;我就来和大家一起深入剖析这个问题&#xff0c;分享我在解决…

1-02VS的安装与测试

一、概述 对于一名C语言程序员而言&#xff0c;进行C语言程序的开发一般需要一个文本编辑器加上一个编译器就足够了。但为了方便起见&#xff0c;我们选择使用集成开发环境——Visual Studio&#xff08;简称VS&#xff09;。安装Visual Studio 下面讲一下如何安装VS&#xff0…

找不到mfc110u.dll,是什么原因,五种找不到mfc110u.dll,的解决方法

在日常使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“mfc110u.dll丢失”。那么&#xff0c;什么是mfc110u.dll文件&#xff1f;为什么会出现丢失的情况&#xff1f;本文将为您详细介绍mfc110u.dll文件的作用、丢失原因以及提供5种解决方法…

概率论基础知识补充

概率论基础知识 样本概率&#xff1a;P(x)表示样本x出现的概率&#xff0c;也就是在全体样本中出现的概率先验概率&#xff1a;对于多类问题&#xff0c;类别状态 ω i \omega_i ωi​出现的概率, P ( ω i ) P{\left(\omega_i\right)} P(ωi​)条件概率&#xff1a;在类别 ω…

关于图像分类任务中划分数据集,并且生成分类类别的josn字典文件

1. 前言 在做图像分类任务的时候&#xff0c;数据格式是文件夹格式&#xff0c;相同文件夹下存放同一类型的类别 不少网上的数据&#xff0c;没有划分数据集&#xff0c;虽然代码简单&#xff0c;每次重新编写还是颇为麻烦&#xff0c;这里记录一下 如下&#xff0c;有的数据…

win10关闭打开文件安全警告

1.使用场景 在流水线上&#xff0c;因车间刷软件的程序不能下发到每一台电脑上&#xff0c;会使用共享文件夹的形式来共享程序。每次打开会弹出一下窗口&#xff0c;影响员工生产。 需要将安全警告关闭。2.解决步骤 1.winR键打开运行窗口&#xff0c;输入gpedit.msc&#xff…