text-embeddings-inference

GitHub
4.7k 376 中等 7 次阅读 昨天Apache-2.0开发框架语言模型图像Agent
AI 解读 由 AI 自动生成,仅供参考

Text Embeddings Inference 是一款专为文本嵌入模型打造的高性能推理服务框架。它旨在解决开源模型在部署时面临的推理速度慢、资源消耗大以及难以满足生产环境需求等问题。无论是构建检索增强生成(RAG)系统,还是进行语义搜索,Text Embeddings Inference 都能提供稳定且高效的模型服务支持。

Text Embeddings Inference 特别适合 AI 开发者、算法研究人员以及负责模型部署的运维工程师使用。无需复杂的模型图编译步骤,Text Embeddings Inference 直接支持多种主流模型架构,如 Qwen、Bert、GTE 等。技术上,Text Embeddings Inference 集成了 Flash Attention、Candle 和 cuBLASLt 等优化技术,显著提升了推理吞吐量并降低了延迟。此外,Text Embeddings Inference 还具备动态批处理、小体积 Docker 镜像以及即插即用的特性,甚至支持 Apple Silicon 本地加速。对于需要高并发、低延迟的企业级应用,Text Embeddings Inference 还提供了完善的分布式追踪和 Prometheus 监控指标,确保服务在生产环境中可靠运行。

使用场景

某电商客服团队搭建智能工单分类系统,需实时将海量历史工单转化为向量存入数据库。

没有 text-embeddings-inference 时

  • 直接使用 Hugging Face pipeline 封装接口,单条请求平均耗时超过 200ms,影响用户体验。
  • 无法自动聚合多个请求,GPU 计算资源闲置严重,扩容成本居高不下。
  • 模型权重加载慢,服务启动时间长,频繁发布版本时业务中断风险大。
  • 缺乏分布式追踪能力,线上出现延迟抖动时难以定位是网络还是模型问题。

使用 text-embeddings-inference 后

  • text-embeddings-inference 优化了底层算子,首字延迟降至 50ms 以下,查询体验流畅。
  • 启用 Token 级动态批处理,在保持低延迟的同时最大化 GPU 吞吐量,节省硬件成本。
  • 支持 Docker 镜像快速启动,结合 Safetensors 格式,服务冷启动仅需数秒。
  • 原生集成 Prometheus 指标与 OpenTelemetry,帮助运维实时掌握 QPS、延迟等关键数据。

text-embeddings-inference 通过极致优化的推理引擎,让企业级向量检索服务既快又稳。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

非必需,使用 GPU 需 NVIDIA 显卡,驱动需兼容 CUDA 12.2+

内存

未说明

依赖
notes需安装 NVIDIA Container Toolkit 以启用 GPU;支持 Apple Silicon (Metal) 本地执行;建议通过挂载卷共享模型数据以避免重复下载;支持动态批处理及 OpenTelemetry 分布式追踪。
python未说明
Flash Attention
Candle
cuBLASLt
Safetensors
ONNX
Transformers
text-embeddings-inference hero image

快速开始

文本嵌入推理 (Text Embeddings Inference)

GitHub Repo stars Swagger API documentation

一种用于文本嵌入 (text embeddings) 模型的极速推理 (inference) 解决方案。

在 NVIDIA A10 上对 BAAI/bge-base-en-v1.5 的基准测试,序列长度为 512 tokens:

目录

文本嵌入推理 (Text Embeddings Inference, TEI) 是一个用于部署和托管开源文本嵌入及序列分类模型的 toolkits。TEI 支持最流行模型的高性能提取,包括 FlagEmbedding、Ember、GTE 和 E5。TEI 实现了许多功能,例如:

  • 无需模型图编译步骤
  • Mac 本地执行支持 Metal
  • 小型 Docker 镜像和快速启动时间。准备好迎接真正的无服务器 (serverless) 体验!
  • 基于 token 的动态批处理 (dynamic batching)
  • 针对推理优化的 transformers 代码,使用 Flash AttentionCandlecuBLASLt
  • Safetensors 权重加载
  • ONNX 权重加载
  • 生产就绪(支持 Open Telemetry 分布式追踪、Prometheus 指标)

入门指南

支持的模型

文本嵌入

文本嵌入推理(Text Embeddings Inference)目前支持具有绝对位置编码的 Nomic、BERT、CamemBERT、XLM-RoBERTa 模型,具有 Alibi 位置编码的 JinaBERT 模型,以及具有 Rope 位置编码的 Mistral、Alibaba GTE、Qwen2 模型,还包括 MPNet、ModernBERT、Qwen3 和 Gemma3。

以下是当前支持的部分模型示例:

MTEB 排名 模型大小 模型类型 模型 ID
2 7.57B (非常昂贵) Qwen3 Qwen/Qwen3-Embedding-8B
3 4.02B (非常昂贵) Qwen3 Qwen/Qwen3-Embedding-4B
4 509M Qwen3 Qwen/Qwen3-Embedding-0.6B
6 7.61B (非常昂贵) Qwen2 Alibaba-NLP/gte-Qwen2-7B-instruct
7 560M XLM-RoBERTa intfloat/multilingual-e5-large-instruct
8 308M Gemma3 google/embeddinggemma-300m (需授权)
15 1.78B (昂贵) Qwen2 Alibaba-NLP/gte-Qwen2-1.5B-instruct
18 7.11B (非常昂贵) Mistral Salesforce/SFR-Embedding-2_R
35 568M XLM-RoBERTa Snowflake/snowflake-arctic-embed-l-v2.0
41 305M Alibaba GTE Snowflake/snowflake-arctic-embed-m-v2.0
52 335M BERT WhereIsAI/UAE-Large-V1
58 137M NomicBERT nomic-ai/nomic-embed-text-v1
79 137M NomicBERT nomic-ai/nomic-embed-text-v1.5
103 109M MPNet sentence-transformers/all-mpnet-base-v2
N/A 475M-A305M NomicBERT nomic-ai/nomic-embed-text-v2-moe
N/A 434M Alibaba GTE Alibaba-NLP/gte-large-en-v1.5
N/A 396M ModernBERT answerdotai/ModernBERT-large
N/A 340M Qwen3 voyageai/voyage-4-nano
N/A 137M JinaBERT jinaai/jina-embeddings-v2-base-en
N/A 137M JinaBERT jinaai/jina-embeddings-v2-base-code

若要查看表现最佳的文本嵌入模型列表,请访问 大规模文本嵌入基准 (MTEB) 排行榜

序列分类与重排序

文本嵌入推理目前支持具有绝对位置编码的 CamemBERT 和 XLM-RoBERTa 序列分类模型。

以下是当前支持的部分模型示例:

任务 模型类型 模型 ID
重排序 XLM-RoBERTa BAAI/bge-reranker-large
重排序 XLM-RoBERTa BAAI/bge-reranker-base
重排序 GTE Alibaba-NLP/gte-multilingual-reranker-base
重排序 ModernBert Alibaba-NLP/gte-reranker-modernbert-base
情感分析 RoBERTa SamLowe/roberta-base-go_emotions

Docker

model=Qwen/Qwen3-Embedding-0.6B
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model

然后您可以发起如下请求:

curl 127.0.0.1:8080/embed \
    -X POST \
    -d '{"inputs":"What is Deep Learning?"}' \
    -H 'Content-Type: application/json'

注意: 要使用 GPU,您需要安装 NVIDIA Container Toolkit。您机器上的 NVIDIA 驱动程序需要与 CUDA 12.2 或更高版本兼容。

若要查看所有用于服务模型的选项:

$ text-embeddings-router --help
Text Embedding Webserver

Usage: text-embeddings-router [OPTIONS] --model-id <MODEL_ID>

Options:
      --model-id <MODEL_ID>
          The Hugging Face model ID, can be any model listed on <https://huggingface.co/models> with the `text-embeddings-inference` tag (meaning it's compatible with Text Embeddings Inference).

          Alternatively, the specified ID can also be a path to a local directory containing the necessary model files saved by the `save_pretrained(...)` methods of either Transformers or Sentence Transformers.

          [env: MODEL_ID=]

      --revision <REVISION>
          The actual revision of the model if you're referring to a model on the hub. You can use a specific commit id or a branch like `refs/pr/2`

          [env: REVISION=]

--tokenization-workers 可选控制用于请求负载(payload)分词、验证和截断的分词器工作进程数。默认为机器上的 CPU 核心数

              [env: TOKENIZATION_WORKERS=]

      --dtype <DTYPE>
              强制应用于模型的数据类型 (dtype)

              [env: DTYPE=]
              [possible values: float16, float32]

      --served-model-name <SERVED_MODEL_NAME>
              正在服务的模型名称。如果未指定,默认为 `--model-id`。它仅用于通过 HTTP 的 OpenAI 兼容端点

              [env: SERVED_MODEL_NAME=]

      --pooling <POOLING>
              可选控制嵌入模型(embedding models)的池化(pooling)方法。

              如果 `pooling` 未设置,池化配置将从模型 `1_Pooling/config.json` 配置中解析。

              如果 `pooling` 已设置,它将覆盖模型的池化配置

              [env: POOLING=]

              可能值:
              - cls:        选择 CLS token 作为嵌入
              - mean:       对模型嵌入应用平均池化 (Mean pooling)
              - splade:     对模型嵌入应用 SPLADE(稀疏词汇与扩展)。此选项仅在加载的模型为 `ForMaskedLM` Transformer 模型时可用
              - last-token: 选择最后一个 token 作为嵌入

      --max-concurrent-requests <MAX_CONCURRENT_REQUESTS>
              此特定部署的最大并发请求量。设置较低的限制将拒绝客户端请求,而不是让它们等待太久,通常有助于正确处理背压(backpressure)

              [env: MAX_CONCURRENT_REQUESTS=]
              [default: 512]

      --max-batch-tokens <MAX_BATCH_TOKENS>
              **重要** 这是允许充分利用可用硬件的关键控制之一。

              这代表批次内潜在 token 的总量。

              对于 `max_batch_tokens=1000`,你可以容纳 10 个总 token 数为 100 的查询,或者单个 1000 token 的查询。

              总体而言,这个数字应该是尽可能大的,直到模型达到计算瓶颈。由于实际内存开销取决于模型实现,text-embeddings-inference 无法自动推断此数字。

              [env: MAX_BATCH_TOKENS=]
              [default: 16384]

      --max-batch-requests <MAX_BATCH_REQUESTS>
              可选控制批次中单个请求的最大数量

              [env: MAX_BATCH_REQUESTS=]

      --max-client-batch-size <MAX_CLIENT_BATCH_SIZE>
              控制客户端在单个请求中可以发送的最大输入数量

              [env: MAX_CLIENT_BATCH_SIZE=]
              [default: 32]

      --auto-truncate
              控制是否自动截断超过模型最大支持大小的输入。默认为 `true`(启用截断)。设置为 `false` 以禁用截断;当禁用且模型的最大输入长度超过 `--max-batch-tokens` 时,服务器将拒绝启动并报错,而不是静默截断序列。

              不适用于 gRPC 服务器

              [env: AUTO_TRUNCATE=]

      --default-prompt-name <DEFAULT_PROMPT_NAME>
              应默认用于编码的提示名称。如果未设置,则不应用任何提示。

              必须是 `sentence-transformers` 配置 `prompts` 字典中的键。

              例如,如果 ``default_prompt_name`` 是 "query" 且 ``prompts`` 是 {"query": "query: ", ...},那么句子 "What is the capital of France?" 将被编码为 "query: What is the capital of France?",因为提示文本将在任何要编码的文本之前被前置。

              参数 '--default-prompt-name <DEFAULT_PROMPT_NAME>' 不能与 '--default-prompt <DEFAULT_PROMPT>` 一起使用

              [env: DEFAULT_PROMPT_NAME=]

      --default-prompt <DEFAULT_PROMPT>
              应默认用于编码的提示。如果未设置,则不应用任何提示。

              例如,如果 ``default_prompt`` 是 "query: ",那么句子 "What is the capital of France?" 将被编码为 "query: What is the capital of France?",因为提示文本将在任何要编码的文本之前被前置。

              参数 '--default-prompt <DEFAULT_PROMPT>' 不能与 '--default-prompt-name <DEFAULT_PROMPT_NAME>` 一起使用

              [env: DEFAULT_PROMPT=]

      --dense-path <DENSE_PATH>
              可选地,定义某些嵌入模型所需的 Dense 模块路径。

              某些嵌入模型需要额外的 `Dense` 模块,其中包含单个线性层和激活函数。默认情况下,这些 `Dense` 模块存储在 `2_Dense` 目录下,但也可能存在提供不同 `Dense` 模块的情况,用于将池化嵌入转换为不同的维度,表示为 `2_Dense_<dims>`,例如 https://huggingface.co/NovaSearch/stella_en_400M_v5。

              注意此参数是可选的,仅在没有 `modules.json` 文件时或想要覆盖单个 Dense 模块路径时才需要设置,且仅在运行 `candle` 后端时有效。

              [env: DENSE_PATH=]

      --hf-token <HF_TOKEN>
              你的 Hugging Face Hub 令牌。如果未设置 `--hf-token` 或 `HF_TOKEN`,令牌将从 `$HF_HOME/token` 路径读取(如果存在)。这确保了对私有或受限模型的访问,并允许更宽松的速率限制

              [env: HF_TOKEN=]

      --hostname <HOSTNAME>
              监听的 IP 地址

              [env: HOSTNAME=]
              [default: 0.0.0.0]

      -p, --port <PORT>
              监听的端口

              [env: PORT=]
              [default: 3000]

      --uds-path <UDS_PATH>
              一些 text-embeddings-inference 后端内部通过 gRPC 通信时将使用的 Unix 套接字名称

              [env: UDS_PATH=]
              [default: /tmp/text-embeddings-inference-server]

      --huggingface-hub-cache <HUGGINGFACE_HUB_CACHE>
              HuggingFace Hub 缓存的位置。用于覆盖位置,例如如果你想提供一个挂载的磁盘

              [env: HUGGINGFACE_HUB_CACHE=]

      --payload-limit <PAYLOAD_LIMIT>
              负载大小限制(字节)

              默认为 2MB

              [env: PAYLOAD_LIMIT=]
              [default: 2000000]

      --api-key <API_KEY>
              设置用于请求授权的 API 密钥。

              默认情况下,服务器响应每个请求。设置了 API 密钥后,请求必须设置 Authorization 头,并将 API 密钥作为 Bearer token。

              [env: API_KEY=]

      --json-output
              以 JSON 格式输出日志(适用于遥测)

              [env: JSON_OUTPUT=]

      --disable-spans
              是否包含通过 spans(跨度)的日志跟踪

              [env: DISABLE_SPANS=]

--otlp-endpoint OpenTelemetry(开放遥测)的 gRPC 端点。遥测 (Telemetry) 数据将通过 gRPC 以 OTLP(OpenTelemetry 协议)格式发送至该端点。例如:http://localhost:4317

      [env: OTLP_ENDPOINT=]

  --otlp-service-name <OTLP_SERVICE_NAME>
      OpenTelemetry 的服务名称。例如:`text-embeddings-inference.server`

      [env: OTLP_SERVICE_NAME=]
      [默认值:text-embeddings-inference.server]

  --prometheus-port <PROMETHEUS_PORT>
      监听 Prometheus 监控系统的端口

      [env: PROMETHEUS_PORT=]
      [默认值:9000]

  --cors-allow-origin <CORS_ALLOW_ORIGIN>
      gRPC 服务器中未使用

      [env: CORS_ALLOW_ORIGIN=]

-h, --help 打印帮助信息(使用 '-h' 查看摘要)

-V, --version 打印版本信息




### Docker 镜像

Text Embeddings Inference 附带多个 Docker 镜像,可用于针对特定后端:

| 架构                           | 镜像                                                                   |
|--------------------------------|-------------------------------------------------------------------------|
| CPU                            | ghcr.io/huggingface/text-embeddings-inference:cpu-1.9                   |
| Volta                          | 不支持                                                                |
| Turing (T4, RTX 2000 系列,...)  | ghcr.io/huggingface/text-embeddings-inference:turing-1.9 (实验性)       |
| Ampere 8.0 (A100, A30)         | ghcr.io/huggingface/text-embeddings-inference:1.9                       |
| Ampere 8.6 (A10, A40, ...)     | ghcr.io/huggingface/text-embeddings-inference:86-1.9                    |
| Ada Lovelace (RTX 4000 系列,...) | ghcr.io/huggingface/text-embeddings-inference:89-1.9                    |
| Hopper (H100)                  | ghcr.io/huggingface/text-embeddings-inference:hopper-1.9                |
| Blackwell 10.0 (B200, GB200, ...) | ghcr.io/huggingface/text-embeddings-inference:100-1.9 (实验性)          |
| Blackwell 12.0 (GeForce RTX 50X0, ...) | ghcr.io/huggingface/text-embeddings-inference:120-1.9 (实验性)          |

**警告**: 由于精度问题,Turing 镜像默认关闭了 Flash Attention。
您可以使用 `USE_FLASH_ATTENTION=True` 环境变量将 Flash Attention v1 开启。

### API 文档

您可以使用 `/docs` 路由查阅 `text-embeddings-inference` REST API 的 OpenAPI 文档。
Swagger UI 也可在以下地址访问:
[https://huggingface.github.io/text-embeddings-inference](https://huggingface.github.io/text-embeddings-inference)。

### 使用私有或受限模型

您可以选择使用 `HF_TOKEN` 环境变量来配置 `text-embeddings-inference` 使用的令牌。这允许您访问受保护的资源。

例如:

1. 前往 https://huggingface.co/settings/tokens
2. 复制您的 CLI READ 令牌
3. 导出 `HF_TOKEN=<your CLI READ token>`

或者使用 Docker:

```shell
model=<your private model>
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run
token=<your CLI READ token>

docker run --gpus all -e HF_TOKEN=$token -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model

离线部署

要在气隙环境(离线环境)中部署 Text Embeddings Inference,首先下载权重,然后使用卷将它们挂载到容器内部。

例如:

# (Optional) create a `models` directory
mkdir models
cd models

# Make sure you have git-lfs installed (https://git-lfs.com)
git lfs install
git clone https://huggingface.co/Qwen/Qwen3-Embedding-0.6B

# Set the models directory as the volume path
volume=$PWD

# Mount the models directory inside the container with a volume and set the model ID
docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id /data/Qwen3-Embedding-0.6B

使用重排序模型

text-embeddings-inference v0.4.0 增加了对 CamemBERT、RoBERTa、XLM-RoBERTa 和 GTE 序列分类模型的支持。 重排序模型是单类别的序列分类交叉编码器模型,用于对查询和文本之间的相似度进行评分。

请参阅 LlamaIndex 团队的 这篇博客文章,了解如何在您的 RAG 管道中使用重排序模型以提高下游性能。

model=BAAI/bge-reranker-large
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model

然后您可以使用以下命令对查询和一组文本之间的相似度进行排名:

curl 127.0.0.1:8080/rerank \
    -X POST \
    -d '{"query": "What is Deep Learning?", "texts": ["Deep Learning is not...", "Deep learning is..."]}' \
    -H 'Content-Type: application/json'

使用序列分类模型

您也可以使用经典的序列分类模型,如 SamLowe/roberta-base-go_emotions

model=SamLowe/roberta-base-go_emotions
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model

部署模型后,您可以使用 predict 端点获取与输入最相关的情绪:

curl 127.0.0.1:8080/predict \
    -X POST \
    -d '{"inputs":"I like you."}' \
    -H 'Content-Type: application/json'

使用 SPLADE 池化

您可以选择为 Bert 和 Distilbert MaskedLM 架构激活 SPLADE 池化:

model=naver/efficient-splade-VI-BT-large-query
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model --pooling splade

部署模型后,您可以使用 /embed_sparse 端点获取稀疏嵌入:

curl 127.0.0.1:8080/embed_sparse \
    -X POST \
    -d '{"inputs":"I like you."}' \
    -H 'Content-Type: application/json'

分布式追踪

text-embeddings-inference 已通过 OpenTelemetry 集成了分布式追踪。您可以通过设置 --otlp-endpoint 参数将地址指向 OTLP 收集器来使用此功能。

gRPC

text-embeddings-inference (文本嵌入推理) 提供 gRPC API 作为高性能部署中默认 HTTP API 的替代方案。API 的 protobuf 定义可在 此处 找到。

您可以通过在任意 TEI (Text Embeddings Inference) Docker 镜像中添加 -grpc 标签来使用 gRPC API。例如:

model=Qwen/Qwen3-Embedding-0.6B
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9-grpc --model-id $model
grpcurl -d '{"inputs": "What is Deep Learning"}' -plaintext 0.0.0.0:8080 tei.v1.Embed/Embed

本地安装

Apple Silicon (Homebrew)

在 Apple Silicon (M1/M2/M3/M4) 上,您可以通过 Homebrew 安装预编译的二进制文件:

brew install text-embeddings-inference

然后使用 Metal 加速启动文本嵌入推理:

model=Qwen/Qwen3-Embedding-0.6B

text-embeddings-router --model-id $model --port 8080

CPU

您也可以选择在本地安装 text-embeddings-inference

首先 安装 Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

然后运行:

# On x86 with ONNX backend (recommended)
cargo install --path router -F ort
# On x86 with Intel backend
cargo install --path router -F mkl
# On M1 or M2
cargo install --path router -F metal

现在您可以使用以下方式在 CPU 上启动文本嵌入推理:

model=Qwen/Qwen3-Embedding-0.6B

text-embeddings-router --model-id $model --port 8080

注意: 在某些机器上,您可能还需要 OpenSSL 库和 gcc。在 Linux 机器上,运行:

sudo apt-get install libssl-dev gcc -y

CUDA

不支持 CUDA 计算能力小于 7.5 的 GPU(V100, Titan V, GTX 1000 系列等)。

请确保已安装 CUDA 和 NVIDIA 驱动程序。您设备上的 NVIDIA 驱动程序需要与 CUDA 12.2 或更高版本兼容。您还需要将 NVIDIA 二进制文件添加到您的路径中:

export PATH=$PATH:/usr/local/cuda/bin

然后运行以下内容(可能需要一些时间,因为它需要编译 CUDA 内核):

# On Turing GPUs (T4, RTX 2000 series ... )
cargo install --path router -F candle-cuda-turing

# On Ampere, Ada Lovelace, Hopper and Blackwell
cargo install --path router -F candle-cuda

现在您可以按如下方式在 GPU 上启动文本嵌入推理:

model=Qwen/Qwen3-Embedding-0.6B

text-embeddings-router --model-id $model --port 8080

Docker

您可以使用 Docker 构建 CPU 容器,如下所示:

docker build -f Dockerfile .

要构建 CUDA 容器,您需要知道运行时将要使用的 GPU 的计算能力 (compute cap),以便相应地构建镜像:

# Get submodule dependencies
git submodule update --init

# Example for Turing (T4, RTX 2000 series, ...)
runtime_compute_cap=75

# Example for Ampere (A100, ...)
runtime_compute_cap=80

# Example for Ampere (A10, ...)
runtime_compute_cap=86

# Example for Ada Lovelace (RTX 4000 series, ...)
runtime_compute_cap=89

# Example for Hopper (H100, ...)
runtime_compute_cap=90

# Example for Blackwell (B200, GB200, ...)
runtime_compute_cap=100

# Example for Blackwell (GeForce RTX 50X0, RTX PRO 6000, ...)
runtime_compute_cap=120

docker build . -f Dockerfile-cuda --build-arg CUDA_COMPUTE_CAP=$runtime_compute_cap

Apple M1/M2 arm64 架构

免责声明

正如 此处 所解释的,Metal / Metal Performance Shaders (MPS) 无法通过 Docker 支持。因此,当在 M1/M2 ARM CPU 上使用此 Docker 镜像时,推理将由 CPU 处理,速度可能相当慢。

docker build . -f Dockerfile --platform=linux/arm64

示例

版本历史

v1.9.32026/03/23
v1.9.22026/02/25
v1.9.12026/02/17
v1.9.02026/02/17
v1.8.32025/10/30
v1.8.22025/09/09
v1.8.12025/09/04
v1.8.02025/08/05
v1.7.42025/07/07
v1.7.32025/06/30
v1.7.22025/06/16
v1.7.12025/06/03
v1.7.02025/04/08
v1.6.12025/03/28
v1.6.02024/12/13
v1.5.12024/11/05
v1.5.02024/07/10
v1.4.02024/07/02
v1.3.02024/06/28
v1.2.32024/04/25

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架