如何在 PC 上跑起来“史上最强”开源代码生成模型 CodeLlama

863 阅读3分钟

2023年8月25日,Meta 开源了“史上最强”开源代码生成模型,CodeLlama,而且可以免费商用。截至目前,仅仅 4 天的时间,Github 数已超 6.8K!可见社区对其关注度之高。

我在8月26日试图把它跑起来看看究竟有多强,但还是费了不少力气才在我Apple M1 芯片的 Mac Book 上跑起来 CodeLlama。

一、简单了解下效果——Google Colab

如果你只是想简单地跑跑了解下效果,强烈建议你采用 Github 上这个 camenduru 大佬的 Google Colab 下面笔记来运行。但前提是你能连上这个网站:

colab.research.google.com/github/came…

顺便提一下,这个大佬的 Github 中还有很多其它模型的 Google Colab 笔记,感兴趣的可以尝试:

github.com/camenduru/t…

如果你实在连不上 Google Colab,那也可以通过 codellama 的 playground 来简单感受下效果:

huggingface.co/spaces/code…

二、失败的尝试——直接用源码启动

其实,我首先是尝试了 clone 官网 github.com/facebookres… 源码的方式来进行启动的。等我好不容易把环境都配好了,结果出现诸如下面这样的各种报错:

NOTE: Redirects are currently not supported in Windows or MacOs

RuntimeError: MPS does not support cumsum op with int64 input

一番搜索和翻查 GitHub Issues 无果后,我果断放弃,因为毕竟刚开源,本身就在一些平台上存在 Bug 也不无可能。

三、成功运行——用 text-generation-webui 启动

从源码启动未成功后,我转而采用 text-generation-webui 去加载这个模型,最后成功得见 Code Llama 的庐山真面目。

1、下载 one-click 安装包

首先,通过链接github.com/oobabooga/t… 中选择自己 PC 所对应的系统下载 one-click 安装包,然后使用这个 one-click 安装 text-generation-webui:

image.png

2、解压缩 one-click 安装包

下载完后,解压它,其中有一个 start_macos.sh 文件。

3、替换 miniconda 下载地址为国内的清华镜像地址

对于国内的用户而言,由于众所周知的原因,需要将 start_macos.sh 文件中的

MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-${OS_ARCH}.sh

替换成:

MINICONDA_DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-${OS_ARCH}.sh"

即,改用国内的镜像来下载 Miniconda,否则速度会非常慢,甚至一直下载不下来。

4、执行命令,一键安装 text-generation-webui

修改完成后,执行如下命令来一键安装 text-gerneraion-webui:

bash start_macos.sh

过程中会让你选择 GPU 类型,如果你的 PC 和我的一样是没有 GPU 的,选择对应 None 的选项就可以了。

5、下载模型

Code Llama 这次开源了 9 个模型,不过,我的电脑配置比较一般,只能跑起来 7b 的模型,所以下载了 codellama/CodeLlama-7b-Instruct-hf 这个模型。在 Huggingface 的如下位置点击复制:

image.png

然后粘贴到 text-generation-webui 中进行下载:

image.png

6、修改 CMD_LFGS.txt 文件的内容为指定选项

安装完成后,将 CMD_LFGS.txt 文件的内容修改成:

--model codellama_CodeLlama-7b-Instruct-hf
--cpu
--api

它们依次分别表示加载模型是什么(这里我用的是CodeLlama-7b-Instruct-hf)、以CPU生成内容(因为我的PC没有GPU)以及提供 api访问。

然后通过如下命令启动服务:

bash start_macos.sh

启动服务的时候就会自动带上 CMD_LFGS.txt 中配置的这几个参数。

当你在控制台中看到如下提示的时候,表示启动已经成功了:

Running on local URL:  http://127.0.0.1:7860

这个时候,你就可以通过在浏览器中输入 http://127.0.0.1:7860 来访问启动的界面了:

image.png

让我们来给模型打个招呼吧!我在其中输入 Hi,然后点击 Generate,就可以把这个消息发给模型:

image.png

静静地等待一会儿,模型给我回复了一个“Hello”:

image.png

至此,CodeLlama 模型就终于跑起来了。