前言
随着对AI技术尤其是大语言模型的了解和开源项目的发展,相信很多人已经逐渐熟悉这门技术。如果你也想尝试一下,不妨试试花10分钟时间在本地来运行一个简单的大语言模型。
这篇文章主要介绍如何使用Ollama
来运行大语言模型,以及Open WebUI
来提供Web界面。
环境
设备:我的笔记本MacBook Air M1芯片,8G RAM
大模型:Google gemma:2b (笔记本配置低,只能运行低参数的大模型)
运行环境:Ollama
界面:Open WebUI
使用Ollama运行大模型
Ollama支持大部分开源大模型,这些大模型在被量化之后,可以运行在配置较低的环境里。Ollama支持MacOS, Linux以及Windows。
首先你需要在Ollama的主页下载并安装Ollama软件。
在Ollama library可以查看支持的模型列表。比如gemmma:2b的详细信息在这里可以看到。它的具体参数个数为2.51b,模型大小为1.7g。
在命令行窗口里,使用ollama run
命令,指定模型作为参数。Ollama将自动拉取大模型并运行:
% ollama run gemma:2b
pulling manifest
pulling c1864a5eb193… 100% ▕███████████████████████████████████████████████████████████████████████████▏ 1.7 GB
pulling … 省略进度部分
verifying sha256 digest
writing manifest
removing any unused layers
success
成功后将直接进入大模型命令行交互界面,在这里可以和大模型进行对话:
>>> 你好
你好! 我是大型语言模型,由 Google 训练的。我是一个聊天机器人,可以提供许多帮助性的功能。你想做什么呢? 🤔
>>>
Use Ctrl + d or /bye to exit.
>>>
这个大模型因为参数低,“智力”不算太好,可以用来练练手。
使用Open WebUI访问大模型
Open WebUI也是一个开源项目。它可以帮你快速搭建AI的用户界面。它支持Ollama和OpenAI的API。从这里可以访问Open WebUI的详细文档。
我们使用官方推荐的docker方式来启动程序。
下面这个命令用于Ollama运行在本地环境的情况。这里,我将环境变量WEBUI_AUTH设置为False,这将禁用用户检查并跳过用户登陆界面。
% docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Web方式访问
我们使用浏览器访问地址http://localhost:3000。
首先,在网页的左上角,编辑/选择模型列表,这里gemma:2b默认被自动识别出来。然后就可以使用界面进行与大模型的交互了。
API方式访问
同时,Open WebUI提供Restful API方式访问大模型。可以在官方文档查看它所支持的所有的API节点。
这里以Chat Completions接口为例。在访问该接口之前,需要通过浏览器页面中的设置-》账号页面来设置API密钥,并替换命令中的Authorization访问头。
% curl -X POST http://localhost:3000/api/chat/completions \
> -H "Authorization: Bearer sk-7fe6ce3a46b34826b48bc4009dcc2135" \
> -H "Content-Type: application/json" \
> -d '{
"model": "gemma:2b",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
API响应如下:
{“id”:“gemma:2b-4a86aeee-cb5b-44cd-93c9-25f197196de5”,“created”:1728621784,“model”:“gemma:2b”,“choices”:[{“index”:0,“logprobs”:null,“finish_reason”:“stop”,“message”:{“content”:“你好!很高兴你来。请问您有什么问题我可以帮你解决吗?”,“role”:“assistant”}}],“object”:“chat.completion”}
资源监测
采取一个简单的方式做测试,发送命令让大模型生成一个比较长的文章。期间监测大模型的资源占用情况。
CPU/GPU
这张截图是大模型在生成响应时的资源使用情况。我们观察到在大模型生成响应的过程中,%GPU的数值从0.0上升到82.4,%CPU的数值从0.0上升到10.8。GPU的消耗比较高。
这是大模型生成响应结束后的资源情况。ollama_llama_server进程的%CPU和%GPU回落到0.0。
内存
内存的变化不是太明显。在大模型生成响应时,操作系统的内存使用量,整体上升了大概1G(黄色区域),从6G多到7G多。
ollama相关的进程内存使用量没有观察到太大变化。
退出
在实验完成后,退出Ollama程序:
停止docker 容器实例open-webui:
一切顺利!