书生·浦语大模型实战营第三次课堂笔记

LLM 的局限性

知识时效性受限: 如何让LLM能够获取最新的知识
专业能力有限: 如何打造垂域大模型
定制化成本高: 如何打造个人专属的LLM应用

RAG:检索增强生成,
核心思想:给大模型外挂一个知识库,对于用户的提问,会首先从知识库中匹配到提问对应回答的相关文档,然后将文档和提问一起交给大模型来生成回答,从而提高大模型的知识储备。
Ft:完成传统自然语言处理算法的微调
核心思想:在一个新的较小的训练集上,进行轻量级的训练微调,从而提升模型在这个新数据集上的能力
这两种开发方式都能够突破通用大模型的自身局限
在这里插入图片描述
RAG原理:
在这里插入图片描述

如何可以快速高效的开发一个2A级应用开源框架?

LangChain为我们提供了可能性!
LangChain 框架是一个开源工具,通过为各种 LLM 提供通用接口来简化应用程序的开发流程,帮助开发者自由构建 LLM应用LangChain 的核心组成模块
链 (Chains) : 将组件组合实现端到端应用,通过一个对象封装实现一系列LLM 操作
Eg.检索问答链,覆盖实现了 RAG (检索增强生成)的全部流程
在这里插入图片描述

向量数据库的构建:

加载源文件 > 文档分块 > 文档向量化

  • 确定源文件类型,针对不同类型源文件选用不同的加载器
    核心在于将带格式文本转化为无格式字符串

  • 由于单个文档往往超过模型上下文上限,我们需要对加载的文档进行切分
    一般按字符串长度进行分割(例如设置字符串长度为500)
    可以手动控制分割块的长度和重叠区间长度

  • 使用向量数据库来支持语义检索,需要将文档向量化存入向量数据库
    可以使用任一一种 Embedding 模型来进行向量化
    可以使用多种支持语义检索的向量数据库,一般使用轻量级的 Chroma

搭建知识库助手

在这里插入图片描述
RAG方案优化建议
基于RAG的问答系统性能核心受限于
检索精度
Prompt性能
一些可能的优化点:

  • 检索方面:
    基于语义进行分割,保证每一个chunk的语义完整
    给每一个chunk生成概括性索引,检索时匹配索引
  • Prompt方面
    迭代优化Prompt策略

代码实战

下载安装所需依赖
在这里插入图片描述
模型下载
在这里插入图片描述
LangChain 相关环境配置:
安装依赖包:

pip install langchain==0.0.292
pip install gradio==4.4.0
pip install chromadb==0.4.15
pip install sentence-transformers==2.2.2
pip install unstructured==0.10.30
pip install markdown==3.3.7

首先需要使用 huggingface 官方提供的 huggingface-cli 命令行工具。安装依赖:

pip install -U huggingface_hub

使用huggingface镜像下载
在/root/data目录下新建Python文件download_hf.py,填入以下代码:
resume-download:断点续下
local-dir:本地存储路径。(linux环境下需要填写绝对路径)

import os# 设置环境变量
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'# 下载模型
os.system('huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 --local-dir /root/data/model/sentence-transformer')

在/root/data目录下执行该脚本python download_hf.py
在这里插入图片描述

下载 NLTK 相关资源:
用以下命令下载nltk资源并解压到服务器上:

cd /root
git clone https://gitee.com/yzy0612/nltk_data.git  --branch gh-pages
cd nltk_data
mv packages/*  ./
cd tokenizers
unzip punkt.zip
cd ../taggers
unzip averaged_perceptron_tagger.zip

在这里插入图片描述

下载本项目代码:
建议通过以下目录将仓库 clone 到本地,可以直接在本地运行相关代码:

cd /root/data
git clone https://github.com/InternLM/tutorial

在这里插入图片描述

知识库搭建

将远程开源仓库 Clone 到本地

# 进入到数据库盘
cd /root/data
# clone 上述开源仓库
git clone https://gitee.com/open-compass/opencompass.git
git clone https://gitee.com/InternLM/lmdeploy.git
git clone https://gitee.com/InternLM/xtuner.git
git clone https://gitee.com/InternLM/InternLM-XComposer.git
git clone https://gitee.com/InternLM/lagent.git
git clone https://gitee.com/InternLM/InternLM.git

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
遇到报错
在这里插入图片描述
发现自己看错了少写了个python文件
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机Linux硬盘扩容

扩容前(20G): 扩容后(60G): 步骤: 1. 点击 虚拟机 -> 设置 -> 硬件 -> 硬盘(SCSI) -> 扩展(E)... -> 输入想要扩容大大小 -> 扩展(E) 注:必须关机,挂起状态无法设置 2. 运行虚拟机,查…

矩阵的秩-

一、定义、理解 非零子式的最高阶数。 如何理解?什么叫做非零子式的最高阶数??? 举个例子:有一个5阶矩阵 首先什么叫子式? 例如2阶子式就是,任取某两行某两列组成的行列式,就叫…

Redis重点总结补充

Redis重点总结 1.redis分布式锁 2.redission实现分布式锁 注意:加锁、设置过期时间等操作都是基于lua脚本完成. redisson分布式锁,实现可重入(前提是同一个线程下 3.redis主从集群 实现主从复制 ( Master-slave Replication)的工作原理 : …

面试算法119:最长连续序列

题目 输入一个无序的整数数组,请计算最长的连续数值序列的长度。例如,输入数组[10,5,9,2,4,3],则最长的连续数值序列是[2,3,4,5],因此…

开源知识库工具大盘点,赶紧收藏

有一个顶尖的知识库是任何一家企业的核心竞争力。它不仅可以帮助新员工更快地熟悉工作,也可以节省资深团队成员的时间来解决重复问题。但是,如何找到一个适合你的知识库工具呢?别担心,本文就给你推荐5款顶尖的开源知识库工具&…

Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException(数组创建问题)

数组在Java中使用还是比较多的,通过索引去数组中寻值,也可以通过数组索引去赋值 问题描述: 我们在直接使用未被new的数组时就会出现这种情况, 这边简单创建一个运行类 public class a {public static void main(String[] args)…

5G前装搭载率即将迈过10%大关,车载通讯进入多层次增长通道

对于智能化来说,车载通讯性能的提升,对于相关功能的用户体验优化、进一步减少通讯时延以及打开应用新空间,至关重要。 目前,2G/3G正在进入运营商逐步关闭运营的阶段,4G依然是主力,但5G也在迎来新的增长机会…

强化学习应用(一):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

RflySim | 定点位置控制器设计实验二

基础实验 1.复现四旋翼Simulink仿真,分析控制作用在obxb轴和obyb轴的解耦。 2.对系统进行扫频以绘制Bode图,分析闭环位置控制系统稳定裕度。 3.完成硬件在环仿真。 本实验对应demo文件对于RflySim v3.0以下版本地址为:*\PX4PSP\RflySimAP…

【LeetCode每日一题】2085. 统计出现过一次的公共字符串(哈希表)

2024-1-12 文章目录 [2085. 统计出现过一次的公共字符串](https://leetcode.cn/problems/count-common-words-with-one-occurrence/)思路:哈希表计算 2085. 统计出现过一次的公共字符串 思路:哈希表计算 1.用两个哈希表分别统计word1和word2中字符出现的…

gcc/g++工具详解

目录 一、安装gcc/g 二、背景知识 三、相关选项 四、gcc如何工作 1.预处理 2.编译 3.汇编 4.链接 5.函数库的概念 6.动静态库 一、安装gcc/g gcc/g -v : 用来查看当前你使用的gcc/g版本 因为我的gcc/g是升级过的所以版本更高,如果你用的是centos7.6的话…

PyCharm连接服务器(利用PyCharm实现远程开发)

利用PyCharm实现远程开发 注:该功能只有在PyCharm专业版下才可以使用,并且必须是官方的正版许可,破解版的是不可以使用的!!!可以通过免费教育许可申请使用权限(申请流程)。 pycharm…