Ollama本地部署自定义大模型
Ollama是一个专为本地机器设计的开源框架,旨在简化大型语言模型(LLM)的部署和运行过程。它提供了一套工具和命令,使用户能够轻松地下载、管理和运行各种语言模型,包括LLaMA、LLaVA等流行模型。Ollama通过优化设置和配置细节,如GPU使用情况,提高了模型运行的效率,并且其代码简洁明了,运行时占用资源少,使得在本地高效地运行大型语言模型成为可能。
Ollama支持Mac、Linux以及Windows(预览版)平台,并提供了Docker镜像,方便用户在不同操作系统环境下部署和使用。
本文将使用Ollama来实现llama-3.1大模型的本地化部署。
1. Ollama安装
这里的安装以Windows系统为例。
Ollama官方网站:https://ollama.com/
Ollama Windows版本下载地址:https://ollama.com/download/windows
Ollama在Windows下直接点击下载的安装包安装即可。
安装完成之后任务栏里会出现一个羊驼的图标,然而这玩意没什么图形界面,其使用需要用命令行来实现。
2. 模型选择
本文主要关注本地部署大模型,因此将不再介绍用Ollama直接从Ollama官方库下载的方式,所有模型均为手动下载。
Ollama和llama.cpp一样(因为其底层就是用的llama.cpp),需要适配GGUF格式。
GGUF是一种由开发者Georgi Gerganov提出的大模型文件格式,全称为GPT-Generated Unified Format。该格式旨在优化大型机器学习模型的存储和加载效率,通过紧凑的二进制编码、优化的数据结构以及内存映射等技术,实现模型数据的高效存储、传输和快速加载。GGUF不仅支持多种模型格式,还具备跨硬件平台优化的特点,能够在CPU和GPU等不同设备上高效运行。
因此我们需要下载GGUF格式的模型文件,可以去Huggingface或ModelScope下载。这里以ModelScope为例,Huggingface也是类似,不方便访问Huggingface官网的可以用hf-mirror.com替代。
进入ModelScope后选择“模型库”,在搜索框中填入模型名+gguf,比如“llama3.1 gguf”,之后再选一个顺眼的点进去,比如说这个“Meta-Llama-3.1-8B-Instruct-GGUF”。
进去之后点击“模型文件”即可看到GGUF格式的模型了。
可以看到,里面有好多个gguf文件,每一个代表一种配置的模型。以“Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf”为例:
- Q 代表量化。
- 4 表示量化过程中使用的位数。
- K 表示在量化中使用 k 均值聚类。
- M 表示量化后的模型大小。S = 小,M = 中,L = 大。
一般而言,量化位数越高则部署后模型输出的结果质量越高,但推理速度越慢,同时占用GPU显存/内存越多。
对于模型大小的额外说明:Ollama在加载模型时,如果GPU有空间,则会优先加载到GPU上,GPU不够了会加载到CPU(内存)中,因此建议加载时至少有足够大的内存。
3. Ollama使用
这里只介绍Ollama基本使用,详细文档可以参考官方文档:https://github.com/ollama/ollama/tree/main/docs
Ollama总体来讲有两种使用(推理)方式,一种是命令行运行,直接在命令行里输入问题,模型会在命令行中直接给出回答;另一种是调用接口,传入问题及参数,返回模型的输出答案。