大模型学习之书生·浦语大模型3——基于InternLM和LangChain搭建知识库

news2025/1/17 21:58:37

在这里插入图片描述

基于InternLM和LangChain搭建知识库

在这里插入图片描述

1 大模型开发范式

在这里插入图片描述

LLM的局限性

在这里插入图片描述

  • 知识受限:最新知识无法实时获取
  • 专业能力有限:有广度无深度
  • 定制化成本高:训练成本高

RAG VS Finetune

在这里插入图片描述
RAG:

  • 无需重新训练
  • 组织外挂加入知识
  • 容易受基座模型的影响
  • 问题+回答一起送入大模型,占据token长度

Finetune

  • 个性化微调:风格,领域知识
  • 知识面覆盖广:新的数据集及通用数据集按照比例混合
  • 训练成本高
  • 无法实时更新

RAG检索增强

在这里插入图片描述

2 LangChain简介

在这里插入图片描述

  • 开源
  • 通用
  • 核心模块:
    • chains
    • agent

基于LangChain搭建RAG应用

在这里插入图片描述

3 构建向量数据库

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

  • 加载源文件
    • 不同的文件有不同的加载方式
  • 文档分块chunk
    • 字符串长度分割
    • 重叠区间
    • 代码的话就是代码块 类等
  • 文档向量化
    • 文档embedding
    • 存入向量数据库

4 搭建知识库助手

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
限制:

  • 检索精度
  • prompt性能

5 Web Demo部署

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

6 动手实战环节

在这里插入图片描述

创建开发机

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

新建虚拟环境

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

安装相关依赖

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

在这里插入图片描述

下载模型文件

本机有,可以先复制
在这里插入图片描述
在这里插入图片描述

  • internLM-7B
  • modelscope
  • huggfingace:sentence-transformer
  • nltk
  • punkt
  • tagger

搭建自己知识库

  • 克隆opencompass项目
    在这里插入图片描述
  • 构建向量数据库
    • 导入数据md,txt文件
    • 获取文件中的文本
    • 对文本进行分块
    • 词向量模型进行编码
    • 加载数据到向量库Chroma
    • 向量库保存到本地磁盘
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

将InternLM接入LangChain

在这里插入图片描述

构建检索问答链

在这里插入图片描述

  • 加载词向量模型
  • 加载LLM模型
  • 定义Prompt 模板
    • 不懂的要回答说不知道,缓解幻觉问题
  • 运行chain

在这里插入图片描述

  • 存储检索问答链的对象
    在这里插入图片描述
    在这里插入图片描述

  • 实例化核心功能对象

  • gradio创建聊天机器人页面

执行代码

python web_demo.py

在这里插入图片描述

参考

  • InternLM-tutorial

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

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

相关文章

Linux中快速搭建RocketMQ测试环境

必要的文件下载 为什么选择RocketMQ | RocketMQ x86_64位JDK下载0jdk/8u391-b13 rocketmq二进制包下载-rocketmq-all-5.1.4-bin-release.zip 编译好的直接可用的dashboard【rocketmq-dashboard-1.0.0.jar】请在文章顶部下载 dashboard配套的配置文件【application.propert…

基于宝塔搭建Discuz!论坛

一、安装宝塔 我是在我的虚拟机上安装图的宝塔 虚拟机版本:Ubuntu 18.04 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 6dca892c安装完成之后在浏览器输入你的地址 https://你的域名(或…

NX二次开发 Block UI 指定方位控件的应用

一、概述 NX二次开发中一般都是多个控件的组合,这里我首先对指定方位控件进行说明并结合选择对象控件,具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化,实现对象选择过滤面 //过滤平…

C++多态(超详解哦)

C多态 引言定义及实现多态的条件虚函数与虚函数的重写接口继承与实现继承函数重载,隐藏,重写的区别 抽象类多态的原理虚函数表(虚表)动态绑定与静态绑定 总结 引言 在生活中不乏这样的例子:成人与儿童在买票时会有不同…

FRPS配置服务端(腾讯云)、客户端(PC电脑Windows、树莓派Debian)并设置虚拟域名

1.服务端(腾讯云):frps.ini [common] bind_port 7000 vhost_http_port8080 vhost_https_port44344 dashboard_port 7500 privilege_token your_password subdomain_host example.com use_encryption true encryption_method tls dashb…

oracle角色管理

常用角色 CONNECT,RESOURCE,DBA,EXP_FULL_DATABASE,IMP_FULL_DATABASE 1角色可以自定义,语法与创建用户一样 CREATE role role1 IDENTIFIED by 123; 2授权权限给角色 --自定义角色 CREATE role role1 IDENTIFIED by 123; --授权权限给角色 GRANT create view, …

Apache Doris (六十三): Spark Doris Connector - (3)-配置型及列映射关系

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. Spark 操作Doris配置项

【软件测试】学习笔记-脚本与数据的解耦 + Page Object模型

本篇文章介绍GUI测试中两个非常重要的概念:测试脚本和数据的解耦,以及页面对象(Page Object)模型。 测试脚本和数据的解耦 GUI自动化测试适用的场景,尤其适用于需要回归测试页面功能的场景。如果在测试脚本中硬编码&a…

Fiddler工具 — 10.Statistics(统计)面板

1、Statistics介绍 Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。 Statistics 分页还会统计请求和响应的其他一些信息,如&a…

红帽宣布CentOS 7和RHEL 7将在2024年6月30日结束支持,企业面临紧迫的迁移压力!

2020 年红帽 (RedHat,已在 2019 年被 IBM 收购) 单方面宣布终止 CentOS Linux 的开发,此后 CentOS Linux 8 系列的更新已经在 2021 年 12 月结束,而 CentOS Linux 7 系列的更新将在 2024 年 6 月 30 日结束。 与 CentOS Linux 7 一起发布的 R…

网络安全B模块(笔记详解)- nmap扫描渗透测试

nmap扫描渗透测试 1.通过BT5对服务器场景Linux进行TCP同步扫描 (使用工具Nmap,使用参数n,使用必须要使用的参数),并将该操作使用命令中必须要使用的参数作为Flag提交; Flag:sS 2.通过BT5对服务器场景Linux进行TCP同步扫描 (使用工具Nmap,使用参数n,使用必须要使用的参数…

Adobe XD是什么?探索这款创新的用户体验设计工具

Adobexd是一种基于矢量的设计工具,主要用于设计移动和Web应用程序的用户界面(UI)。与Photoshop或ilustrator等其他Adobe产品相比,它相当轻。对于对快速设计和原型迭代感兴趣的界面设计师来说,轻量级并不是一件坏事。 在早期,Adob…

光缆通信有什么特点?

光缆由一个或多个光纤组成,每个光纤由一个非常纤细的玻璃或塑料纤维组成,可以传输光信号的高速数据。光缆通信具有以下特点: 1. 高带宽:光缆通信可以提供非常高的带宽,远远超过传统的铜缆通信。光纤的宽带特性使其能够…

了解 Node.js 的运行机制:从事件循环到模块系统(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【leetcode 2707. 字符串中的额外字符】动态规划 字典树

2707. 字符串中的额外字符 题目描述 给你一个下标从 0 开始的字符串 s 和一个单词字典 dictionary 。你需要将 s 分割成若干个 互不重叠 的子字符串,每个子字符串都在 dictionary 中出现过。s 中可能会有一些 额外的字符 不在任何子字符串中。 请你采取最优策略分割…

高通平台开发系列讲解(USB篇)Ubuntu 下如何使用模块

文章目录 一、查看VID、PID二、adb添加2.1、在udev下添加模块的VID2.2、重启adb服务三、虚拟串口添加(AT、Diag)沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要图解高通平台上位机使用方法 一、查看VID、PID 在ubuntu下使用模块进行AT指令发送,Diag等串…

【学术会议】第三届神经计算青年研讨会 学习笔记

第三届神经计算青年研讨会 学习笔记 会议时间:2024-1-6至2024-1-7 会议地点:电子科技大学 会议介绍: 为提升我国神经计算⻘年研究队伍的学术⽔平和国际影响⼒,研讨会主题涵盖:神经系统建模与模拟、脑机接⼝与类脑智能、…

面试宝典之spring框架常见面试题

F1、类的反射机制有啥用? (1)增加程序的灵活性,可扩展性,动态创建对象。 (2)框架必备,任何框架的封装都要用反射。(框架的灵魂) F2、获取Class对象的三种方…

继承和多态的详解

文章目录 1. 继承1.1 继承的概念1.3 继承的语法1.3 父类成员访问1.3.1 子类中访问父类的成员变量1.3.2 子类中访问父类的成员方法 1.4 子类构造方法 2.super关键字2.1 super关键字的概念2.2 super和this的区别 3. 在继承中访问限定符的可见性4. 继承方式的分类5. 多态5.1 多态的…

Maven 基础总结篇

Maven 基础总结篇 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构:用于解决不同IDE(例如eclipse与IDEA)不同的项目结构的问题 提供了一套标准化的构建流程(编译&…