当前位置: 首页 > news >正文

如何构建企业专属GPT

大语言模型(LLM)具有令人印象深刻的自然语言理解和生成能力, 2022年11月底OpenAI发布了ChatGPT,一跃成为人工智能AI领域的现象级应用。但由于LLM的训练数据集主要来源于互联网数据,企业私域信息并未被LLM所训练,当客户查询关于企业的业务信息的时候,LLM会出现幻觉,无法进行正确回应。因此,企业界(尤其是中小型企业)具有强烈的愿望能够打通企业数据和LLM的互联网数据,构建企业专属GPT,利用LLM的能力服务企业目标客户。

在企业中,GPT 构造器的角色通常面向以下几个方面职责。

数据收集与处理:负责收集和整理大量的文本数据,这些数据将用于训练 GPT 模型。本文中主要的数据来自于FAQ,文档和网页。

模型训练:使用收集到的数据对 GPT 模型进行训练,这可能涉及到选择合适的模型架构、超参数调整、训练过程的监控和优化等。在使用向量表示的时候,会对文档通过数据工程进行分块,并进行向量化。

模型评估与优化:在模型训练完成后,需要评估模型的准确定和性能,并根据评估结果对模型进行优化和调整,并进行RLHF。

应用集成:将训练好的 GPT 模型集成到企业的产品或服务中,例如用于构建聊天机器人、消息通道、文本生成工具、语言理解系统等。

模型迭代:随着技术的发展和业务需求的变化,负责对 GPT 模型进行迭代更新,以保持其在企业应用中的有效性和竞争力,同时会对其问答知识进行训练,确保业务的持续更新。

知识管理:负责管理 GPT 模型训练和使用过程中产生的知识,确保知识的合规性和安全性。

企业GPT构造器的总体架构

企业GPT构造器的具体角色和职责可能会根据企业的规模、业务需求和资源配备而有所不同。在一些企业中,这些任务可能由专门的AI团队承担,而在其他企业中,可能由数据科学家或软件工程师负责。在这当中,企业GPT构造器的IT基础形态各异。本文介绍一款基于多租户架构的企业GPT构造器,其总体设计思路如下图所示。

图片

企业租户管理员作为信息生产者,负责企业GPT的喂养工作。企业业务部门如销售部、市场部等作为信息消费者,使用企业GPT服务为客户提供服务。系统主要分为企业GPT的喂养和服务两部分,接下来以这两点结合笔者的实战进行介绍。

企业GPT构造器喂养

在企业GPT喂养工作中,租户管理员负责输入企业官网及其他相关网站,系统通过抓取技术进行文本采集;支持上传对应的文档,通过表单识别进行文本采集;并支持问题/答案的直接输入。这些喂养的网页和文档将进行分块和向量化处理,以向量的方式存储于向量数据库中。

01 企业官网抓取

官网作为租户(尤其是中小型企业)最重要的权威信息发布渠道,跟企业业务紧密结合。因此企业GPT构建器采用网站抓取技术,能够提取官网多级目录,并列出目录由租户决定喂养哪些URL的信息。

虽然企业官网网页数据结构化不强,但是对于中小型企业来说不需要进行手动处理即可作为喂养素材,整体上是一种比较经济的处理方式。

图片

02 企业文档加载

企业文档包括了行业规范、洞见及趋势,企业产品/服务功能描述、非功能描述、特性和优势、操作手册、交付方式、商业合作模式、应用范围、主要应用案例等,这些企业文档能够帮助客户了解企业相关业务。

系统支持word、pdf、ppt、markdown及txt等文件。文档相对网页更加结构化,更加能够聚合信息,对于规模稍大的企业来说文档资源也比较丰富,应该算比网页更加优质的素材。为了提升喂养文档质量,文档尽量做到主题明确、描述清晰,内聚地表达业务内容。尽量避免在一些多级标题的场景下,小标题会被切分成单独的chunk,与正文分割开。

03 问题/答复对输入

企业问题/答复(FAQ)对可以进行输入,并作为单独的向量存放在向量数据库中。

作为最优质的企业信息,问题/答复对向量将更加容易被向量检索到,能够在答复客户时作为第一优先级答案。

04 企业GPT喂养流程

基于中小型企业的特点,企业GPT构造器喂养流程分为:

// 预处理:针对企业文档,对于部分图片方式的文档,需要使用 OCR 功能进行预先识别,并对文档进行边界框中文本的位置、文本内容、表、选择标记(也称为复选框或单选按钮)和文档结构分析。

// 格式化:经过预处理的文本将进行格式化,格式化的步骤如下:

  • STEP1. 将html富文本或markdown的知识统一处理为纯文本格式

  • STEP2. 构建标题树,在富文本场景下通过构建内容标题树的方式来优化chunk,比如把chunk按照“#大标题-中标题-小标题#:内容”的方式构建。

检索时额外检索同一标题树下的chunk,随后做拼接。如果一次构建的知识块过长,则将此知识块文本按照400-500个token长度,并在其后根据标点符号和换行符等来切分段落来切分。

// 向量化:通过大数据模型(LLM)的向量化(Embedding)接口,对经过格式化的文本分块进行处理,以OpenAI的Embedding接口为例,其对格式化后的文本进行向量化,本文案例选择的是text-embedding-ada-002模型。

// 向量存储:将向量化后的企业知识存入到向量数据库中,包含了来源ID、类型、分块向量、原始文本内容等,并进行多租户数据隔离。

图片

企业GPT喂养流程

企业GPT构造器服务

企业通过使用 GPT模型来获得多种自然语言处理(NLP)服务,这些服务可以帮助企业提高效率、改善客户体验、提供7*24小时服务等。以下简要介绍企业可以通过 GPT 获得的部分服务。

01 消息公众号设计

在企业信息向量化存储之后,还需要对企业交互式消息公众号进行设计,我们可以配置chatbot的头像logo,名称,服务介绍,服务电话,主页,服务邮箱等信息。

02 Prompt设计

同时我们需要对企业GPT机器人做角色定义。设置AI创造力因子(Temperature)来确定AI答复的确定性或者创造性。并应用提示工程对其角色进行清晰明确的描述,以便AI模型理解我们的需求,提示工程通常有三个主要元素组成:任务、指令、角色,可以通过调整Temperature参数来控制生成文本的多样性,较高值会导致更加随机和多样化的文本生成,而较低值则会导致更加保守和确定性的文本生成。并通过少样本示例实现企业希望扮演的角色目标,下图是一个Prompt的设计例子。

图片

企业GPT Prompt设置

03 服务流程

通过交互式消息,企业GPT可以对外提供消息服务,其提供服务的流程如下图所示。

企业GPT通过交互式消息为客户提供服务

企业的目标客户通过交互式消息或者Web插件,访问企业GPT,步骤如下:

  • Step1:根据设定的业务场景(预配置交互流程)及企业角色(提示工程),如市场营销、客户服务、办公助手等,企业客户访问企业GPT。

  • Step2:企业GPT通过构造LLM对客户问题文本进行向量化。

  • Step3:使用向量搜索,在向量数据库中搜索离客户问题向量最相似的Top K(K可以设置)文本内容并返回,判断的标准为问题向量和喂养分块向量之间的距离(向量之间的欧氏距离或者余弦距离)。

  • Step4:企业GPT判断Top K向量同客户问题向量的相似度。

  • Step5:将匹配度得分>N分(N可以配置)的相关设置的Prompt、文本内容、当前及会话历史问答,统一送到会话LLM,会话LLM根据这些信息进行组织推理。在某些场景下需要做上下文回溯,虽然能够准确地检索内容,但是这部分内容并不全,检索时额外检索最相关chunk的相邻chunk,随后做拼接。

  • Step6:组装好的答案和参考文档信息通过交互式消息返回客户端。

04 服务展示

系统本身支持多种交互式消息,下图是多种交互式消息的展示例子。

05 训练和增强

在实际项目执行过程中,部分面向客户的答复需要严谨,因此对机器人的答复进行训练和增强。

多种交互式消息通道的企业GPT展示

用户问题与回复的答案将会自动被填入文本框内。可以进行编辑,并以“Q&A”的格式训练至知识库内。可以选择训练至一个已有的“Q&A”知识文档内,也可以创建一个新的“Q&A”知识文档来储存本次训练的知识。

企业GPT构造器应用场景

企业GPT在构造之后,可以通过交互式消息通道或者Web插件为企业的各个部门客户提供服务,且不限于下列场景例子。

Scene1. 品牌营销

配合交互式消息的主动触达功能,可以向客户发送促销信息,通过企业GPT,能够为客户解答促销信息的内容,也可以自动答复企业官网/社媒账号,引导客户直接访问购买,也可以为客户提供政策咨询服务。

品牌营销场景

Scene2. 客户服务

可以通过交互式消息发送客户物流信息,待客户接收商品之后,在喂养相关商品的产品使用手册周,客户可以通过企业GPT,客户可以咨询企业人工座席工作时间,企业GPT能够告诉客户如何使用商品,帮助客户排除商品的使用故障等。

