WAIC 2023如火如荼进行的时候,满耳朵听到的、满眼睛看到的,都是大模型。那话怎么说的来着——RISC-V怎么能不刷刷大模型呢?废话不多说,先上图:
去年ChatGPT的出现,着实让全世界都吃了一惊。短短几个月,月活跃用户就冲到了1个亿。很多人就是通过ChatGPT,第一次听说了大语言模型(LLM)这个概念。紧接着今年,Meta发布了LLaMA,这又往前跨了一大步——直接降低了LLM的使用门槛,让它真正“走入寻常百姓家”。那LLaMA到底是什么?我们来拆开看看。
1. LLaMA介绍
要聊LLaMA,得先说说LLM(Large Language Model)。你可以把LLM想象成一位知识渊博的老师——它经过海量文本数据的“寒窗苦读”之后,就能根据自己庞大的知识库,给出问题的最佳答案。文本总结、翻译、情感分析……这些活儿LLM都能干。近几年,可以说是LLM的爆发期,各路科技巨头都在往里面砸钱。下面是这些年LLM的发展图景:
近年来现有大型语言模型(大小大于10B)的时间表
但对个人研究者来说,用LLM还是有门槛的。一般的LLM模型硬件要求太高,而不少开发公司出于商业考虑,又不太愿意把项目源码开源出来。这么一来,研究者想从更深层次理解LLM就不太容易,从长远来看,其实对整个LLM的发展也不利——想想Android能有今天,靠的不就是开源和便利吗?好在Meta今年放出了LLaMA(Language Learning through Multimodal Autoregressive Models),给对LLM感兴趣的开发者们多了一个选择。跟其他LLM模型比起来,LLaMA最大的优势就四个字:亲民、开源。
亲民在哪里?LLaMA的规模只有ChatGPT的“十分之一”,但性能却比OpenAI的GPT-3还要好。而且它本身只是一个基础模型,完全可以用公开的数据集来训练——这就把使用门槛一下子拉低了不少。至于开源……这事儿有点意思。LLaMA可以说是“被迫开源”的:Meta本来因为一些技术层面的问题,暂缓了开源进程,结果发布之后没多久,模型文件就被泄露了。那么问题来了——这到底是故意的,还是不小心呢?
2. llama.cpp
llama.cpp,出自保加利亚索菲亚的开发者Georgi Gerganov之手,是一个基于LLaMA模型开发的纯C语言版本。这位Gerganov可不是新手,他很早就在开源社区混出了名头,之前还给OpenAI的自动语音识别模型搞过一个whisper.cpp。llama.cpp最厉害的地方在于:即使没有GPU,照样能跑LLaMA模型。所以这玩意儿一发布,就吸引了大量对LLaMA感兴趣的人前来下载试用。很快,就有大神在Windows上跑通了LLaMA,后来又搞上了手机。llama.cpp把LLaMA的使用门槛降到了地板级,让LLaMA的语言学习能力得以充分展现,也为咱们打开了一扇探索语言世界的新大门。
值得一提的是,Gerganov公布llama.cpp后没多久,就自己创业成立了ggml.ai公司。合伙人里包括GitHub前CEO Nat Friedman和Y-Combinator的Daniel Gross。这个团队的组合,也引起了不少业内大佬的关注。也许接下来,它会为AI的发展带来一些不一样的东西。
3. 硬件平台简介
3.1 RISC-V简介
澎峰科技联合创始人王军辉说过一句话:“2023年是RISC-V高性能计算元年”。这话不无道理——就在这一年,算能推出了全球第一颗已量产的RISC-V服务器级64核CPU。这意味着RISC-V进入高性能计算领域,其实已经不远了。那么,RISC-V到底是个什么来头?
简单来说,RISC-V和我们熟悉的X86、ARM一样,都属于指令集架构。不过,X86属于复杂指令集(CISC),而RISC-V和ARM属于精简指令集(RISC)。CISC指令丰富、功能强大,但发展到今天,过于复杂的指令不仅导致指令使用率不均衡(本质上是效率低),也加大了超大规模集成电路的实现难度。反过来,RISC的优势就在于指令简单、使用均衡、执行效率高,而且基于RISC的芯片通常更容易做电路设计和大规模集成。
正如文章开篇展示的那样,我在基于SG2042的RISC-V平台上,完成了LLaMA的移植。LLM和RISC-V都是这两年的热门话题,而且都留有大量空白供开发者去探索和建设。把这两者结合起来,我觉得既是一件有意思的事,也很有实际意义。下面简单介绍一下这次用到的开发平台。
3.2 平台
RISC-V服务器主板(搭载全球第一颗已量产的服务器级64核RISC-V芯片SG2042)
3.3 基本配置
| 硬件平台配置 | |
| CPU | SG2042(64 Core@2.0GHz) |
| DDR | 32GB 3200MHz |
| Local Storage | 1T M.2 NVMe SSD |
| 操作系统配置 | |
| OS | Ubuntu |
| Kernel | Linux 5.19.17 |
4. 结束语
本系列文章预计会分成四期:
第一期:RISC-V跑大模型(引言),也就是今天这篇。
第二期:LLaMA零基础移植教程。
第三期:通过软件优化给LLaMA加速。
第四期:更多性能优化策略。
