机器学习中的数学底蕴与设计模式
在说机器学习设计模式之前,想多说几句,在进入软件行业最初的10年,那时候耳熟能详的基本就是多线程编程,互斥同步锁,设计模式,OOA,OOP,常规数组,tree,图的数据结构及相关网络编程等。那时高等数学总觉得没有太多用武之地,慢慢的开始了解机器学习,你会发现数学在机器学习中占有举足轻重的地位。数学好的人,机器学习上手非常快,并且你不会浮于表面,只会那些所谓的 fine tune,我不是说 fine tune不重要,这件事肯定要做,只是现阶段是人工来完成,但未来 fine tune 这种事 迟早会被机器替代。因为机器学习后阶段人工fine tune会逐步消失,取而代之的是机器的全自动校正完成。但如果你有深厚的数学功底,你将是创建模型或改造模型的人,你将真正凌驾在machine learning 之上。
举个例子,如果你有很深的微积分造诣,那么你理解神经网络中的梯度下降,损失函数的构建及训练,调优等过程,你会轻车熟路,在较短时间内完美驾驭。如果你有较深的线性代数造诣,理解卷积神经网络,CNN, RNN,LSTM,GRU或者是Attention等transformer 机制,你会比别人更胜一筹。如果你有较好的概率论相关know-how,你将对softmax 等输出,损失函数等有很好的理解。当然我说的都是比较基础的理解部分。你甚至可以创建基于自己的super data AI model,这些idea或专利的源泉大部分来自你较好的数学功底,所以,如果你想在机器学习中有较好的可持续发展,Math is very important.
下面还是说干货,AI的设计模式。 Andrew Ng 在人工智能峰会(AI Ascent)上发表了《Agentic Reasoning》的演讲。虽然时间不长,但information 很多。主要包括反思、工具调用、规划和多智能体协作4种设计模式,你会发现AI的模式和人类的思考维度越来越接近,作为工作或生活中人类经常使用的PDCA模式在AI中得到了极致体现,同时已能印证我前面说的人工 fine tune迟早会被终结。
Zero-shot Prompting VS Agentic Workflow
在当下,不论是国外的AI工具如ChatGPT、Claude、谷歌的Gemini,还是国内的Kimi、通义千问和文心一言,我们大多数人的使用方式还是以“zero-shot prompt”直接对话的形式,也就是我们直接抛给ChatGPT一个问题,比如“写一篇关于xx主题的论文”,让它一次性给出回复。在这个过程中,LLM模型只会执行“生成”这一个动作。
然而,这与我们在真实世界中完成工作任务的流程是截然不同的。还是以写论文为例,一般我们会起草一个初稿,然后评估、分析、修订,迭代出第二、第三个版本,直到我们满意为止。其他工作和学习任务也是如此,我们通常会将其分解为一个一个的流程,然后按照流程来操作,以保证结果的质量。LLM模型也理应如此为我们服务。
Agentic Workflow赋能LLM模型
吴恩达教授的团队对“Zero-shot prompting”以及添加了不同设计模式的AI Agent的表现做了数据分析和对比,详情如下图。图中的纵坐标分别表示基座模型是GPT-3.5和GPT-4,横坐标表示在“Coding benchmark”下各模型/Agent的正确率(表现),百分比越高表现越好。

