HiHuo
首页
博客
手册
工具
关于
首页
博客
手册
工具
关于
  • 概览

    • K8s 实战学习实验室
    • 服务访问清单
    • K8s-Lab 学习总纲、仓库评估与专家路线图
  • 课程正文

    • 环境验证与第一课:认识你的真实集群
    • 第二课:kubectl apply 之后,到底发生了什么
    • 第三课:调度器如何选节点,为什么 Pod 会 Pending
    • 第四课:Kubernetes 网络、协议分层、VXLAN/IPIP/WireGuard 原理与排障
    • 第五课:NetworkPolicy、零信任网络与流量边界
    • 第六课:身份、认证、授权、准入与 ServiceAccount / RBAC 原理
    • 第七课:ConfigMap 与 Secret 注入模型、更新机制与安全边界
    • 第八课:存储持久化、PV / PVC / StorageClass 与 NFS 原理
    • 第九课:StatefulSet、Headless Service、稳定身份与存储原理
    • 第十课:探针、滚动更新、优雅终止与 PDB 原理
    • 第十一课:requests / limits、QoS、OOM 与驱逐原理
    • 第十二课:HPA、自动扩缩容、指标链路与副本伸缩原理
    • 第十三课:Service、EndpointSlice、kube-proxy、CoreDNS 与服务发现原理
    • 第十四课:Ingress-nginx、反向代理、Host / Path、NodePort 与北南向流量原理
    • 第十五课:HTTPS、TLS、SNI、证书信任与 Ingress 终止原理
    • 第十六课:cert-manager、Ingress 自动签发、证书生命周期与 ACME 工作流原理
    • 第十七课:ACME、Let's Encrypt、HTTP-01 / DNS-01、Orders / Challenges 与生产限制原理
    • 第十八课:大模型全生态,从数据到训练到部署到治理原理
    • 第十九课:大模型数据集、清洗、标注、切分、版本管理与质量治理原理
    • 第二十课:大模型训练、SFT、LoRA、Checkpoint、Adapter 与模型产物原理
    • 第二十一课:大模型推理、量化、KV Cache、vLLM、吞吐/延迟与部署发布链路原理
  • 实验操作记录

    • 本次仓库审查操作记录与命令原理
    • 本轮操作记录:环境验证、集群基线盘点与故障样本采集
    • 本轮操作记录:kubectl apply 主链路实验
    • 本轮操作记录:调度实验与 Pending 排查
    • 本轮操作记录:Kubernetes 网络原理、协议对比与调试实验
    • 本轮操作记录:NetworkPolicy 与零信任网络实验
    • 本轮操作记录:身份、认证、授权、准入实验
    • 本轮操作记录:ConfigMap 与 Secret 注入、更新与安全边界实验
    • 本轮操作记录:存储持久化、PV / PVC / StorageClass 与 NFS 实验
    • 本轮操作记录:StatefulSet、Headless Service 与稳定身份实验
    • 本轮操作记录:探针、滚动更新、优雅终止与 PDB 实验
    • 本轮操作记录:资源模型、QoS、OOM 与 CPU 节流实验
    • 本轮操作记录:HPA 自动扩缩容实验
    • 本轮操作记录:Service、EndpointSlice、CoreDNS 与服务发现排障实验
    • 本轮操作记录:Ingress-nginx、NodePort 与北南向流量实验
    • 本轮操作记录:HTTPS、TLS、自签证书与 Ingress 实验
    • 本轮操作记录:cert-manager 安装、CA 签发与 Ingress 自动证书实验
    • 本轮操作记录:ACME staging、HTTP-01 失败样本与排障实验
    • 本轮操作记录:大模型全生态与基础原理科普文撰写
    • 本轮操作记录:大模型数据集样本与治理文档编写
    • 本轮操作记录:大模型训练与模型产物概念文撰写
    • 本轮操作记录:大模型推理与服务发布概念文撰写

AI SaaS 平台 — 产品设计文档

