如何运行本地LLM:Ollama、llama.cpp、LM Studio和vLLM的比较

有几种方式可以在本地运行LLM。有些工具旨在让入门变得简单,而其他工具则提供更多控制或专为同时服务众多用户而设计。正确的选择取决于您是需要简单的本地聊天、可配置的推理引擎,还是生产级API。

Ollama

Ollama是开始本地运行模型的最简单方式之一。安装它,下载一个模型,然后从命令行运行。它还提供本地API,供应用程序和其他工具使用。

优点:

  • 安装和模型管理简单
  • 命令行工作流程简便
  • 兼容OpenAI的API
  • 支持NVIDIA、AMD、Apple Silicon和基于Vulkan的GPU加速
  • 模型文件可让您自定义模型和参数
  • 内存充足时支持并发请求

缺点:

  • 低级控制不如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服务器无头运行模型
  • 在Apple Silicon上支持通过llama.cpp的GGUF和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和其他规格。