书生·浦语大模型实战营-学习笔记3

news2024/11/18 20:47:05

目录

  • (3)基于 InternLM 和 LangChain 搭建你的知识库
    • 1. 大模型开发范式(RAG、Fine-tune)
      • RAG
      • 微调 (传统自然语言处理的方法)
    • 2. LangChain简介(RAG开发框架)
    • 3. 构建向量数据库
    • 4. 搭建知识库助手
    • 5. Web Demo部署
    • 6. 动手实战环节

视频地址:
(3)基于 InternLM 和 LangChain 搭建你的知识库
文档教程:
https://github.com/InternLM/tutorial/tree/main/langchain

(3)基于 InternLM 和 LangChain 搭建你的知识库

在这里插入图片描述
在这里插入图片描述

1. 大模型开发范式(RAG、Fine-tune)

在这里插入图片描述
在这里插入图片描述

RAG

Retrieval-Augmented Generation (RAG) 检索增强生成
核心思想:给大模型外挂一个知识库,对用户的提问会首先从知识库中匹配到提问对应相关的文档,然后将文档和提问一起交给大模型来生成回答,从而提高大模型的知识储备

优势:

  • 无需对大模型进行重新训练
  • 不需要GPU算力
  • 对于新的知识只需总结加入到外挂数据库中即可
  • 加入新知识成本低
  • 可以实时更新

不足:

  • 将检索到的文档和用户提问一起交给大模型、占用了大量的模型上下文,回答知识有限,对于需要大跨度进行总结的知识表现效果不佳

在这里插入图片描述

什么是RAG

微调 (传统自然语言处理的方法)

在一个新的较小的训练集上,进行轻量级的训练微调,从而提升模型在这个新数据集上的能力
优势:

  • 可个性化微调,充分拟合个性化数据,对于非可见知识(如:回答风格)模拟效果好
  • 知识覆盖面广

不足:

  • 需要重新训练,成本高昂,需要很多的GPU算力和个性化数据
  • 无法解决实时更新问题

2. LangChain简介(RAG开发框架)

如何快速高效的开发RAG应用?
在这里插入图片描述
开发者可以直接将私域数据嵌入LangChain中的组件,通过将这些组件进行组合,生成适合来构建适用于自己业务场景的RAG应用

在这里插入图片描述
对于以本地文档Local Documents形式存在的个人知识库,会使用Unstructed Loader组建来加载本地文档,这个组件会将不同格式的本地文档统一转换为纯文本格式;然后使用Text Splitter对提取出来的纯文本进行分割成Chunk,再通过开源词向量模型Sentence Transformer将文本段转换为向量格式,存储到基于Chroma的向量数据库VectorDB中。

接下来,对于用户的每一个输入Query,会首先通过Sentence Transformer,将输入转换为同样纬度的向量,通过在向量数据库中进行相似度匹配Vector Similarity找到和用户输入相关的文本段Related Text Chunks,将相关的文本段嵌入到已经写好的Prompt Template中,再交给InternLM进行最后的回答即可。

上述的一整个过程都被封装在检索问答链中,我们可以将个性化的配置引入到检索问答链对象,即可构建属于自己的RAG应用

RAG开发基本流程:

  • 构建向量数据库
  • 搭建知识库助手

3. 构建向量数据库

在这里插入图片描述
个人数据类型(txt, markdown, pdf)转化为无格式的字符串,后续构建向量数据库的输入都是基于无格式的文本