客户服务场景

Scene3. 助手服务

在喂养了企业的财务、人事等相关政策文档后,企业员工可以不用阅读繁琐的各类文档,通过企业GPT,以对话的方式咨询财务系统发票问题,人事政策问题等内容,大大提升新员工培训效率及员工获得感。

图片

企业助手场景

助手服务还可以广泛应用于企业业务支撑,如对销售人员的专业知识支持,运维人员的设备知识支持等。

实战应用案例

浩鲸科技企业GPT构造器能够快速地帮助企业构建自己的GPT,目前已成功实战了HETU产品线hetuGPT、NuriGPT、MRGPT以及wctGPT。

其中,印尼N电商是一家通过互利联盟营销社区为品牌所有者、经销商、有影响力者和消费者提供创新和全新在线购物体验的技术公司。作为一家电商,其经营的电子产品种类繁多,客服人员无法对所有电子产品的参数、操作方式了如指掌,因而常常在答复客户询问产品的时候,需要打开大量的文档进行查询, NuriGPT有效地解决了这个痛点,N电商客服团队负责人Arnold说:

“HETU 企业GPT帮助N电商构建了企业级NuriGPT来支持电商业务,知识喂养的方式很方便,只需要上传文档,客服人员就可以快速的从各种电子产品文档中检索出产品参数、操作方式、常见故障解决方法,其ChatGPT的自然语言交互体验非常好,并自动支持多语言的转换,帮助客服人员快速解决客户的问题,大大降低客服人员的工作负载。”

相关文章:

如何构建企业专属GPT

大语言模型(LLM)具有令人印象深刻的自然语言理解和生成能力, 2022年11月底OpenAI发布了ChatGPT,一跃成为人工智能AI领域的现象级应用。但由于LLM的训练数据集主要来源于互联网数据,企业私域信息并未被LLM所训练&#x…...

知识积累(二):损失函数正则化与权重衰减

文章目录 1. 欧氏距离与L2范数1.1 常用的相似性度量 2. 什么是正则化?参考资料 本文只介绍 L2 正则化。 1. 欧氏距离与L2范数 欧氏距离也就是L2范数 1.1 常用的相似性度量 1)点积 2)余弦相似度 3)L1和L2 2. 什么是正则化&…...

消息中间件-面试题

MQ选择 一、Kafka 1、消息队列如何保证消息可靠性 消息不重复 生产者控制消费者幂等消息不丢失 生产者发送,要确认broker收到并持久化broker确认消费者消费完,再删除消息2、kafka是什么 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。broke…...

Python 将二维数组或矩阵变为三维

Python 将二维数组或矩阵变为三维 引言正文基础 拓展 引言 之前,我们已经介绍过了 Python 将一维数组或矩阵变为三维。然而,很多时候,我们也需要对二维矩阵进行操作,这里特来介绍一下如何将二维矩阵扩展为三维。 阅读这一篇前推…...

区块链与Solidity详细介绍及基本语法使用

一、区块链简介 区块链是一种分布式数据库技术,它以块的形式存储数据,并通过加密算法确保数据的安全性。每个块包含一系列交易,并通过哈希值与前一个块相连接,形成一个链式结构。这种结构使得数据难以被篡改,因为任何对…...

题目 1253: 老王赛马

题目描述: 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受齐国贵族…...

【MATLAB源码-第144期】基于matlab的蝴蝶优化算法(BOA)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 ​蝴蝶优化算法(Butterfly Optimization Algorithm, BOA)是基于蝴蝶觅食行为的一种新颖的群体智能算法。它通过模拟蝴蝶个体在寻找食物过程中的嗅觉导向行为以及随机飞行行为,来探索解空间…...

地下管线管网三维建模工具MagicPipe3D V3.4.2发布

经纬管网建模系统MagicPipe3D,本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3DTiles服务、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…...

糖尿病性视网膜病变(DR)的自动化检测和分期

糖尿病性视网膜病变(DR)的自动化检测和分期 提出背景DR的阶段及其特征 历年解法计算机视觉方法多分类方法 新的解法深度学习方法迁移学习大模型多模型集成全流程分析 总结特征1:图像分割特征2:疾病分级特征3:治疗建议生…...

C 标准库 - <errno.h>

在C语言编程中&#xff0c;<errno.h> 头文件扮演着至关重要的角色&#xff0c;它提供了一个全局变量 errno 以及一系列预定义宏&#xff0c;用于指示系统调用或库函数执行过程中发生的错误。这些宏有助于程序员诊断和处理运行时错误。 errno 变量 extern int errno;err…...

