手把手教你从零搭建自己的知识库

💡 原文中文,约8500字,阅读约需21分钟。
📝

内容提要

LLM + Fine-tune和LLM + 外挂知识库是目前的方案选择。文章介绍了使用Word2Vec进行知识库训练和应用的方法,包括安装Python环境和相关依赖库。Word2Vec是一种处理自然语言的模型,通过训练文本数据将单词转换为向量表示。还介绍了其他词向量模型如GloVe、FastText、ELMo和BERT。文章还提到了数据处理、模型训练和使用词向量的方法。最后介绍了向量相似度计算和知识库检索的方法,以及一些主流的向量数据库。模型部署和使用的参考链接也提供了。

🔎

延伸解读

Word2Vec 的定位与局限

文章明确指出 Word2Vec 模型较老,本教程主要用于教学,让读者对大模型相关知识有实践了解,不强求质量效率。因此,若用于生产环境,需考虑其局限性,如无法处理多义词、依赖固定窗口等。读者可尝试 GloVe、FastText、ELMo 或 BERT 等更先进的模型,它们在不同方面有改进。

句向量生成方法的选择

文章列举了四种句向量生成方法:平均值、TF-IDF 加权平均、Doc2Vec 和神经网络。其中平均值法最简单,但丢失语序信息;TF-IDF 加权平均强调重要词,仍无语序;Doc2Vec 保留语序;神经网络能捕捉词序。教程采用平均值法,适合快速实践,但实际应用中需根据需求权衡效果与复杂度。

知识库检索流程与向量数据库

知识库检索包括文档转文本、分块、向量化、存储和相似性检索。向量数据库用于持久化存储和快速相似性搜索,主流选择有 Pinecone、Weaviate、Redis、Qdrant、Milvus 等。文章选用 Qdrant 部署,因其 Rust 实现。读者需注意,不同数据库在功能、部署方式和适用场景上有差异,应根据项目需求选择。

本地部署 ChatGLM 的注意事项

文章以 MacBook M2 Pro 32G 为例,介绍部署 ChatGLM2-6B 的步骤:创建虚拟环境、安装依赖、下载模型文件、修改模型路径并使用 mps 后端。需注意,模型文件较大,下载和加载需足够存储和内存;且需安装 PyTorch nightly 版本以支持 MPS。部署后可通过 web_demo.py 或 streamlit 运行演示。

❓

Q&A

如何搭建自己的知识库?

可以通过使用LLM + 外挂知识库的方式,结合Word2Vec进行知识库的训练和应用。

Word2Vec模型的工作原理是什么?

Word2Vec通过训练文本数据,将单词转换为向量表示,主要有Skip-Gram和CBOW两种模型来计算词与词之间的关系。

有哪些常用的词向量模型?

常用的词向量模型包括GloVe、FastText、ELMo和BERT,各自有不同的特点和应用场景。

如何进行数据处理以训练模型?

数据处理包括过滤中文、简化中文、中文分词和除去停用词等步骤。

向量相似度是如何计算的?

向量相似度通常使用余弦相似度来衡量两个向量的相似性,值越接近1表示越相似。

主流的向量数据库有哪些?

主流的向量数据库包括Pinecone、Weaviate、Redis、Qdrant和Milvus。

🏷️

标签

➡️

继续阅读