在我写本文时,刚好是WAIC 2023举行的时候,感觉无处不是大模型。所以,RISC-V怎么能不刷刷大模型呢?废话不多说,先上图:
去年,ChatGPT的出现震惊了全世界,在短短几个月的时间内,ChatGPT的月活跃用户达到了1亿。ChatGPT的成功让许多人第一次知道了大语言模型(Large Language Model)的概念,而今年Meta发布的LLaMA则在ChatGPT的基础上又往前跨了一大步,它大大降低了LLM的使用难度,让LLM真正“走进基层”。那LLaMA是什么呢?
1. LLaMA介绍
在介绍LLaMA之前,首先要介绍一下LLM(Large Language Model)。我们可以将LLM看成一位知识渊博的老师,在经过大量的知识学习(大量文本数据的训练)后,LLM会基于它的知识库,给出问题的最佳答案,我们可以使用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只是一个基础模型,它完全可以使用公开的数据模型进行训练,这都使得LLaMA的使用门槛被大大降低;从开源的角度来说,LLaMA可以说是被迫开源,因为技术方面的问题,Meta暂缓了开源过程,但在发布后的不久,LLaMA的模型文件就被泄露了,那么,问题来了,这究竟是故意的还是不小心的呢?
2. llama.cpp
llama.cpp是由保加利亚索非亚的Georgi Gerganov基于LLaMA模型开发的纯C版本。Georgi Gerganov是一位资深的开源社区开发者,曾经还为OpenAI的自动语音识别模型开发了whisper.cpp。llama.cpp可以让使用者在没有GPU的情况下也能运行LLaMA模型。所以它一经发布,就吸引了大量对LLaMA感兴趣的人下载使用,很快就有人找到了在Windows上运行LLaMA的方法,之后又实现了在手机上的运行。llama.cpp大大降低了LLaMA的使用门槛,通过llama.cpp,LLaMA展现了它无与伦比的语言学习能力,为我们打开了一座探索语言世界的新大门。
值得一提的是,Georgi Gerganov在公布llama.cpp后的几个月就自主创业,成立了ggml.ai公司,这个公司的合伙人有GitHub前CEO Nat Friedman和Y-Combinator的Daniel Gross。ggml.ai的成立也引起了许多业内大佬的注意,或许它之后会为AI的发展带来一些不一样的东西。
3. 硬件平台简介
3.1 RISC-V简介
澎峰科技联合创始人王军辉说“2023年是RISC-V高性能计算元年”。因为2023年算能推出了全球第一颗已量产的RISC-V服务器级64核CPU,这意味RISC-V进入高性能计算领域的未来已经不远了。那么,RISC-V到底是什么?
简单来说,RISC-V和我们熟悉的X86、ARM一样,都是指令集架构,但X86属于复杂指令集(CSIC),RISC-V和ARM属于精简指令集(RISC)。虽然CISC指令丰富功能强大,但随着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加速
第四期:更多性能优化策略。
全部0条评论
快来发表一下你的评论吧 !