垂直领域的大模型应用建设实战(一)

0 评论 1831 浏览 6 收藏 11 分钟

从2020-2024四年间笔者完成了某个垂直领域的协同平台从0到1的搭建,在2024年转战开发垂直领域的大模型应用,从对大模型一无所知到最终完成大模型设计上线,想把项目经历分享出来,为同样准备入门的小白提供参考。

一、ChatGPT为什么这么火?——市场前景和可行性分析

2022年11月30日OpenAl 公司推出了ChatGPT,引起了新一轮的技术和资本热潮,热度延续至今,它的商业价值仍在不断扩张,它让大模型成为互联网大厂的军备竞赛,他们一边卷底座模型参数和性能,另一边抓紧大模型AI应用的落地,将大模型视为下一个业务增长点。

ChatGpt这么成功,究其原因是探索出了一个模式:具备对话能力的大模型。

在ChatGpt诞生之前人工智能的落地应用比如语音图像识别,购物和社交平台算法推荐,它们都在垂直领域获得了成功,但是那时候大部分的用户和企业都认为他们是遥远的科学,开发和应用的技术门槛过高。对于普通用户来说,大模型像是一个电脑主机,它聪明又博学,而具备对话能力的生成式Ai为大脑接上了电脑屏幕和鼠标键盘,在普通用户和AI之间搭建起了桥梁,用户可以在生活中便捷使用。而对于互联网公司来说,OpenAI的调用API的方式,使得企业用户无需开展大模型底座预训练,就可以将大模型能力集成进现有的产品中,研发成本和技术门槛都大大降低。

对于传统行业,历经10-20年的信息化转型已经完成,有了信息化转型的设计理论储备,以及信息化数据作为大模型知识库,已具备融合AI技术的基础,实现智能化升级。

二、如何开展垂直领域的大模型研发

第一步:理解大模型能力

1)强大推理分析和内容生成:基于现有数据进行理解分析,基于用户指令输出新内容。

2)强大的信息检索能力:适合需要快速从海量数据中提取信息的场景。

大模型也具备图片、视频等的多模态处理能力,但是目前笔者的项目成果主攻方向还是文本生成领域。

第二步:核心功能定位与交互设计

1)核心功能定位

总体思路是基于信息化建设的经验积累,结合大模型能力的特点,选取适合融入AI技术,并且知识储备充足的模块,进行场景构思。传统业务线上化后仍存在一个问题就是用户需要基于个人经验和知识储备开展工作,而大模型强大的逻辑推理、知识检索能力可以在开展业务时提供头脑风暴挖掘业务深度价值,或是提供案例知识检索,给出一个标准线以上的答案,提升工作标准化程度。

业务目标:提升效率、提升业务价值、标准化作业程度

2)交互设计

2024年初开展大模型应用设计,当时市场上大模型应用都是chatbot,在交互设计定位上希望的是不局限于聊天界面。但是大模型的调用基本需要发送指令,无聊天界面查看问答过程会降低交互的友好性。因此确定了“工作台+聊天窗口”的交互设计模式,既可以在聊天窗口获取AI辅助、也可以工作台捕捉用户行为唤醒AI辅助。同时两个AI入口的交互也是互通的,比如说用户在工作台选取了需要分析的资料,聊天窗口就会显示分析附件。工作台调用的AI指令和返回结果也能在聊天窗口看到历史记录。在2024年下半年调研市场上AI应用发现,AI产品普遍也采用了这种设计模式。

第三步:大模型应用研发

第一阶段:企业级RAG搭建

RAG(检索增强技术)主要是为了解决大模型的幻觉和知识更新不及时问题,通用大模型不具备垂直领域的专业信息,会出现生成与事实不符、逻辑错误或虚构的内容情况。

主要原理:将垂直领域的知识进行切片、向量化形成多维度的向量数据,将用户指令向量化后在向量数据进行第一阶段的粗筛选,根据语义相似度检索(余弦相似度算法,通过计算两个向量的夹角余弦值来衡量它们的相似度)召回top10的知识块,第二阶段采用精筛选,使用Rerank(重排序)结合上下文信息,对召回知识块进行重新打分, 优化检索结果。最后将用户指令和召回知识块给大模型生成返回结果。

整个过程应用了 Langchain开发框架和Milvus向量数据库开展了以下工作:

1)切片

在切片过程中应用了以下4种方式:

  • 固定字符大小,设置重叠大小,按照长度粗暴切分。(基本不适合,会将一句话截断)
  • 段落、字符文本分割,根据段落、空格、标点符号(比如句号、逗号)来切分文本。(适合上传临时文件分析)
  • 混合模式切片:采用不超过最大字符长度,结合标点段落进行切片(使用频率最高)
  • 基于语义分割,对原始文本进行分词预处理,结合提示词或者使用预训练的语义分割模型,打标签,根据语义标签,提取目标类别的文本片段,将提取的文本片段组合成切片。(耗时长、适合文档章节内容比较固定的文档)

根据不同的知识切片也需要做相应调整,例如针对法律制度需要在每个知识块上带上文件名称、章节名称、条款名称。针对文章类型需要设置一定的重叠大小。

2)向量化

  • 知识标签:前期规划企业内部知识时有制定了一些知识标签,在导入向量库时需要加上知识标签,便于后期对检索规则或者提示词规划。也可以加上文件名称和file ID,后续在对话窗口展示知识来源,提高可信度。
  • 向量检验:这个阶段采用了BERT 和Bge-large-zh模型,没有发现两个模型效果上的差别,Milvus提供可视化的工具attu,便于验证表、查询数据,支持带过滤条件的向量混合检索,向量化后可以选取一些知识文本进行检索检查向量结果是否成功。

3)提示词工程

  • 角色说明:垂直领域的大模型应用的用户一般有固定类型的角色,因此可以根据使用场景在提示词中添加角色和回答风格说明。
  • 知识检索说明:因为在规划知识库的前期规范了知识标签,可以针对不同知识标签实现不一样的生成效果,例如可以指定在知识标签内进行知识检索,针对不同知识的使用场景规范输出格式,例如法律条款需要列出法律名词,做尽量少的改写。

以上就是第一阶段我们从场景设计到RAG搭建的项目实践,总结项目困难就会回到AI的三大基本组成:数据、算法和算力,我们在项目中遇到的问题也来源于这3个因素。

  • 幻觉:当输入质量太差或者缺乏知识,或者模型本身性能不佳都会导致大模型“一本正经”地胡编乱造。其实幻觉包含了多方面的问题,而我们开展的所有工作不论是应用RAG、还是提示词工程,都是在和幻觉问题进行对抗。
  • 数据质量:不论是微调还是RAG,在垂直领域的输出效果都高度依赖数据质量
  • 模型参数限制:模型的规模较小时,一般max_token也较小,只能在有限的上下文范围内理解文本,输入的材料读取不全,也不能进行有效思考,容易产生理解偏差。
  • 有限算力资源:具体表现为响应速度慢、并发能力弱,无法同时处理大量请求、生成质量不稳定。
  • 对输入有要求:一个好的用户输入具备明确(肯定语句好过否定语句)、具体(列举要求)、结构化(将复杂任务进行步骤拆解)、简洁(突出关键信息),并提供必要的上下文信息(背景信息)。但是在分析用户历史聊天数据时发现,一些反馈不好的回答,在对问句进行改写后回答效果会大大提升。

本文由 @莴苣很好吃 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!