在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 的安全模型主要包括三个阶段…...
Xenium空间原位转录组:从数据到生物学发现的实战解析
1. Xenium平台与空间原位转录组技术初探 第一次接触Xenium平台的数据时,我被它呈现的空间基因表达图谱震撼到了。想象一下,这就像给组织切片拍了一张"基因表达照片",每个像素点都记录着成百上千个基因的活动状态。10x Genomics推出…...
双屏天花板用法!YogaBook 9i 多屏操作全演示
YogaBook 9i 作为双屏笔记本里的标志性机型,凭借两块高素质触控屏带来了完全不同于传统电脑的使用体验,但不少用户拿到手只当普通笔记本使用,没能发挥双屏协同的真正效率,多屏联动、分屏操作、跨屏交互这些核心亮点都被白白浪费。…...
跨平台B站工具箱:BiliTools让你的视频下载体验焕然一新
跨平台B站工具箱:BiliTools让你的视频下载体验焕然一新 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bil…...
LeetCode 2946. 循环移位后的矩阵相似检查【数学周期性+原地比较】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
Charticulator:数据可视化的自由创作平台与技术革命
Charticulator:数据可视化的自由创作平台与技术革命 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 当数据分析师面对预设模板无法表达复杂数据关系时…...
热门编程语言全攻略:从入门到职业选手
目录 引言:为什么选择一门“热门”编程语言 1.1 编程语言热度背后的产业逻辑 1.2 初学者如何选择第一门语言 1.3 全栈/进阶者如何扩展技术栈 Python:万能胶水与人工智能首选 2.1 语言定位与核心应用领域 2.2 语法特点:简洁优雅的伪代码 2.3 学…...
PlayCover 2.0重构Mac游戏体验:社交与云服务双引擎驱动革新
PlayCover 2.0重构Mac游戏体验:社交与云服务双引擎驱动革新 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 在Mac平台运行iOS游戏长期面临两大痛点:缺乏社交连接与跨设备数据同…...
Mermaid:文本驱动的可视化引擎深度指南
Mermaid:文本驱动的可视化引擎深度指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者。 …...
机器人手臂相机 vs 抓手相机:5个关键区别与选型指南(附避坑技巧)
机器人手臂相机 vs 抓手相机:5个关键区别与选型指南(附避坑技巧) 在工业自动化领域,视觉引导系统如同机器人的"眼睛",而相机安装位置的选择往往决定了整个系统的精度与可靠性。当工程师面对手臂相机…...
Comsol流固耦合分析中的达西定律模块与固体力学模块的应用
Comsol流固耦合注浆及冒浆分析 采用其中达西定律模块及固体力学模块,通过建立质量源项、体荷载等实现上述考虑渗流场与结构场流固耦合理论方程的嵌入。在COMSOL里玩流固耦合就像给工程问题装了个动态CT扫描仪。最近在搞注浆冒浆模拟时发现,把达西渗流和固…...
