使用目标
基于大模型,落地个人或公司,私有化部署,目前主要搭建本地的知识库服务。
AI 本地知识库搭建的核心主要包括数据收集与整理、知识表示与存储、知识检索与推理等方面。
ollama及open-webui容器安装
安装容器命令
Ollama 是一款开源跨平台的大型语言模型工具
yaml
version: '3'
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- 11434:11434
volumes:
- D:\work\docker\ollama\ollama_data:/root/.ollama
networks:
- my_net
ollama-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ollama-webui
restart: unless-stopped
ports:
- 11433:8080
volumes:
- D:\work\docker\ollama\webui_data:/app/backend/data
environment:
- OLLAMA_API_BASE_URL=http://ollama:11434/api
- WEBUI_SECRET_KEY=tiger_Admin_123
networks:
- my_net
depends_on:
- ollama
networks:
my_net:
external: trueversion: '3'
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- 11434:11434
volumes:
- D:\work\docker\ollama\ollama_data:/root/.ollama
networks:
- my_net
ollama-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ollama-webui
restart: unless-stopped
ports:
- 11433:8080
volumes:
- D:\work\docker\ollama\webui_data:/app/backend/data
environment:
- OLLAMA_API_BASE_URL=http://ollama:11434/api
- WEBUI_SECRET_KEY=tiger_Admin_123
networks:
- my_net
depends_on:
- ollama
networks:
my_net:
external: true
ollama容器下载模型
arduino
ollama run deepseek-r1:1.5b
使用安装好的模型
open-webui容器安装
访问web
注册用户
密码:admin
使用模型
知识库搭建
名词说明
RAG
在 AI 大模型中,RAG(检索增强生成)是一种将检索技术与语言模型生成能力相结合的技术,具有多方面的重要作用:
- 提高信息准确性:RAG 通过检索外部知识源,能够为生成的内容提供准确、最新的信息支持。例如,在回答涉及特定事实、数据或专业知识的问题时,RAG 可以从可靠的知识库中获取相关信息,避免模型仅凭自身的预训练知识生成可能不准确或过时的回答,从而提高回答的准确性和可信度。
- 增强生成效果:它可以利用检索到的相关文本作为上下文或提示,引导语言模型生成更符合要求、更具针对性的内容。比如,在生成新闻报道、文案创作等任务中,RAG 能够根据检索到的相关主题资料,帮助模型生成更丰富、更有条理的文本,提升生成内容的质量和实用性。
- 解决模型知识局限:即使是大规模的语言模型,其知识储备也存在一定的局限性。RAG 技术允许模型在需要时从外部获取额外的知识,有效地扩展了模型可利用的知识范围。这使得模型能够更好地处理一些冷僻、专业或时效性强的问题,弥补了模型自身知识覆盖不足的缺陷。
- 提升模型可控性:通过检索特定的信息并将其融入生成过程,RAG 为模型的输出提供了一定的约束和引导,使得生成结果更加可控。用户可以通过调整检索条件和策略,影响模型生成的内容方向,更好地满足不同应用场景下的特定需求。
文本嵌入模型
通过 ollama pull nomic-embed-text
拉取的 nomic-embed-text
模型属于文本嵌入模型,其核心作用是把文本转换为向量表示,在诸多自然语言处理(NLP)任务中发挥着重要作用,以下是详细介绍:
语义搜索
- 信息检索 :在海量的文本数据里,常规的关键词搜索往往只能找到字面匹配的内容,难以精准捕捉语义相近的文本。而
nomic-embed-text
模型能将查询语句和文本数据都转化成向量,通过计算向量之间的相似度,能够高效找出与查询语义相关的文本,提升搜索的准确性和召回率。 - 问答系统:在问答系统中,用户提出的问题可以被转化为向量,然后与知识库中的问题向量进行比对,找出最相似的问题及对应的答案,为用户提供更精准的回答。
文本分类
- 自动归类:可以把文本的向量表示输入到分类器(如支持向量机、神经网络等)中,让分类器依据向量的特征对文本进行分类。例如,在新闻分类任务中,能够将新闻文章分为政治、经济、体育、娱乐等不同类别。
- 情感分析:借助模型得到文本向量后,可判断文本所表达的情感倾向,如积极、消极或中性,在社交媒体舆情监测、产品评价分析等场景中应用广泛。
聚类分析
- 文本分组:将大量文本转化为向量后,利用聚类算法(如 K - Means 算法)对向量进行聚类,把语义相近的文本归为同一类。这有助于发现文本数据中的潜在结构和模式,例如在市场调研中对消费者反馈进行聚类,了解不同群体的需求和意见。
文本相似度计算
- 评估相似性:计算不同文本之间的向量相似度,从而评估它们在语义上的相似程度。在抄袭检测中,通过比较两篇文章的向量相似度,可以判断是否存在抄袭行为;在推荐系统中,根据用户历史阅读文本和候选文本的相似度,为用户推荐感兴趣的内容。
生成式任务辅助
- 提供上下文信息:在文本生成任务(如机器翻译、文本摘要、对话生成等)中,模型生成的文本向量可以为后续的生成模型提供更多的上下文信息和语义约束,帮助生成更符合逻辑和语义的文本。
安装Page Assist插件
Chrome浏览器插件:www.crxsoso.com/
下载到本地,谷歌浏览器打开:chrome://extensions/,右上角打开开发者模式,将下载好的crx文件拖入浏览器,完成插件的安装。
文本嵌入模型安装
ollama服务下安装 nomic-embed-text
,文本嵌入模型的作用是,让大模型理解我们的文本资料。
arduino
ollama pull nomic-embed-text
准备资料数据并上传
知识库效果验证
未使用自己投喂数据效果
使用自己投喂数据效果
搜索互联网
至此结束!!!