一、产品定位

一句话: 大模型训练与推理的 SaaS 平台,为企业和开发者提供"开箱即用"的 AI 能力。

对标产品:

  • 国外:OpenAI API、AWS Bedrock、Google Vertex AI、Replicate、RunPod
  • 国内:硅基流动、智谱开放平台、百度千帆、火山方舟

核心价值:

  • 用户不需要自己搭 GPU 集群
  • 用户不需要懂 K8s/Docker/分布式训练
  • 调个 API 就能用大模型,按 Token 付费
  • 想微调自己的模型?上传数据集,点一下开始

二、用户角色

角色需求使用方式
开发者调 API 做 AI 应用API Key + /v1/chat/completions
数据科学家微调模型上传数据集 → 选基座模型 → LoRA 微调 → 部署
企业管理员管理团队用量和费用控制台:成员管理、预算上限、用量报表
平台运维管理 GPU 集群和模型管理后台:节点管理、模型上架、计费配置

三、核心功能模块

3.1 模型推理服务(核心营收)

用户视角:

curl https://api.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.2-3b",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 100
  }'

支持的协议: 完全兼容 OpenAI API 格式(这样用户现有代码改个 base_url 就能用)

功能清单:

功能说明优先级
Chat Completions/v1/chat/completions,支持流式 SSEP0
Completions/v1/completions,文本补全P1
Embeddings/v1/embeddings,向量化P1
Models/v1/models,列出可用模型P0
流式输出stream: true,Server-Sent EventsP0
多模型选择同一 API,model 参数切换不同模型P0
并发限制按租户配置 RPM(每分钟请求数)P0
超时控制请求级别超时,长文本生成超时P1

3.2 模型管理

预置模型(平台提供):

模型参数量显存需求场景定价参考
Llama 3.2 1B1B2GB轻量对话、分类¥0.5/百万 Token
Llama 3.2 3B3B6GB通用对话¥1/百万 Token
Qwen2.5 7B7B14GB中文对话、代码¥2/百万 Token
Qwen2.5 14B14B28GB高质量中文¥5/百万 Token
DeepSeek V3671B MoE多卡顶级推理¥10/百万 Token

私有模型(用户自己的):

  • 用户上传 GGUF/SafeTensors 模型
  • 或基于预置模型做 LoRA 微调
  • 部署为独享推理实例
  • 按 GPU 时长计费

3.3 模型微调(训练服务)

用户流程:

1. 选择基座模型(如 Qwen2.5 7B)
2. 上传训练数据集(JSONL 格式,每行一个对话)
3. 配置训练参数(epochs、learning_rate、LoRA rank)
4. 提交训练任务 → 等待完成
5. 查看训练指标(loss 曲线、评估结果)
6. 一键部署为推理服务

数据集格式(兼容 OpenAI fine-tuning):

{"messages":[{"role":"system","content":"你是客服助手"},{"role":"user","content":"退货流程是什么?"},{"role":"assistant","content":"退货流程如下:..."}]}
{"messages":[{"role":"user","content":"发票怎么开?"},{"role":"assistant","content":"开票步骤:..."}]}

功能清单:

功能说明优先级
数据集上传支持 JSONL、CSV、JSONP0
数据集预览前 N 条预览 + 统计(条数、Token 分布)P1
数据校验格式检查、Token 长度检查、异常检测P1
LoRA 微调参数高效微调,只训练少量参数P0
全量微调需大显存,按需开放P2
训练监控实时 loss 曲线、ETAP0
Checkpoint 管理自动保存、断点续训P1
评估自动在验证集上评估P1
一键部署训练完直接变成推理服务P0

3.4 租户与认证

租户体系:

组织 (Organization)
  ├── 成员 (Member) — 管理员/开发者/只读
  ├── API Key — 多个,可设置权限和有效期
  ├── 预算上限 — 月度消费上限
  └── 项目 (Project) — 隔离不同业务的用量统计

