5分钟手把手系列(一):使用Mac Book Pro本地部署大模型(Ollama+Llama3.1_8B+Docker+OpenWebUI)

3,628 阅读6分钟

背景

随着行业内越来越多的AI产品落地,很多同学都对AI技术产生浓厚的兴趣,但苦于目前动作几十G上百G的大模型,并且手上的消费级电脑也无法满足各种模型部署运行要求,本文就是基于此背景,介绍如何使用Mac Book Pro本地搭建大模型的入门教程,希望能帮助到对AI有兴趣的同学。毕竟不管什么岗位,如果能自己搭个Demo进行AI相关的学习,也不失为一种AI入门方式。 纸上谈兵终觉浅,绝知此事要躬行,正好借着9月OpenAI最新发布的o1大模型,写一个本地模型部署指南,本人电脑是Mac Book Pro M3 18G机器搭建,M1、M2的机器也是可以的。

方案选择

首先解释一下什么是模型量化

  • 模型量化是做什么的: 模型量化是将浮点数值转化为定点数值,同时尽可能减少计算精度损失的方法。
  • 为什么要做模型量化: 模型量化既能减少资源消耗,也能提高运行速度,使大规模推理服务的性能提升。
  • 对哪些数值做量化: 可以对模型参数(weight)、激活值(activation)或者梯度(gradient)做量化。
  • 常见的量化精度有哪些: 通常可以将模型量化为 int4、int8 等整型数据格式。

目前部署大模型的方式,基本分为两种方案:

  1. 下载原始大模型,然后通过相应的模型量化脚本,将量化后的模型进行本地环境部署,此种方式,下载原始模型费时费力,量化后的模型也不见电脑能带的动,需要不断调整量化参数quantization types,对新人不太友好
  2. 通过Ollama大模型管理工具,一键式部署量化后的LLM模型,本文也是主要介绍此种部署方式,直接通过的Ollama拉取的llama3.1模型信息如下,通过Open WebUI部署运行非常轻松,开着IDE+几十个Chrome页面毫无压力

量化后的模型信息 67E5B08E-5A52-48E0-A0B7-D10EC9DE203B.png

运行效果

6B628D62-5B02-45E5-A628-A3203D9185F0.png

Llama3.1

Llama3.1是Meta公司在7月最新发布的LLM模型,分为三个版本8B、70B、405B,有兴趣的同学可以直接去官网了解。 llama.meta.com/
github.com/meta-llama/…

D87D7D2D-1D0C-4D59-B341-141E7D9BB301.png

Ollama

Ollama是一个开源的大模型管理工具,它提供了丰富的功能,包括模型的训练、部署、监控等。 通过Ollama,你可以轻松地管理本地的大模型,提高模型的训练速度和部署效率。 此外,Ollama还支持多种机器学习框架,如TensorFlow、PyTorch等,使得你可以根据自己的需求选择合适的框架进行模型的训练 官网:ollama.com/

D26F2F12-2F79-4370-87A2-918C15AF56AE.png

下载安装Ollama

下载安装后,在终端运行 ollama -v 能正常显示版本号即为安装成功

下载安装量化后的Llama3.1

确定Ollama已安装成功后,在终端运行如下代码,Ollama首次会将模型远程下载,并在下载完成后启动 ollama run llama3.1

下载过程还比较顺利,下载完成后,终端会启动大模型,可以直接在终端进行对话问答了,是不是很简单? 但在终端里面进行AI问答,看起来没那么方便,所以我们可以通过Docker+Open WebUI的方案来实现本地Web UI管理调试大模型

image.png

Docker

Docker Desktop 是 Docker 提供的一个方便的工具,适用于 Windows 和 macOS 平台。它包含了 Docker Engine、Docker CLI 客户端、Docker Compose、Kubernetes 和其他工具,使开发人员可以在本地计算机上使用 Docker 容器进行开发和测试。 官网:www.docker.com/products/do…

image.png

Open-WebUI

Open WebUI是一个可扩展、功能丰富、用户友好的自托管WebUI,旨在完全离线操作。 它支持各种LLM运行程序,包括Ollama和OpenAI兼容的API。 官网:www.openwebui.com/

image.png

具体特性可以查看 github:github.com/open-webui/…  当Docker安装完成后,可以通过命令在线安装open-webui,但安装之前,需要注意的是,最好在docker设置中配置镜像地址,否则下载速度非常感人,无法预计什么时候能下载成功

配置registry-mirrors

image.png

直接覆盖即可,我也没测试其中的镜像速度,如果自己有稳定的镜像地址,可以自行替换 { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://docker.m.daocloud.io", "https://ghcr.nju.edu.cn", "https://mirror.baidubce.com", "http://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://2h3po24q.mirror.aliyuncs.com" ] }

安装命令

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

在经过了漫长的等待后,是的,你没看错,用了镜像也不怎么快,没用镜像之前基本就是失败。。。

image.png

启动

image.png

  • 安装完成后,即可在Docker中启动WebUI了,等待片刻后,浏览器输入http://localhost:3000/即可进入 ,如果需要提供给其他局域网中的小伙伴访问,可以找到自己的局域网IP地址,如 30.7.229.xx:3000/
  • 首次进入的时候,需要注册账户,因为注册逻辑是在本地,只需要记住自己的账户密码即可,无需要验证码,首次注册的账号是管理员账号
  • 进行后选择之前下载的Llama3.1模型后,即可开始模型的测试了

image.png

最后附几道测试题结果,目前看起来,Llama3.1的中文理解推理能力还是有待提升的

image.png

写在最后

AI作为后续的各行各业基础技术设施,其使用门槛会不断降低,各种配套框架、生态也会越加丰富。 本人作为一名互联网行业的产品经理(当然,之前也有10来年的Android+iOS+Java后端的开发经验),编写AI模型的本地搭建教程,也是希望通过对新手较为友好的方式,帮助更多对AI感兴趣的同学迈出学习AI技术第一步,只有去深入了解AI背后的运作原理与流程,才能发现AIGC过程中的更多机会。 目前业界比较令人振奋的AI落地场景乏善可陈,在部分用户场景中,其实用规则、算法就已经能很好的解决用户需求,反而用上AI后产生各种啼笑皆非的结果。 最后希望各行各业在AI的加持下,能帮助用户得到更好的使用体验,取得更好商业结果, MCGA~!