HiHuo
首页
博客
手册
工具
关于
首页
博客
手册
工具
关于
  • AI 训练手册

    • AI UI生成系统 - 完整学习手册
    • 项目概述与架构设计
    • 环境搭建与快速开始
    • 核心概念与术语
    • 数据生成系统
    • UI-DSL数据格式详解
    • 数据质量与评估
    • LoRA微调技术
    • 完整的模型训练流程
    • 模型推理与优化
    • PNG图片渲染实现
    • Vue页面渲染系统
    • 多主题支持架构
    • FastAPI服务设计
    • Docker部署实践
    • 生产环境运维
    • 项目实战案例
    • 性能优化指南
    • 扩展开发指南
    • API参考文档
    • 配置参数说明
    • 故障排查指南

配置参数说明

1. 配置文件概述

1.1 配置文件结构

AI UI生成系统使用多个配置文件来管理不同模块的参数:

config/
├── model_config.yaml      # 模型和训练配置
├── ui_tokens.json         # UI主题和组件配置
└── nginx.conf            # Nginx配置(可选)

1.2 配置优先级

配置参数的优先级从高到低:

  1. 环境变量 - 最高优先级
  2. 命令行参数 - 次高优先级
  3. 配置文件 - 中等优先级
  4. 默认值 - 最低优先级

1.3 配置验证

系统启动时会自动验证配置参数的有效性,无效参数会导致启动失败并显示详细错误信息。

2. 模型配置详解

2.1 配置文件位置

文件路径: config/model_config.yaml

2.2 模型基础配置

# 模型配置
model:
  base_model: "google/flan-t5-base"  # 基础模型
  max_length: 512                    # 最大序列长度
  temperature: 0.7                   # 生成温度
  top_p: 0.9                        # 核采样参数
  top_k: 50                         # Top-K采样

参数详解

参数类型默认值取值范围描述
base_modelstring"google/flan-t5-base"有效的HuggingFace模型ID基础语言模型名称
max_lengthint51264-2048输入和输出的最大序列长度
temperaturefloat0.70.0-2.0控制生成文本的随机性,值越高越随机
top_pfloat0.90.0-1.0核采样参数,控制词汇选择的多样性
top_kint501-1000Top-K采样,限制候选词汇数量

推荐配置

开发环境:

model:
  base_model: "google/flan-t5-small"  # 使用小模型,加载更快
  max_length: 256                     # 减少内存使用
  temperature: 0.8                    # 增加创造性

生产环境:

model:
  base_model: "google/flan-t5-base"   # 使用基础模型,平衡性能和质量
  max_length: 512                     # 标准长度
  temperature: 0.7                    # 平衡创造性和一致性

2.3 LoRA配置

# LoRA配置
lora:
  r: 16                             # LoRA秩
  lora_alpha: 32                    # LoRA缩放参数
  lora_dropout: 0.1                 # LoRA dropout
  target_modules: ["q", "v"]        # 目标模块

参数详解

参数类型默认值取值范围描述
rint161-64LoRA的秩,控制参数量,值越大参数量越多
lora_alphaint321-128LoRA缩放参数,通常设为r的2倍
lora_dropoutfloat0.10.0-0.5Dropout率,防止过拟合
target_moduleslist["q", "v"]模型中的模块名列表应用LoRA的目标模块

推荐配置

快速训练:

lora:
  r: 8                              # 较小的秩
  lora_alpha: 16                    # 对应的alpha
  lora_dropout: 0.05                # 较小的dropout
  target_modules: ["q", "v"]        # 只针对注意力层

高质量训练:

lora:
  r: 32                             # 较大的秩
  lora_alpha: 64                    # 对应的alpha
  lora_dropout: 0.1                 # 标准dropout
  target_modules: ["q", "v", "k", "o"]  # 针对更多模块

2.4 训练配置

# 训练配置
training:
  learning_rate: 2e-4               # 学习率
  batch_size: 4                     # 批次大小
  gradient_accumulation_steps: 4    # 梯度累积步数
  num_epochs: 3                     # 训练轮数
  warmup_steps: 100                 # 预热步数
  max_grad_norm: 1.0                # 梯度裁剪
  fp16: true                        # 半精度训练
  dataloader_num_workers: 4         # 数据加载器工作进程数

参数详解

参数类型默认值取值范围描述
learning_ratefloat2e-41e-6-1e-2学习率,控制参数更新步长
batch_sizeint41-32批次大小,根据GPU内存调整
gradient_accumulation_stepsint41-16梯度累积步数,模拟更大的批次
num_epochsint31-20训练轮数,完整遍历数据集的次数
warmup_stepsint1000-1000预热步数,学习率从0逐渐增加到设定值
max_grad_normfloat1.00.1-10.0梯度裁剪阈值,防止梯度爆炸
fp16booltruetrue/false是否使用半精度训练,节省内存
dataloader_num_workersint40-16数据加载器工作进程数

推荐配置

GPU内存 < 8GB:

training:
  batch_size: 2                     # 小批次
  gradient_accumulation_steps: 8    # 增加累积步数
  fp16: true                        # 启用半精度
  dataloader_num_workers: 2         # 减少工作进程

GPU内存 >= 16GB:

training:
  batch_size: 8                     # 大批次
  gradient_accumulation_steps: 2    # 减少累积步数
  fp16: true                        # 启用半精度
  dataloader_num_workers: 8         # 增加工作进程

2.5 数据配置

# 数据配置
data:
  train_split: 0.8                  # 训练集比例
  val_split: 0.1                    # 验证集比例
  test_split: 0.1                   # 测试集比例
  max_samples: 10000                # 最大样本数

参数详解

参数类型默认值取值范围描述
train_splitfloat0.80.5-0.9训练集占总数据的比例
val_splitfloat0.10.05-0.2验证集占总数据的比例
test_splitfloat0.10.05-0.2测试集占总数据的比例
max_samplesint10000100-1000000最大样本数,用于限制数据集大小

2.6 UI配置

# UI配置
ui:
  themes:
    - "obsidian-gold"               # 黑金主题
    - "silver-white"                # 白银主题
    - "minimal"                     # 简约主题
  
  page_types:
    - "home"                        # 首页
    - "detail"                      # 详情页
    - "search"                      # 搜索页
    - "profile"                     # 个人页
    - "publish"                     # 发布页

2.7 渲染配置

# 渲染配置
render:
  image:
    width: 375                      # 图片宽度
    height: 812                     # 图片高度
    dpi: 72                         # 图片DPI
  
  vue:
    framework: "uniapp"             # Vue框架
    components_path: "components"   # 组件路径

参数详解

参数类型默认值取值范围描述
widthint375200-800生成图片的宽度(像素)
heightint812400-2000生成图片的高度(像素)
dpiint7272-300图片分辨率,影响图片质量
frameworkstring"uniapp"支持的框架名Vue框架类型
components_pathstring"components"有效路径组件文件路径

2.8 API配置

# API配置
api:
  host: "0.0.0.0"                  # API主机
  port: 8000                       # API端口
  workers: 1                       # 工作进程数
  timeout: 300                     # 请求超时时间

参数详解

参数类型默认值取值范围描述
hoststring"0.0.0.0"有效IP地址API服务绑定的主机地址
portint80001024-65535API服务端口号
workersint11-32工作进程数,建议设为CPU核心数
timeoutint30030-3600请求超时时间(秒)

2.9 日志配置

# 日志配置
logging:
  level: "INFO"                    # 日志级别
  format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
  file: "logs/ai-ui-system.log"    # 日志文件路径

参数详解

参数类型默认值可选值描述
levelstring"INFO"DEBUG, INFO, WARNING, ERROR, CRITICAL日志记录级别
formatstring默认格式自定义格式字符串日志输出格式
filestring"logs/ai-ui-system.log"有效文件路径日志文件保存路径

3. UI令牌配置详解

3.1 配置文件位置

文件路径: config/ui_tokens.json

3.2 主题配置结构

{
  "themes": {
    "theme_name": {
      "name": "主题显示名称",
      "colors": { ... },
      "typography": { ... },
      "spacing": { ... },
      "border_radius": { ... },
      "shadows": { ... }
    }
  }
}

3.3 颜色配置

"colors": {
  "primary": "#FFD700",           // 主色调
  "secondary": "#B8860B",         // 辅助色
  "background": "#0E0E0E",        // 背景色
  "surface": "#1A1A1A",           // 表面色
  "text": "#FFFFFF",              // 主文本色
  "text_secondary": "#CCCCCC",    // 次要文本色
  "border": "#333333",            // 边框色
  "accent": "#FF6B35",            // 强调色
  "success": "#4CAF50",           // 成功色
  "warning": "#FF9800",           // 警告色
  "error": "#F44336"              // 错误色
}

颜色参数说明

