前言
本文仅为个人实践记录,非专业领域,有参考前辈们的操作指南。如有谬误还请海涵。
本次记录的目标包括:
1.安装并能够本地部署大模型(如llama3),并执行问答。(注:不使用Docker)
2.使用GPU而非CPU,充分利用老游戏本的显卡(GTX1650)。
3.通过AnythingLLM的图形化界面,构建知识库。
本人笔记本电脑配置:
i7-9750H处理器,GTX1650 4G GDDR5独显。
一、OLLAMA的下载、安装、模型存储配置
(一)下载
下载地址:https://ollama.com/download
下载需要的时间比较久,300M不到下了俩小时。(应该还有其他途径能快一些,比如找下完了的亲友XD)
(二)安装
exe双击安装,默认位置在C盘。安装完之后,右下图标栏会出现羊驼的小图标。
此时在命令行中输入ollama,会显示相关信息,即为安装成功。
(三)配置模型存储位置
模型默认存储在C盘,修改方式为修改环境变量,如图。变量名为OLLAMA_MODELS
注意,修改后建议重启OLLAMA。如果修改之前有在OLLAMA中下载大模型,修改路径后会重新执行下载。可以到C盘中复制模型到指定位置。(默认位置:C:\Users\用户名\AppData\Local\Ollama)
二、大模型的下载与测试
(一)下载模型与测试
进入OLLAMA library,地址:https://ollama.com/library
查找想要的大模型。如llama3、qwen(千问)、GLM4(智谱)。
根据页面提示,选择模型(如8B,点开可以看到模型包大小,根据电脑情况选即可),复制右边的代码。
在命令行中粘贴或输入:ollama run 模型名称,例:
ollama run llama3
或其他模型名称(此处以deepseek-coder为例),会开始下载。速度比下OLLAMA快。
下载完成后可以开启对话。
(二)其他说明
注1:不确定模型版本对硬件的要求除了硬盘空间之外还有什么,如果下载了大的模型是否会对设备造成影响尚未可知。量力而行。
注2:如需移除模型(同样以deepseek-coder为例),可使用代码:ollama rm 模型名称
ollama rm deepseek-coder
提示:deleted ‘deepseek-coder’,移除成功。
注3:据说可以下载其他外部模型,通过一些编辑的办法加入自己的模型库,具体参考安装中文微调版的llama3的教程,此处并未实践。
三、使用GPU执行OLLAMA的运算
前期执行问答时,发现只使用了CPU,GPU基本没动,于是找了很多资料。
经查询,使用NVIDIA显卡,需要下载CUDA。(另,据说还要安python之类,本机本身有,这里不确定是否真的需要。)
下载地址: https://developer.nvidia.cn/cuda-downloads
由于network版根本在本机打开后下载进度完全不动,我使用了IDM(internet download manager),迅速下好了3G的CUDA工具包。
随后是漫长的安装,选解压位置,精简版,一路点下去就行,顺便重启了电脑(当时有系统更新),又双击安装一遍才真的安好。
当时找了很久OLLAMA配置文件想要修改成GPU但都没找到,始终CPU转得飞快,只能作罢。
直到第二天再打开OLLAMA玩耍,发现直接就用了GPU……
OK,稀里糊涂解决了……
四、AnythingLLM的其他辅助功能
(一)安装
AnythingLLM比较友好的点:图形化界面,比命令行看着更习惯。
下载地址:https://anythingllm.com/download
安装后打开即可。
(注:其他教程提到应先开启OLLAMA,由于默认启动,没注意如果关闭是否能正常执行。建议确认后再开启。)
首次打开需要配置“人工智能提供商”,新建工作区。总之在能选择的地方选上小羊驼就好,会自动识别OLLAMA的一些属性。其他就默认点下去。(没截图,后续也可以修改,左下角小扳手,如图。可以顺便把语言改成中文。)
(二)知识库
配置好工作区后,看左边,上传图标是知识库,小齿轮是修改配置。
知识库(我的文档):
通过左下角上传文件或链接资源网址,成功后会出现在左侧方框内。
点击文件前的小方块,Move to Workspace,文件会出现到右边,出现“Save and Embed”,点击后等待转圈。
如果文本多会时间非常非常长(不要学我先丢了一本10w字的小说……),如果只要几百字很快就好了。然后就可以在对话框中提问知识库中的内容啦!
(三)工作空间配置
接下来是小齿轮:
在聊天设置中可以切换模型、调整聊天模式,设置历史记录、提示词等等参数。后面两个不懂,小白暂时也用不到,默认就好。如有修改,记得拉到最下面更新配置!
(四)其他的功能
也是在左下角的小扳手,里头看一看,其他的咱也不太懂,有一个能懂:工作区聊天历史记录。可以记录并导出对话。或许后面如果做成服务端也可以收集用户传来的数据?(注,非商用工作用途,拟对对话进行统计分析高频问询情况之类的。)
后记
整体而言这次实践比较顺利,得益于各方面技术水平的发展,也没有碰到代理、报错之类的问题。
这次实践是为了工作上的一些关于本地部署AI的安排,因为没钱只能自己人去研究。因此文风小白措辞不专业,另外也仅限于初级使用,没有再深入的研究。
后面还会再对提示词和各种参数稍作研究,但也不是能这么迅速解决的事了^ _ ^
2024.8.22