RAG从零开始构建教程5-9
从零开始的RAG:查询转换
查询转换是一组专注于重写和/或修改检索问题的方法。
环境
(1) 包
1! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain
(2) LangSmith
https://docs.smith.langchain.com/
1234import osos.environ['LANGCHAIN_TRACING_V2'] = 'true'os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'os.environ['LANGCHAIN_API_KEY'] = <your-api-key>
(3) API 密钥
1os.environ['OPENAI_API_KEY'] = <your-api-key>
第5部分:多 ...
RAG从零开始构建教程0-4
RAG从零开始构建教程:概述
这些教程将指导您从零开始构建RAG(检索增强生成)应用。
通过这些内容,您将对RAG的整体架构有更全面的理解,如下图所示:
环境配置
(1) 依赖包安装
1! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain
(2) LangSmith配置
详见:https://docs.smith.langchain.com/
1234import osos.environ['LANGCHAIN_TRACING_V2'] = 'true'os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'os.environ['LANGCHAIN_API_KEY'] = <你的API密钥>
(3) API密钥配置
1os.environ['OPENAI_ ...
书生·浦语大模型实战营(七):OpenCompass 大模型评测实战
课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md
视频:https://www.bilibili.com/video/BV1Pm41127jU/?spm_id_from=333.788&vd_source=3194af3e77968cb10b1d50711d07106a
OpenCompass
上海人工智能实验室科学家团队正式发布了大模型开源开放评测体系 “司南” (OpenCompass2.0),用于为大语言模型、多模态模型等提供一站式评测服务。其主要特点如下:
开源可复现:提供公平、公开、可复现的大模型评测方案
全面的能力维度:五大维度设计,提供 70+ 个数据集约 40 万题的的模型评测方案,全面评估模型能力
丰富的模型支持:已支持 20+ HuggingFace 及 API 模型
分布式高效评测:一行命令实现任务分割和分布式评测,数小时即可完成千亿模型全量评测
多样化评测范式:支持零样本、小样本及思维链评测,结合标准型或对话型提示词模板,轻松激发各种模型最大性能
灵活化 ...
书生·浦语大模型实战营(六):Lagent & AgentLego 智能体应用搭建
文档:https://github.com/InternLM/Tutorial/tree/camp2/agent
视频:https://www.bilibili.com/video/BV1Xt4217728/?spm_id_from=333.788&vd_source=3194af3e77968cb10b1d50711d07106a
仓库:
https://github.com/InternLM/Lagent
https://github.com/InternLM/AgentLego
什么是智能体
1.可以感知环境中的动态条件。
(perception of dynamic conditions in the environment)
2.能采取动作影响环境。
(action to affect conditions in the environment)
3.能运用推理能力理解信息、解决问题、产生推断、决定动作。
(reasoning to interpret perceptions, solve problems, draw inferences, and determi ...
书生·浦语大模型实战营(五):LMDeploy 量化
文档:https://github.com/InternLM/Tutorial/tree/camp2/lmdeploy
视频:https://www.bilibili.com/video/BV1tr421x75B/?spm_id_from=333.788&vd_source=3194af3e77968cb10b1d50711d07106a
模型部署
定义
将训练好的模型在特定软硬件环境中启动的过程,使模型能够接收输入并返回预测结果
为了满足性能和效率的需求,常常需要对模型进行优化,例如模型压缩和硬件加速
产品形态
云端、边缘计算端、移动端
计算设备
CPU、GPU、NPU、TPU 等
大模型特点
内存开销巨大
庞大的参数量。7B模型仅权重就需要 14+G 内存
采用自回归生成 token,需要缓存 Attention 的 k/v,带来巨大的内存开销
动态 shape
请求数不固定
Token 逐个生成,且数量不定
相对视觉模型,LLM 结构简单
Transformers 结构,大部分是 decoder-only
大模型部署挑战
设备 ...
书生·浦语大模型实战营(四):XTuner 微调 LLM:1.8B、多模态、Agent
视频:https://www.bilibili.com/video/BV15m421j78d/?vd_source=3194af3e77968cb10b1d50711d07106a
文档:https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md
笔记
两种Finetune范式
LLM 的下游应用中,增量预训练和指令跟随是经常会用到两种的微调模式
增量预训练微调
使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识训练数据:文章、书籍、代码等
指令跟随微调
使用场景:让模型学会对话模板,根据人类指令进行对话训练数据:高质量的对话、问答数据
XTurn
LoRA & QLoRA
LoRA: Low-Rank Adaptation of Large Language Models
LLM 的参数量主要集中在模型中的 Linear, 训练这些参数会耗费大量的显存
LoRA 通过在原本的 Linear 旁,新增一个支路,包含两个连续的小 linear,新增的这个支路通常叫做 Adapter
Adapter ...
书生·浦语大模型实战营(三):InternLM RAG
视频:https://www.bilibili.com/video/BV1QA4m1F7t4/?vd_source=3194af3e77968cb10b1d50711d07106a
教程:https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/readme.md
茴香豆:https://github.com/InternLM/HuixiangDou
LLM的局限性:
知识时效性受限:如何让LLM能够获取最新的知识
专业能力有限:如何打造垂域大模型
定制化成本高:如何打造个人专属的LLM应
两种开发范式:
RAG:检索增强生成
外挂知识库,从知识库中匹配到相应文档,然后和提问一起交给LLM
低成本、可以实时更新、收到几座影响、单次回答知识有限
Finetune:微调
可以个性化微调、知识覆盖面广、成本高昂、无法实时更新
RAG:
RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可 ...
书生·浦语大模型实战营(二):InternLM Demo
github:https://github.com/InternLM/Tutorial/tree/camp2
视频地址:https://www.bilibili.com/video/BV1AH4y1H78d/
工具记录
123# 从本地使用 ssh 连接 studio 端口# 将下方端口号 38374 替换成自己的端口号ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38374
模型下载
6.2.1 Hugging Face
使用 Hugging Face 官方提供的 huggingface-cli 命令行工具。安装依赖:
1pip install -U huggingface_hub
然后新建 python 文件,填入以下代码,运行即可。
resume-download:断点续下
local-dir:本地存储路径。
其中 linux 环境下需要填写绝对路径.
123import os# 下载模型os.system('huggingface-cli download --resume-downloa ...
书生·浦语大模型实战营(一):书生·浦语大模型全链路开源体系
书生·浦语大模型实战营(一):书生·浦语大模型全链路开源体系
github:https://github.com/InternLM/Tutorial/tree/camp2
InternLM2 报告:https://arxiv.org/pdf/2403.17297.pdf
视频地址:https://www.bilibili.com/video/BV1Vx421X72D/
模型到应用的典型流程:
对于机器人领域,构建智能体应该更能满足应用场景的要求。
项目案例:
https://github.com/BestAnHongjun/InternDog
针对水面无人艇而言,在设计的过程中,应该有较好的顶层设计,哪些信息从外界API获取,哪些功能通过调用API执行,同时要注意工具是备选,应该是通过选择工作,完成指令,而不是变成分类任务,机械地调用
同时,针对特定情境下,应该通过代码生成,从而构建新的内部API
Lagent,借助AutoGPT等方式,实现更好的工具选择。
同时使用更加丰富的多模态智能体工具箱,多模态的信息输入对于机器人而言应该是很重要的信息补充
关于微调:
增量训练的目的是 ...
连不上一些网站的解决方案
如果是从 huggingface.co 下载模型,由于国内不能访问,所以建议先配置一下环境变量,
通过访问国内镜像站点 https://hf-mirror.com来下载模型。
使用huggingface 官方提供的 [huggingface-cli](https://hf-mirror.com/docs/huggingface_hub/guides/download#download-from-the-cli) 命令行工具。
1pip install -U huggingface_hub
基本命令示例:
12export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli download --resume-download --local-dir-use-symlinks False bigscience/bloom-560m --local-dir bloom-560m
PS:详情参考https://fanfer.top/2024/01/18/HuggingFace-下载模型/和https://hf-mirror.com
如果是国内想要 ...