推理端点(专用)文档
llama.cpp
llama.cpp
llama.cpp 是一个用 C/C++ 编写的高性能推理引擎,专门用于运行 GGUF 格式的 Llama 和兼容模型。
核心功能
- GGUF 模型支持:原生兼容 GGUF 格式及其所有量化类型。
- 多平台支持:针对 CPU 和 GPU 执行进行了优化,支持 AVX、AVX2、AVX512 和 CUDA 加速。
- OpenAI 兼容 API:提供聊天、补全、嵌入等接口,可与现有工具和工作流程无缝集成。
- 活跃的社区和生态系统:快速开发和丰富的工具、扩展和集成生态系统。
当您使用 GGUF 模型创建端点时,系统会自动选择一个 llama.cpp 容器,该容器使用从 llama.cpp 存储库的 master 分支构建的最新映像。成功部署后,即可使用一个具有 OpenAI 兼容端点的服务器。
llama.cpp 支持多种端点,如 /tokenize、/health、/embedding 等。有关可用端点的完整列表,请参阅 API 文档。
部署步骤
要部署一个 llama.cpp 容器端点,请按照以下步骤操作:
- 创建新端点并选择一个包含 GGUF 模型的存储库。系统将自动选择 llama.cpp 容器。
- 选择所需的 GGUF 文件,请注意内存需求会因所选文件而异。例如,F16 模型比 Q4_K_M 模型需要更多的内存。
- 选择您所需的硬件配置。
可选地,您可以自定义容器的配置设置,例如
最大令牌数、并发请求数。有关这些设置的更多信息,请参阅下面的配置部分。点击 创建端点 按钮完成部署。
或者,您可以观看下面的视频教程,了解部署 llama.cpp 容器端点的分步指南。
配置
llama.cpp 容器提供了多种可调整的配置选项。部署后,您可以通过访问端点详细信息页面上的设置选项卡来修改这些设置。
基本配置
- 每请求最大令牌数 (Max Tokens):单个请求中可以发送的最大令牌数。
- 最大并发请求数 (Max Concurrent Requests):此部署允许的最大并发请求数。增加此限制需要额外的内存分配。例如,将此值设置为 4 个请求,每个请求最多 1024 个令牌,总共需要 4096 个令牌的内存容量。
高级配置
除了基本配置外,您还可以通过设置环境变量来修改特定设置。可用的环境变量列表可以在 API 文档 中找到。
请注意,以下环境变量由系统保留,无法修改:
LLAMA_ARG_MODELLLAMA_ARG_HTTP_THREADSLLAMA_ARG_N_GPU_LAYERSLLAMA_ARG_EMBEDDINGSLLAMA_ARG_HOSTLLAMA_ARG_PORTLLAMA_ARG_NO_MMAPLLAMA_ARG_CTX_SIZELLAMA_ARG_N_PARALLELLLAMA_ARG_ENDPOINT_METRICS
疑难解答
如果部署失败,请查看日志输出以获取任何错误消息。
您可以通过点击端点详细信息页面上的日志选项卡来访问日志。要了解更多信息,请参阅 日志 文档。
Malloc failed: out of memory
如果在日志中看到此错误消息,ggml_backend_cuda_buffer_type_alloc_buffer: allocating 67200.00 MiB on device 0: cuda Malloc failed: out of memory llama_kv_cache_init: failed to allocate buffer for kv cache llama_new_context_with_model: llama_kv_cache_init() failed for self-attention cache ...
则表示所选硬件配置的内存不足以容纳所选的 GGUF 模型。您可以尝试:
- 降低每请求的最大令牌数
- 降低并发请求数
- 选择一个更小的 GGUF 模型
- 选择更大的硬件配置
Workload evictedstorage limit exceeded
此错误消息表明硬件内存不足以容纳所选的 GGUF 模型。请尝试选择一个更小的模型或更大的硬件配置。其他问题
对于其他问题,请参阅 llama.cpp issues 页面。如果您想创建新问题,请在您的错误报告中包含完整的日志输出。