如何评价 LLaMA 模型泄露?

LLM进入开源时代?
关注者
847
被浏览
1,045,876
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

点赞三连多一些,更新模型复现和“一键教程”也有动力一些呐 :D

  • UPDATE:2022.03.26 在 finetune 65B 的过程中,更新一篇新的教程,包含复现和 使用 1.5G 左右的显存 运行 14B 的 ChatRWKV。
  • UPDATE:2022.03.25 更新一篇新的教程,包含如何 使用 4090 / A100 多卡 Finetune 7B / 65B 模型。
  • UPDATE:2022.03.13 更新一篇新的教程,目前包含了三种运行方案,分别需要 7~8G 显存,10~13G 显存,以及原版 21G 显存运行模型(7B),以及使用 13GB 运行 13B 版本模型。
  • UPDATE:2022.03.09.2 有同学发现了 PyLLaMA 虽然降低了门槛,但是还是需要 10G,下一篇文章(凑够换算力的赞之前) ,聊聊怎么用 8G 显卡跑动这玩意。
  • UPDATE:2022.03.09 牺牲了中午的午饭时间, 写了一个快速上手的“开源项目”,以及一个手把手教程,只需要下载模型,敲两条命令,就能用“干净又卫生”的方式,把模型本地跑起来啦(包含 原版20G显存方案和社区 10GB 显存方案)。
  • UPDATE:2022.03.08 一位或许愿意透露姓名的投资人朋友说 “点赞过千,赞助算力好好跑 65B 模型,做全面评测! (赞这么少,姑且还是先搞小显存版本吧)


这两篇教程和以往一样,放在个人知乎专栏中,欢迎“一键三连”:


下面是教程详细内容:


本篇文章聊聊如何低成本快速上手使用 Meta(Facebook)的开源模型 LLaMA。

写在前面

在积累点赞, 兑现朋友提供的显卡算力[1] 之前,我们先来玩玩“小号的”大模型吧。我相信 2023 年了,应该不需要再赘述如何使用 Docker 干净又卫生的调用显卡来跑 AI 程序了。这个模式已经在各种互联网或企业里运行了多年啦。

本文容器方案基于 Nvidia 23.01 基础镜像,PyTorch 1.14 版本,CUDA 12.0,目前应该是显卡性能发挥的最佳基础容器,尤其是 40 系。

NVIDIA Release 23.01 (build 52269074)
PyTorch Version 1.14.0a0+44dac51
# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

想要快速玩起来 LLaMA 分三步:

  1. 下载模型文件
  2. 使用 Docker 准备运行环境
  3. 运行它,开玩

我们先来进行第一步操作,下载模型文件。

下载 LLaMA 模型文件

网上随处可见的下载地址就不再赘述(比如 官方项目的 PR #73[2] ),将模型(比如 7B 或者 13B 版本)下载好之后,整理目录结构,确保目录结构和下面保持一致。

─ models
 ├── 7B
 │   ├── consolidated.00.pth
 │   └── params.json
 └── tokenizer.model

当然,别忘记针对你下载的模型进行完整性校验,以 7B 版本模型为例:

cd modles/7B
echo "6efc8dab194ab59e49cd24be5574d85e  consolidated.00.pth" | md5sum --check -           
echo "7596560e011154b90eb51a1b15739763  params.json" | md5sum --check -

如果你下载的模型文件是完整的,那么将会看的下面的输出结果:

consolidated.00.pth: OK
params.json: OK

使用 LLaMA Docker 游乐场项目

牺牲午饭时间写了一个小小的开源项目,包含官方原版和社区省显存两个方案。


好了,可以来愉快玩耍啦


首先,随便找一个合适的目录,使用 git clone 或者下载 Zip 压缩包的方式,把“LLaMA 游乐场”项目的代码下载到本地。

git clone https://github.com/soulteary/llama-docker-playground.git
curl -sL -o llama.zip https://github.com/soulteary/llama-docker-playground/archive/refs/heads/main.zip

然后,我们使用 Docker 来基于 Nvidia 原厂最新的 PyTorch 镜像,来完成基础运行环境的构建,相比于我们直接从 DockerHub 拉制作好的镜像,自行构建将能节约大量时间。

如果你有 20GB 以上的大显存,可以考虑使用下面的命令。

docker build -t soulteary/llama:llama . -f docker/Dockerfile.llama

或者,你的显存没有那么大,显存在 10GB 左右,可以考虑使用下面的命令。

docker build -t soulteary/llama:pyllama . -f docker/Dockerfile.pyllama

当我们完成了镜像构建之后,就能够开始玩了。

使用 Docker 快速运行 LLaMA 模型

我们来到模型文件 models 目录所在的目录,然后使用下面的命令,就能够启动 LLaMA 的原版模型项目啦:

docker run --gpus all --ipc=host --ulimit memlock=-1 -v `pwd`/models:/app/models -p 7860:7860 -it --rm soulteary/llama:llama

如果你的显卡显存没有 20GB,刚刚构建的也是 pyllama 版本的镜像,那么那么可以试试使用下面的命令,快速启动“优化过的”程序:

docker run --gpus all --ipc=host --ulimit memlock=-1 -v `pwd`/models:/llama_data -p 7860:7860 -it --rm soulteary/llama:pyllama

不论是使用哪一个镜像,当我们执行命令之后,程序都将自动装载模型到显存,并且自动一个 Web UI 程序。执行命令后,输出将类似下面这样:

=============
== PyTorch ==
=============
NVIDIA Release 23.01 (build 52269074)
PyTorch Version 1.14.0a0+44dac51
All rights reserved.
Various files include modifications (c) NVIDIA CORPORATION & AFFILIATES.  All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
> initializing model parallel with size 1
> initializing ddp with size 1