六位一线AI工程师总结Agent构建经验,天工SkyAgents的Agent构建实战。

news2024/11/25 19:48:40

cover_image
原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!)

六位一线AI工程师总结Agent构建经验,天工SkyAgents的Agent构建实战。

🌟我们给人类新手明确的目标和具体的计划,而不是模糊的开放式指示,对Agent也应该这样做。

最成功的Agent开发者可能也是工程师团队的管理者,因为 给AI制定计划的过程和管理初级员工的方式类似

▲ 六位一线AI工程师分享自身总结,公开大模型应用一年心得

我们给人类新手明确的目标和具体的计划,而不是模糊的开放式指示,对Agent也应该这样做,详细展开的话,总的来说有下面 两点

1. 优先考虑确定性工作流程

Agent被期待动态对用户请求做反应,但随着执行步数增加,失败的可能性指数增加,并且从错误中恢复的机会很小。一种有前途的方法是使用Agent系统来生成确定性计划,然后以结构化、可重复的方式执行这些计划,带来的好处包括:

  • • 生成的计划可以作为提示词中的少数样本,或微调数据。

  • • 使系统更加容易测试和调试,失败可以追溯到计划中的具体步骤。

  • • 生成的计划可以表示为有向无环图 (DAG),相对于静态提示词,它更容易理解和适应新情况。

我们如果用 具体的事例 来说的话,可能是这样的:

假设我们有一个AI助手,它的任务是帮用户 在线购买一件商品
。这个任务涉及很多步骤,比如搜索商品、比较价格、选择合适的选项、添加到购物车、填写支付信息等。随着步骤的增加,出错的可能性也增加。

生成确定性计划的好处

  1. 1. 生成的计划可以作为少数样本或微调数据 比如,AI助手生成了一个购物计划:这个具体的计划可以用来教AI助手如何完成类似的任务,也可以作为训练数据来微调AI模型,让它在类似任务中表现得更好。
* •  第一步:在搜索栏输入商品名称。 

* •  第二步:筛选出最低价的商品。 

* •  第三步:选择合适的颜色和尺寸。 

* •  第四步:添加到购物车。 

* •  第五步:填写支付信息并确认订单。 
  1. 2. 让系统更容易测试和调试 如果AI助手在购买过程中出错了,比如没有正确选择颜色,我们可以回溯到“第三步:选择合适的颜色和尺寸”,找到问题所在并进行修正。这比在一个没有明确步骤的任务中找问题要容易得多。

  2. 3. 生成的计划可以表示为有向无环图 (DAG) 我们可以把这个购物计划画成一个图表,每个步骤都是一个节点,节点之间有箭头连接,表示步骤的顺序:

    搜索商品 -> 筛选价格 -> 选择颜色和尺寸 -> 添加到购物车 -> 填写支付信息

这个图表让每个步骤和顺序一目了然,比文字描述更直观。
如果我们需要修改计划,比如在筛选价格之前先检查商品评价,我们只需要在图表上添加一个新节点,并调整箭头连接即可。

通过这种确定性工作流程,我们可以让AI助手在执行任务时更稳定、更可预测、更容易调试和改进,同时也能更好地适应新情况。

你可能会问“ 生成的计划可以作为少数样本或微调数据 ”?具体又是如何操作呢,没关系,我这里也准备了:

以下是一个具体的示例,展示如何生成确定性计划并将其用作训练数据或微调数据,以提高AI助手在完成类似任务中的表现。

向上滑动

2. 增加输出多样性的经验总结

在任务中需要提供多样化的输出,比如根据用户之前购买过的产品推荐新产品时,仅仅通过提高模型的温度参数可能并不足够,甚至会带来一些问题。以下是一些具体的方法和经验:

  1. 1. 谨慎调整温度参数
* •  虽然提高温度参数可以增加输出的随机性,但温度太高时,模型可能会生成不存在的产品或出现乱码。例如,如果温度设为0.9,模型可能会推荐“飞行汽车”,这显然不现实。保持温度在一个合理范围内(如0.7左右)更为稳妥。 
  1. 2. 调整提示词顺序
* •  改变提示词中的元素顺序可以显著影响模型的输出。例如,用户购买历史是“笔记本、手机、耳机”,可以打乱顺序为“耳机、笔记本、手机”或者“手机、耳机、笔记本”,这样模型会根据新的顺序生成不同的推荐。 
  1. 3. 保留前几轮的输出
* •  在每次推荐时,保留前几轮已经推荐过的产品,并明确告诉模型避免重复。例如,如果用户之前购买了“笔记本”和“耳机”,模型在推荐新产品时避免再次推荐这两样产品。这可以通过在提示词中加入“请不要推荐已经购买的产品:笔记本、耳机”来实现。 
  1. 4. 改变提示词措辞

