首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

手搓大模型Task03:手搓一个最小的 Agent 系统

编程知识
2024年09月27日 22:46

前言

  训练一个大模型是一件高投入低回报的事情,况且训练的事情是由大的巨头公司来做的事情;通常我们是在已有的大模型基础之上做微调或Agent等;大模型的能力是毋庸置疑的,但大模型在一些实时的问题上,或是某些专有领域的问题上,可能会显得有些力不从心。因此,我们需要一些工具来为大模型赋能,给大模型一个抓手,让大模型和现实世界发生的事情对齐颗粒度,这样我们就获得了一个更好的用的大模型。

1.构造Agent

  这里就简单说一下Agent的结构,Agent的结构是一个React的结构,提供一个system_prompt,使得大模型知道自己可以调用那些工具,并以什么样的格式输出。每次用户的提问,如果需要调用工具的话,都会进行两次的大模型调用,第一次解析用户的提问,选择调用的工具和参数,第二次将工具返回的结果与用户的提问整合。这样就可以实现一个React的结构,具体如下图所示。

class Agent:
    def __init__(self, path: str = '') -> None:
        pass

    def build_system_input(self):
        # 构造上文中所说的系统提示词
        pass
    
    def parse_latest_plugin_call(self, text):
        # 解析第一次大模型返回选择的工具和工具参数
        pass
    
    def call_plugin(self, plugin_name, plugin_args):
        # 调用选择的工具
        pass

    def text_completion(self, text, history=[]):
        # 整合两次调用
        pass

2.调用示例

  使用了InternLM2-chat-7B模型,进行了问答测试:

3.总结

  使用4060ti 16G显卡测试Agent,消耗显存15G,整体测试下来感觉 书生·浦语7b 的模型完成一些基本的问答任务没什么问题,但是联系上下文回答问题还是理解不到位;不够那么聪明。

From:https://www.cnblogs.com/xinjieli/p/18436807
本文地址: http://www.shuzixingkong.net/article/2367
0评论
提交 加载更多评论
其他文章 运算符、分支语句
位操作符: 可以直接操作二进制数位的内容;~是一个单目位操作符,它可以根据一个数字计算另外一个数字,这两个数字所有二进制数位的内容都不同(按位取反),使用的时候这个符号应该写在数字前面 双目位操作符:包括按位与(&),按位或(|)以及按位异或(^),他们都可以把两个数字对应二进制数位的内容做
一次实践:给自己的手机摄像头进行相机标定
目录1. 问题引入2. 准备工作2.1 标定场2.2 相机拍摄3. 基本原理3.1 成像原理3.2 畸变校正4. 标定解算4.1 代码实现4.2 详细解析4.2.1 解算实现4.2.2 提取点位4.3 解算结果5. 问题补充 1. 问题引入 不得不说,现在的计算机视觉技术已经发展到足够成熟的阶段了,
一次实践:给自己的手机摄像头进行相机标定 一次实践:给自己的手机摄像头进行相机标定 一次实践:给自己的手机摄像头进行相机标定
博客园商业化道路建议
根据园子目前的行动,基本可以总结出: 1.园子不希望加大广告投放面积和强度,保持园子的纯洁性。 2.园子不希望走文章推广以及付费道路,做好技术社区。 3.园子不希望牺牲普通用户权益,保障公众使用体验。 基于园子的救园方案,可以看出:园子希望通过用户主动开通 vip 来获取收入,但是又因不想剥夺普通用
Java中浮点数运算存在的精度问题以及解决方法
观察以下一段代码,相信小朋友都可以一眼看出答案,但是计算机给出的答案是这样吗? public class TestDouble { public static void main(String args[]) { System.out.println("0.05 + 0.01 = &quo
Java中浮点数运算存在的精度问题以及解决方法 Java中浮点数运算存在的精度问题以及解决方法
全网最适合入门的面向对象编程教程:53 Python 字符串与序列化-字符串与字符编码
在 Python 中,字符串是文本的表示,默认使用 Unicode 编码,这允许你处理各种字符集,字符编码是将字符转换为字节的规则,常见的编码包括UTF-8、UTF-16和ASCII。
全网最适合入门的面向对象编程教程:53 Python 字符串与序列化-字符串与字符编码 全网最适合入门的面向对象编程教程:53 Python 字符串与序列化-字符串与字符编码 全网最适合入门的面向对象编程教程:53 Python 字符串与序列化-字符串与字符编码
WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧
802.11 无线 WiFi 有 数据帧,管理帧、控制帧 三种类型帧。这些帧由 9 个部分组成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS。需要注意的是,有些组成部分在有些帧
WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧 WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧 WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧
2款.NET开源且免费的Git可视化管理工具
Git是什么? Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发。Git最初是由Linux开发者Linus Torvalds创建的,它具有高效、灵活、稳定等优点,如今已成为软件开发领域中最流行的版本控制系统之一。Git使用一种名为“仓库”的数据结构来保存代码
2款.NET开源且免费的Git可视化管理工具 2款.NET开源且免费的Git可视化管理工具 2款.NET开源且免费的Git可视化管理工具
新手指南-新人入职-maven相关
一、前言 入职后,发现公司是用Maven对项目进行管理和构建。 一般来说,自己先确定以下几点: 1、公司对版本是否有要求。 2、是否要求IDEA对maven有特殊的配置。 3、确定自己的 MAVEN_HOME 系统环境是否配置。 4、确定maven中的setting.xml配置文件是否改成了公司要求
新手指南-新人入职-maven相关 新手指南-新人入职-maven相关 新手指南-新人入职-maven相关