如何通过本地部署的DIFY辅助学习算法(PS可以辅助帮你学习任何想学习的资料)
如何通过本地部署的DIFY辅助学习算法(PS可以辅助帮你学习任何想学习的资料
- 一 提升知识库的大小容量
- 1.1 调大知识库的基础配置修改.env文件
- 1.2 通过docker compose 重启加载最新配置
- 1.3 重新上传知识库
- 二 搭建算法知识库的学习助手
- 2.1 text embedding 模型对比
- 2.1.1 如何选择合适的 Embedding 模型 ?
- 2.1.2 推荐的 Embedding 模型
- 2.2 安装并使用mxbai-embed-large 模型
- 2.3 针对知识库进行embedding
一 提升知识库的大小容量
1.1 调大知识库的基础配置修改.env文件
如果想通过借助大模型帮你去学习一些素材,这里就需要解决DIFY 原先只能部署的文件大小限制15M的突破,往往你的学习素材一般都在几百M,根据自己的实际情况判定。
所以这里第一件事是调整.env 文件的一些配置,调整的信息如下:
vim .env
编辑如下几个参数:
# 上传文件大小限制,默认15M。
UPLOAD_FILE_SIZE_LIMIT=500M
# 每次上传文件数上限,默认5个。
UPLOAD_FILE_BATCH_LIMIT=10
UPLOAD_IMAGE_FILE_SIZE_LIMIT=100
UPLOAD_VIDEO_FILE_SIZE_LIMIT=100
UPLOAD_AUDIO_FILE_SIZE_LIMIT=100
NGINX_CLIENT_MAX_BODY_SIZE=100M
1.2 通过docker compose 重启加载最新配置
docker compose down
docker compose up -d
1.3 重新上传知识库
二 搭建算法知识库的学习助手
因为涉及到文本embedding,所以这里需要通过ollama部署一个比较好的text embedding模型。
2.1 text embedding 模型对比
2.1.1 如何选择合适的 Embedding 模型 ?
选择合适的 Embedding 模型对于文本分析、语义搜索、问答系统等应用至关重要。Ollama 提供了一系列专业的 Embedding 模型,每种模型都有其特定的优势和应用场景。以下是选择合适 Embedding 模型的一些关键因素:
- 应用场景
确定您的应用是否需要特定领域的优化或多语言支持。例如,shaw/dmeta-embedding-zh 适合中文场景。
2. 模型性能
考虑模型在相关基准测试(如 MTEB)上的表现,选择性能最优的模型。
3. 参数大小与推理成本
根据可用的计算资源,选择合适大小的模型。较小的模型(如 shaw/dmeta-embedding-zh-small)可能具有更快的推理速度。
4. 上下文窗口长度
对于需要处理长文本的应用,选择支持较长上下文窗口的模型。
5. 社区反馈与支持
选择有良好社区支持和详细文档的模型,以便快速解决问题并获取帮助。
2.1.2 推荐的 Embedding 模型
以下我们选择了几个专业的 Embedding 的模型,用于进行 文本嵌入(Embeddings)的学习。
- 模型概览
- shaw/dmeta-embedding-zh:小型中文 Embedding 模型,适合多种场景,特别是在语义检索和 RAG 应用中表现出色。参数大小仅 400MB,支持上下文窗口长度达到 1024,推理成本较低。
- mxbai-embed-large:截至 2024 年 3 月,在 MTEB 上创下了 Bert-large 尺寸模型的 SOTA 性能记录,具有很好的泛化能力。
- nomic-embed-text:大上下文长度文本编码器,超越了 OpenAI text-embedding-ada-002,在短上下文和长上下文任务上表现优异。
- snowflake-arctic-embed:专注于性能优化的高质量检索模型,提供不同参数大小的版本以适应不同的性能和资源需求。
- bge-m3:BGE-M3 是 BAAI 推出的一款新机型,以多功能性、多语言性和多粒度的多功能性而著称。
- bge-large:专注于性能优化的高质量检索模型,提供不同参数大小的版本以适应不同的性能和资源需求。
- 注意事项
- 访问 Embedding 服务时无需运行 ollama run,仅在需要 chat 功能时才需启动大模型。
2.2 安装并使用mxbai-embed-large 模型
- 安装mxbai-embed-large
安装命令
ollama pull mxbai-embed-large
- dify 上架ollama mxbai-embed-large 模型
- 在DIFY 设置text embedding模型
2.3 针对知识库进行embedding
-
检查上传的知识库是否可用
-
基于知识库创建聊天助手