大模型驱动的业务自动化
大模型输出token的速度太低且为统计输出,所以目前大模型主要应用在toP(人)的相关领域;但其智能方面的优势又是如此的强大,自然就需要尝试如何将其应用到更加广泛的toM(物理系统、生产系统)领域中来。
破题思路
笔者比较熟悉AI的符号主义分支,所以自然的就想到:由大模型完成业务知识的理解与转换,然后以通用的知识应用系统-专家系统来驱动实际的业务处理。
我们查看一个虚拟的业务处理过程:
某远程数据采集站点失联检查
启动条件:通过检查数据采集日志,发现某站点所有设备失连
1、等待半个小时
2、如果有设备未失连,则结束
3、检查站点的通信状态
4、如果该站点通信正常,推断该站点采集系统故障,申请采集设备检修并结束
5、如果该站点通信不正常,推断该站点通信故障,申请通信设备检修
通过观察,我们能看出:
1、这样一个业务处理过程首先可以映射为用petri网表达的流程化处理结构
2、petri网的每个库所,可以用一个产生式进行描述
3、产生式的前件与后件,都可以用谓词逻辑进行描述
需要说明的是:很多企业、很多领域,起始阶段未必有足够精细的业务知识满足量化计算的要求,所以还应当引入模糊推理来支持人的经验判断,以降低应用门槛
这些工具都具有完备且成熟的理论支撑,所以只要我们的实现能做到形式良好,即实现代码可靠、稳定,那么整个系统就是可靠的、稳定的、完备的。
这样一来,我们可以构造一个通用的业务驱动系统(以下简称GESLM),然后通过两步:
1、 用大模型将业务人员书写或口述的业务知识(目前主要考虑SOP型业务处理逻辑)转换为业务操作描述模型
2、程序员对大模型解析出来的部分谓词【和业务现场密切相关的专用谓词】编程实现
就完成了一个特定业务场景的业务自动化处理。
甚至,由于单一谓词的复杂度较低,在有了足够多样板的情况下,大模型的code分支还能直接生成所需谓词的实现代码:)
问题与难点
GESLM由于是通用的,所以最佳的实现方案是从头构建。但这显然相当于抛弃了现有的海量业务系统资产。因此,以第三方库或微服务的方式来逐步推进较为有利。
但此种路线由于是将之嵌入到现有成熟系统中,会有如下的问题与难点:
1、每个业务功能,都需要进行大量的适配工作
这种适配工作主要包括:
a 数据准备,要从原有系统中将业务场景所需要的数据提取出来馈送到GESLM中
b 名字映射,传统编程模式由于有多道开发工序,会逐步完成人所理解的具有业务意义的概念到业务代码中的变量名的逐步转换。但GESLM由于利用大模型省去了中间的开发工序,所以很难自动完成业务名称到既有代码变量名的转换,目前只能由程序员进行适配
c 信息补足,业务知识是业务人员书写或口述,其会下意识的忽略掉很多在他看起来是天经地义的背景知识。但缺了这些背景知识,GESLM根本无法正常执行。只能由知识工程师一点点的通过和业务人员的讨论进行识别并补足
d 例外处置,SOP只是一个正常情况下的操作步骤。当出现问题时,我们人是可以随机应变、具体问题具体分析的进行解决的。但机器不行。所以必须考虑到各种意外情况,以确保在出现意外时,能得到正确的处置
2、规则变换的手工核查
业务规则是由面向人的自然语言书写,但程序执行的必须是形式化的描述性语言,两种无法直接映射。所以在很多地方都必须进行大幅度的转换:
a 规则转换
如示例中大家一目了然的规则1【等待半个小时】,在程序处理时,要分解为如下的动作序列:
- 启动一个定时器
- 等待一个定时事件【为防止同时有多个定时器同时工作,所以还必须专名,以便于取消等操作时不会误操作】
- 定时器半小时后超时,触发一个超时事件
- 等待中的库所恢复执行
将这些动作进行合并后转换成计算机来执行的形式规则:
- 一个启动定时器的规则
- 一个等待超时事件的规则
- 一个超时触发特定的超时事件的隐含规则
这种转换需要补足的知识过多,而大模型的不精确性就使得我们必须对本条这么简单的规则的转换结果都要进行手工的核查。
b 量词
我们都知道,谓词逻辑中有两个量词:全称量词、存在量词。对我们人来说,这两个量词很容易理解,但对计算机来说,一个量词其实是三个部件的合成:
- 关系谓词,提取量词对应的所有目标对象
- 判断谓词,对提取出的目标对象,在for循环中逐一进行判断
- 逻辑连接,全称量词就是判断谓词的逻辑与,存在量词就是判断谓词的逻辑或
可想而知,需要补足这么多的信息也必须进行手工的核查甚至是纠正与调整才能确保转换后的模型能正常工作。
c 谓词调整
比如上面示例中的规则3【检查站点的通信状态】,在刚应用时,可能就是人去检查,然后手工送入检查结果。之后,随着应用的深入,就可能改为程序自动检测了。
人工检查,由于需要等待人的处理结果,所以其实是要等待一个外部事件。自动检测,则是调用一个同步函数来执行检测并读取到检测结果。
但是,这两种情况的不同,由于是在实现层次进行区分的,大模型根本无法感知到,所以只能由程序员或未来的知识工程师进行手动调整。
以上只是笔者目前所遇到的较为重要的问题与难点,相信随着需要面对的业务场景的增多,问题与难点还会不断涌现。
解决方略
在我看来,这些问题与难点分为三类:
1、准备工作量大
这类问题是由于我们所选择的嵌入式发展路线所导致。即必须解决从现有IT系统到GESLM的跨越问题。
这类问题有一个特点,就是初始工作量较大,但随着嵌入的业务功能、对接的既有系统越来越多,工作量与成本就会越来越少,最终趋于忽略不计。
2、积累不足
这是因为积累的样板太少,所以目前只能以prompt工程的方式让大模型来理解业务知识。如果积累足够多的样板,使用大模型进行微调,相应的问题自然就可以得以化解。
3、背景知识的欠缺
这一部分最为麻烦。因为这些需要补足的知识并不存在于业务方所提供的业务知识中,而是存在于业务人员的从业经历与经验教训中,属于隐藏知识,根本无法直接程序化自动提取。
所以,即便是拿出再多的样板来训练大模型,都无法解决这类问题。
这类问题的解决只能通过在更高层次上积累企业运行数据与知识、行业数据与知识来构建企业与行业大模型来提供背景知识的补足。
至于谓词调整这种因工程实施的阶段性而诱发的问题,归于工程实施来解决就好了。
结语
由于目前样板积累的太少,因此我在【将业务知识转换为业务模型】时采用的是prompt工程的方案来实现的。所以适配与核验的工作量会比较大。
相信随着专用大模型【起码需要六种大模型:业务知识转换大模型、语法语义校对大模型、自动化适配大模型、验证与测试大模型、UI大模型、bug分析大模型】的成熟,相应的准备性与维护性工作量会大幅度的下降。
这样一来,业务系统开发的工序与工种将大幅度缩减,很有可能,不,我坚信:大多数的业务系统在不远的将来只需要一个知识工程师在行业大模型的支持下就可以完成定制性的开发了!最多其再稍微兼职一下程序员就够了。
相应的开发时间与开发成本也自然会大幅度下降;同时,还更满足用户的需求、充分支持其独特的业务逻辑、增强其竞争力;更稳定、更可靠。
作为程序员,我将消灭我自己。我也不知道该配一个笑脸还是哭脸为好。
附
1、流程的描述性定义
jxTMS设计思想之流程引擎与任务分发
2、web界面的描述性定义
jxTMS设计思想之web界面
3、运用模糊数学引入人的经验来降低业务知识不精细时的应用门槛
模糊控制-模糊是什么鬼
相关文章:
大模型驱动的业务自动化
大模型输出token的速度太低且为统计输出,所以目前大模型主要应用在toP(人)的相关领域;但其智能方面的优势又是如此的强大,自然就需要尝试如何将其应用到更加广泛的toM(物理系统、生产系统)领域中…...
ocr智能票据识别系统|自动化票据识别集成方案
在企业日常运营中,对大量票据实现数字化管理是一项耗时且容易出错的任务。随着技术的进步,OCR(光学字符识别)智能票据识别系统的出现为企业提供了一个高效、准确的解决方案,不仅简化了财务流程,还大幅提升了…...
[数据结构]红黑树,详细图解插入
目录 一、红黑树的概念 二、红黑树的性质 三、红黑树节点的定义 四、红黑树的插入(步骤) 1.为什么新插入的节点必须给红色? 2、插入红色节点后,判定红黑树性质是否被破坏 五、插入出现连续红节点情况分析图解(看…...
【机器学习】超参数调优指南:交叉验证,网格搜索,混淆矩阵——基于鸢尾花与数字识别案例的深度解析
一、前言:为何要学交叉验证与网格搜索? 大家好!在机器学习的道路上,我们经常面临一个难题:模型调参。比如在 KNN 算法中,选择多少个邻居(n_neighbors)直接影响预测效果。 • 蛮力猜…...
Burp Suite基本使用(web安全)
工具介绍 在网络安全的领域,你是否听说过抓包,挖掘漏洞等一系列的词汇,这篇文章将带你了解漏洞挖掘的热门工具——Burp Suite的使用。 Burp Suite是一款由PortSwigger Web Security公司开发的集成化Web应用安全检测工具,它主要用于…...
React实现自定义图表(线状+柱状)
要使用 React 绘制一个结合线状图和柱状图的图表,你可以使用 react-chartjs-2 库,它是基于 Chart.js 的 React 封装。以下是一个示例代码,展示如何实现这个需求: 1. 安装依赖 首先,你需要安装 react-chartjs-2 和 ch…...
从低清到4K的魔法:FlashVideo突破高分辨率视频生成计算瓶颈(港大港中文字节)
论文链接:https://arxiv.org/pdf/2502.05179 项目链接:https://github.com/FoundationVision/FlashVideo 亮点直击 提出了 FlashVideo,一种将视频生成解耦为两个目标的方法:提示匹配度和视觉质量。通过在两个阶段分别调整模型规模…...
Qt的QTabWidget的使用
在PyQt5中,QTabWidget 是一个用于管理多个选项卡页面的容器控件。以下是其使用方法的详细说明和示例: 1. 基本用法 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QLabel, QVBoxLayoutclass MainWindow(QMa…...
Next.js【详解】获取数据(访问接口)
Next.js 中分为 服务端组件 和 客户端组件,内置的获取数据各不相同 服务端组件 方式1 – 使用 fetch export default async function Page() {const data await fetch(https://api.vercel.app/blog)const posts await data.json()return (<ul>{posts.map((…...
反向代理模块kd
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…...
leaflet前端初始化项目
1、通过npm安装leaflet包,或者直接在项目中引入leaflet.js库文件。 npm 安装:npm i leaflet 如果在index.html中引入leaflet.js,在项目中可以直接使用变量L. 注意:尽量要么使用npm包,要么使用leaflet.js库,两者一起使用容易发生…...
CMS DTcms 靶场(弱口令、文件上传、tasklist提权、开启远程桌面3389、gotohttp远程登录控制)
环境说明 攻击机kali:192.168.111.128 信息收集 主机发现 ┌──(root㉿kali-plus)-[~/Desktop] └─# nmap -sP 192.168.111.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-23 14:57 CST Nmap scan report for 192.168.111.1 Host is up (0.00039s latenc…...
Docker 入门与实战:从安装到容器管理的完整指南
🚀 Docker 入门与实战:从安装到容器管理的完整指南 🌟 📖 简介 在现代软件开发中,容器化技术已经成为不可或缺的一部分。而 Docker 作为容器化领域的领头羊,以其轻量级、高效和跨平台的特性,深…...
git删除本地分支
一、命令方式 1、查看本地分支 git branch 2、切换到一个不删除的分支 git checkout branch_name 3、强制删除分支 git branch -D local_branch_name 二、工具方式 1、选择"Browse references",右键"Delete branch"...
spring cloud gateway限流常见算法
目录 一、网关限流 1、限流的作用 1. 保护后端服务 2. 保证服务质量 (QoS) 3. 避免滥用和恶意攻击 4. 减少资源浪费 5. 提高系统可扩展性和稳定性 6. 控制不同用户的访问频率 7. 提升用户体验 8. 避免API滥用和负载过高 9. 监控与分析 10. 避免系统崩溃 2、网关限…...
本地使用docker部署DeepSeek大模型
1、相关技术介绍 1.1、RAG RAG(Retrieval Augmented Generation),即“检索,增强,生成”,用于提升自然语言处理任务的性能。其核心思想是通过检索相关信息来增强生成模型的能力,具体步骤如下&am…...
C++ 设计模式-外观模式
外观模式的定义 外观模式是一种 结构型设计模式,它通过提供一个简化的接口来隐藏系统的复杂性。外观模式的核心思想是: 封装复杂子系统:将多个复杂的子系统或组件封装在一个统一的接口后面。提供简单接口:为客户端提供一个更简单、更易用的接口,而不需要客户端直接与复杂…...
【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux网络编程笔记: https://blog.cs…...
SQL进阶技巧:如何统计用户跨端消费行为?
目录 0 问题描述 2 问题剖析 技术难点解析 3 完整解决方案 步骤1:构造全量日期平台组合 步骤2:用户行为标记 步骤3:最终关联聚合 4 核心技巧总结 5 复杂度评估 往期精彩 0 问题描述 支出表: Spending +-------------+---------+ | Column Name | Type | +-----…...
Fiddler笔记
文章目录 一、与F12对比二、核心作用三、原理四、配置1.Rules:2.配置证书抓取https包3.设置过滤器4、抓取App包 五、模拟弱网测试六、调试1.线上调试2.断点调试 七、理论1.四要素2.如何定位前后端bug 注 一、与F12对比 相同点: 都可以对http和https请求进行抓包分析…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