• 使用不同的表达方式可以引导模型生成不同的推荐。例如:

• 提示词1:“推荐用户喜欢经常使用的产品。”

• 提示词2:“推荐用户可能会推荐给朋友的产品。”
通过这样的小变化,模型可能会推荐不同的产品,例如第一个提示词可能会推荐“鼠标”,而第二个提示词可能会推荐“智能音箱”。

这些方法结合起来使用,可以有效增加推荐的多样性,同时避免仅靠提高温度参数带来的问题。

上面两个讲完之后,下面我们来讲讲 实战 内容。

![](https://res.wx.qq.com/t/wx_fed/we-

emoji/res/v1.3.10/assets/newemoji/Party.png) 天工SkyAgents的Agent构建实战

SkyAgents 依靠强大的天工大模型,将 AI 的使用门槛进一步降低。它可以让用户通过 轻松友好 界面搭建,便可拥有自己专属的 AI
Agents, 无需复杂的编程知识,充分发挥你的创意灵感。

SkyAgents:https://model-platform-skyagents.tiangong.cn/home/agent

模块参数配置说明

先聊聊AI模块的一些配置数值。你可能在使用AI模块时注意到有些设置,比如对话模型选择、温度、回复上限等操作。接下来,我会用简单易懂的方式给大家讲解这些功能的含义。

提示词

这是一个固定的引导词,通过调整这个内容,你可以引导模型的聊天方向。这段内容会被固定在上下文的开头。你还可以使用变量,比如
{{language}},来让提示词更灵活。

回复创意性

温度表示AI在回复过程中内容的严谨程度。数值越低,回复越严谨,特别是在知识库回答场景中。严谨的回复会更接近知识库的内容,通常设置为 0。

回复字数上限

这个设置控制AI回复内容的字数。上限越低,回复的字数越少;上限越高,回复的字数越多。但并不是数值越大越好,因为上限越高,AI可能引用的内容越多,结果会出现一些无关的信息。

知识库配置相关数值

知识库相似度

这个数值控制用户提问与搜索结果之间的相似度。相似度越高,搜索出的结果可能越少。

单次搜索上限

当在知识库进行搜索时,这个设置决定了最多取多少条结果。请注意,取的结果并不是越多越好,因为受模型最大 Tokens
和单条知识库内容大小的影响,具体可用数量要根据具体情况而定。建议设置为 1,会有更好的回复体验。

更多 单元模块 说明 (向上滑动)

模块排布与设计

  1. 1. 按照信息流转的顺序进行模块排布 :一个 Agents 的顺利运行,与合理的排布密不可分。在真正着手设计前,先进行一个整体规划,列出编排的目的和希望实现的效果,思考需要哪些模块进行组合,做好提前的规划。

  2. 2. 持续进行调试优化以满足目标需求 :Agent的搭建往往需要多次调试才能满足需求,尤其在复杂的逻辑编排中,更需要仔细进行连线设计与参数设计。持续调整优化节点排布,将提升Agent的体验质量。

  3. 3. 注意模块的必填信息与核心配置 :在使用模块时,注意每个模块都有必填信息与选填信息。在设计画布时,将必填信息设置好,选填信息也进行合理排布规划,有助于理清思路,确保编排顺畅。

  4. 4. 灵活运营信息处理的三大模块 :信息分类、信息提取、信息加工是更多用户使用体验的核心。通过这三个模块,可以实现更复杂的信息处理任务,提升整体系统的效能。

初级:知识库 Agent

在开始知识库 Agent 的创建之前,你可以速览一下这个新手入门: 搭建第一个 Agent (向上滑动)

知识库 Agent 是当前受欢 迎的一类工具,它将个人或企业的专有数据与大型模型相结合,进一步扩展了大模型的知识库范围,使其与业务更紧密地结合。

配置与规划

在 Agent 的配置过程中,如果在 Agent
设置页面中选择关联了“知识库”,我们就能够在规划页面中看到新增加的“知识库搜索”模块。本次案例将着重介绍“知识库搜索”模块的功能设计。

基础配置

本案例中,我们将创建一个名为“大预言模型助手”的 Agent,将整理好的大语言模型相关资料作为知识库。这个 Agent
将充当大语言模型方面的专家,回答关于大语言模型方面的提问。

画布规划

