当前位置: 首页 > news >正文

InternLM大模型实战-3.InternLM+Langchain搭建知识库

文章目录

  • 前言
  • 笔记正文
    • 大模型开发范式
      • RAG
      • Finetune
    • LangChain简介
    • 构建向量数据库
    • 搭建知识库助手
      • 1 InternLM+Langchain
      • 2 构建检索问答链
      • 3 优化建议
    • Web Demo 部署
    • 搭建知识库

前言

本文是对于InternLM全链路开源体系系列课程的学习笔记。【基于 InternLM 和 LangChain 搭建你的知识库】 https://www.bilibili.com/video/BV1sT4y1p71V/?share_source=copy_web&vd_source=99d9a9488d6d14ace3c7925a3e19793e

笔记正文

大模型开发范式

LLM的局限:知识的时效性(最新知识)、专业能力有限(垂直领域)、定制化成本高(个人专属)

两种开发范式用于解决这种局限性

RAG

检索增强生成。
低成本、可实时更新、受基座模型影响大、单次回答知识有限
在这里插入图片描述

Finetune

微调。
可个性化微调、知识覆盖面广、成本高昂、无法实时更新

LangChain简介

LangChain是一个开源工具,通过为各种LLM提供通用接口来简化应用程序的开发流程,帮助开发者自由构建LLM应用。其核心组成模块是Chains,可以见各种组建组合实现应用。
在这里插入图片描述

构建向量数据库

加载个人数据
加载源文件 -> 文档分块 -> 文档向量化

  • 确定源文件的类型,针对不同类型的源文件选用不同的加载器
  • 单个文档超出模型上下文的上限,所以需要切分
  • 使用向量数据库来支持语义检索,需要将文档向量化存入向量数据库

虽然源文件可以是各种格式的,但是存入向量数据库之后都会成为纯的以向量形式存储的字符串

搭建知识库助手

1 InternLM+Langchain

可以全部采用本地部署本地加载的形式,Langchain有提供自定义大模型的部署方式,将InternLM的接口封装为符合Langchain的LLM的一个类。

2 构建检索问答链

Langchain提供了检索问答链模板,可以自动实现只是检索、Prompt嵌入、LLM问答的全流程。
也就是说,只需要自己来进行模型的部署和向量知识库的创建。

3 优化建议

在这里插入图片描述

Web Demo 部署

建议web demo部署的有gradio和streamlit.

搭建知识库

见第三次作业博客中。

相关文章:

  • Map和Set(哈希表)
  • 【OpenHarmony硬件操作】风扇与温湿度模块
  • DarkSide针对VMware EXSI系统进行加密
  • CTR-----Click-Through Rate简单介绍
  • ClickHouse--04--数据库引擎、Log 系列表引擎、 Special 系列表引擎
  • 再说开源软件
  • 年假作业10
  • 【数据结构】11 堆栈(顺序存储和链式存储)
  • java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • TCP和UDP相关问题(重点)——9.超时重传怎么实现的?
  • Docker- chapter 1
  • 【Linux学习】线程互斥与同步
  • URL编码算法:解决特殊字符在URL中的烦恼
  • react中hook封装一个table组件 与 useColumns组件
  • 785. 快速排序
  • 【译】JS基础算法脚本:字符串结尾
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 5、React组件事件详解
  • Create React App 使用
  • DataBase in Android
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • php的插入排序,通过双层for循环
  • Spark RDD学习: aggregate函数
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 从零开始学习部署
  • 搞机器学习要哪些技能
  • 记一次用 NodeJs 实现模拟登录的思路
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 推荐一个React的管理后台框架
  • 阿里云重庆大学大数据训练营落地分享
  • 容器镜像
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)(1.13) SiK无线电高级配置(五)
  • (补)B+树一些思想
  • (接口自动化)Python3操作MySQL数据库
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)docker:Dockerfile构建容器运行jar包
  • (四)模仿学习-完成后台管理页面查询
  • (译)2019年前端性能优化清单 — 下篇
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [20171101]rman to destination.txt
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [Flutter]打包IPA
  • [hive]中的字段的数据类型有哪些
  • [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列