Datawhale LLM-universe Task6

部署运行你感兴趣的模型镜像

学习终于接近尾声了, 这一章节的学习任务主要是介绍一些开源的RAG应用是怎样搭建的
主要介绍了两个RAG项目, 个人知识库的搭建和帮我们写敬酒词的天机助手
其中个人知识库的搭建我们已经在前五个task的学习中, 对其中各模块的组成部分有所了解了, 这里我们可以看一下个人知识库RAG的组成部分:
在这里插入图片描述
首先, 用户提出问题我们需要给embedding成向量, 然后根据我们个人的需求去准备和加载对应的知识库文档(这里我认为文档是任意的,比如如果想使自己搭建的系统变身为历史专家, 就可以加载历史相关的文档, 另外, 一定要保证文档的正确性), 接下来就是对知识库文档做分割、数据清洗, 然后对整理后的文档做embedding成向量后, 再使用chroma等搭建向量数据库建立索引, 接着就可以用langchain搭建思维链, 得到在知识库文档中匹配出最与问题Query相近的Top k个向量, 然后把匹配到的知识库文本和上下文输入到prompt中, 就可以将这个prompt输入给LLM生成回答answer了
最后 一个能保存历史的问答思维链的实现方式如下:
在这里插入图片描述
在这里插入图片描述
而材料2中的天机大模型我的理解是将知识库文本替换为敬酒词相关的语料, 再加上对prompt做一些调整, 就能使LLM输出想要的敬酒词

补充内容: 高级RAG技巧:

  1. 多种格式的文件处理:langchain可支持处理csv文件在这里插入图片描述
    也可以用来处理PPTX文件 from langchain.document_loaders.powerpoint import UnstructuredPowerPointLoader
    也可以用于处理docx文件 from langchain_community.document_loaders.word_document import UnstructuredWordDocumentLoader
    数据清洗时, re正则表达式是很常用的手段, 后续需要仔细研究正则表达式的使用

2.对文本进行分块: 使 embedding 后的向量提取到完整的语义信息。一般 embedding model 的 max token 即最大可 embedding 句子长度通常为512至1024 token,过长的分块或分块中有多个语义的句子在 embedding 时很难从中提取完整的语义信息。优化分块后理想的文本块中语义是单一的,长度是合理的,很容易通过 embedding 提取出完整且的语义信息。分块的方式有: 定长分块、字符分块、文本分块、最大token数分块、语义分块等等, 而且都可以使用langchain中的text_splitter库来做
3. 使用不同的embedding模型, 在hugging face上, 有许多sota的embedding模型, 如果当前的RAG系统遇到瓶颈了, 可以试一下新的embedding模型看是否能有提升在这里插入图片描述

  1. 另外, 我们使用hugging face开源的embedding模型, 往往是基于一个通用的dataset的, 可能并不是很好贴合我们使用的数据, 因此我们可以对embedding模型做微调, 首先需要安装hugging face的datasets库, 另外对于不同的数据库, 对应的loss也不同
    在这里插入图片描述
    在这里插入图片描述
    数据集和对应的loss还是见课程, 这里不再赘述
    在了解数据集以后就可以进行微调模型
    在这里插入图片描述
    首先对数据集和模型做加载
    然后就可以做微调
    在这里插入图片描述
    这里在加载dataset时, 如果用dataset重新赋值的话会有bug, 如果卡在这一步报错然后没有重新加载dataset的话就会报错, 这里建议对dataset的名字做一个修改, 比如dataset_ 目前准备提PR

在这里插入图片描述
在这里插入图片描述
正常跑长这样
然后后面就是可以用LLM构建数据集再对embedding做微调了

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

### 大型语言模型生态系统 #### 构成要素 大型语言模型生态系统的构成要素主要包括数据源、预训练框架、微调工具集以及下游应用接口。这些组件共同作用,使得LLM能够处理各种自然语言任务并提供广泛的服务。 - **数据源**:高质量的数据对于构建有效的LLM至关重要。这不仅限于文本本身还包括元数据和其他辅助信息。通过多样化的数据输入,可以增强模型的理解能力和表达能力[^1]。 - **预训练框架**:这是指用于开发和优化神经网络架构的技术栈,如TensorFlow或PyTorch等平台支持下的Transformer结构。它们允许研究人员快速迭代实验设计,并利用分布式计算资源加速训练过程[^2]。 - **微调工具集**:为了使通用的语言理解技能适应特定领域的需求,通常需要针对目标场景调整权重参数。为此目的而创建的各种API和服务简化了这一流程,降低了进入门槛的同时提高了效率[^3]。 - **下游应用场景**:最终用户交互界面构成了整个链条的最后一环;无论是聊天机器人还是自动摘要生成器,在实际部署之前都需要经过严格的测试来验证性能指标是否满足预期标准。 ```python import transformers as trfms from datasets import load_dataset model_name = "bert-base-uncased" tokenizer = trfms.BertTokenizer.from_pretrained(model_name) dataset = load_dataset('imdb') ``` #### 半参数化方法的优势 相比于完全依赖内部参数存储世界知识的传统做法,引入外部记忆机制后的混合模式能够在保持灵活性的基础上显著提升检索精度与响应速度。具体来说就是把静态的记忆单元替换成了动态查询接口,从而更好地应对长尾分布特征带来的挑战。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值