基于springboot+vue的房屋租赁管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

Sora----打破虚实之间的最后一根枷锁----这扇门的背后是人类文明的晟阳还是最后的余晖

目录 一.Sora出道即巅峰 二.为何说Sora是该领域的巨头 三.Sora无敌的背后究竟有怎样先进的处理技术 1.Spacetime Latent Patches 潜变量时空碎片&#xff0c;建构视觉语言系统 2.扩散模型与Diffusion Transformer&#xff0c;组合成强大的信息提取器 3.DiT应用于潜变量时…...

C语言之static关键字详解

C语言之static关键字详解_c语言static-CSDN博客 1.变量 2.局部变量和全局变量 3.变量的作用域 4.变量的生命周期 二、static关键字的作用 三、static关键字修饰局部变量 四、static关键字修饰全局变量 五、static关键字修饰函数...

Redis高性能原理

redis大家都知道拥有很高的性能&#xff0c;每秒可以支持上万个请求&#xff0c;这里探讨下它高性能的原理。单线程架构和io多路复用技术。 一&#xff0c;单线程架构 单线程架构指的是命令执行核心线程是单线程的&#xff0c;数据持久化、同步、异步删除是其他线程在跑的。re…...

MSS与cwnd的关系,rwnd又是什么?

慢启动算法是指数递增的 这种指数增长的方式是慢启动算法的一个核心特点&#xff0c;它确保了TCP连接在开始传输数据时能够快速地探测网络的带宽容量&#xff0c;而又不至于过于激进导致网络拥塞。具体来说&#xff1a; 初始阶段&#xff1a;当TCP连接刚建立时&#xff0c;拥…...

解决两个MySQL5.7报错

目录 1.启动不了MySQL&#xff0c;报错缺少MSVCR120.dll去官网下载vcredist_x64.exe运行安装进入管理员CMD 2.本地计算机 上的 mysql 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止&#xff0c;Fatal error: Can‘t open and lock privilege tables: Table ‘…...

[OpenAI]继ChatGPT后发布的Sora模型原理与体验通道

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言OpenAI体验通道Spacetime Latent Patches 潜变量时空碎片, 建构视觉语言系统…...

机器人初识 —— 电机传动系统

一、背景 波士顿动力公司开发的机器人&#xff0c;其电机传动系统是其高性能和动态运动能力的核心部分。电机传动系统通常包括以下几个关键组件&#xff1a; 1. **电动马达**&#xff1a;波士顿动力的机器人采用了先进的电动马达作为主要的动力源&#xff0c;如伺服电机或步进…...

安卓游戏开发之音频技术优劣分析

一、引言 在安卓游戏开发中&#xff0c;音频处理技术扮演着至关重要的角色&#xff0c;它不仅能够增强游戏的沉浸感和玩家体验&#xff0c;还能通过声音效果传达关键的游戏信息。以下将对几种常见的安卓游戏音频处理技术进行优劣分析&#xff0c;并结合应用场景来阐述其特点。 …...

在C语言中,设置Linux系统时间

C 语言中使用 mktime 函数和 stime 函数来处理时间。 处理之前&#xff0c;需要先获取当前的时间戳。并使用当前的时间戳生成struct tm&#xff0c;struct tm是C语言中用于表示日期和时间的结构体&#xff0c;通常用于在程序中操作和处理日期时间信息。它包含了以下成员变量&a…...

golang k8s包管理工具

k8s包管理工具Helm Helm简介Helm基础概念Helm安装Helm命令Helm Chart&#xff08;图表&#xff09;Chart语法Chart变量替换Chart模板控制结构Chart模板函数Chart迭代和范围Helm Values&#xff08;值&#xff09;Helm Release&#xff08;发布&#xff09;Helm Repository&…...

数字信号处理:傅里叶分析

本文主要参考视频如下&#xff1a; 数字信号处理9-1_线性时不变系统对复指数信号的响应_哔哩哔哩_bilibili 傅里叶分析的主要研究内容如下所示&#xff1a; 注意&#xff0c;计算机中使用的离散傅里叶变换并不是离散时间傅里叶变换&#xff1b; 前四种都是理论上的变换方式&…...

pat 甲级 1051 Pop Sequence

