机器是2021年M1的MacBook Pro,斗胆一试。

引言

master分支的commit记录:2075a66

分别部署了Llama-2-7B-ChatLlama-2-13B-Chat, Llama-2-70B-Chat三款大模型,部署方式完全一致,我拿7B模型举例。

PS: 2-bit量化的7B和13B模型本地完全可以带动,毫无压力。但也是因为损失了太多精度导致结果一般。 由于内存限制,我在本地无法下载70B的模型,索性转战到学校的超级计算中心😎。

前置知识

为降低本文阅读门槛,我将先介绍一些必备的基础知识。

  1. 量化
    • 众所周知,大模型本质就是一个巨大的矩阵计算,计算的每一个数字都是浮点数。大公司的LLM推理计算一般都是使用float32,确保精度足够高,从而保证准确率。但是float32的唯一缺点就是需要大量的计算资源(约等于马内), 普通人需要的大模型根本也不需要这么高的精度/准确率。所以量化技术应运而生,最常见的两种,即float32 -> float16float32 -> int8
    • 我们可以从huggingface直接下载量化好的大模型(各种量化位数都有),所以这里不过多叙述量化的原理,想要具体了解可以阅读文档

部署步骤

首先克隆仓库,进入目录并编译项目

$ git clone https://github.com/ggerganov/llama.cpp
$ cd llama.cpp
$ make

编译好项目之后,我们主要关注./examples和./models这两个目录

  • ./examples: 这个目录下主要是一些使用示例。
  • ./models: 这个目录下主要用来存放我们下载的模型