大模型本地部署和运行中,经常遇到这三个概念,llama,ollama,llama.cpp。 刚开始接触时,的确有些傻傻分不清楚。这里简单区分理解下,方便快速上手。
简单来讲,llama 是一个Meta公司开源的预训练大型语言模型,llama.cpp用于加载和运行 LLaMA 语言模型。ollama是大模型运行框架,它利用了 llama.cpp 提供的底层功能。
LLaMa
LLama(又称为羊驼)是预训练开源语言模型,它来着Meta公司(原Facebook公司)。类似国内阿里通义千问Qwen系列大模型、智谱AI的 GLM系列模型等。LLaMA系列模型以其高质量、可扩展性和灵活性,在NLP领域取得了显著的进展。通过不断地技术创新和优化,LLaMA模型在各种任务上展现了卓越的性能,成为了大型语言模型研究和应用的重要里程碑。
2024年4月19日,Meta在官网上官宣了Llama-3,作为继Llama-1、Llama-2和Code-Llama之后的第三代模型,Llama-3在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。
llama.cpp
llama.cpp 是一个开源的 C++ 库, 它用原始 C++ 重写了 LLaMa 的推理代码,是一种推理框架,用于加载和运行 LLaMA 语言模型。通过一些优化和量化权重,llama.cpp能让我们在各种以前无法想象的硬件上本地运行 LLaMa 模型。其中:
- 在谷歌 Pixel5 手机上,它能以 1 token/s 的速度运行 7B 参数模型。
- 在 M2 芯片的 Macbook Pro 上,使用 7B 参数模型的速度约为 16 token/s
- 我们甚至于可以在 4GB RAM 的树莓派上运行 7B 模型,尽管速度只有 0.1 token/s
获取代码
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp