ChatGLM 大模型外挂(向量)知识库

2023-09-20 13:54:53

前言

        如果我们想往大模型里边注入知识,最先能想到的就是对大模型进行微调。笔者曾实验过,只用几十万量级的数据对大模型进行微调并不能很好的将额外知识注入大模型,笔者在算力这方面囊中羞涩,只有4块卡,这几十万量级的数据训练6B的模型都要训练好几天。。。如果不微调的话,其实还是可以利用外挂数据库的方式让大模型利用额外的知识的,比如向量数据库或者是图数据库,本文主要讲解大模型如何外挂向量数据库,外挂图数据库如果之后有时间,实践之后再分享出来。

        我们知道,大模型有很好的根据上文来回答问题的能力。我们假设一个场景,我有个问题是:“请给我介绍一下万能青年旅店这支乐队“(假设模型内部并没有存储万青的相关信息),然后我有个100w字的文档,里边包含了世界上所有乐队的介绍。如果模型对无限长的输入都有很好的理解能力,那么我可以设计这样一个输入“以下是世界上所有乐队的介绍:[插入100w字的乐队简介文档],请根据上文给我介绍一下万青这支乐队”,让模型来回答我的问题。但模型支持的输入长度是很有限的,比如chatgpt支持4000长度的输入。实际上,如果想让大模型根据文档来回答问题,必须要精简在输入中文档内容的长度。一种做法是,我们可以把文档切成若干段,只将少量的和问题有关的文档片段拿出来,放到大模型的输入里。至此,”大模型外挂数据库“的问题转换成了“文本检索的问题”了,目标是根据问题找出文档中和问题最相关的片段,这已经和大模型本身完全无关了。文本检索里边比较常用的是利用向量进行检索,我们可以把文档片段全部向量化(通过语言模型,如bert等)ÿ

更多推荐

【递归】回溯算法、八皇后问题

一:递归的介绍1.1概念递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。1.2调用机制1.2.1打印问题publicstaticvoidtest(intn){if(n>2){test(n-1);}System.out.println("n="+n);}1.2.

商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程

Web自动化测试详解(含文档+视频讲解)

Web自动化测试是软件测试中非常重要的一种测试方法,它通过编写脚本来模拟人工操作网页,从而实现对Web应用程序进行自动化测试的过程。为了保证测试质量和效率,我们需要遵循一定的流程和步骤来完成Web自动化测试。一、测试环境准备在进行Web自动化测试之前,我们需要准备好测试环境,包括测试工具、测试数据、测试服务器等。对于测

windwos10系统搭建我的世界服务器,内网穿透实现联机游戏Minecraft

文章目录1.Java环境搭建2.安装我的世界Minecraft服务3.启动我的世界服务4.局域网测试连接我的世界服务器5.安装cpolar内网穿透6.创建隧道映射内网端口7.测试公网远程联机8.配置固定TCP端口地址8.1保留一个固定tcp地址8.2配置固定tcp地址9.使用固定公网地址远程联机今天和大家分享一下只需简

使用SSE(Server-Sent Events)实现服务端给客户端发消息

首先是客户端,看着比较简单。但实际应用中可能要比这复杂,因为默认sse只支持get请求,而且没法携带header。所以如果默认的方法达不到需求的话可能需要额外实现,当然也可以引用第三方库,比如@rangermauve/fetch-event-source。所以有谁会自己实现呢?if(typeof(EventSource

云端渲染对比本地渲染,哪个性价比更好呢?

当前环境来看,三维渲染的模式被分为云端渲染对比本地渲染两种模式。云渲染是什么?云渲染就是一种基于云计算的3D图形渲染解决方案,将3D程序放在远程的服务器中渲染。其用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端中发出,服务器根据指令执行对应的渲染任务,而

Kakfa - Producer机制原理与调优

Producer是Kakfa模型中生产者组件,也就是Kafka架构中数据的生产来源,虽然其整体是比较简单的组件,但依然有很多细节需要细品一番。比如Kafka的Producer实现原理是什么,怎么发送的消息?IO通讯模型是什么?在实际工作中,怎么调优来实现高效性?简单的生产者程序:一、客户端初始化KafkaProduce

selenium自动化测试-获取动态页面小说

有的网站页面是动态加载的资源,使用bs4库只能获取静态页面内容,无法获取动态页面内容,通过selenium自动化测试工具可以获取动态页面内容。参考之前的"bs4库爬取小说工具"文章代码,稍微修改下,就可以转成获取动态页面小说工具。第一步:先确定目标网址先找到小说目录页面。网址首页:'https://www.bq0.ne

RockyLinux安装MariaDB

文章目录1前言2参考3开始安装3.1运行官方脚本添加MariaDB的源3.2安装MariaDBServer3.3启动MariaDB4SSH登录MariaDB4.1ssh上使用root账号登录4.2新建管理员账号并授权5放行端口33065.1VirtualBox上设置端口转发5.2RockyLinux防火墙放行3306端

自定义linux cp命令

基本要求:1.基本要求,实现文件的复制。编写程序实现cp命令的功能,程序源文件名为mycp.c,使用方法为:./mycp源文件名目标文件名2.扩展要求,当目标文件已存在时,给出提示是否进行覆盖,并根据用户的回应进行相应的操作。3.扩展要求,在上一步实现功能的基础上,为mycp增加选项,如果选项为-f,则当目标文件已存在

OpenAI即将推出新一代AI模型DALL-E 3;用AI进行天然产物药物发现的综述

🦉AI新闻🚀OpenAI即将推出新一代AI模型DALL-E3摘要:OpenAI正在准备推出下一代AI模型DALL-E3,并已进行了一系列Alpha测试。据分享,5月的测试版已能生成多种长宽比的图像,支持更长的提示语句,并生成“正常的文字”。然而,7月的版本可能会生成一些不适当的场景和受版权保护的商标图案。OpenA

热文推荐