大模型的使用远景将越来越广泛。
通常,神经网络的推理代码是运用 Python 言语编写的。但比较于 Python,C/C++ 代码运转速度更快,编写过程更谨慎,因此一些开发者尝试用 C/C++ 言语实现神经网络。
在众多运用 C/C++ 言语编写神经网络代码的开发者中,Georgi Gerganov 是一位佼佼者。Georgi Gerganov 是资深的开源社区开发者,曾为 OpenAI 的 Whisper 自动语音识别模型开发 whisper.cpp。
Georgi Gerganov
今年 3 月 Georgi Gerganov 又构建了开源项目 llama.cpp,llama.cpp 让开发者在没有 GPU 的条件下也能运转 Meta 的 LLaMA 模型。llama.cpp 让开发者在没有 GPU 的条件下也能运转 LLaMA 模型。项目发布后,很快就有开发者尝试并成功在 MacBook 和树莓派上运转 LLaMA。
打开 Georgi Gerganov 的个人主页,咱们发现全是开源项目,满满的干货。
现在,Georgi Gerganov 宣布创立一家新公司 ggml.ai,旨在支撑 ggml 的开发。ggml 是 Georgi Gerganov 运用 C/C++ 构建了机器学习张量库,可以协助开发者在消费级硬件上实现大模型,并提高模型功能。ggml 张量库具有以下特色:
-
用 C 言语编写;
-
支撑 16bit 浮点数;
-
支撑整数量化(包含 4 位、5 位、8 位);
-
自动微分;
-
内置优化算法(例如 ADAM、L-BFGS);
-
为 Apple 芯片设置特定优化;
-
在 x86 架构上运用 AVX / AVX2 Intrinsic;
-
经过 WebAssembly 和 WASM SIMD 供给 Web 支撑;
-
无第三方依赖;
-
运转时零内存分配;
-
支撑辅导型言语输出。
作为纯 C 言语编写的框架,ggml 大幅降低了大模型的运转成本。llama.cpp 和 whisper.cpp 都运用了 ggml,咱们来看一下运用 llama.cpp 和 whisper.cpp 的比如。
下图是一个在树莓派上运用 whisper.cpp 检测短语音指令的比如:
在单个 M1 Pro 上同时运转 LLaMA-13B + Whisper Small 的 4 个实例,如下图所示:
在 M2 Max 上以 40 tok/s 的速度运转 LLaMA-7B,如下图所示:
总体来说,ggml 让本地运转大型言语模型变得更简略,操作更便捷。Georgi Gerganov 成立新公司之后,简略高效的 ggml 张量库将取得更多开发者和投资者的支撑。咱们相信随着开发人员在技术层面做出努力,大模型的使用远景将会越来越广泛。
参考链接:ggml.ai/