思想:如果要弹出一个数&#xff0c;那么说明比它小的数字已经进栈了&#xff0c;所以要在一个数num输入之后把比它小的数都输入到栈中&#xff0c;直到栈满或者valnum时结束入栈操作。如果valnum&#xff0c;将这个值弹出&#xff0c;否则说明整个序列存在问题&#xff0c;把fl…...

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束&#xff0c;这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义&#xff0c;就是把原图预处理为深度图&#xff0c;而深度图可以区分出图像中各元素的远近关系&#xff0c;那么啥事深度图&#xf…...

Rust-知多少?

文章目录 前言1.使用下划线开头忽略未使用的变量2. 变量解构3.常量4.变量遮蔽&#xff08;shadowing&#xff09;5. 类似println!("{}", x); 为啥加感叹号6.单元类型7. -> 运算符到哪去了&#xff1f;总结 前言 Rust 学习系列&#xff0c;记录一些rust使用小技巧…...

Qt不规则可移动窗体的实现

实现&#xff1a; 可以借助不规则的位图来实现不规则窗体&#xff0c;并支持拖动和移动。下面分别是头文件和源文件 #ifndef SHAPEWIDGET_H #define SHAPEWIDGET_H#include <QWidget>class ShapeWidget : public QWidget {Q_OBJECTpublic:ShapeWidget(QWidget *parent …...

Jakarta Bean Validation

Validation 官网 https://beanvalidation.org/ 常见注解 Bean Validation中定义的注解&#xff1a; 注解详细信息Null被注释的元素必须为 nullNotNull被注释的元素必须不为 nullAssertTrue被注释的元素必须为 trueAssertFalse被注释的元素必须为 falseMin(value)被注释的元素…...

Flink Catalog 解读与同步 Hudi 表元数据的最佳实践

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…...

git 使用总结

文章目录 git merge 和 git rebasegit mergegit rebase总结 git merge 和 git rebase git merge git merge 最终效果说明&#xff1a; 假设有一个仓库情况如下&#xff0c;现需要进行 merge&#xff1a; merge 操作流程&#xff1a; merge 的回退操作&#xff1a; git reba…...

【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么

文章目录 什么是Elasticsearch的正向索引和倒排索引&#xff1f;1.倒排索引&#xff08;Inverted Index&#xff09;2.正向索引&#xff08;Forward Index&#xff09;3.小结 什么是Elasticsearch的正向索引和倒排索引&#xff1f; 首先&#xff0c;要明确的是&#xff0c;Ela…...

网络营销导向的网站建设的基本原则/美国疫情最新消息

昨日&#xff0c;题为“Shaping the Connected World”的2015 ARM年度技术论坛登陆北京。在媒体见面会上&#xff0c;ARM处理器部门经理James McNiven、ARM处理器部门市场营销总监Ian Smythe、ARM多媒体处理器事业部市场营销副总裁Dennis Laudick以及ARM物联网部门产品战略总监…...

浙江网站建设上市公司/seo优化的作用

/*************************************************************************** I.MX6 driver goto 使用* 说明&#xff1a;* 在绝大多数地方&#xff0c;我们都被告诉尽可能不要用goto&#xff0c;甚至都没学过goto&#xff0c;但* 这种语法却在内核…...

整形网站 源码/百度搜索热词排行榜

开发语言&#xff1a; python2.7包&#xff1a;smtplib导入包&#xff1a;import smtplib定义一个函数&#xff1a;def send_mail(to_list, cc_list, html, sub):me mail_usermsg MIMEText(html, _subtype‘html‘, _charset‘utf-8‘) # 格式化邮件内容为html&#xff0c;编…...

wordpress 没有样式表/百度推广总部客服投诉电话

前阵子&#xff0c;我和阿里的薪酬福利专家M同学聊了一下午&#xff0c;M同学做了9年薪酬&#xff0c;和我们吐槽了很多薪酬方面的现象&#xff0c;也道出了少有人关注的薪酬逻辑和常识。 这一次&#xff0c;我又找了一位阿里技术岗位的招聘专家T同学&#xff0c;从他的视角中…...

做学校后台网站/找网站设计公司

awesome-view 项目地址&#xff1a;xinghongfei/awesome-view 简介&#xff1a;自定义 View 有这些足够了 更多&#xff1a;作者 提 Bug 标签&#xff1a; 自定义view- 自定义 View 主要掌握以下四块内容&#xff1a; 绘制机制&#xff1a;掌握 onMeasure,onLayout,…...

乐山市城乡规划建设局网站/济南seo优化公司助力网站腾飞

$http.post()比get方式多的一个参数为发送给后台的值&#xff0c;其他解释参照上一篇关于get方式解析&#xff0c;格式如下&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title></title>…...