对加载的文本进行切分,将它划分到多个不同的Chunks,后续检索相关的Chunk来实现问答。(例如:设定最长的字符串长度为500,那么每500个字符会被切分为一个Chunk

后续实战环节会使用开源词向量Sentence Transformer来进行向量化。

4. 搭建知识库助手

在完成向量数据库的构建后,就可搭建知识库助手

在这里插入图片描述
上述方法可以高效使用LangChain的检索问答链组件

在这里插入图片描述

调用检索问答链会自动完成对用户输入进行向量化,在向量数据库中检索相关文档片段,基于internLM的自定义大模型进行检索回答的全部过程。调用这样一个检索问答链就可以实现知识库助手的核心过程。

在这里插入图片描述

5. Web Demo部署

在这里插入图片描述

6. 动手实战环节

见文档:
https://github.com/InternLM/tutorial/tree/main/langchain

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1384816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

word无法插入方程式(方程式反灰)

word无法插入方程式(方程式反灰) 来自实测>插入方程式,反灰用不了>随便存在哪里,右键看属性:>发现真的是doc,得改成docx才可以:>打开原始档案,另存为word文件即可&#…

机器学习 | 多层感知机MLP

机器学习 | 多层感知机MLP 1. 实验目的 自行构造一个多层感知机,完成对某种类型的样本数据的分类(如图像、文本等),也可以对人工自行构造的二维平面超过3类数据点(或者其它标准数据集)进行分类。 2. 实验…

Java安装(可多版本共存)及IIntelliJ IDEA环境搭建汉化(保姆级教程!)

编程如画,我是panda! 这次给大家出一期JAVA安装以及IIntelliJ IDEA的安装教程 IIntelliJ IDEA分为社区版和专业版,两版的教程都有,小伙伴们根据需要自行选择使用 并且我会讲解一台计算机中多个版本JAVA JDK配置安装 前言 我最早接…

书生·浦语大模型实战营笔记(四)

Finetune模型微调 直接使用现成的大语言模型,在某些场景下效果不好,需要根据具体场景进行微调 增量预训练:投喂垂类领域知识 陈述形式,无问答,即只有assistant 指令跟随:system-user-assistant XTuner …

【力扣每日一题】力扣2696删除子串后的字符串最小长度

题目来源 力扣2696删除子串后的字符串最小长度 题目概述 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作,在每一步操作中,你可以从 s 中删除 任一个 "AB" 或 "CD" 子字符串。 通过执行操作&#xff…

保卫战小游戏

欢迎来到程序小院 保卫战 玩法&#xff1a;当鬼子进入射击范围内点击鼠标左键射击&#xff0c;不要让鬼子越过炮台哦&#xff0c;快去杀鬼子去吧^^。开始游戏https://www.ormcc.com/play/gameStart/249 html <div style"position: relative;" id"gameDiv&q…

关于浏览器下载的时候出现失败,网络错误

我试过所有浏览器&#xff0c;谷歌&#xff0c;firefox,qq浏览器&#xff0c;还是edge都不好使&#xff0c; 1.看网上说是http debugger的问题&#xff0c;但是我没有找到这个服务项 2.也有说可以通过修改或设置下载路径解决 -------- 我通过下载一个叫xdm的软件&#xff…

网络协议与攻击模拟_05TCP协议

一、传输层知识回顾 &#xff11;、传输层的功能 定义应用层协议数据报文的端口号&#xff0c;流量控制对原始数据进行分段处理 &#xff12;、传输层提供的服务 传输连接服务数据传输服务、流量控制、差错控制、序列控制 &#xff13;、传输层的协议 面向连接的传输协议…

VQGAN:从图像重建到图像生成

本文的目标是作为全新图像生成系统的VQGAN。我已经开始讨论VQGAN的一部分——自编码器&#xff08;VQVAE&#xff1a;矢量量化变分自动编码器&#xff09;。VQVAE的概念是对编码器、解码器和码书的同时训练&#xff0c;该码书适用于所有可能的图像。码书是一组256个嵌入向量。具…

毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

Material Design 进阶(十一)——Chip,ChipGroup,ChipDrawable使用

流式布局标签发展历程 第一阶段&#xff1a;实现这种界面的时候&#xff0c;基本都是自定义一个控件&#xff0c;然后在Java代码中动态的 添加一个个的TextView&#xff0c;还需要计算布局宽度/高度&#xff0c;进行换行等等处理&#xff0c;比较复杂;第二阶段&#xff1a;使用…

CSC8021_computer network_The Transport Layer

Role of the transport layer • The transport layer is responsible for providing a reliable end-to-end connection between two application processes in a network • Abstracting away the physical subnet • Does not involve intermediate nodes • Takes a netwo…

Centos源码编译安装Redis

Redis是常用的内容使用工具&#xff0c;每次安装服务器都需要安装Redis 为了减少重复工作&#xff0c;写了一个脚本自动安装Redis&#xff0c;如下 #!/bin/sh #下载源码 curl -O http://download.redis.io/redis-stable.tar.gz # 解压缩 tar zxf redis-stable.tar.gz cd redi…

【Redis集群】docker实现3主3从扩缩容架构配置案例

一&#xff0c;集群规划及准备工作 架构实现&#xff1a;Redis3主3从 二&#xff0c;搭建命令 第一步&#xff0c;创建6台服务&#xff1a; docker run -d --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --clust…

照片删除了怎么恢复回来

照片&#xff0c;对我们来说&#xff0c;这两个字眼再熟悉不过了&#xff0c;每一张照片都包含无比重要的意义&#xff0c;相信在大家的心目中&#xff0c;这些包含意义的照片都是无价的。怎样找回删除的照片&#xff1f; 既然这些照片对我们来说意义非凡&#xff0c;那如果不小…

超详细的搭建压测平台笔记

0、前言 最近重新回来学习熊哥的极客教程&#xff0c;结合自己学习的shell编程和Docker的指令学习&#xff0c;对熊哥的一些操作做bash脚本自动化&#xff0c;将搭建压测平台的步骤做记录&#xff0c;目的是分享搭建过程。 过程中会安装docker,mysql,redis,influxdb,grafana,…

分布形态的度量_峰度系数的探讨

集中趋势和离散程度是数据分布的两个重要特征,但要全面了解数据分布的特点&#xff0c;还应掌握数据分布的形态。 描述数据分布形态的度量有偏度系数和峰度系数, 其中偏度系数描述数据的对称性,峰度系数描述与正态分布的偏离程度。 峰度系数反映分布峰的尖峭程度的重要指标. 当…

2024--Django平台开发-Redis集群(十一)

内容回顾 主从复制。 哨兵&#xff1a;实例启动了&#xff0c;哨兵节点没启动&#xff0c;Python通过redis-py连接报错。一定要确保实例节点和哨兵节点都启动了。 搭建集群用的是虚拟机的多台centos服务器&#xff0c;你在跟着学习的时候&#xff0c;一定要全部都是虚拟机&am…

Mysql-redoLog

Redo Log redo log进行刷盘的效率要远高于数据页刷盘,具体表现如下 redo log体积小,只记录了哪一页修改的内容,因此体积小,刷盘快 redo log是一直往末尾进行追加,属于顺序IO。效率显然比随机IO来的快Redo log 格式 在MySQL的InnoDB存储引擎中,redo log(重做日志)被用…

【UEFI基础】EDK网络框架(VLAN)

VLAN VLAN代码综述 在MNP中有很多的VLAN介绍&#xff0c;MNP存在的一个重要原因也是为了处理VLAN&#xff0c;而本文介绍的NetworkPkg\VlanConfigDxe\VlanConfigDxe.inf其实只是一个帮助模块&#xff0c;真正的VLAN配置还是在MNP中。 VLAN同样是一个UEFI Driver Model&#…