基于大模型构建本地知识库

简介: 基于大模型构建本地知识库

图文概述

1.png

一、知识库构建


1.文本加载和读取


支持的格式:


  • pdf

  • txt

  • md

  • docx

2.文本分割


通常,将大型文本文档拆分为较小的块,以便更好地使用语言模型。文本拆分器负责将文档拆分为较小的文档。理想情况下,您希望将语义相关的文本片段放在一起。“语义相关”的含义可能取决于文本的类型。


  • 根据规则
根据中文文章的常见终止符号,利用规则进行文本分割。
如:单字符断句符、中英文省略号、双引号等
  • 根据语义
将文本拆分为语义有意义的小块(通常是句子)。
开始将这些小块组合成一个较大的块,直到达到一定的大小(由某个函数测量)。
达到该大小后,将该块设置为自己的文本段,然后开始创建一个具有一些重叠的新文本块。

目前来说,由于语义的不确定性,用规则会取得更好的效果,文本分句长度为800。


3.文本向量化


语义检索的重要前提Sentence Embeddings。可惜目前看到的绝大部分材料都是使用OpenAIEmbeddings。OpenAIEmbeddings 调用的mode_name=“text-embedding-ada-002” 排在第6位


英文排行版


MTEB 排行榜 - MTEB 的拥抱面孔空间 (huggingface.co)

2.png

中文SOTA


这是一个CoSENT(余弦句子)模型:shibing624/text2vec-base-Chinese。


它将句子映射到 768 维密集向量空间,可用于任务 如句子嵌入、文本匹配或语义搜索


分别拿 text2vec-base-chinese 、instructor-large 和 OpenAIEmbedding Run这10个中文case,instructor-large 表现最差,text2vec-base-chinese 表现最好:

3.png

中文模型在政府语料问题的匹配top5 ernie-base text2vec-large-chinese
关于转发国家发展改革委物流业降本增效专项行动方案 2/5 4/5
农业综合开发扶持农业优势特色产业促进农业产业化发展的指导意见 2/5 3/5
北京市暂时调整有关行政审批和准入特别管理措施的决定 3/5 5/5
推进交通运输行业数据资源开放共享的实施意见 1/5 5/5
关于改进和规范公安派出所出具证明工作的意见 1/5 4/5
谁开展的原油期货保税交割业务暂免征收增值税 4/5 3/5
香港联交所上市股票的所得税问题 3/5 5/5
图书资料费、数据采集费、会议费/差旅费/国际合作与交流费、设备费、专家咨询费、劳务费、印刷费/宣传费是哪些 3/5 3/5
国家知识产权示范园区的申报条件 5/5 5/5

二、向量搜索


1.向量存储


Faiss是Facebook开源的一个向量检索库,用于大规模向量集合的索引和搜索。主要功能包括:


1.支持多种索引结构: IVF, IVFFlat, HNSW, etc。这些索引结构可以实现高精度和高召回的向量搜索。


2.支持多种度量方式:内积,欧氏距离,cosine 相似度等。可选择合适的度量方式对向量集合建立3索引。


3.快速的索引构建与搜索:Faiss使用GPU加速,可以实现亿量级向量的索引构建和搜索。


4.降维与聚类:Faiss提供PCA,IVFFlat等算法进行向量降维,并支持Kmeans算法进行向量聚类。


5.高级特性:Faiss支持在线学习,异构向量检索,索引压缩等高级特性。


Faiss的典型应用有:


1.图像检索:在大规模图片数据库中找到与输入图片最相似的图片。


2.文本匹配:快速找到与输入文本最相近的文本内容。


3.推荐系统:根据用户兴趣对大量商品进行快速检索和推荐。


4.声纹识别:在海量语音数据中实现语音识别和检索。


2.用户问题向量化


Embedding 模型进行向量化(text2vec-large-chinese)


3.知识库中搜索和问题最相似的topK个向量

# chunk_conent   是否启用上下文关联
# score_threshold    搜索匹配score阈值
# vector_search_top_k   搜索知识库内容条数,默认搜索5条结果
# chunk_sizes    匹配单段内容的连接上下文长度

向量搜索索引中查找与embedding最相似的k个结果,得分scores和索引indices。


