在Mac mini上实现本地话部署AI和知识库
在Mac mini上实现本地话部署AI和知识库
- 硬件要求:
- 大模型AI,也叫LLM,需要硬件支持,常见的方式有2种:一种是采用英伟达之类支持CUDA库的GPU芯片或者专用AI芯片;第二种是采用苹果M系列芯片架构的支持统一内存架构的硬件;
- 软件要求:
- 软件基于ollama + anything LLM
- 模型主要选择的是OpenChat,感觉openchat的中文支持比较好
- 步骤
- 先安装Ollama,步骤也很简单,主要下载官网的安装包安装即可;以下是下载页链接:[https://ollama.com/download](https://ollama.com/download)
- 安装完了Ollama之后,就可以在终端里用Ollama run openchat,
- 现在大模型本地安装就完成了,接下来就可以继续部署本地的知识库;
- 本地知识库的部署:
- anythingLLM的安装。
- 可以说,AI的出现就是懒人的福音,基本上你按照官网的指引来做不会有什么难的。唯独是如果英语阅读可能对某些同学有点障碍,不过这种障碍估计很快也要被AI消除了。
- anthingLLM的配置,资料的投喂,搜索检验。
- 总结,下一步考虑把系统的bug list喂给AI模型,看看能不能方便地查到有用的东西。
- 投喂网页数据之前的查询:
- 投喂数据之后的查询:
硬件要求:
大模型AI,也叫LLM,需要硬件支持,常见的方式有2种:一种是采用英伟达之类支持CUDA库的GPU芯片或者专用AI芯片;第二种是采用苹果M系列芯片架构的支持统一内存架构的硬件;
本文主要讲基于苹果M系列的方式,采用的内存建议16M,8M内存也能支持,但支持模型会比较少;除此之外,即使普通的电脑,如果你的内存够大,CPU够快,也是可以运行一些小的模型的,只是速度上会比较慢,CPU占用比较高,具体情况大家可以实际体验一下,例如我用一台T460,Intel i5 4核2.3G x4,16G内存,显卡GeForce 940MX/PCIe/SSE2,运行Ollama openchat 4B模型,一分钟大概生成100个词左右。
软件要求:
软件基于ollama + anything LLM
模型主要选择的是OpenChat,感觉openchat的中文支持比较好
步骤
先安装Ollama,步骤也很简单,主要下载官网的安装包安装即可;以下是下载页链接:https://ollama.com/download
安装完了Ollama之后,就可以在终端里用Ollama run openchat,
这样第一次执行的话,会自动拉取模型,建议选择8B左右大小的,8B就是8billion,也就是80亿参数,模型文件的大小大概是8G左右;以下是模型的说明:openchat;等下载完模型之后,就可以在终端里直接使用模型,输入一些问题,可以看到模型有回复,就说明正常运行了,如果机器的硬件不支持,例如内存不够,可能会比较慢;
现在大模型本地安装就完成了,接下来就可以继续部署本地的知识库;
本地知识库的工作原理是通过人工投喂特定的数据给大模型,使大模型可以在我们投喂的数据里学习到特定的知识,这样当用户向大模型提问的时候,就可以从我们投喂的数据里匹配响应的结果给我们;目前这种技术常见应用于电商平台的AI客服上;但不限于这种场景,对于公司内部的经验库管理也是挺适合的,对于个人的桌面电脑,也会有很好的帮助;本地知识库具有保密性的优势,不必把公司内部的资料上传到外部云端,或者第三方,而且没有常见的数据规模上的约束,所以以后会是一个受欢迎的方式;
本地知识库的部署:
本地知识库使用anything LLM来实现;工作原理就是使用一个embeding模型来对文档进行词向量的提取;词向量是一个专业术语,是人工智能对人类的文件的一种编码方式。可以理解为把学习到的词语投射到二维坐标上,意思相近的词的距离靠的比较近,而意思无关的词距离就比较远;例如猫和狗都是动物,他们会靠得比较近,而花和草就不会跟猫狗靠得近;还有一个模型是用来实现向量数据的存储的,是向量数据库。这2种模型都是anythingLLM这个APP里面内置的,我们只需要拿来直接用就可以。但是我们必须知道他们的概念,因为这个embeding的功能对于知识库的管理效果至关重要,如果提取到的数据质量不够好,最终用户查询到的结果就会不满意,这个时候可以尝试改变其配置,使用其他的第三方模型。不管是LLM模型,还是embeding模型,我们的选择是很多的,既有开源模型,也有闭源模型,既有免费模型,也有收费模型,这些都是可以选择的。
anythingLLM的安装。
在官网下载安装即可。安装好后会有一个引导过程,让用户设置好LLM模型,working space这些。LLM模型我们选择Ollama。以下是anythingLLM的链接地址:https://anythingllm.com/desktop
可以说,AI的出现就是懒人的福音,基本上你按照官网的指引来做不会有什么难的。唯独是如果英语阅读可能对某些同学有点障碍,不过这种障碍估计很快也要被AI消除了。
anthingLLM的配置,资料的投喂,搜索检验。
最简单的投喂方式就是把Excel表格投喂给模型,也可以投喂一个网页链接,让其下载并消化;embeding模型消化数据时有一个等待过程,这个过程就是把文档里面的资料进行词向量的计算和映射过程。怎么知道我们投喂的数据有效果呢?例如我们可以这样进行测试,首先没有投喂资料之前,我们可以先提一个问题,例如,Mac mini的价格是多少?这样,因为AI模型的数据是比较早期的,回复的结果通常是不知道,或者不准确;这个时候我们可以打开苹果的官网,进入有Mac mini价格的页面,然后把这个页面的URL复制粘贴给模型,让模型进行一个消化整理;完了之后再询问,这个时候模型就可以输出有用的信息了,而且还会附带引用的来源;


总结,下一步考虑把系统的bug list喂给AI模型,看看能不能方便地查到有用的东西。



投喂网页数据之前的查询:

投喂数据之后的查询:

相关文章:
在Mac mini上实现本地话部署AI和知识库
在Mac mini上实现本地话部署AI和知识库 硬件要求:大模型AI,也叫LLM,需要硬件支持,常见的方式有2种:一种是采用英伟达之类支持CUDA库的GPU芯片或者专用AI芯片;第二种是采用苹果M系列芯片架构的支持统一内存架…...
一个方法被多个线程同时调用,确保同样参数的调用只能有一个线程执行,不同参数的调用则可以多个线程同时执行
我们知道通过lock一个固定静态object给代码段加同步锁,可以让多个线程的同时调用以同步执行,因此可以利用字典来给不同参数分配不同的静态对象,方法中不同的参数调用锁住各自不同的静态对象即可实现不同参数不加锁,相同参数才加锁…...
3. MySQL事务并发的问题与解决方法
一. 并发事务带来的问题 并发会造成事务间出现脏读,不可重复读,幻读现象。 1. 脏读 一个事务在处理过程中读取了另外一个事务未提交的数据。若另外一个事务回滚,则读取到的数据是无效的,又称为脏读。 2. 不可重复读 在一个事务…...
25/1/15 嵌入式笔记 初学STM32F108
GPIO初始化函数 GPIO_Ini:初始化GPIO引脚的模式,速度和引脚号 GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits:将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIO…...
MySQL的不同SQL模式导致行为不同?
现象: 我在两个mysql库都有相同定义的表,其中一个字段是varchar(1200)。当我都对这个表进行insert操作,而且超过此字段的规定长度(此处是1200),这两库的行为是不一样的:库B是直接报错too long&…...
Flink 使用 Kafka 作为数据源时遇到了偏移量提交失败的问题
具体的错误日志 21:43:57.069 [Kafka Fetcher for Source: Custom Source -> Map -> Filter (1/1)#2] ERROR org.apache.kafka.clients.consumer.internals.ConsumerCoordinator - [Consumer clientIdconsumer-my-group-6, groupIdmy-group] Offset commit failed on pa…...
【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析
【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…...
LSA更新、撤销
LSA的新旧判断: 1.seq,值越大越优先 2.chksum,值越大越优先 3.age,本地的LSA age和收到的LSA age作比较 如果差值<900s,认为age一致,保留本地的:我本地有一条LSA是100 你给的是400 差值小于…...
DevUI 2024 年度运营报告:开源生态的成长足迹与未来蓝图
在当今数字化飞速发展的时代,开源已成为推动技术创新与协作的重要力量。DevUI 作为开源领域的重要一员,其发展历程与成果备受关注。值此之际,GitCode 精心整理了 DevUI 年度运营报告,为您全面呈现 DevUI 社区在过去一年里的开源之…...
centos 7 Mysql服务
将此服务器配置为 MySQL 服务器,创建数据库为 hubeidatabase,将登录的root密码设置为Qwer1234。在库中创建表为 mytable,在表中创建 2 个用户,分别为(xiaoming,2010-4-1,女,male&…...
React 表单处理与网络请求封装详解[特殊字符][特殊字符]
在 React 开发中,表单处理和网络请求是非常常见的需求。本文将围绕以下几个方面展开讲解: FormItem 绑定 name 属性表单校验与失焦校验获取表单数据封装请求模块 request 1. FormItem 绑定 name 属性 在 React 中,使用 Ant Design 的 Form …...
C++ 的 CTAD 与推断指示(Deduction Guides)
1 类模板参数推导(CTAD) 1.1 曲线救国 CTAD 的全称是类模板参数推导(Class Template Argument Deduction),它允许在实例化类模板时,根据构造函数的参数类型自动推导模板参数,从而避免显式指…...
【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注
13.2.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…...
如何将原来使用cmakelist编译的qt工程转换为可使用Visual Studio编译的项目
将原来使用CMakeLists.txt编译的Qt工程转换为可使用Visual Studio编译的项目,可以通过以下步骤实现: 一、准备阶段 安装必要的软件: 确保已安装Visual Studio,并选择了C开发相关的组件。安装CMake,并确保其版本与Qt和…...
微软确认Win10停更不碍Microsoft 365使用!未来是否更新成谜
快科技1月17日消息,微软澄清了关于Windows 10停止支持后Microsoft 365办公套件使用情况的误解。 前两天微软更新支持文档,表示2025年10月14日Windows 10停止支持之后,Microsoft 365应用程序将不再支持Windows 10设备,引发用户担忧…...
Ubuntu、Windows系统网络设置(ping通内外网)
一、 虚拟机VMware和Ubuntu系统的网络配置说明 1、虚拟机的网络适配器的模式有三种: 桥接模式NAT模式主机模式 2、虚拟机VMware的网卡配置(如何进行配置界面(虚拟机->设置)) 注意: 1、以上桥接模式(ubuntu有独立IP)、NAT模式(没有独立IP)都可以联…...
华为OD机试E卷 ---最大值
一、题目描述 给定一组整数(非负),重排顺序后输出一个最大的整数。 二、示例1 用例1 输入 10 9输出 910说明:输出结果可能非常大,所以你需要返回一个 字符串只而不是整数。 三、输入描述 数字组合 四、输出描述 最大的整数 五、解题思路 字符…...
UllnnovationHub,一个开源的WPF控件库
目录 UllnnovationHub1.项目概述2.开发环境3.使用方法4.项目简介1.WPF原生控件1.Button2.GroupBox3.TabControl4.RadioButton5.SwitchButton6.TextBox7.PasswordBox8.CheckBox9.DateTimePicker10.Expander11.Card12.ListBox13.Treeview14.Combox15.Separator16.ListView17.Data…...
Fabric区块链网络搭建:保姆级图文详解
目录 前言1、项目环境部署1.1 基础开发环境1.2 网络部署 2、后台环境2.1、环境配置2.2、运行springboot项目 3、PC端3.1、安装依赖3.2、修改区块链网络连接地址3.3、启动项目 前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加…...
Kubernetes (K8s) 权限管理指南
1. 引言 Kubernetes (K8s) 作为当今最流行的容器编排平台,其安全性至关重要。本指南旨在全面介绍 K8s 的权限管理机制,帮助具有一定基础的读者深入理解并掌握这一关键领域。 © ivwdcwso (ID: u012172506) 2. Kubernetes 安全模型概述 K8s 的安全模型主要包括三个阶段…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...
