KoboldCpp

KoboldCpp 是一个用于 GGML 和 GGUF 模型的独立 API。

这款由 Nyx 制作的 VRAM 计算器可以大致告诉你模型需要多少 RAM/VRAM。

Nvidia GPU 快速入门

本指南假设你使用的是 Windows。

KoboldCpp 1.58
KoboldCpp 1.58
  • Quick Launch 标签页下,选择模型以及你偏好的 Context Size
  • 勾选 Use CuBLAS,并确保 GPU ID 旁边的黄色文字与你的 GPU 一致。
  • 不要勾选 Low VRAM,即使你的 VRAM 较低。
  • 除非你使用的是 Nvidia 10 系或更早的 GPU,否则请取消勾选 Use QuantMatMul (mmq)
  • GPU Layers 应该在你加载模型时已自动填入。暂时保持不动。
  • Hardware 标签页下,勾选 High Priority
  • 点击 Save,这样你就不必每次启动都重新配置 KoboldCpp。
  • 点击 Launch,等待模型加载完成。

你应该会看到类似下面的内容:

Load Model OK: True
Embedded Kobold Lite loaded.
Starting Kobold API on port 5001 at http://localhost:5001/api/
Starting OpenAI Compatible API on port 5001 at http://localhost:5001/v1/
======
Please connect to custom endpoint at http://localhost:5001

现在你就可以在 SillyTavern 中以 http://localhost:5001 作为 API URL 连接到 KoboldCpp,并开始聊天了。

恭喜!你已经完成了!

差不多吧。

GPU Layers

KoboldCpp 已经可以运行了,但你可以通过确保将尽可能多的层卸载到 GPU 来提升性能。你应该会在终端中看到类似下面的内容:

llm_load_tensors: offloading 9 repeating layers to GPU
llm_load_tensors: offloaded 9/33 layers to GPU
llm_load_tensors:        CPU buffer size = 25215.88 MiB
llm_load_tensors:      CUDA0 buffer size =  7043.34 MiB
....................................................................................................
llama_kv_cache_init:  CUDA_Host KV buffer size =  1479.19 MiB
llama_kv_cache_init:      CUDA0 KV buffer size =   578.81 MiB

不要被这些数字吓到;这部分比看上去简单。CPU buffer size 指的是使用了多少系统 RAM,可以忽略。CUDA0 buffer size 指的是使用了多少 GPU VRAM。CUDA_Host KV buffer sizeCUDA0 KV buffer size 指的是分配给你模型上下文的 GPU VRAM 量。在这个例子中,KoboldCpp 使用了大约 9 GB 的 VRAM。

我的 VRAM 为 12 GB,其中只有 2 GB 用于上下文,因此还剩约 10 GB 的 VRAM 可用于加载模型。由于 9 层使用了约 7 GB 的 VRAM,且 7000 / 9 = 777.77,我们可以推断每一层大约使用 777.77 MIB 的 VRAM。10,000 MIB / 777.77 = 12.8,因此我向下取整,今后使用这个模型时加载 12 层。

现在,根据你所用系统的模型、上下文大小和 VRAM 自行计算,并重启 KoboldCpp:

  • 如果你够聪明,之前已经点击过 Save,那么现在可以用 Load 加载之前的配置。否则,请重新选择你之前用过的相同设置。
  • GPU Layers 改为你新的、针对 VRAM 优化后的数值(本例中为 12 层)。
  • 点击 Save 保存更新后的配置。

你现在应该会看到类似下面的内容:

llm_load_tensors: offloading 12 repeating layers to GPU
llm_load_tensors: offloaded 12/33 layers to GPU
llm_load_tensors:        CPU buffer size = 25215.88 MiB
llm_load_tensors:      CUDA0 buffer size =  9391.12 MiB
....................................................................................................
llama_kv_cache_init:  CUDA_Host KV buffer size =  1286.25 MiB
llama_kv_cache_init:      CUDA0 KV buffer size =   771.75 MiB

KoboldCpp 使用了我 12 GB VRAM 中的约 11.5 GB。这应该比 KoboldCpp 自动生成的设置性能好得多。

恭喜!你(真的)完成了!

如需更深入地了解 KoboldCpp 的设置,请查看 Kalomaze 的 Simple Llama + SillyTavern 设置指南