如果得分scores高于阈值score_threshold,跳过该结果。


指定了chunk_conent,则在结果索引的附近扩展查找,将相近的文档片段拼接到doc,但拼接后长度不超过chunk_size。只有相同的文档才会被拼接。

4.png

5.png

三、大模型理解


将问题和topK个向量作为上下文输入给大模型,让大模型根据已有的提示信息进行总结归纳回答。

基于上下文的prompt模版:根据上述已知信息,简洁和专业的来回答用户的问题。如果无法从中得到答案,请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”,不允许在答案中添加编造成分,答案请使用中文。 问题是:{question}

示例:

6.png

7.png

四、问题


1.目前该项目不够稳定,会出现奔溃的问题。


2.多轮对话后,显存溢出造成奔溃。


3.是否在prompt模版中加入判断,若所问问题非政务类型,转由大模型回答。


4.大模型可能无法准确地理解政务领域的专业知识和术语,在小部分回答上会存在偏差。


5.向量搜索时,可能会匹配到低质量文本,导致回答错误。(低质量:匹配到的文本具有一定相关性,但是和用户的问题意图有所偏差)

目录
相关文章
|
4月前
|
数据可视化 安全 关系型数据库
写给工程师的 MacBook 商用级大模型知识库部署方案(上)
写给工程师的 MacBook 商用级大模型知识库部署方案(上)
510 2
|
3月前
|
人工智能 Linux Docker
一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
135722 29
|
4月前
|
机器人 Linux API
基于Ollama+AnythingLLM轻松打造本地大模型知识库
Ollama是开源工具,简化了在本地运行大型语言模型(ile优化模型运行,支持GPU使用和热加载。它轻量、易用,可在Mac和Linux上通过Docker快速部署。AnythingLLM是Mintplex Labs的文档聊天机器人,支持多用户、多种文档格式,提供对话和查询模式,内置向量数据库,可高效管理大模型和文档。它也是开源的,能与Ollama结合使用,提供安全、低成本的LLM体验。这两款工具旨在促进本地高效利用和管理LLMs。
145810 32
|
2月前
|
Ubuntu API 数据安全/隐私保护
告别信息搜寻烦恼:用fastgpt快速部署国内大模型知识库助手
告别信息搜寻烦恼:用fastgpt快速部署国内大模型知识库助手
235 0
|
2月前
|
自然语言处理 安全 开发者
在构建知识库时,如何有效管理领域术语和同义词信息
在构建知识库时,如何有效管理领域术语和同义词信息
|
3月前
|
人工智能 小程序 机器人
开源一个RAG大模型本地知识库问答机器人-ChatWiki
准备工作 再安装ChatWiki之前,您需要准备一台具有联网功能的linux服务器,并确保服务器满足最低系统要求 • Cpu:最低需要2 Core • RAM:最低需要4GB 开始安装 ChatWiki社区版基于Docker部署,请先确保服务器已经安装好Docker。如果没有安装,可以通过以下命令安装:
238 0
|
4月前
|
自然语言处理 API 开发工具
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
|
4月前
|
机器学习/深度学习 存储 数据可视化
构建个人知识库:Notion vs Roam Research
【5月更文挑战第12天】Notion和Roam Research是两款知名的知识库工具。Notion以其丰富的文本编辑、灵活的笔记组织和强大的集成能力脱颖而出,适合需要多平台同步和精美排版的用户。Roam Research则以双向链接和块概念为核心,构建知识网络,便于发现信息间的关联,适合深度学习和探索性思考。选择取决于个人需求和偏好。
|
4月前
|
自然语言处理 API 数据安全/隐私保护
通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统
本文展示了如何使用阿里云向量检索 Milvus 版和灵积(Dashscope)提供的通用千问大模型能力,快速构建一个基于专属知识库的问答系统。在示例中,我们通过接入灵积的通义千问 API 及文本嵌入(Embedding)API 来实现 LLM 大模型的相关功能。
通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统
|
4月前
|
人工智能
本地离线部署大模型知识库OLLAMA+Anything(保姆级)
本地离线部署大模型知识库OLLAMA+Anything(保姆级)
2459 2

热门文章

最新文章