如何运行本地LLM:Ollama、llama.cpp、LM Studio和vLLM对比
有多种方式可以在本地运行LLM。有些工具旨在简化入门过程,而其他工具则提供更多控制或支持同时服务多个用户。正确的选择取决于您是想要简单的本地聊天、可配置的推理引擎,还是生产级API。
Ollama
Ollama是本地运行模型的最简单方式之一。安装它,下载模型,然后从命令行运行。它还提供了本地API,供应用程序和其他工具使用。
优点:
- 安装和模型管理简单
- 命令行工作流程简单
- 兼容OpenAI的API
- 支持NVIDIA、AMD、Apple Silicon和基于Vulkan的GPU加速
- Modelfiles允许您自定义模型和参数
- 内存充足时支持并发请求
缺点:
- 底层控制不如llama.cpp
- 其模型管理围绕Ollama生态系统构建
- 当需要最大吞吐量或分布式推理时,不是首选
难度:低。如果您想快速运行模型而不处理许多推理设置,这是一个不错的选择。
llama.cpp
llama.cpp是一个轻量级的C/C++推理引擎,专注于在广泛的硬件上高效运行模型。它使用GGUF模型,并允许您详细控制模型的加载和运行方式。
优点:
- 对上下文、GPU卸载、批处理、线程、量化和其他推理设置进行细粒度控制
- 广泛的硬件支持,包括CUDA、HIP、Metal、Vulkan和SYCL
- 支持从低位格式到8位的多种量化级别
- 可以在多个GPU之间分割模型
- 当模型大于可用VRAM时,可以同时使用CPU和GPU
- 包含
llama-server,提供兼容OpenAI的API
缺点:
- 配置比Ollama或LM Studio更复杂
- GGUF模型通常需要单独下载和管理
- 许多有用的设置需要理解推理参数
难度:中等。如果您想精确控制模型的运行方式,或想尝试性能和量化,这是一个不错的选择。
LM Studio
LM Studio是一个桌面应用程序,用于下载、配置和运行本地LLM。它提供了图形界面,用于查找模型和管理GPU卸载、上下文大小等事项。
优点:
- 简单的图形界面
- 通过Hugging Face搜索和下载模型
- 加载前显示模型和资源信息
- 兼容OpenAI的API服务器
- 可以通过其
llmster服务器无头运行模型 - 通过llama.cpp支持GGUF,并在Apple Silicon上支持MLX模型
缺点:
- 底层控制不如直接使用llama.cpp
- 桌面应用程序不太适合某些服务器部署
- 主要不是为大规模多用户服务设计的
难度:低。如果您想尝试本地模型而不花太多时间在命令行上,这是一个不错的选择。
vLLM
vLLM专为向应用程序和多个用户提供LLM服务而设计。其主要优势是在高并发下高效服务,使用PagedAttention、连续批处理、前缀缓存和分布式推理等技术。
优点:
- 高吞吐量,支持多个并发请求
- 连续批处理和高效的KV缓存管理
- 兼容OpenAI的API服务器
- 直接与许多Hugging Face模型配合使用
- 支持量化,包括FP8、INT4、GPTQ、AWQ、GGUF等
- 支持张量、流水线、专家和其他形式的并行
- 专为生产推理和服务设计
缺点:
- 设置和配置更复杂
- 主要面向Linux环境
- 对于单人交互式运行一个模型,通常没有必要
- 部署前需要检查硬件和模型兼容性
难度:高。最适合部署推理服务的人,而不是仅仅在个人计算机上运行模型的人。
您应该选择哪个?
- 只想轻松运行模型:Ollama或LM Studio。选择Ollama用于命令行和简单API,或选择LM Studio用于图形界面。
- 想要控制推理:llama.cpp。它让您直接控制模型加载、量化、上下文、GPU卸载和其他设置。
- 需要本地API:Ollama、llama.cpp或LM Studio。这三个都提供兼容OpenAI的API。
- 需要服务多个用户:vLLM。其连续批处理和分布式推理功能专为此用例设计。
- 想尝试不同的量化:llama.cpp或LM Studio。
在DaDesktop上运行
如果本地没有足够的GPU硬件,您可以在DaDesktop云桌面上运行这些工具。选择具有足够VRAM的GPU来运行您想要的模型,启动桌面,然后安装您偏好的推理软件。
Ollama和LM Studio在您想要简单的本地环境时很有用。llama.cpp让您对硬件和推理设置拥有更多控制。当您需要将模型作为高吞吐量API暴露时,vLLM是一个选择。
查看可用GPU以比较VRAM和其他规格。