新智元报道

编辑:好困

【新智元导读】现在,Meta最新的大语言模型LLaMA,可以在搭载苹果芯片的Mac上跑了!

前不久,Meta前脚发布完开源大语言模型LLaMA,后脚就被网友放出了无门槛下载链接,「惨遭」开放。

消息一出,圈内瞬间就热闹了起来,大家纷纷开始下载测试。

但那些手头没有顶级显卡的朋友们,就只能望模型兴叹了。

不过,问题不大。Georgi Gerganov在最近做了一个名为「llama.cpp」的项目——没有GPU也能跑LLaMA。


项目地址:https://github.com/ggerganov/llama.cpp

是的,这也包括搭载了苹果芯片的Mac。并且还获得了LeCun的转发支持。


在M1/M2的Mac上跑LLaMA

目前来说,比较全面的教程有两个,分别基于苹果的M1和M2处理器。


第一篇:https://dev.l1x.be/posts/2023/03/12/using-llama-with-m1-mac/

第二篇:https://til.simonwillison.net/llms/llama-7b-m2

话不多说,先看效果。

比如在最小的7B模型上提问:「第一个登上月球的人是」。

很快,几秒之后,结果就出来了。


从阿姆斯特朗登月的年龄、中间名和日期来看,并没有出现明显的事实性错误。这对于如此体量的小模型来说,实属不易。

如果用下面这个提示,则可以生成了一些实用的Python代码。


接下来,我们就来看看具体是如何实现的。

第一步:下载模型

首先要做的就是下载LLaMA模型。

你可以通过官方的表格向Meta提交申请,或者从网友分享的链接里直接获取。

总之,完成后你会看到下面这堆东西:


正如你所看到的,不同的模型都在不同的文件夹里。每个模型都有一个params.json,包含关于该模型的细节。比如:


第二步:安装依赖项

首先,你需要安装Xcode来编译C++项目。


接下来,是构建C++项目的依赖项(pkgconfig和cmake)。


在环境的配置上,假如你用的是Python 3.11,则可以创建一个虚拟环境:


然后激活venv。(如果是fish以外的shell,只要去掉.fish后缀即可)


最后,安装Torch。


如果你对利用新的Metal性能着色器(MPS)后端进行GPU训练加速感兴趣,可以通过运行以下程序来进行验证。但这不是在M1上运行LLaMA的必要条件。


第三步:编译LLaMA CPP

在安装完所有的依赖项后,你可以运行make:


第四步:转换模型

假设你已经把模型放在llama.cpp repo中的models/下。


那么,应该会看到像这样的输出:


下一步将是进行量化处理:


输出如下:


第五步:运行模型

资源使用情况

第二位博主表示,在运行时,13B模型使用了大约4GB的内存,以及748%的CPU。(设定的就是让模型使用8个CPU核心)

没有指令微调

GPT-3和ChatGPT效果如此之好的关键原因之一是,它们都经过了指令微调,

这种额外的训练使它们有能力对人类的指令做出有效的反应。比如「总结一下这个」或「写一首关于水獭的诗」或「从这篇文章中提取要点」。

撰写教程的博主表示,据他观察,LLaMA并没有这样的能力。

也就是说,给LLaMA的提示需要采用经典的形式:「一些将由......完成的文本」。这也让提示工程变得更加困难。

举个例子,博主至今都还没有想出一个正确的提示,从而让LLaMA实现文本的总结。

参考资料:

https://github.com/ggerganov/llama.cpp

https://dev.l1x.be/posts/2023/03/12/using-llama-with-m1-mac/

https://til.simonwillison.net/llms/llama-7b-m2