认证方式:

方式场景实现
API Key (Bearer Token)API 调用Authorization: Bearer sk-xxxx
用户名/密码 + JWTWeb 控制台登录 → JWT → 后续请求带 Token
OAuth2第三方登录GitHub/Google/微信

API Key 设计:

格式: sk-{org_id_prefix}{random_32_chars}
示例: sk-a1b2c3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

属性:
  - name: "生产环境 Key"
  - permissions: ["chat", "embeddings"]  (不含 "fine-tune")
  - rate_limit: 100 RPM
  - expires_at: 2027-01-01
  - last_used_at: 2026-04-09

3.5 计费系统

计费模型:

计费方式适用计算方式
Token 计量推理 APIinput_tokens × 单价 + output_tokens × 单价
GPU 时长训练/微调GPU型号 × 时长(秒) × 单价
存储数据集/模型GB × 天 × 单价
独享实例私有部署GPU型号 × 实例数 × 时长

Token 计量细节:

每次 API 调用:
  prompt_tokens = tokenize(messages) 的 Token 数
  completion_tokens = 生成文本的 Token 数
  total_tokens = prompt + completion
  cost = prompt_tokens * input_price + completion_tokens * output_price

示例 (Qwen2.5 7B):
  input_price  = ¥0.002 / 1K tokens
  output_price = ¥0.006 / 1K tokens
  
  一次对话 (prompt=500 tokens, completion=200 tokens):
  cost = 500 * 0.002/1000 + 200 * 0.006/1000 = ¥0.0022

账户体系:

充值方式:
  - 在线支付(支付宝/微信/Stripe)
  - 企业转账
  - 赠送额度(新用户)

余额管理:
  - 预付费:余额不足时拒绝请求(返回 402 Payment Required)
  - 后付费(企业客户):月底结算
  - 用量告警:余额低于阈值时邮件/Webhook 通知

账单:

2026 年 4 月账单 — 组织: AcmeCorp
────────────────────────────────────
推理消耗:
  Qwen2.5 7B:  1,250,000 input tokens × ¥0.002/1K = ¥2.50
                  380,000 output tokens × ¥0.006/1K = ¥2.28
  Llama 3.2 3B:  500,000 input tokens × ¥0.001/1K = ¥0.50
                  150,000 output tokens × ¥0.003/1K = ¥0.45

训练消耗:
  LoRA 微调 Qwen2.5 7B: A10 × 2.5小时 × ¥5/小时 = ¥12.50

存储:
  数据集 2.3GB × 30天 × ¥0.01/GB/天 = ¥0.69
  模型 4.1GB × 30天 × ¥0.01/GB/天 = ¥1.23

总计: ¥20.15
────────────────────────────────────

3.6 资源管理(运维视角)

GPU 资源池:

节点GPU 型号显存状态分配给
gpu-01A10 24G × 248GB在用租户A 推理 + 租户B 微调
gpu-02A100 80G × 4320GB在用平台公共推理池
gpu-03A100 80G × 4320GB空闲—
gpu-04H100 80G × 8640GB在用大模型训练

调度策略:

策略说明
推理共享池多租户共享 GPU,按请求路由,利用率高
推理独享企业客户独占 GPU 实例,保证延迟 SLA
训练队列FIFO 排队,高优先级客户插队
GPU 型号匹配小模型用 A10,大模型用 A100/H100
显存装箱一张 A100 80G 可以同时跑 7B + 7B 两个模型

四、技术架构

4.1 整体架构

┌─────────────────────────────────────────────────────────────┐
│                        客户端层                               │
│   Web 控制台 (React/Vue)  │  CLI Tool  │  SDK (Python/Go)   │
└────────────────────────────┬────────────────────────────────┘
                             │ HTTPS
