RAG项目梳理
目前代码用到的包pymilvus、logging 模块一、听课笔记项目背景能解决大模型幻觉、过时、安全、专业知识的弊端的解决方法就是:RAG+微调。RAG和微调本质上都是为了,让大模型更好地基于企业私有知识来回答问题,RAG提供外部知识库,提供数据来源。微调基于知识库,告诉大模型怎么生成答案。例如提示词微调Prompt 微调。基于企业私有知识的垂直领域微调:拿企业的知识做微调训练比如PEFT中lora拿少量数据集,去给大模型做一个微调。基于企业私有知识的RAG问答系统:给企业的私有知识创建一个数据库,让大模型去做意图识别,从而进行专有领域的一个问答。微调的弊端:需要微调人才+需要显卡资源 通用模型和垂直领域模型的区别:能做所有任务,通晓所有领域常识的模型就是通用型或者说通用领域的大模型,专精于某个领域(e.g.法律)的就是垂直领域大模型。 项目流程不进入RAG:用户输入query,先经过mysql检索阈值>=0.85的高频回答对。存在直接返回,无需进入RAG流程。 进入RAG:找到本地文档–文档切分,切分的文档做embedding,存入milvus。 query也...
图像分类
图像分类_overview图像分类分类模型给图像分配多个标签,每个标签的概率值不同,如dog:1%,cat:4%,panda:95%,根据概率值的大小将该图片分类为panda,那就完成了图像分类的任务。 常用数据集CIFAR-10和CIFAR-100数据集解释CIFAR-100 = Canadian Institute For Advanced Research - 100 classes CIFAR:加拿大高等研究院 100: 代表这个数据集中包含的 100个细粒度的类别(classes)。这与它的前身CIFAR-10(包含10个类别)形成了直接对比。 细粒度解释“细粒度”是相对于“粗粒度”而言的,它描述的是一种更精细、更具体、更关注细微差别的分类或分析级别。 您可以把它想象成观察事物的“放大镜倍数”: 粗粒度:低倍数放大镜,看大致的轮廓和类别。 例如:识别一辆“车”、一只“鸟”、一条“狗”。 细粒度:高倍数放大镜,看具体的型号、品种或子类型。 例如:识别这辆车是“2012款奥迪A6”还是“2020款特斯拉Model 3”;这只鸟是“北美红雀”还是“美洲知更鸟...
RAG项目在windows系统下的环境安装流程
RAG项目环境安装流程1 python虚拟环境 依赖文件 (requirements.txt) 自己创建requirements.txt文件, 将以下内容复制进去即可 123456789101112131415161718192021222324252627282930313233# Web框架fastapiuvicorn[standard]websockets# 数据库连接pymysqlredis# 向量检索rank_bm25scikit-learnnumpyjiebapandastransformerstorchlangchainlangchain_communitysentence_transformerspymilvus# AI模型openai# 配置和工具configparserlocustwebsocket-client# 其他依赖pydanticstarlette 打开cmd终端(win+r)输入以下命令 123456# 创建虚拟环境, 安装3.10及以上的python解析器conda create -n EduRAG python=3.10# 切换虚...
dify_tutorial
Dify介绍定义:Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service) 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。 安装Dify安装Dify所在的机器的最低配置:CPU核数 >= 2 Core RAM运行内存 >= 4GB 先安装WSL(Windows Subsystem for Linux),根据系统,可选执行原因:dify依赖linux系统,如果是在linux系统上部署,比如Ubuntu,就不需要安装WSL 定义:WSL 本质上是 Windows 的一个功能组件/子系统,它让 Windows 具备了原生运行 Linux 程序的能力,同时提供了管理这个环境的工具集。 参考操作文档:https://learn.microsoft.com/zh-cn/windows/wsl/install 以管理员权限打开PowerShell,运行以下命令去安装WSL:1wsl --install 安装完成后,重启电脑 已完成配置安装linux发行版ubuntu1wsl.exe...
English_learning-2025-02
2025-02-05Welcome to our class!My name’s Nata and I will be your teacher today. I live in Indonesia. I like gardening and cooking.Email: natalisa.k.balicenter@gmail.comIf you would like to book another lesson with me, you can email me and I will be happy to help. Introduce yourself:· What is your preferred name?· Where are you from?· What do you do?· What are your hobbies? Students:JamesLilySophieMa (Cherry)JunAlanBob Listening today:Steven Lesson tit...
lora微调笔记
微调笔记 分类: fine tuning 传统全量微调,(高质量微调) prompt tuning(提示词微调) 技术:指令微调 上下文学习 chain of thought(思维链) PET模型(Pattern-Exploiting Training) POFT方法:分成三种类型:(面向提示的微调) 全量微调(Full Fine-Tuning):模型所有参数都参与更新,包括预训练模型参数和下游任务层参数。如PET模型。 部分参数微调(Partial Fine-Tuning):只更新预训练模型中的一部分参数,比如高层 transformer block、某些 attention 层或特定模块,其余参数冻结。如Adapter Tuning。 仅提示参数微调(Prompt-Only Tuning):冻结原始预训练模型参数,只训练 prompt 参数。如P-tuning、Prompt Tuning等。 Soft Prompt及微调方法PEFT(参数高效微调) conda env export > /ptune_chatglm/...
English_learning-2025-01
2025-01-07Vocabulary and grammar Making suggestions: what say we; what if we were to; suppose we; let’s say we; etc. Giving alternatives: rather than/we could; alternatively, we could; we could … instead; etc. Notes JimmyProcurement engineer, enjoys learning English Because of censorship, you can learn something different from the foreign website. If I were you, i would…. We could right some English emails to our customers, coworkers and other people. Istead of goung dancing, alternativ...
FastAPI的初级使用
简单的FastAPI实现FastAPI的get方法的简单使用 注意:localhost:port/docs可以看到该ip+端口号,可以访问到的接口数量和状态 1234567891011121314151617181920212223242526# FastAPI_Simple_apply.pyfrom fastapi import FastAPI,WebSocket# 创建 FastAPI 应用实例,设置标题和描述app = FastAPI(title="问答系统API", description="集成MySQL和RAG的智能问答系统")@app.get("/greet") # 访问该root函数内容的地址为:http://localhost:11557/greet。async def root(): # 在网页打印return的信息内容 return {"message": "Hello World"}if __name__ == &...
RAG流程
RAG流程:mysql储存FQA高频问答对数据 问题检索:BM25 连接数据库 添加表(带着字段) 添加数据 json.dumps() mysql 存储自己的网址和密码。(自己设计一个RAG系统) 声明回退问题,把原来的复杂查询简化,第一个query检索 进行改写。主题含义不变。 milvus可以处理的数据集的大小限制是多少 技术实现: 增强索引:设计目标、核心功能、技术实现 多粒度切块,把块-分子块,对应的父块,提供给LLM 文档切成一块,存储milvus中的文档, query是为题,编程向量, 太长的拆成四个 128个向量 父块是一个 子块分成子块去做检索 切块的子块数都是超参数 混合检索:BM25,向量检索,字符检索 base:基础模块,配置、日志 core:核心逻辑模块,实现RAG的关键功能 main:系统运行入口,支持数据处理和交互查询 中午将一份唯二 通用知识由大语言模型回答, 直接 hyde 子查询 会输 文档检索:支持抽向量和系数向量的混合检索, 中午,下午 语义关键字,倒排(关键字检索 两句话的相似性, 混合检索,重排序优化, 作为回答送给大模型,方便理解。 用...
RAG-Langchain
RAG-LangchainRAG解决什么问题: 信息过时:网络检索,获取最新数据 领域知识缺失:微调,将专有和私有的知识放到知识库里 幻觉:RAG(retrieval augmented generate),减轻幻觉,基于相关文档进行生成, 安全:RAG,无需将数据送到公开大模型中训练,放到本地知识库,使用本地的模型(api会泄露)进行调用,避免数据的公开和泄露。2)私有数据时存在本地知识库的,做一个权限的管控。 RAG定义:检索技术+生成(LLM提示) 处理流程:构建索引(文件加载、内容读取、chunk构建(拆成小文件,小块)、向量化(小块文档向量化)、落向量化 检索:query向量化,找到topk 生成:topk+query构建prompt;llm生成。 开发框架:LLaMAIndex、Langchain(快速搭建大模型) Langchainlangchain将模型分为三种( langchian是用于构建大模型应用程序的框架,帮助开发者更高效的组合和使用多语言的工具。 原始大模型:LLM、chat models、embeddings chain:组装chain:chain...