大模型本地部署和运行中,经常遇到这三个概念,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
在国内访问,可以使用gitcode.com替换,命令如下:
git clone https://gitcode.com/ggerganov/llama.cpp.git llama
(注:习惯起见,这里将下载的llama.cpp重新命名为llama)
llama.cpp提供了基础的推理功能,但缺乏一些高级功能,如上下文管理、插件系统等。
Ollama
Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大型语言模型。
一句话:Ollama是一个简明易用的本地大模型运行框架,有点类似docker的概念。
Ollama下载和安装(支持windows、linux和Mac):Download Ollama on macOSGet up and running with large language models.https://ollama.com/download
Ollama已经支持了很多开源大模型库,参考官方地址:libraryGet up and running with large language models.https://ollama.com/library