- Zero-shot模式:
- GPT-3.5的Zero-shot性能为48%。
- GPT-4的Zero-shot性能显著提升,为67%。
- 结论:Zero-shot模式下,模型在没有具体任务示例的情况下,仅依赖于其预训练的知识来执行任务。这种情况下比拼的是模型的通用基础能力,可以理解为模型的“智商”,GPT-4表现好是意料之中的。
- AI Agent(智能体)模式:
- Reflection反馈模式通过模型自身的反思与调整来改进任务执行。
- Tool Use工具调用模式涉及模型调用外部工具或库来帮助解决任务。
- Planning规划模式通过提前计划和组织任务步骤来提高效率和准确性。
- Multiagent多智能体协作模式涉及多个智能体的协同工作,以提高整体任务执行能力。
- 结论1:添加了Agentic Workflow的AI Agent在任务执行中的表现显著提升,不论基座模型是GPT-3.5还是GPT-4。
- 结论2:即使基座模型是GPT-3.5,通过添加Agentic Workflow将其设计为AI Agent后,性能表现也超过了Zero-shot模式下的GPT-4!
其实这种结论也很好理解,对于一项工作或学习任务来说,光有“智商”是不足以保证任务完成质量的,更重要的,与如何完成这项任务的方式方法有关系。“智商”(即大脑,LLM模型)可能起到一定作用,但合理的规划,完善的流程设计在后期任务执行过程中也起到关键的作用,虽然这常常被我们忽略。
1. 反馈(Reflection)
反馈(Reflection)设计模式是一种让AI模型通过自我反思和迭代改进来提高任务执行能力的方法。在这种模式中,模型不仅生成初始解决方案,还会通过多次反馈和修改,不断优化其输出。
在Andrew Ng 提到的例子中,任务是编写代码,模型首先生成初始版本,然后通过多次反馈和修改生成更优化的版本。例如,初始代码版本存在错误,模型通过反馈指出错误并进行修正,最终生成一个通过所有测试的版本。
2. 工具调用(Tool Use)
工具调用(Tool Use)设计模式是一种让AI模型通过调用外部工具或库来增强任务执行能力的方法。在这种模式中,模型并不仅仅依赖于自身的知识和能力,而是利用各种外部资源来完成任务,从而提高效率和准确性。
实际我前面写的 RAG与LLM 专栏 就是一个在LLM领域下 Tool Use 的应用,有兴趣可以取读一读,还在持续更新中。
3. 规划(Planning)
规划(Planning)设计模式是一种通过提前计划和组织任务步骤来提高效率和准确性的方法。在这种模式中,模型将复杂任务分解为多个步骤,并依次执行每个步骤,以达到预期的目标。
这和管理者经常使用的PDCA是何其相似,plan-do-check-action 直至目标完成,其中也包含了 fine tune 的逻辑。
4. 多智能体协作(Multi-agent Collaboration)
多智能体协作(Multiagent Collaboration)设计模式是一种通过多个智能体之间的合作来提高任务执行效率和准确性的方法。在这种模式中,多个智能体分担任务,并通过相互交流和协作,共同完成复杂任务。
实际上与 3 规划有一些联系,比如:
开发一个五子棋游戏。
- 设计阶段:一个智能体负责游戏的设计,包括界面和规则。
- 编码阶段:另一个智能体负责游戏的编码,实现核心功能。
- 测试阶段:第三个智能体负责测试游戏,找出并修复错误。
- 文档编写阶段:第四个智能体负责编写游戏的使用文档和说明。
通过智能体之间的分工合作,最终成功开发出一个完整的五子棋游戏。
就先写到这里吧
相关文章:
机器学习中的数学底蕴与设计模式
在说机器学习设计模式之前,想多说几句,在进入软件行业最初的10年,那时候耳熟能详的基本就是多线程编程,互斥同步锁,设计模式,OOA,OOP,常规数组,tree,图的数据…...
【Android面试八股文】性能优化相关面试题:如何查找CPU占用?
文章目录 一、 如何查找CPU的占用问题二、TraceView的使用关于TraceView和Android Studio的Profiler第一步、通过Android studio 打开`Android profiler`第二步、使用步骤第三步、技术说明第四步、CPU占用相关指标说明扩展阅读一、 如何查找CPU的占用问题 在Android开发中,如…...
面试框架一些小结
springcloud的⼯作原理 springcloud由以下⼏个核⼼组件构成: Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表, 从⽽知道其他服务在哪⾥ …...
c# 往window注册表写入数据后,未写入指定的路径
c# 往window注册表写入数据后,未写入指定的路径 最近在用c#开发一个往注册表写入数据的一个项目,发现将输入写入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell这个路径时,数据并没写入到这个…...
树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆
今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的…...
Golang | Leetcode Golang题解之第198题打家劫舍
题目: 题解: func rob(nums []int) int {if len(nums) 0 {return 0}if len(nums) 1 {return nums[0]}first : nums[0]second : max(nums[0], nums[1])for i : 2; i < len(nums); i {first, second second, max(first nums[i], second)}return se…...
基于ruoyi-app的手机短信登录(uniapp)
本篇用于记录h5的框架搭建 组件地址:短信验证码登陆,手机号,验证码倒计时 - DCloud 插件市场 调整后的表单组件代码: <template><view class"login-view"><!-- <input type"tel" confirm-type"确认"…...
机器学习环境搭建
前言 个人笔记,记录框架和小问题,没有太详细记载。。 1、Anaconda安装 下载地址: Free Download | Anaconda (慢) 国内镜像:https://link.csdn.net/?targethttp%3A%2F%2Fitcxy.xyz%2F241.html 下载…...
2095.删除链表的中间节点
给你一个链表的头节点 head 。删除链表的中间节点 ,并返回修改后的链表的头节点 head。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、2、3、4 和…...
Qt QML 坑
Qt QML 坑 QML Listview 1、不定高item 导致item重叠 ListView {id: _cityListViewproperty var _cityArray: [{ type:"A",cityArray:[]},{ type:"B",cityArray:[]},{ type:"C",cityArray:[]},{ type:"D",cityArray:[]}]model: List…...
Chrome浏览器web调试(js调试、css调试、篡改前置)
目录 1. 打开开发者工具(Dev Tool) 2. 打开命令菜单 截图 3. 面板介绍 4. CSS调试 右键检查快速到达元素处 查找DOM数 利用面板Console查找DOM节点 内置函数查找上一个选择点击的元素 5. 调试JS代码(Javascript调试) 日志调试 选择查看日志等级 眼睛观测变量 …...
【Java】Logbook优化接口调用日志输出,优雅!
logbook 简介 很多人可能没有接触过 logbook,但它的确是一个很好用的日志框架。引用官网的介绍 Logbook 是一个可扩展的 Java 库,可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求: 允许 Web 应…...
LabVIEW电压电流实时监测系统
开发了一种基于LabVIEW和研华(Advantech)数据采集卡的电压电流实时监测系统,通过高效的数据采集和处理,为工业和科研用户提供高精度、实时的电压电流监测解决方案。系统采用研华USB-4711A数据采集卡,结合LabVIEW编程环…...
骁龙相机拍照流程分析
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…...
sql-语句
文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库,表属性介绍:字符集,存储引擎列的数据类型:数字,字符串,时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…...
解决Vue3项目中跨域问题的步骤
决Vue3项目中跨域问题的步骤可以按照以下方式清晰地分点表示和归纳: 1. 使用代理服务器(Proxy) 步骤: 在Vue项目的根目录下找到或创建vue.config.js文件。在vue.config.js中配置devServer的proxy选项。设定需要代理的接口前缀&a…...
macos scroll direction
If there is no Trackpad option, we can change it in the Mouse option. How to Change the Scroll Direction on a Mac: 2 Ways...
Websocket实现方式二——注解方式
添加Websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根据ServerEndpoint注解注册Websocket Configuration public class AgentWsConfig …...
零基础开始学习鸿蒙开发-页面导航栏布局设计
目录 1.设定初始页(Idex.ets) 2.自定义首页组件 3.自定义发现页面组件 4.自定义设置页面组件 总结:主要是运用 了Tabs组件对导航栏进行布局,然后运用BottomTabBarStyle组件嵌套图标和文字,完成导航栏的制作。 1.设定初始页(Idex.ets) import {find}…...
【Hive中常见的优化手段----数据采集!Join 优化!Hive索引!数据倾斜!mapreduce本地模式!map和reduce数量调整!】
前言: 💞💞大家好,我是书生♡,今天主要和大家分享一下Hive中常见的优化手段----数据采集!常见的Join 优化有哪几种!什么是Hive索引!数据怎么发生倾斜!什么是mapreduce的本…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
