【大模型实战篇】搭建本地的隐私计算知识问答系统“密答”

news2024/11/15 21:45:57

1. 背景介绍     

        在之前分享的文章《基于开源大模型的问答系统本地部署实战教程》中,我们介绍了基于ollama实现本地问答系统的部署和使用。本文将基于ollama进一步实现本地垂直领域的问答系统搭建。ollama作为大模型的运行框架,可以提供大模型的使用接口,方便其他应用调用。

        本文将利用AnythingLLM来实现隐私计算垂直领域的知识问答。本次分享一下搭建的过程,以及初步的体验,但如果想追求好的问答效果,还是需要好好准备高质量知识库,这个是起决定作用的因素。

         我们采用docker的方式安装AnythingLLM。AnythingLLM是一款文档聊天机器人解决方案,能够将任何文档、资源或内容片段转化为大语言模型在聊天中可以利用的相关上下文。

2. 部署步骤

2.1 ollama准备大模型参数文件及模型加载

        首先,通过ollama下载相应的本地模型,为了便于尝试不同大模型的效果,可以在ollama的models列表中下载多个模型。前几天看到google开源了Gemma 2B的文章,介绍了端侧小模型的进展,没想到ollama上就已经可以下载使用了,借着这次机会也体验一下。

  ollama 服务启动指令:

ollama serve

  启动之后,后续AnythingLLM就可以使用ollama提供的接口能力。

2.2  docker安装AnythingLLM

1. 拉取镜像(执行需要点时间)

docker pull mintplexlabs/anythingllm

2. docker运行镜像(Linux/MacOs系统,根据实际情况可修改端口等信息)

其他的平台可以参考这里

export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 4001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm

3. docker管理平台

4.web访问

2.3 参数配置

2.3.1 配置LLM provider

我们这里就选择ollama服务。我选择了gemma2:2b,最大tokens数量设置4096.

2.3.2 用户范围设置

AnythingLLM支持设置个人使用和团队使用,如果选择团队使用,需要配置管理员账户,其他成员加入需要管理员审核。

2.3.3 配置工作区

        AnythingLLM支持创建工作区,这个想法还挺好的。不同的工作区相对独立,互补影响。可以创建不同垂直领域的知识库和问答应用。这里我创建了隐私计算工作区。

2.3.4 外观定制配置

        可以根据自己的需求,定制外观展示,比如配置logo和平台名称等。这里我设置隐私计算知识稳单系统名称为“密答”。

2.3.5 向量数据库和向量化模型的选择和配置

        这里为了方便起见,我们使用了内置的LanceDB,以及内置的Embedder。可以按照自己的需求进行定制配置。Embedder的重要性比较高,最好使用向量表征能力强的模型,不然后续的向量检索质量也难以保证。

2.3.6 上传垂直领域知识内容

        接下来就是重头戏,上传隐私计算知识文档,可以支持各种类型文件:pdf、txt、word。不过建议还是转换成markdown的文件,既能够保证结构,又可以保持文本状态,减少pdf之类文件的复杂性,导致向量化存在问题。左侧操作框是上传的文件,需要选择对应文件移动到相应的工作区,然后执行保存和向量化,处理成功后就可以回到问答界面。

2.3.7 知识库关键参数配置

        这里需要提示一下,在基于知识库的问答中,为了回答的问题尽可能与所提供知识相关,可以将知识库文档相似性阈值设置的高一些,实际体验下来效果会更准确。

2.3.8 API对外服务能力

        AnythingLLM还提供了API服务能力,使用方法可以参考API文档。

2.4 操作体验

         测试了一个上传知识中的版本功能问题,回答挺不错。不过为了尽可能提升效果,需要好好处理你的知识文档以及选择合适的向量化模型、问答模型,这些都是影响因素。

        本次分享介绍了基于本地垂直知识的隐私计算知识问答系统的搭建方法和初步使用体验。想要能够上生产的版本,还有很多工作要做,继续尝试优化提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 设计模式之建造者模式

文章目录 建造者模式中的简单版本逐渐复杂的问题建造者模式的实现 建造者模式中的经典版本 建造者(builder)模式属于创建型模式,建造者模式一般有两种类型的应用 建造者模式中的简单版本 逐渐复杂的问题 假设现在需要创建一个用户对象&…

如何提高小红书种草转化率

企业和品牌方想要在小红书上做种草推广一般分为图文种草和视频种草两种形式,而且小红书是一个完全可以依靠内容实现涨粉、变现、种草转化的平台! 因为小红书是算法推荐制,将你的作品放在流量池中检测,满足要求就能进入下一个流量池…

Python酷库之旅-第三方库Pandas(061)

目录 一、用法精讲 236、pandas.Series.explode方法 236-1、语法 236-2、参数 236-3、功能 236-4、返回值 236-5、说明 236-6、用法 236-6-1、数据准备 236-6-2、代码示例 236-6-3、结果输出 237、pandas.Series.searchsorted方法 237-1、语法 237-2、参数 237-…

Linux 内核源码分析---插入和删除模块

模块是一种向 Linux 内核添加设备驱动程序、文件系统及其他组件的有效方法,不需编译新内核或重启系统。 模块具有如下优点: • 通过使用模块,内核发布者能够预先编译大量驱动程序,而不会致使内核映像的尺寸发生膨胀; …

PTA—基础编程题目集(7-18)

7-18 二分法求多项式单根 目录 题目描述 输出格式: 输入样例: 输出样例: 参考代码 总结 题目描述 输入在第1行中顺序给出多项式的4个系数a3​、a2​、a1​、a0​,在第2行中顺序给出区间端点a和b。题目保证多项式在给定区间…

60_1简单的学生管理系统【功能实现(查看所有学生(分页)、修改和删除学生信息)】

功能实现 老师角色查看所有学生 获取学生列表和分页 1.修改index.jsp 不能直接跳stuList.jsp&#xff0c;没数据 <%if("teacher".equals(role)){%><a href"TeaInitModifyServlet?username<%username%>">修改信息</a><a href…

设施农业“AutoML“时代:大模型自动调参,让农业算法模型更简单易用

&#xff08;于景鑫 北京市农林科学院智能装备技术研究中心&#xff09;设施农业是现代农业的重要发展方向,但在数字化、智能化的进程中仍面临诸多挑战。传统的农业算法模型虽然可以为设施农业提供一定的决策支持,但在实际应用中往往受限于参数调优复杂、模型泛化能力差等因素。…

<Rust><iced>基于rust使用iced构建GUI实例:一个CRC16校验码生成工具

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第五篇实例,是一个CRC16校验码转换程序。 本篇内容: 1、CRC16校验码生成 代码介绍 本文的crc16校验码生成工具,主要设计两个方面,一个是crc16 modbus…

PADS Router 扇出失败问题详细解决方法。

第一步&#xff1a;确定单位是一致的,我的单位是 “密尔”&#xff0c;不是“公制”。 第二步&#xff1a;进去pads router 右键选择特性&#xff0c;注意&#xff0c;是右键点击任意板框内空白位置的特性&#xff0c;这个是涵盖整体的设置&#xff0c;和单独点击一个元器件选…

react-native从入门到实战系列教程一Swiper组件的使用及bug修复

轮播图&#xff0c;在app中随处可见&#xff0c;这么重要的功能我们怎么可能不学习下在react-native中的实现方式。 依然是第三方组件react-native-swiper 官网地址 https://www.npmjs.com/package/react-native-swiper 组件使用的组件及事件参考官方即可。 实现效果 官网…

文件审查流程:使用指南

当您正在处理一个项目并且必须进行文档审查时&#xff0c;您可能会对这个过程到底涉及什么、谁是利益相关者以及审查过程的结果可能是什么感到困惑。在这篇博客文章中&#xff0c;让我们简单介绍一下文档审核过程及其对高质量内容的活力。 文件审查的定义 文件审查是文件经过…

CMD运行指令

CMD运行指令 开始→运行→CMD→键入以下命令即可: ASSOC显示或修改文件扩展名关联。 AT计划在计算机上运行的命令和程序。 ATTRIB显示或更改文件属性。 BREAK设置或清除扩展式CTRLC检查。 CACLS显示或修改文件的访问控制列表(ACLs)。 CALL从另一个批处理程序调用这一个。 CD显示…

不同类型游戏安全风险对抗概览(下)| FPS以及小游戏等外挂问题,一文读懂!

FPS 游戏安全问题 由于射击类游戏本身需要大量数值计算&#xff0c;游戏方会将部分计算存放于本地客户端&#xff0c;而这为外挂攻击者提供了攻击的温床。可以说&#xff0c;射击类游戏是所有游戏中被外挂攻击最为频繁的游戏类型。 根据网易易盾游戏安全部门检测数据显示&#…

未来十年机器人行业前景还好吗?

未来十年机器人行业的前景非常乐观&#xff0c;这一行业预计将持续快速发展并深刻影响我们的工作、生活和社会。以下是对未来十年机器人行业前景的详细分析&#xff1a; 一、技术驱动的创新与发展 1. 智能化与自主化&#xff1a;随着深度学习和神经网络技术的进步&#xff0c;…

MATLAB进阶:数据的拟合

几天我们继续深度学习MATLAB中的数据拟合 最小二乘拟合 假设已知经验公式yf(c,x)yf(c,x)&#xff08;c为参数&#xff0c;x为自变量&#xff09;&#xff0c;要求根据一批有误差的数据(xi,yi)&#xff0c;i0,1,...,n(xi​,yi​)&#xff0c;i0,1,...,n确定参数c。这样的问题称…

SSM大学生就业咨询管理系统-计算机毕业设计源码79442

目录 摘要 1 绪论 1.1 选题背景 1.2 研究目的和意义 1.3国内外研究现状 2系统分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2…

python合并音视频-通过moviepy模块合并音视频

&#x1f308;所属专栏&#xff1a;【python】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的…

从零开始的MicroPython(四) 串口

上一篇&#xff1a;按键与外部中断 文章目录 前言串口&#xff08;UART&#xff09;简介MicroPython的UARTUART 类——双工串行通信 ESP32(NodeMCU-32S)GPIO简介引脚 文档代码ESP32&&PC通讯 前言 在嵌入式学习中&#xff0c;串口发挥着重要的作用&#xff0c;不仅仅是…

C++ 随机单词(萌新练习项目)

目录 项目名称 项目目标 功能描述 技术要点 示例代码 扩展建议 学习资源 项目名称 随机单词生成器&#xff08;Random Word Generator&#xff09; 项目目标 学习C基本语法和数据结构。练习使用C标准库中的随机数生成功能。理解容器&#xff08;如std::vector&#xf…

由浅入深的了解进程(5)--环境变量

环境变量 前言环境变量1、更多的环境变量及添加和删除2、整体理解环境变量系统 前言 在上一篇文章中简单的介绍了环境变量&#xff0c;但是没有讲述的比较全面了&#xff0c;所以现在再写一篇来介绍环境变量。 环境变量 在上一篇文章中&#xff0c;我们已经简单的学习了如何…