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 笔记,感兴趣的可以尝试:
如果你实在连不上 Google Colab,那也可以通过 codellama 的 playground 来简单感受下效果:
二、失败的尝试——直接用源码启动
其实,我首先是尝试了 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:
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 的如下位置点击复制:
然后粘贴到 text-generation-webui 中进行下载:
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 来访问启动的界面了:
让我们来给模型打个招呼吧!我在其中输入 Hi,然后点击 Generate,就可以把这个消息发给模型:
静静地等待一会儿,模型给我回复了一个“Hello”:
至此,CodeLlama 模型就终于跑起来了。