llama.cpp作者创业,用纯C语言框架降低大模型运行成本
机器之心报道
机器之心编辑部
在众多使用 C/C++ 语言编写神经网络代码的开发者中,Georgi Gerganov 是一位佼佼者。Georgi Gerganov 是资深的开源社区开发者,曾为 OpenAI 的 Whisper 自动语音识别模型开发 whisper.cpp。
今年 3 月 Georgi Gerganov 又构建了开源项目 llama.cpp,llama.cpp 让开发者在没有 GPU 的条件下也能运行 Meta 的 LLaMA 模型。llama.cpp 让开发者在没有 GPU 的条件下也能运行 LLaMA 模型。项目发布后,很快就有开发者尝试并成功在 MacBook 和树莓派上运行 LLaMA。
打开 Georgi Gerganov 的个人主页,我们发现全是开源项目,满满的干货。
作为纯 C 语言编写的框架,ggml 大幅降低了大模型的运行成本。llama.cpp 和 whisper.cpp 都使用了 ggml,我们来看一下使用 llama.cpp 和 whisper.cpp 的例子。
下图是一个在树莓派上使用 whisper.cpp 检测短语音命令的例子:
参考链接:http://ggml.ai/
通常,神经网络的推理代码是使用 Python 语言编写的。 但相比于 Python,C/C++ 代码运行速度更快,编写过程更严谨,因此一些开发者尝试用 C/C++ 语言实现神经网络。大模型的应用前景将越来越广泛。
在众多使用 C/C++ 语言编写神经网络代码的开发者中,Georgi Gerganov 是一位佼佼者。Georgi Gerganov 是资深的开源社区开发者,曾为 OpenAI 的 Whisper 自动语音识别模型开发 whisper.cpp。
今年 3 月 Georgi Gerganov 又构建了开源项目 llama.cpp,llama.cpp 让开发者在没有 GPU 的条件下也能运行 Meta 的 LLaMA 模型。llama.cpp 让开发者在没有 GPU 的条件下也能运行 LLaMA 模型。项目发布后,很快就有开发者尝试并成功在 MacBook 和树莓派上运行 LLaMA。
打开 Georgi Gerganov 的个人主页,我们发现全是开源项目,满满的干货。
- 用 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 检测短语音命令的例子:
参考链接:http://ggml.ai/