LLaMA/llama.cpp/ollama 关系
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
lama.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
Ollama
Ollama是一个简明易用的本地大模型运行框架,有点类似docker的概念。
Ollama 建立在 llama.cpp 之上,可以理解成:Ollama = llama.cpp + 模型管理器
Ollama 帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 3。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大型语言模型。
Ollama 建立在 llama.cpp 之上,这意味着它自然支持llama.cpp中存在的量化算法。开发新的量化算法的复杂性和资源需求非常大,因此 Ollama 依赖于 llama.cpp 在该领域的现有能力。
关于 GPU 卸载,Ollama 与 llama.cpp 共享相同的方法。llama.cpp GPU 卸载的任何增强功能都直接适用于 Ollama。