GitLab Duo 自托管支持的平台
- 版本:Premium, Ultimate
- 附加组件:GitLab Duo Enterprise
- 产品:GitLab 私有化部署
有多个平台可用于托管您的自托管大型语言模型 (LLM)。每个平台都有独特的功能和优势,可以满足不同的需求。以下文档总结了当前支持的选项。如果您想使用的平台未在此文档中列出,请在平台请求 issue (issue 526144) 中提供反馈。
用于自托管模型部署
vLLM
vLLM 是一个高性能推理服务器,专为高效利用内存来托管 LLM 而优化。它支持模型并行,并能轻松集成到现有工作流中。
要安装 vLLM,请参阅 vLLM 安装指南。您应安装 v0.6.4.post1 版本 或更高版本。
端点配置
在 GitLab 中为任何兼容 OpenAI API 的平台(例如 vLLM)配置端点 URL 时:
- URL 必须以
/v1作为后缀。 - 如果使用默认的 vLLM 配置,端点 URL 将是
https://<hostname>:8000/v1。 - 如果您的服务器配置在代理或负载均衡器后面,您可能不需要指定端口,这种情况下 URL 将是
https://<hostname>/v1。
查找模型名称
模型部署后,要获取 GitLab 中模型标识符字段的模型名称,请查询 vLLM 服务器的 /v1/models 端点:
curl \
--header "Authorization: Bearer API_KEY" \
--header "Content-Type: application/json" \
http://your-vllm-server:8000/v1/models模型名称是响应中 data.id 字段的值。
示例响应:
{
"object": "list",
"data": [
{
"id": "Mixtral-8x22B-Instruct-v0.1",
"object": "model",
"created": 1739421415,
"owned_by": "vllm",
"root": "mistralai/Mixtral-8x22B-Instruct-v0.1",
// Additional fields removed for readability
}
]
}在此示例中,如果模型的 id 是 Mixtral-8x22B-Instruct-v0.1,您应在 GitLab 中将模型标识符设置为 custom_openai/Mixtral-8x22B-Instruct-v0.1。
有关更多信息,请参阅:
- vLLM 支持的模型,请参阅 vLLM 支持的模型文档。
- 使用 vLLM 运行模型时的可用选项,请参阅 vLLM 关于引擎参数的文档。
- 模型所需的硬件,请参阅 支持的模型和硬件要求文档。
示例:
Mistral-7B-Instruct-v0.2
-
从 HuggingFace 下载模型:
git clone https://<your-hugging-face-username>:<your-hugging-face-token>@huggingface.co/mistralai/Mistral-7B-Instruct-v0.3 -
运行服务器:
vllm serve <path-to-model>/Mistral-7B-Instruct-v0.3 \ --served_model_name <choose-a-name-for-the-model> \ --tokenizer_mode mistral \ --tensor_parallel_size <number-of-gpus> \ --load_format mistral \ --config_format mistral \ --tokenizer <path-to-model>/Mistral-7B-Instruct-v0.3
Mixtral-8x7B-Instruct-v0.1
-
从 HuggingFace 下载模型:
git clone https://<your-hugging-face-username>:<your-hugging-face-token>@huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1 -
重命名 token 配置:
cd <path-to-model>/Mixtral-8x7B-Instruct-v0.1 cp tokenizer.model tokenizer.model.v3 -
运行模型:
vllm serve <path-to-model>/Mixtral-8x7B-Instruct-v0.1 \ --tensor_parallel_size 4 \ --served_model_name <choose-a-name-for-the-model> \ --tokenizer_mode mistral \ --load_format safetensors \ --tokenizer <path-to-model>/Mixtral-8x7B-Instruct-v0.1
禁用请求日志以减少延迟
在生产环境中运行 vLLM 时,您可以使用 --disable-log-requests 标志来禁用请求日志,从而显著降低延迟。
仅在不需要详细请求日志时使用此标志。
禁用请求日志可以最大程度地减少详细日志带来的开销,尤其是在高负载情况下,并有助于提高性能水平。
vllm serve <path-to-model>/<model-version> \
--served_model_name <choose-a-name-for-the-model> \
--disable-log-requests根据内部基准测试,此更改能显著改善响应时间。
用于云托管模型部署
AWS Bedrock
AWS Bedrock 是一项完全托管的服务,允许开发者使用来自领先 AI 公司的预训练模型来构建和扩展生成式 AI 应用程序。它与其他 AWS 服务无缝集成,并提供按需付费的定价模式。
要访问 AWS Bedrock 模型:
-
配置 IAM 凭据以使用适当的 AWS IAM 权限访问 Bedrock:
-
确保 IAM 角色具有
AmazonBedrockFullAccess策略,以允许访问 Amazon Bedrock。您无法在 GitLab Duo 自托管 UI 中执行此操作。
-
-
在启动 Docker 容器时,通过导出适当的 AWS SDK 环境变量(例如
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_REGION_NAME)来验证您的 AI 网关实例。有关更多信息,请参阅 AWS Identity and Access Management (IAM) 指南。
AI 网关当前不支持临时凭据。有关为 Bedrock 添加使用实例配置文件或临时凭据支持的信息,请参阅 issue 542389。
-
可选。要设置在虚拟私有云 (VPC) 中运行的私有 Bedrock 端点,请确保在启动 AI 网关容器时,已使用您的内部 URL 配置
AWS_BEDROCK_RUNTIME_ENDPOINT环境变量。示例配置:
AWS_BEDROCK_RUNTIME_ENDPOINT = https://bedrock-runtime.{aws_region_name}.amazonaws.com对于 VPC 端点,URL 格式可能有所不同,例如
https://vpce-{vpc-endpoint-id}-{service-name}.{aws_region_name}.vpce.amazonaws.com
有关更多信息,请参阅 Amazon Bedrock 中支持的基础模型。
Azure OpenAI
Azure OpenAI 提供对 OpenAI 强大模型的访问,使开发者能够将先进的 AI 功能集成到他们的应用程序中,并具备强大的安全性和可扩展的基础设施。
有关更多信息,请参阅:
使用多个模型和平台
使用 GitLab Duo 自托管,您可以在同一个 GitLab 实例中使用多个模型和平台。
例如,您可以配置一个功能使用 Azure OpenAI,另一个功能使用 AWS Bedrock 或由 vLLM 托管的自托管模型。
这种设置为您提供了为每个用例选择最佳模型和平台的灵活性。模型必须受支持,并通过兼容的平台进行托管。
有关设置不同提供商的更多信息,请参阅: