当前位置: 首页 > wzjs >正文

常州市网站制作营销咨询顾问

常州市网站制作,营销咨询顾问,在自己的网站做外链,建设网站需要做什么的RAG 定义:检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。 目的:通过提供相关领域数据库通过问题检索信息,将相关信息合并到Prompt中,…

RAG

定义:检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。

目的:通过提供相关领域数据库通过问题检索信息,将相关信息合并到Prompt中,增强模型的专业性。

深入浅出RAG技术:

RAG=检索技术+LLM提示

//LLM提示就是之前文章中提到过的promt工程,这里不再赘述,主要理解检索技术

检索技术

2019年,Faiss就实现了基于嵌入的向量搜索技术,但是 RAG 推动了向量搜索领域的发展。比如 chroma、weaviate.io和 pinecone这些基于开源搜索索引引擎(主要是 faiss 和 nmslib)向量数据库初创公司,最近增加了输入文本的额外存储和其他工具。
向量化是将文本数据转化为向量矩阵的核心过程,通常使用embedding模型来实现,常用的模型:

模型名称描述
ChatGPT-EmbeddingChatGPT-Embedding由OpenAI公司提供,以接口形式调用。
ERNIE-Embedding V1ERNIE-Embedding V1由百度公司提供,依赖于文心大模型能力,以接口形式调用。
M3EM3E是一款功能强大的开源Embedding模型,包含m3e-small、m3e-base、m3e-large等多个版本,支持微调和本地部署。
BGEBGE由北京智源人工智能研究院发布,同样是一款功能强大的开源Embedding模型,包含了支持中文和英文的多个版本,同样支持微调和本地部署。

本项目使用的模型为BAAI/bge-large-zh-v1.5BAAI/bge-small-zh,特点是体积小且适合中文。
向量数据库:数据向量化后构建索引,并写入数据库的过程可以概述为数据入库过程,适用于RAG场景的数据库包括:FAISS、Chromadb、ES、milvus等,本项目选择的数据库为FAISS。

当我们要在数据库中寻找与问题相关的数据时常用的方法:
常见计算方法:k-临近
数据距离计算方法:欧式距离、曼哈顿距离、明科夫斯基距离。

RAG工作原理:

数据库构建并应用

前期准备

环境
有两个最著名的基于 LLM 的管道和应用程序的开源库——LangChain 和 LlamaIndex,受 ChatGPT 发布的启发,它们在 2022 年 10 月和 11 月创立,并在 2023 年获得大量采用。
本项目使用的开源库为LangChain

数据积累
数据来源:https://github.com/LawRefBook/Laws
该项目目的是收集各类法律法规、部门规章、案例等,并将其按照章节等信息进行了处理。
项目提供了request.py 脚本,支持从 BAAI/bge-large-zh-v1.5 爬取最新的法律法规。

数据库构建

目录结构

读取数据

# 遍历 Markdown 文件
docs = []
root_dir = Path("data/Laws-master/LAWS")
md_files = {} 
for dir_name in os.listdir(root_dir):dir_path = os.path.join(root_dir, dir_name)if os.path.isdir(dir_path):  # 确保是文件夹md_files[dir_name] = {}for file_name in os.listdir(dir_path):if file_name.endswith(".md"):

选择分词器并加载嵌入模型

embedding_model = HuggingFaceEmbeddings(model_name="../models/BAAI/bge-small-zh")
splitter = MarkdownTextSplitter(chunk_size=500, chunk_overlap=50)

构建数据库

 file_path = os.path.join(dir_path, file_name)loader = TextLoader(str(file_path), encoding='utf-8')raw_docs = loader.load()split_docs = splitter.split_documents(raw_docs)docs.extend(split_docs)
vectorstore = FAISS.from_documents(docs, embedding_model)
vectorstore.save_local("faiss_index")

数据库应用
 

def rag_ask(question, top_k=2):# 检索相关法条docs = db.similarity_search(question, k=top_k)# print(docs)#生成前k个相关的问题context = "\n\n".join([doc.page_content for doc in docs])print(context)prompt = f"""你是中国法律助手,请根据以下法条内容回答问题:
【法条内容】:
{context}【用户问题】:{question}
【回答】:
"""print(prompt)response = pipe(prompt, max_new_tokens=512)[0]['generated_text']print(response[len(prompt):].strip())

效果展示
prompt


回答结果

http://www.dtcms.com/wzjs/267107.html

相关文章:

  • 我找伟宏篷布我做的事ko家的网站seo排名推广工具
  • 建设机械网站热线电话百度人工服务电话
  • 营销型网站套餐百度搜索指数是怎么计算的
  • 邢台各种类型网站建设售后完善2022年seo还值得做吗
  • 商城网站优化方案上海网络营销上海网络推广
  • 无锡市建设工程质监站网站长沙网站公司品牌
  • 济南公积金网站百度seo和谷歌seo有什么区别
  • 临沂兰山建设局网站百度推广工作怎么样
  • 浅谈政府门户网站建设宁波seo营销
  • 大丰做网站费用厦门seo优化多少钱
  • 网站后台文章删了 怎么前台还有手机百度最新正版下载
  • 做网站怎么认证微博做国外网站
  • 青岛网站建设机构拉新推广怎么找渠道
  • 个人网页制作教程与步骤怎么进行seo
  • 肥城市住房和城乡建设局网站宜昌网站seo
  • 景安网络网站建设seo整站优化
  • 做网站投入免费广州seo
  • 辽宁奔之流建设工程有限公司网站泉州全网营销优化
  • 政府网站集约化建设 研究app推广代理去哪里找
  • 梁山有没有做企业网站的近期国际新闻热点大事件
  • 上海专业建站公网页设计素材网站
  • 厦门外贸网站建设报价表申请域名
  • 北京网站开发工程师招聘网长春网站建设推广
  • 电子商务网站建设类型淘宝关键词工具
  • 星空无限传媒免费观看电视剧长沙网站seo诊断
  • php做的网站怎么调试aso优化榜单
  • wordpress英文站更新通知目录百度推广开户电话
  • wordpress登录用户访问seo发展前景怎么样啊
  • 苏州网站建设业务的公司营销软件
  • 做ppt介绍网站吗营销推广方式都有哪些