┌────────────────────────────▼────────────────────────────────┐
│                      API Gateway (Go)                        │
│  认证 → 租户识别 → 限流 → Token计量 → 路由 → 日志            │
│  兼容 OpenAI 协议: /v1/chat/completions                      │
└──┬──────────┬──────────┬──────────┬──────────┬──────────────┘
   │          │          │          │          │
   ▼          ▼          ▼          ▼          ▼
┌──────┐ ┌───────┐ ┌────────┐ ┌────────┐ ┌─────────┐
│ 用户  │ │ 计费   │ │ 模型   │ │ 训练   │ │ 数据集  │
│ 服务  │ │ 服务   │ │ 服务   │ │ 服务   │ │ 服务    │
│ (Go) │ │ (Go)  │ │ (Go)  │ │ (Go)  │ │ (Go)   │
└──┬───┘ └──┬────┘ └──┬─────┘ └──┬─────┘ └──┬──────┘
   │        │         │          │           │
   ▼        ▼         ▼          ▼           ▼
┌──────────────────────────────────────────────────────────┐
│                    PostgreSQL (元数据)                      │
│  users, orgs, api_keys, billing, models, datasets, jobs  │
└──────────────────────────────────────────────────────────┘
   │
   ▼
┌──────────────────────────────────────────────────────────┐
│                K8s 集群 (调度与执行)                        │
│                                                           │
│  ┌─────────────────┐  ┌──────────────────┐               │
│  │ 推理 Operator    │  │ 训练 Operator     │               │
│  │ InferenceService │  │ TrainingJob CRD  │               │
│  │ → Deployment     │  │ → Job + GPU      │               │
│  │ → Service        │  │ → Checkpoint     │               │
│  │ → HPA            │  │ → 断点续训        │               │
│  └─────────────────┘  └──────────────────┘               │
│                                                           │
│  ┌─────────────────────────────────────────────────────┐ │
│  │ GPU 节点池                                           │ │
│  │ A10 × N  │  A100 × N  │  H100 × N                  │ │
│  └─────────────────────────────────────────────────────┘ │
│                                                           │
│  ┌──────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│  │ Harbor   │ │ NFS/S3    │ │Prometheus │ │ Loki      │ │
│  │ 镜像仓库 │ │ 模型/数据 │ │ 监控       │ │ 日志      │ │
│  └──────────┘ └───────────┘ └───────────┘ └───────────┘ │
└──────────────────────────────────────────────────────────┘

4.2 服务拆分

服务职责数据K8s 部署
api-gateway认证、限流、路由、Token 计量Redis (限流计数)Deployment + Ingress
user-service用户/组织/API Key/权限PostgreSQLDeployment
billing-service余额/扣费/账单/套餐PostgreSQL + RedisDeployment
model-service模型注册/部署/下线PostgreSQL + S3(模型文件)Deployment
training-service训练任务/数据集/评估PostgreSQL + S3(数据)Deployment
inference-operator管理推理 DeploymentK8s APIDeployment (Operator)
training-operator管理训练 JobK8s APIDeployment (Operator)

4.3 核心数据模型

-- 组织
CREATE TABLE organizations (
    id          UUID PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    plan        VARCHAR(20) DEFAULT 'free',  -- free/pro/enterprise
    balance     DECIMAL(12,4) DEFAULT 0,     -- 账户余额(元)
    created_at  TIMESTAMP DEFAULT NOW()
);

-- 用户
CREATE TABLE users (
    id          UUID PRIMARY KEY,
    org_id      UUID REFERENCES organizations(id),
    email       VARCHAR(255) UNIQUE NOT NULL,
    role        VARCHAR(20) DEFAULT 'developer',  -- admin/developer/viewer
    password_hash VARCHAR(255),
    created_at  TIMESTAMP DEFAULT NOW()
);