在 Agent 的画布规划中,新增了一个“知识库搜索”模块,借助“知识库”中上传的资料,辅助 AI 完成大模型相关问题的回复。它的具体逻辑如下:

  • • 通过“用户提问”模块获取用户输入信息,并通过“用户提问”输出。

  • • “知识库搜索”模块通过“信息输入”输入用户的问题,然后执行以下步骤:

    1. 1. 将用户提问进行向量化,并与“大语言模型”的知识库中已有的内容切片进行向量检索。

    2. 2. 将搜索结果进行相似度排序,返回相似度排名靠前的切片。

  • • 连线2:如果“知识库搜索”结果中没有符合条件的切片内容,将触发“确定回复”模块,回复用户“抱歉,这个问题暂时无法回答,我还需要更多的学习”。

  • • 连线3:如果“知识库搜索”结果搜索到有符合条件的切片内容,将触发“智能对话”模块,并将提示词、“知识库搜索结果”以及“用户提问”一同传给“智能对话”模块进行处理。

参数设置

在“知识库搜索”模块中,有两个参数:知识库相似度和知识库单次搜索上限。它们控制了知识库向量搜索的结果和返回结果。具体说明如下:

  • 知识库相似度 :控制用户提问与搜索结果之间的相似度。建议调整在 0.6-0.9 左右。

  • 单次搜索上限 :设置最多取 x 条作为搜索结果输出。可通过调整参数并测试,选择更合适的上限数值。

本地知识与互联网搜索的结合Agent

我构建一个 一个结合 ** 知识库和搜索引擎 ** 功能的智能代理系统 Agent :

首先,大模型会在内部知识库中进行问题相关的搜索,然后利用知识库中找到的信息在互联网上进行进一步的搜索。

最终,综合本地知识和互联网搜索结果来回答问题,实现既有本地知识又有网络搜索的效果。

效果演示:

怎么发布呢?: ** 发布上架流程 ** (向上滑动)

One More Thing

6月3日,昆仑万维宣布开源 2 千亿稀疏大模型 Skywork-MoE ,性能强劲,同时推理成本更低。

Skywork-MoE 基于之前昆仑万维开源的 Skywork-13B 模型中间 checkpoint 扩展而来, 是首个完整将 MoE
Upcycling
技术应用并落地的 开源千亿 MoE 大模型,也是首个支持用 单台 4090 服务器推理的开源千亿 MoE大模型。

Skywork-MoE

原文介绍

https://mp.weixin.qq.com/s/FCwzPohoKnSl0lW2NOdiGw

SkyAgents 文档教程 https://www.yuque.com/skyagents/glwn9v 心得原文
https://www.oreilly.com/radar/what-we-learned-from-a-year-of-building-with-
llms-part-i/

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

**
**

** 点这里 👇 关注我,记得标星哦~ **

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预览时标签不可点

微信扫一扫
关注该公众号

轻触阅读原文

AI进修生



收藏

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

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

相关文章

ATFX汇市:加拿大央行已宣布降息25基点,欧央行降息预期大幅增强

ATFX汇市:加拿大中央银行6月利率决议宣布,将政策利率下调25个基点至4.75%,时隔4年零三个月后再次进入降息周期。以2023年7月份加拿大央行最后一次加息算起,5.5%的高利率维持了11个月,期间加拿大的核心通胀率从6.2%降低…

UE5刷植物悬空了

UE5系列文章目录 文章目录 UE5系列文章目录前言一、解决办法 前言 在Unreal Engine5.3中使用植物模式刷各种植物时,有时会发现有的植物要么悬空,要不有刷不上地板的情况。而且悬空的植物还不能接触到地面,感觉很奇怪,就像下图所示…

如何减少Apache Spark日志的数量

修改log4j配置文件,没有就创建: 内容: # 设置日志记录器 log4j.rootCategoryWARN, console log4j.appender.consoleorg.apache.log4j.ConsoleAppender log4j.appender.console.targetSystem.err log4j.appender.console.layoutorg.apache.lo…

数学题目系列(一)|丑数|各位和|埃氏筛|欧拉筛

