前言
LLM(大语言模型)因为对设备的性能要求比较高,一般是部署在云端,通过网络远程访问。那么想在本地部署(玩一玩)能不能做到呢?
Ollama就是实现这个目的的工具。
什么是Ollama
Ollama是一个由Facebook AI Research开发的开源、轻量级且高效的大型语言模型(LLM)框架。它旨在使研究人员和开发人员能够更轻松地在自己的硬件上部署和运行LLM,而无需专门的云计算资源。
Ollama提供了一个简单直观的界面,用于加载、运行和评估LLM。它还支持各种自定义选项,允许用户根据特定需求定制LLM。
Ollama支持的大模型:
- Llama 3:迄今为止功能最强大的公开可用的大型语言模型。
- Llama 2:由 Meta Platforms 公司发布的 Llama 2 是一款大型语言模型,使用 2 万亿个文本片段进行训练。其默认支持 4096 个字符的上下文长度。Llama 2 聊天模型经过超过一百万条人工标注的微调,专用于聊天对话场景。
- Mistral:Mistral 7B 是一款由 Mistral AI 公司推出的参数规模为 73 亿的开源大型语言模型,在多项基准测试中展现了优异的性能,能够在常识推理、世界知识、阅读理解、数学、编码等多个领域与其他大型模型相媲美甚至超越,并具有快速推理、低成本处理长序列等特点。
- Gemma:Gemma 是由 Google DeepMind 构建的一系列轻量级、最先进的开源模型。
完整的Ollama支持的大模型列表请查看:https://ollama.com/library
Ollama不仅支持上述列出的模型,还支持用户自定义模型。用户可以将训练好的模型打包成Ollama支持的格式,然后在Ollama中加载运行。
安装Ollama
Ollama支持MacOS、Linux和Windows系统。本文在Windows11环境下安装。
-
进入Ollama官网:https://ollama.com/,下载
.exe
安装器
默认安装位置为:C:\Users\user_name\AppData\Local\Programs\Ollama\
默认安装的模型目录:C:\Users\user_name\.ollama
默认的配置文件目录:C:\Users\user_name\AppData\Local\Ollama
安装ollama时候已经向系统环境变量配置地址,因此使用
ollama
命令可以看到常用命令(见上图) -
配置Ollama的模型路径
由于Ollama的模型默认会在C盘用户文件夹下的.ollama/models
文件夹中,可以配置环境变量OLLAMA_MODELS,设置为指定的路径:
Path变量加入:
-
拉取大模型,打开官网可以看到从ollama可以直接拉取的大模型:
以下载llama3模型为例:llama3目前主要有8B
和70B
两个模型,分别代表80亿和700亿个训练参数。
Github的ollama仓库有详细安装指导:
You should have at least 8 GB of RAM available to run the 7B models, 16 GB to run the 13B models, and 32 GB to run the 33B models.
8B模型一般16GB内存就可以跑的很流畅,
70B
模型则至少需要64GB内存,有CPU就可以跑,当然有GPU更好。这里以安装8B
模型为例。 -
打开终端,输入命令:
ollama run llama3.1
默认安装8B模型,也可以使用ollama run llama3.1:8b
来指定相应的模型,安装成功会有如下提示:
注意1:在没有互联网的环境下部署,可以将下载好的Ollama安装包复制到此环境安装,然后将下载好的模型复制到相应路径就可以在无互联网的环境下使用。
注意2:由于llama3对中文的支持并不是很好,需要中文的可以使用GitHub上开源的这个llama3中文微调模型https://github.com/LlamaFamily/Llama-Chinese
Open-WebUI安装
ollama在代码仓库推荐了很多UI界面以更加方便使用LLM:https://github.com/ollama/ollama?tab=readme-ov-file#web–desktop
本文以Open-WebUI为例
1 Docker
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。
Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。
Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。
进入Docker官网:https://www.docker.com/,下载安装包。
2 安装 Hyper-V
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。
这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!
检查 Hyper-V 是否开启
若没有Hyper-V选项,可以使用如下命令安装:
pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txt for /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" del hv.txt Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL Pause
将上述命令复制到
Hyper-V.bat
批处理文件中,然后以管理员身份运行。
并且勾选以下内容:
3 安装 Docker
- 切换国内镜像源
镜像源地址:{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true }, "registry-mirrors": [ "https://82m9ar63.mirror.aliyuncs.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
- Alibaba:https://82m9ar63.mirror.aliyuncs.com/
- Docker中国区官方镜像地址:https://registry.docker-cn.com/
- 网易地址:http://hub-mirror.c.163.com/
- 中国科技大学地址:https://docker.mirrors.ustc.edu.cn/
Docker Engine stopped解决
参考博文:
-
Docker Desktop Service修改“属性”为“自动”
-
管理员运行powershell,执行
bcdeidt
,检查hypervisorlaunchtype
是否为Auto
(最后一行)
若不是
Auto
,执行bcdedit /set hypervisorlaunchtype auto
,再重启电脑! -
检查wsl是否开启:
windows控制面板>程序和功能>启用或关闭Windows功能>找到【适用于Linux的Windows子系统】>勾选后,点击“确定”,等待安装即可
-
检查wsl是否更新:CMD执行
wsl --update
在博主:【橙-极纪元JJY.Cheng】的这篇博文中找到了解决办法:
成功安装:
4 安装OpenWebUI
项目地址:https://github.com/open-webui/open-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
5 web访问llama3.1
访问 http://localhost:3000/
注册登录后可以看到直接可以选择之前部署好的llama3.1:8b
模型,通过对话测试下它的能力。
注意:后台一定要运行着llama3.1,
ollama run llama3.1:8b
容器启动:
(先使用docker ps -a
查看容器ID,再通过docker start <container_id>
启动):docker start e33ee2f3f526
容器停止:docker stop <container_id>
离线部署:
- 将在线下载的docker images保存
docker save -o open-webui.tar imageID
- 在离线的机器上装载该镜像:
docker load -i open-webui.tar
Windows Docker镜像存储位置
所有docker pull
到本地的image都会在虚拟机的Virtual hard disks目录的文件中,这个文件就是虚拟硬盘文件(有点类似与vmware的原理)。
进入Hyper-V管理器即可查看虚拟磁盘设置:
如果需要更改默认路径,选择“移动”,再按导向进行(未尝试)
另外还可以在菜单栏点击:操作->Hyper-V设置,来调整所有虚拟机的虚拟硬盘文件的默认存储位置(未尝试)