-- API Key
CREATE TABLE api_keys (
    id          UUID PRIMARY KEY,
    org_id      UUID REFERENCES organizations(id),
    key_hash    VARCHAR(64) NOT NULL,  -- SHA256(sk-xxxx),不存明文
    key_prefix  VARCHAR(8) NOT NULL,   -- sk-a1b2 用于显示
    name        VARCHAR(100),
    permissions JSONB DEFAULT '["chat","embeddings"]',
    rate_limit  INT DEFAULT 60,        -- RPM
    expires_at  TIMESTAMP,
    last_used   TIMESTAMP,
    created_at  TIMESTAMP DEFAULT NOW()
);

-- 模型
CREATE TABLE models (
    id          UUID PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,  -- "qwen2.5-7b"
    display_name VARCHAR(200),          -- "通义千问 2.5 7B"
    type        VARCHAR(20),            -- "chat" / "embedding" / "completion"
    provider    VARCHAR(20),            -- "platform" / "user"
    org_id      UUID,                   -- NULL=平台模型, 非NULL=用户私有
    gpu_memory  INT,                    -- 推理需要的显存(MB)
    input_price  DECIMAL(10,6),         -- 元/千Token
    output_price DECIMAL(10,6),
    status      VARCHAR(20) DEFAULT 'active',
    config      JSONB,                  -- 模型特定配置
    created_at  TIMESTAMP DEFAULT NOW()
);

-- 使用记录(高频写入,按天分区)
CREATE TABLE usage_logs (
    id              BIGSERIAL,
    org_id          UUID NOT NULL,
    api_key_id      UUID,
    model_id        UUID NOT NULL,
    request_type    VARCHAR(20),        -- "chat" / "embedding" / "fine-tune"
    prompt_tokens   INT NOT NULL,
    completion_tokens INT DEFAULT 0,
    total_tokens    INT NOT NULL,
    cost            DECIMAL(10,6),      -- 本次消费(元)
    latency_ms      INT,
    created_at      TIMESTAMP DEFAULT NOW()
) PARTITION BY RANGE (created_at);

-- 训练任务
CREATE TABLE training_jobs (
    id          UUID PRIMARY KEY,
    org_id      UUID REFERENCES organizations(id),
    base_model  VARCHAR(100),           -- "qwen2.5-7b"
    dataset_id  UUID,
    method      VARCHAR(20),            -- "lora" / "full"
    config      JSONB,                  -- {"epochs":3, "lr":2e-5, "lora_rank":16}
    status      VARCHAR(20),            -- "queued"/"running"/"completed"/"failed"
    gpu_type    VARCHAR(20),            -- "A10" / "A100"
    gpu_hours   DECIMAL(8,2),
    cost        DECIMAL(10,4),
    output_model_id UUID,               -- 训练产出的模型
    started_at  TIMESTAMP,
    completed_at TIMESTAMP,
    created_at  TIMESTAMP DEFAULT NOW()
);

-- 数据集
CREATE TABLE datasets (
    id          UUID PRIMARY KEY,
    org_id      UUID REFERENCES organizations(id),
    name        VARCHAR(200),
    format      VARCHAR(20),            -- "jsonl" / "csv"
    file_path   VARCHAR(500),           -- S3/NFS 路径
    size_bytes  BIGINT,
    num_samples INT,
    token_stats JSONB,                  -- {"avg":256, "max":2048, "total":512000}
    status      VARCHAR(20) DEFAULT 'uploaded',
    created_at  TIMESTAMP DEFAULT NOW()
);

4.4 Token 计量流程(关键路径)

用户请求 → API Gateway
  │
  ├── 1. 验证 API Key (Redis 缓存 Key→Org 映射)
  ├── 2. 检查余额 (Redis 缓存,异步刷新到 DB)
  ├── 3. 检查限流 (Redis 滑动窗口)
  │
  ├── 4. 转发到推理服务
  │      ├── 计算 prompt_tokens (tokenizer)
  │      ├── 模型推理
  │      └── 计算 completion_tokens
  │
  ├── 5. 扣费 (异步写入 usage_logs + 更新余额)
  │      └── Redis DECRBY balance → 定期批量同步到 PostgreSQL
  │
  └── 6. 返回响应 (含 usage 字段)
         {
           "usage": {
             "prompt_tokens": 52,
             "completion_tokens": 128,
             "total_tokens": 180
           }
         }