参数描述使用场景
primary主色调按钮、链接、重要元素
secondary辅助色次要按钮、装饰元素
background背景色页面主背景
surface表面色卡片、面板背景
text主文本色标题、正文
text_secondary次要文本色说明文字、标签
border边框色边框、分割线
accent强调色高亮、特殊标记
success成功色成功状态、确认
warning警告色警告信息、注意
error错误色错误信息、删除

3.4 字体配置

"typography": {
  "font_family": "PingFang SC, -apple-system, BlinkMacSystemFont, sans-serif",
  "font_size": {
    "xs": "12px",     // 极小字体
    "sm": "14px",     // 小字体
    "base": "16px",   // 基础字体
    "lg": "18px",     // 大字体
    "xl": "20px",     // 超大字体
    "2xl": "24px",    // 2倍大字体
    "3xl": "30px"     // 3倍大字体
  },
  "font_weight": {
    "normal": "400",    // 正常粗细
    "medium": "500",    // 中等粗细
    "semibold": "600",  // 半粗体
    "bold": "700"       // 粗体
  }
}

3.5 间距配置

"spacing": {
  "xs": "4px",      // 极小间距
  "sm": "8px",      // 小间距
  "md": "16px",     // 中等间距
  "lg": "24px",     // 大间距
  "xl": "32px",     // 超大间距
  "2xl": "48px"     // 2倍大间距
}

3.6 圆角配置

"border_radius": {
  "sm": "4px",      // 小圆角
  "md": "8px",      // 中等圆角
  "lg": "12px",     // 大圆角
  "xl": "16px",     // 超大圆角
  "full": "50%"     // 完全圆角
}

3.7 阴影配置

"shadows": {
  "sm": "0 1px 2px rgba(0, 0, 0, 0.1)",      // 小阴影
  "md": "0 4px 6px rgba(0, 0, 0, 0.1)",      // 中等阴影
  "lg": "0 10px 15px rgba(0, 0, 0, 0.1)",    // 大阴影
  "xl": "0 20px 25px rgba(0, 0, 0, 0.1)"     // 超大阴影
}

3.8 组件配置

"components": {
  "button": {
    "height": "44px",           // 按钮高度
    "min_width": "80px",        // 最小宽度
    "padding": "12px 24px",     // 内边距
    "border_radius": "8px",     // 圆角
    "font_weight": "500"        // 字体粗细
  },
  "card": {
    "padding": "16px",          // 卡片内边距
    "border_radius": "12px",    // 圆角
    "margin": "8px"             // 外边距
  },
  "input": {
    "height": "44px",           // 输入框高度
    "padding": "12px 16px",     // 内边距
    "border_radius": "8px",     // 圆角
    "border_width": "1px"       // 边框宽度
  }
}

4. 部署配置

4.1 Docker配置

文件路径: docker/Dockerfile

# 基础镜像
FROM python:3.10-slim

# 环境变量
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1

# 工作目录
WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制代码
COPY . .

# 创建用户
RUN groupadd -r appuser && useradd -r -g appuser appuser
USER appuser

# 暴露端口
EXPOSE 8000

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD curl -f http://localhost:8000/health || exit 1

# 启动命令
CMD ["python", "-m", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "8000"]

4.2 Docker Compose配置

文件路径: docker/docker-compose.yml

version: '3.8'

services:
  ai-ui-system:
    build:
      context: ..
      dockerfile: docker/Dockerfile
    container_name: ai-ui-system
    ports:
      - "8000:8000"
    volumes:
      - ../output:/app/output
      - ../models:/app/models
      - ../logs:/app/logs
      - ../config:/app/config
    environment:
      - PYTHONPATH=/app
      - CUDA_VISIBLE_DEVICES=0
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  redis:
    image: redis:7-alpine
    container_name: ai-ui-redis
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    restart: unless-stopped

  nginx:
    image: nginx:alpine
    container_name: ai-ui-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - ../output:/usr/share/nginx/html/output:ro
    depends_on:
      - ai-ui-system
    restart: unless-stopped

volumes:
  redis_data:

networks:
  default:
    driver: bridge

4.3 Nginx配置

文件路径: docker/nginx.conf