一.丑数 链接:丑数 分析: 丑数只有2,3,5这三个质因数,num 2a 3b 5c也就是一个丑数是由若干个2,3,5组成,那么丑数除以这若干个数字最后一定变为1 代码 class Solution {publi…

27-unittest之断言(assert)

在测试方法中需要判断结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。 使用unittest测试框架时,有很多的断言方法,下面介绍几种常用的断言方法:assertEqual、assert…

基于javacv ffmpeg 使用原生ffmpeg命令

基于javacv ffmpeg 使用原生ffmpeg命令 1. ffmpeg2. ffprobe 相关阅读: javacv ffmpeg使用笔记 测试过程中,发现ffmpeg-6.0-1.5.9-linux-x86_64.jar 存在问题(ffmpeg原生命令执行失败),降级到ffmpeg-5.1.2-1.5.8-linux…

【Python报错】已解决ValueError: If using all scalar values, you must pass an index

成功解决“ValueError: If using all scalar values, you must pass an index”错误的全面指南 在Pandas库中,当你尝试创建一个新的DataFrame或Series时,如果所有值都是标量(scalar,即单个值而非列表、数组或Series)…

Vuforia AR篇(六)— Mid Air 半空识别

目录 前言一、什么是Mid Air?二、使用步骤三、示例代码四、效果 前言 增强现实(AR)技术正在改变我们与数字世界的互动方式。Vuforia作为先进的AR开发平台,提供了多种工具来创造引人入胜的AR体验。其中,Mid Air功能以其…

UE5-AI

AI角色 角色控制器 AI角色必须要一个角色控制器 角色控制器最基本只需要执行行为树,在EventOnPossess后runBehaviorTree 如果要的是一个角色,可以创建一个Character,在类默认设置中可以找到 Pawn->AIControllerClass,在这里…

Linux网络的DHCP配置

文章目录 DHCP配置DHCP流程简述DHCP优点DHCP的分配方式DHCP的租约过程DHCP配置实验实验1实验2 DHCP配置 DHCP:动态主机配置协议 服务端和客户端 服务端:server,提供某种特定的服务 客户端:client,使用服务端提供的服…

代码随想录第26天|回溯part6 不需要搜索整棵树的回溯二维搜索

332.重新安排行程 难题&#xff0c;自己写的代码没过&#xff0c;但我认为逻辑没有问题 class Solution { public:vector<string> res;bool pruning(vector<string> res, vector<string> path) {if (res.size() 0)return true;bool check false;for (int …

fastapi学习前置知识点

前置知识点 FastApi&#xff1a;一个用于构建API的现代、快速&#xff08;高性能&#xff09;的web框架。 FastApi是建立在Pydantic和Starlette基础上&#xff0c;Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包…

Matlab|【重磅】配电网故障重构/孤岛划分

目录 1 主要内容 1.1 背景 1.2 流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要复现《基于GA_BFGS算法的配电网故障恢复性重构研究_郑海广》&#xff0c;采用matlab编程软件实现&#xff0c;依据网络结构和DG供电方式对配电网进行孤岛划分&#xff0c;将含…

避免使用for循环操作高维数组:numpy.apply_along_axis用法

文章目录 场景实际操作编写相关函数np.apply_along_axis 场景 设想我有一列高维向量&#xff0c;读取之后的数据都是字符串变量&#xff0c;我需要把这些字符串数据转换为复数之后求绝对值 实际操作 在使用pd.read_csv()读取数据之后&#xff0c;将这一列数据转换为numpy数…

Python高阶学习记录

文章导读 阅读本文需要一定的python基础&#xff0c;部分知识点是对python入门篇学习记录和python并发编程学习记录的深入探究&#xff0c;本文记录的Python知识点包括函数式编程&#xff0c;装饰器&#xff0c;生成器&#xff0c;迭代器&#xff0c;正则表达式&#xff0c;内存…

面试题------>JVM虚拟机!!!

一、Java对象内存布局 二、JVM 内存结构 程序计数器: 线程私有的(每个线程都有一个自己的程序计数器),是一个指针.代码运行,执行命令.而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.记录代码执行的位置. Java虚拟机栈: 线程私有的(每个线程都有一个自己…

【计算机网络】计算机网络的组成与功能

计算机网络的组成与功能 导读一、计算机网络的组成1.1 从组成方式上1.1.1 硬件1.1.2 软件1.1.3 协议 1.2 从工作方式上1.3 从功能组成上 二、计算机网络的功能2.1 数据通信2.2 资源共享2.3 分布式处理2.4 提高可靠性2.5 负载均衡2.6 其它 结语 导读 大家好&#xff0c;很高兴又…

可视化数据科学平台在信贷领域应用系列五:零代码可视化建模

信贷风控模型是金融机构风险管理的核心工具&#xff0c;在信贷风险管理工作中扮演着至关重要的角色。随着信贷市场的环境不断变化&#xff0c;信贷业务的风险日趋复杂化和隐蔽化&#xff0c;开发和应用准确高效的信贷风控模型显得尤为重要。信贷风险控制面临着越来越大的挑战和…

orbslam2代码解读(1):数据预处理过程

写orbslam2代码解读文章的初衷 首先最近陆陆续续花了一两周时间学习视觉slam&#xff0c;因为之前主要是做激光slam&#xff0c;有一定基础所以学的也比较快&#xff0c;也是看完了视觉14讲的后端后直接看orbslam2的课&#xff0c;看的cvlife的课&#xff08;课里大部分是代码…

规则引擎LiteFlow发布v2.12.1版本,决策路由特性

个人博客&#xff1a;无奈何杨&#xff08;wnhyang&#xff09; 个人语雀&#xff1a;wnhyang 共享语雀&#xff1a;在线知识共享 Github&#xff1a;wnhyang - Overview 简介 标题其实是不准确的&#xff0c;了解过的会知道在LiteFlow的2.12.0已经有了决策路由的特性&…