为什么余额用 Redis? 每次 API 调用都要检查和扣减余额。如果每次都写 PostgreSQL,高并发下数据库扛不住。Redis 做实时扣减,定期(如每分钟)批量同步到 PostgreSQL。

风险控制: Redis 挂了怎么办?

  • 方案 A:拒绝请求(安全但影响可用性)
  • 方案 B:降级为只检查 PostgreSQL 缓存的最近余额(有超额风险但保可用)
  • 生产推荐:Redis Sentinel/Cluster 做高可用

4.5 推理服务架构

共享推理池(低成本,适合小用户):
  ┌──────────────────────────────┐
  │ Deployment: qwen25-7b-pool   │
  │ Replicas: 3 (自动伸缩 1-10) │
  │ 每个 Pod: 1 × A10 GPU       │
  │ 服务所有租户的 qwen2.5-7b 请求│
  └──────────────────────────────┘

独享推理实例(高 SLA,适合企业客户):
  ┌──────────────────────────────┐
  │ Deployment: acmecorp-qwen7b  │
  │ Replicas: 2                  │
  │ 只服务 AcmeCorp 的请求       │
  │ 保证延迟 SLA: P95 < 500ms   │
  └──────────────────────────────┘

4.6 CRD 设计

# 推理服务 CRD
apiVersion: ai.platform.io/v1
kind: InferenceService
metadata:
  name: qwen25-7b-shared
spec:
  model: qwen2.5-7b
  runtime: vllm           # vLLM / TGI / llama.cpp
  gpu:
    type: A10
    count: 1
    memory: 24Gi
  scaling:
    minReplicas: 1
    maxReplicas: 10
    targetConcurrency: 8  # 每 Pod 8 并发时扩容
  tenantMode: shared       # shared / dedicated
  dedicatedTo: ""          # 独享时填 org_id

---
# 训练任务 CRD
apiVersion: ai.platform.io/v1
kind: TrainingJob
metadata:
  name: acmecorp-finetune-001
spec:
  baseModel: qwen2.5-7b
  method: lora
  dataset: s3://datasets/acmecorp/customer-service.jsonl
  config:
    epochs: 3
    learningRate: "2e-5"
    loraRank: 16
    batchSize: 4
  gpu:
    type: A100
    count: 1
  checkpoint:
    enabled: true
    interval: 500steps
    path: s3://checkpoints/acmecorp-finetune-001/
  outputModel: acmecorp-cs-v1

五、API 设计

5.1 推理 API(兼容 OpenAI)

POST /v1/chat/completions      对话补全
POST /v1/completions           文本补全
POST /v1/embeddings            向量化
GET  /v1/models                模型列表

5.2 平台管理 API

# 认证
POST /api/v1/auth/register     注册
POST /api/v1/auth/login        登录 → JWT
POST /api/v1/auth/refresh      刷新 Token

# API Key 管理
GET    /api/v1/keys            列出 API Key
POST   /api/v1/keys            创建 API Key
DELETE /api/v1/keys/:id        删除 API Key

# 用量与计费
GET  /api/v1/usage             用量统计(按时间、模型、Key 筛选)
GET  /api/v1/billing/balance   余额查询
POST /api/v1/billing/recharge  充值
GET  /api/v1/billing/invoices  账单列表

# 模型管理
GET  /api/v1/models            可用模型列表
POST /api/v1/models/deploy     部署私有模型

# 微调训练
POST /api/v1/fine-tuning/jobs          创建微调任务
GET  /api/v1/fine-tuning/jobs          列出任务
GET  /api/v1/fine-tuning/jobs/:id      任务详情
DELETE /api/v1/fine-tuning/jobs/:id    取消任务

# 数据集
POST /api/v1/datasets          上传数据集
GET  /api/v1/datasets          列出数据集
GET  /api/v1/datasets/:id      数据集详情
DELETE /api/v1/datasets/:id    删除数据集

六、部署架构

6.1 K8s Namespace 划分

system/           → 平台服务(Gateway, User, Billing, ...)
inference-shared/ → 共享推理池
inference-{org}/  → 独享推理实例(每个企业一个 NS)
training/         → 训练任务
monitoring/       → 监控(已有)
storage/          → 存储服务(MinIO/PostgreSQL/Redis)

6.2 节点分组

平台节点(无 GPU):
  → 平台服务、数据库、监控

推理节点(有 GPU):
  label: node-type=inference
  taint: nvidia.com/gpu=true:NoSchedule
  → 只跑推理 Pod

训练节点(有 GPU,大显存):
  label: node-type=training
  taint: nvidia.com/gpu=true:NoSchedule
  → 只跑训练 Job

弹性节点:
  → 推理/训练都可调度,按需分配

七、分阶段实施路线

Phase 1: MVP(最小可用产品)— 4 周

目标: 一个人注册→充值→调 API→扣费 的闭环跑通

周做什么产出
W1用户服务 + API Key + PostgreSQL注册/登录/创建 Key
W2API Gateway + Token 计量 + 计费调 API 能扣钱
W3推理服务(llama.cpp CPU)真实对话能力
W4控制台前端 MVP用量看板 + Key 管理

可用但简陋: 单模型、无微调、无独享、CPU 推理

Phase 2: 核心能力 — 4 周

做什么产出
多模型支持模型注册、动态路由
推理 Operator自动部署/伸缩推理服务
GPU 推理接入 GPU 节点,vLLM 推理
流式输出SSE 流式返回
充值系统支付宝/微信/Stripe

Phase 3: 训练平台 — 4 周

做什么产出
数据集管理上传/校验/预览
训练 OperatorLoRA 微调 Job 管理
Checkpoint 管理断点续训、模型版本
训练监控实时 loss 曲线
一键部署微调模型 → 推理服务

Phase 4: 商业化 — 4 周

做什么产出
独享实例企业客户专属推理
SLA 保障延迟监控、可用性报表
多集群跨地域 GPU 调度
模型市场公开/私有模型交易
企业功能SSO、审计日志、合规

八、成本估算(参考)

GPU 服务器成本

GPU月租(国内)月租(海外)推理能力
A10 24G¥2,000-3,000$200-4007B 模型 ~30 token/s
A100 40G¥5,000-8,000$800-1,50070B 模型 ~15 token/s
A100 80G¥8,000-12,000$1,500-2,500支持更大模型
H100 80G¥15,000-25,000$2,500-4,000顶级性能

盈利模型

收入 = API 调用收入 + 训练收入 + 存储收入 + 独享实例收入
成本 = GPU 服务器 + 网络/存储 + 开发运维人力

毛利率参考(行业):
  - 共享推理: 60-80% 毛利(GPU 利用率高)
  - 独享实例: 30-50% 毛利(利用率由客户决定)
  - 训练任务: 50-70% 毛利(突发性高,GPU 可复用)

九、与现有 K8s Lab 的关系

我们已经搭建的:

  • ✅ K8s 集群(5 节点)
  • ✅ NFS 动态存储
  • ✅ Harbor 镜像仓库
  • ✅ Prometheus + Grafana 监控
  • ✅ ArgoCD GitOps
  • ✅ ML Operator (MLModel CRD)
  • ✅ 真实模型训练+推理管线

还需要新建的:

  • ❏ PostgreSQL(租户/计费元数据)
  • ❏ Redis(限流/余额缓存)
  • ❏ API Gateway(Go)
  • ❏ 用户/计费/模型/训练服务(Go)
  • ❏ 推理运行时(llama.cpp/vLLM)
  • ❏ 前端控制台
  • ❏ GPU 节点(租用)

核心代码全部用 Go 实现。 前端看需求再定技术栈。