worker_processes auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 4096;
    use epoll;
    multi_accept on;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    
    # 日志格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log;
    
    # 基础配置
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    
    # Gzip压缩
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
    
    # 上游服务器
    upstream ai_ui_backend {
        server ai-ui-system:8000;
        keepalive 32;
    }
    
    server {
        listen 80;
        server_name localhost;
        
        # 静态文件
        location /static/ {
            alias /usr/share/nginx/html/output/;
            expires 1y;
            add_header Cache-Control "public, immutable";
        }
        
        # API请求
        location / {
            proxy_pass http://ai_ui_backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
        }
    }
}

5. 环境变量

5.1 系统环境变量

变量名默认值描述
PYTHONPATH/appPython模块搜索路径
PYTHONUNBUFFERED1禁用Python输出缓冲
PYTHONDONTWRITEBYTECODE1禁用Python字节码文件生成
CUDA_VISIBLE_DEVICES0可见的GPU设备ID

5.2 应用环境变量

变量名默认值描述
AI_UI_HOST0.0.0.0API服务主机地址
AI_UI_PORT8000API服务端口
AI_UI_WORKERS1工作进程数
AI_UI_LOG_LEVELINFO日志级别
AI_UI_MODEL_PATHgoogle/flan-t5-base模型路径
AI_UI_LORA_PATHnullLoRA权重路径

5.3 环境变量优先级

环境变量会覆盖配置文件中的相同参数:

export AI_UI_HOST=127.0.0.1
export AI_UI_PORT=9000
export AI_UI_LOG_LEVEL=DEBUG

# 启动服务
python api/main.py

6. 配置最佳实践

6.1 开发环境配置

目标: 快速开发和调试

# model_config.yaml
model:
  base_model: "google/flan-t5-small"  # 使用小模型
  max_length: 256                     # 减少内存使用
  temperature: 0.8                    # 增加创造性

training:
  batch_size: 2                       # 小批次
  num_epochs: 1                       # 快速训练
  fp16: true                          # 启用半精度

api:
  host: "127.0.0.1"                   # 本地访问
  port: 8000
  workers: 1                          # 单进程

logging:
  level: "DEBUG"                      # 详细日志

6.2 测试环境配置

目标: 接近生产环境的测试

# model_config.yaml
model:
  base_model: "google/flan-t5-base"   # 使用基础模型
  max_length: 512                     # 标准长度
  temperature: 0.7                    # 平衡设置

training:
  batch_size: 4                       # 中等批次
  num_epochs: 2                       # 适中训练
  fp16: true

api:
  host: "0.0.0.0"                     # 允许外部访问
  port: 8000
  workers: 2                          # 多进程

logging:
  level: "INFO"                       # 标准日志

6.3 生产环境配置

目标: 高性能和稳定性

# model_config.yaml
model:
  base_model: "google/flan-t5-base"   # 使用基础模型
  max_length: 512                     # 标准长度
  temperature: 0.7                    # 稳定设置

training:
  batch_size: 8                       # 大批次
  num_epochs: 3                       # 完整训练
  fp16: true
  dataloader_num_workers: 8           # 多进程数据加载

api:
  host: "0.0.0.0"                     # 允许外部访问
  port: 8000
  workers: 4                          # 多进程
  timeout: 300                        # 较长超时

logging:
  level: "WARNING"                    # 减少日志量
  file: "/var/log/ai-ui-system.log"  # 文件日志

6.4 安全配置建议

  1. API密钥认证:

    export AI_UI_API_KEY="your-secure-api-key"
    
  2. HTTPS配置:

    server {
        listen 443 ssl;
        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;
        # ... 其他配置
    }
    
  3. 防火墙配置:

    # 只允许必要端口
    ufw allow 80
    ufw allow 443
    ufw deny 8000  # 禁止直接访问API端口
    
  4. 资源限制:

    # docker-compose.yml
    services:
      ai-ui-system:
        deploy:
          resources:
            limits:
              memory: 8G
              cpus: '4.0'
    

6.5 性能优化配置

  1. GPU优化:

    training:
      fp16: true
      dataloader_num_workers: 8
    
    model:
      max_length: 512  # 根据GPU内存调整
    
  2. API优化:

    api:
      workers: 4  # 设为CPU核心数
      timeout: 300
    
    # nginx.conf
    worker_processes auto;
    worker_connections 4096;
    
  3. 缓存配置:

    # 启用Redis缓存
    redis:
      image: redis:7-alpine
      command: redis-server --maxmemory 1gb --maxmemory-policy allkeys-lru
    

通过以上配置参数说明,开发者可以根据具体需求灵活配置AI UI生成系统,实现最佳的性能和稳定性。

Prev
API参考文档
Next
故障排查指南