前言
大模型作为一个语言模型,实际上没有真正的记忆功能。所谓的对话记忆只是开发者将对话历史向GPT发送消息时将最近的对话历史通过提示工程组发送给ChatGPT。换句话说,如果对话历史超过了大模型的最大上下文,GPT会忘记之前的部分,这是大语言模型共有的局限性。
另外对专业领域知识的训练缺乏也是非常明显的短板。尽管这些模型在理解和生成自然语言方面有极高的性能,但它们在处理专业领域的问答时,却往往不能给出明确或者准确的回答。在医学、法律、工程等领域,人工智能可能被要求要理解和运用相当复杂和专业化的知识,然而这在目前的模型中仍是一个巨大的挑战。
针对专有和专业知识在大模型的应用落地出现不少解决方案,而向量数据库就是其中之一。当我们很多文档(例如客服培训资料或者产品操作手册)需要大模型根据它们的内容进行回答时,我们可以先将这份文档的所有内容转化成向量(这个过程称之为 Vector Embedding),然后当用户提出相关问题时,我们将用户的搜索内容转换成向量,然后在数据库中搜索最相似的向量,匹配最相似的几个上下文,最后将上下文返回给大模型。这样不仅可以大大减少模型的计算量,从而提高响应速度,更重要的是降低成本,并巧妙的减少 tokens 限制所带来的问题。
针对这种需求,聆思CSK6大模型开发板也配套提供了一个知识库方案,参考下面文档三步就能在智能硬件上接入自建的知识库
创建知识库
新建知识库
在聆思大模型平台点击侧边栏的“知识库”模块,进入知识库页面,点击创建知识库即可进行知识创建流程;
在弹出的窗口输入知识库名称点击确定即可完成知识库创建。
上传文档
点击对应的知识库应用,点击右侧的“上传文件”按钮,即可进入文档上传流程;
文档支持txt、doc、pdf格式,请将要建立索引的文档转换至上述格式再进行上传。
设置分片策略
平台提供两种分片策略,首次可以先选择智能分片方式快速了解流程。
智能分片
系统自动拆分片段,无需关注数据库底层的分片细节,适合应用在一些篇幅较长并且没有固定格式的泛文本内容。同时为了提高检索效果和效率,每个片段会控制在250token以内。
自定义分片
支持自定义分片符号(同时支持正则表达式)对文档进行分片,你可以填写\n\n,代表将文档中两个连续换行符视为分割符号进行文档分割。例如下方纯文本内容则会把一个QA对视为一个片段进行分割。
修改大模型语音交互处理流程
创建应用
点击应用模板中心中大模型套件的添加应用按钮。
在弹出的对话框中给应用命名。
在线编排
打开刚创建应用,点击编排应用进入可视化应用编排界面。自定义编排可以通过官方文档(AiFlow编排技巧 | 聆思文档中心)了解,本篇实战暂不涉及。
在语音交互处理流程中引入知识库
聆思platform中【知识库问答】和【知识点检索】这两种模块都是用来在流程中引入自建知识库的,在我们创建的应用流程中使用的是【知识点检索】。
双击点开【知识点检索】,点击[知识库ID],在下拉菜单显示的就是前面新建的知识库ID,直接选中替换掉模板的知识库ID,点击完成即可保存配置。
回到流程编排页面,点击右上角的【部署】后,流程配置生效。
开发板接入知识库流程
完成云端配置后,仅需将产品ID与密钥写入设备,才能让设备连接对应的产品并完成鉴权服务。
配置产品管理信息
1、打开产品管理,点击右上方的【创建产品】
在弹出的页面中点击【配置应用】,选择前面配置的【说明书】应用,然后保存。
开发板关联新流程
在开发板应用首页下滑调出菜单,以此点击设置图标 →应用,进入应用信息查看页:
点击右下角扫码接入按钮调出相机,将 LSPlatform 待接入的产品二维码置于屏幕绿色扫描框内,完成扫描后,请在应用配置信息处检查product_id和secret_id是否已更新:
至此完成知识库接入到硬件的操作流程,此时语音交互会先从知识库中取结果,知识库没有的话就会由大模型来处理回复。
本文使用的聆思CSK6大模型开发板开箱联网就可以使用大模型语音交互,按照以上步骤就可以接入自建知识库,详细功能参考:https://docs2.listenai.com/x/nTn9kMMCU
博客持续更新实操和示例讲解,欢迎关注,也可以在评论区提问交流。
有兴趣DIY并投稿的朋友可以私信联系,可以帮助评估可行性,还会有福利哟~
标签:模型,知识库,点击,文档,实操,应用,三步,流程 From: https://blog.51cto.com/u_15947017/12118295