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

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.mzph.cn/news/616234.shtml

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

相关文章

零基础入门,轻松制作仿真翻页电子书

​随着科技的进步,电子书已经成为越来越多人的选择。与传统纸质书籍相比,电子书具有便携性、可搜索性、可分享性等优势。然而,制作电子书并非易事。许多人都因为缺乏相关知识和技能而望而却步。我给大家提供了一些实用的方法哦,可…

字体包大小缩小的软件

Fontmin - 字体子集化方案https://ecomfe.github.io/fontmin/#app

人源化抗体服务的优势-卡梅德生物

人源化抗体定制服务的优势 随着生物技术的飞速发展,抗体药物已成为生物医药领域的重要支柱。而在众多抗体药物中,人源化抗体因其独特的优势而备受瞩目。其中,人源化抗体定制服务更是为科研和制药领域带来了诸多便利。 首先,人源化…

1.12 ECS

什么是Unity DOTS? Unity面向数据的技术栈(data oriented tech stack, DOTS)包括以下主要部分: Entity Component System 简记为ECS,提供了默认情况下写出高性能的代码的方法C# Job System 提供了以并行的方式在多核CPU上运行游戏代码的方法Burst com…

openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态

文章目录 openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态195.1 分析查询语句运行状态195.1.1 问题现象195.1.2 处理办法 openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态 195.1 分析查询语句运行状态…

什么软件可以做报表?

数据报表,是商业领域中不可或缺的一部分,它通过表格、图表等形式,将复杂的数据进行整理、分析并呈现出来,帮助用户更好地理解数据的趋势和关系。数据报表不仅展示了业务现状和趋势,还支持多种数据分析和挖掘功能&#…

代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206.反转链表

代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206.反转链表 文章目录 代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206.反转链表1 链表理论基础1.1 链表的定义1.2 链表的类型1.3 链表的存储方式1.4 链表的操作性能分析1.5 链表和数组的区…

vue3的Uniapp用renderjs 进行视频切图操作

首先&#xff0c;在项目中安装 RenderJS npm install renderjs在 Vue3 的 UniApp 中引入 RenderJS&#xff1a; import RenderJS from renderjs;创建一个 RenderJS 实例&#xff0c;并将其绑定到一个视频元素上 <template><view><video ref"video"…

使用Adobe Acrobat Pro DC给pdf文件填加水印

前言 GPT4的官方售价是每月20美元&#xff0c;很多人并不是天天用GPT&#xff0c;只是偶尔用一下。 如果调用官方的GPT4接口&#xff0c;就可以按使用量付费&#xff0c;用多少付多少&#xff0c;而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…

使用new pm写一个pass

范例来自LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries llvm ir到ir是由一个个pass处理的&#xff0c;从一个ir到另一个ir会改变一些东西 书里面就是说想要给指针变量添加一个noalias属性 书里面使用插件的形式&#xff0c;但是不知道怎么我搞不…

在阿里巴巴,领导提拔你不是看重你的能力

很多人都在想&#xff0c;为什么领导总是不提拔你&#xff0c;难道真的是如领导给你的反馈“你的能力不行”&#xff0c;这里我想告诉大家&#xff0c;这件事情绝对没有这么简单&#xff0c;尤其是在阿里巴巴这样“江湖气”非常浓的大厂。 Part.1 领导要提拔你&#xff0c;绝对…

网络变压器POE的功能

网络变压器&#xff0c;也被称为POE&#xff08;Power over Ethernet&#xff09;&#xff0c;是一种用于在以太网中传输数据和电力的技术。它的主要功能包括&#xff1a; 1. 传输数据&#xff1a;网络变压器可以传输高速的网络数据&#xff0c;如10/100/1000Mbps。 2. 传输电…

原型模式

为什么要使用原型模式 不用重新初始化对象&#xff0c;而是动态地获得对象运行时的状态。适用于当创建对象的成本较高时&#xff0c;如需进行复杂的数据库操作或复杂计算才能获得初始数据。 优点是可以隐藏对象创建的细节&#xff0c;减少重复的初始化代码&#xff1b;可以在…

代码随想录算法训练营第六天|哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

刷题建议 刷题建议与debug 代码随想录目前基本都有了视频讲解&#xff0c;一定要先看视频&#xff0c;事半功倍。写博客&#xff0c;将自己的感悟沉淀下来&#xff0c;不然会忘大家提问的时候&#xff0c;记得要把问题描述清楚&#xff0c;自己在哪一步遇到了问题&#xff0c…

【工具栏】jclasslib 插件的安装和使用

1. 安装 2.使用 安装之后 在 view 的 ToolWindows 里也有一个这样的窗口 jclasslib 的主要作用是查看字节码的相关信息 package com.test;public class Test {public static void main(String[] args) {Integer a 1;int b a 2;} }例如我写了一段这样的代码&#xff0c;然后去…

蓝凌EIS智慧协同平台 多处SQL注入漏洞复现

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为企业提供高效协同办公和团队合作的产品。该平台集成了各种协同工具和功能,旨在提升企业内部沟通、协作和信息共享的效率。 0x02 漏洞概述 由于蓝凌EIS智慧协同平台 doc_fileedit_word.aspx、frm_form_list_main.aspx、frm_butt…

训练营第四十三天 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 分成容量相近的两部分&#xff0c;相减 代码随想录 class Solution {public int lastStoneWeightII(int[] stones) {int sum 0;for(int num : stones) {sum num;}int target sum >> 1;//将数组总和分为两部分 向下取整 取小容量为target…

vcruntime140.dll已加载,但找不到入口点的处理方法分享

当遇到错误提示“vcruntime140.dll已加载&#xff0c;但找不到入口点”时&#xff0c;很多人可能会感到困惑&#xff0c;不知道如何去处理这个问题。不过没有必要紧张&#xff0c;在这里我会为大家详细解释 vcruntime140.dll 文件是什么&#xff0c;并指导大家如何高效地解决 v…

最佳实践:如何在 SoapUI 中进行 REST 服务的测试

SoapUI 频繁地被选择为 SOAP 和 REST API 的自动化测试利器&#xff0c;得益于其友好的用户界面&#xff0c;测试人员毫不费力便可校验 REST 和 SOAP 协议的 Web 服务。它尤其适用于那些需要进行复杂测试的场合。 1、设置接口 我利用了 Swagger 去设置了一批即将投入使用的接…

数字集成系统设计——物理设计

目录 一、布局规划 1.1 规划 1.2 I/O单元 1.3 电源网络 1.3.1 要求 1.3.2 网络架构 1.3.3 混合信号芯片示例 1.4 布局 二、时钟分布 2.1 时钟偏斜 2.2 时钟分布网络 2.3 时钟树综合 2.4 时钟树收敛 三、布线与参数提取 3.1 布线(Routing) 3.2 布线规则示例 …