YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

HOS Model Optimizer

HOS Model Optimizer 是一个面向小模型(0.5B-7B 参数)的完整优化工具链,针对 8GB VRAM 场景进行了深度优化。

项目介绍

本项目提供从模型量化、推理加速、微调到一键部署的全流程解决方案,帮助开发者在有限硬件资源下高效运行大语言模型。

核心特性

  • 多种量化方案:支持 GGUF、AWQ、GPTQ 三种主流量化格式
  • 三后端推理引擎:llama-cpp-python、vLLM、SGLang,自动选择最优后端
  • 低资源微调:QLoRA/LoRA 微调,8GB VRAM 即可训练 7B 模型
  • 一键部署:自动检测硬件并选择最优配置,快速启动 API 服务
  • 智能配置:根据场景自动生成 8GB VRAM 最优配置

核心功能列表

功能模块 说明 命令行工具
量化 GGUF/AWQ/GPTQ 量化、PPL 评估、格式转换 hos-quantize
推理 三后端统一接口、API 服务、交互模式、性能基准测试 hos-infer
训练 QLoRA/LoRA 微调、数据集处理、模型合并 hos-train
部署 硬件检测、自动配置、一键启动 API 服务 hos-deploy
配置 最优配置生成、配置验证、模板管理 hos-config

快速开始

安装

# 基础安装
pip install -e .

# 安装全部依赖
pip install -e ".[all]"

# 按需安装
pip install -e ".[quantization]"   # 量化相关
pip install -e ".[inference]"      # llama-cpp 推理
pip install -e ".[vllm]"           # vLLM 推理
pip install -e ".[sglang]"         # SGLang 推理
pip install -e ".[training]"       # 训练加速

5 分钟上手

# 1. 量化模型(GGUF Q4_K_M)
hos-quantize --method gguf --model ./model --output ./model.gguf

# 2. 推理测试
hos-infer --model ./model.gguf --prompt "你好,请介绍一下自己"

# 3. 启动 API 服务
hos-infer --model ./model.gguf --serve --port 8000

# 4. 一键部署(自动检测硬件并选择最优配置)
hos-deploy --model ./model.gguf --model-size 7.0

# 5. 生成 8GB VRAM 最优配置
hos-config --generate --scenario inference_7b --model-path ./model

安装说明

系统要求

  • Python >= 3.8
  • CUDA >= 11.8(GPU 加速需要)
  • 推荐 8GB+ VRAM(针对 8GB 场景优化)

安装方式

# 从源码安装
git clone https://github.com/hos-team/hos-model-optimizer.git
cd HOS-Model-Optimizer
pip install -e .

# 安装可选依赖
pip install -e ".[all]"

详细安装指南请参考 INSTALL.md

使用示例

量化

# GGUF 量化(推荐 8GB VRAM 场景)
hos-quantize --method gguf --model ./model --output ./model.gguf --quant-type Q4_K_M

# AWQ 4-bit 量化
hos-quantize --method awq --bits 4 --model ./model --output ./model-awq

# GPTQ 量化
hos-quantize --method gptq --bits 4 --model ./model --output ./model-gptq

# 评估量化质量(PPL)
hos-quantize --method evaluate --model ./model-awq

推理

# 自动选择后端,单次推理
hos-infer --model ./model --prompt "什么是SQL注入?"

# 指定 vLLM 后端,启动 API 服务
hos-infer --backend vllm --model ./model --serve --port 8000

# 交互模式
hos-infer --model ./model --chat

# 性能基准测试
hos-infer --model ./model --benchmark

训练

# QLoRA 微调(8GB VRAM 可用)
hos-train --model Qwen/Qwen2.5-0.5B --dataset ./data.json --method qlora

# LoRA 微调并自动合并
hos-train --model ./model --dataset ./data.json --method lora --merge

# 自定义训练参数
hos-train --model ./model --dataset ./data.json \
    --epochs 3 --batch-size 2 --lr 2e-4 \
    --lora-rank 16 --lora-alpha 32

部署

# 部署 7B 模型
hos-deploy --model ./model.gguf --model-size 7.0

# 高并发场景
hos-deploy --model ./model.gguf --model-size 7.0 --use-case high_concurrency

# 多轮对话场景
hos-deploy --model ./model.gguf --model-size 7.0 --use-case multi_turn

更多示例请参考 EXAMPLES.md

配置说明

配置文件格式

配置文件使用 YAML 格式,支持以下场景模板:

模板名称 说明
llama_cpp llama-cpp 推理配置
vllm vLLM 推理配置
sglang SGLang 推理配置
quantize 量化配置
training 训练配置
deploy 部署配置

生成最优配置

# 根据场景生成
hos-config --generate --scenario inference_7b --model-path ./model

# 自动生成(根据模型大小和任务类型)
hos-config --auto --model-size 7.0 --task inference

# 验证配置文件
hos-config --validate --config my_config.yaml

# 列出所有模板
hos-config --list-templates

# 导出模板
hos-config --export-template llama_cpp --output ./llama_cpp.yaml

8GB VRAM 场景预设

场景 推荐后端 预期性能
inference_0.8b llama-cpp 100+ tokens/s, 1-2GB VRAM
inference_7b llama-cpp 35-45 tokens/s, 5-6GB VRAM
training_0.8b QLoRA 2-3GB VRAM
training_7b QLoRA 6-8GB VRAM
high_throughput_serving vLLM 高吞吐服务
multi_turn_dialogue SGLang 多轮对话优化

性能优化建议

推理优化

  1. 选择合适的量化格式

    • GGUF Q4_K_M:8GB VRAM 首选,平衡速度和精度
    • AWQ 4-bit:vLLM 后端首选,精度损失最小
    • GPTQ 4-bit:通用性好,兼容性强
  2. 调整上下文长度

    • 8GB VRAM + 7B 模型:建议 n_ctx=512max_model_len=512
    • 8GB VRAM + 0.8B 模型:可使用 n_ctx=2048
  3. GPU Offload 策略

    • llama-cpp:设置 n_gpu_layers=-1 全部 offload 到 GPU
    • 如果 OOM,逐步减少 offload 层数
  4. 批处理优化

    • vLLM:利用 Continuous Batching,设置合理的 max_num_seqs
    • SGLang:利用 RadixAttention,多轮对话可加速 3-5x

训练优化

  1. 使用 QLoRA:4-bit 量化 + LoRA,大幅降低显存需求
  2. 梯度检查点:启用 gradient_checkpointing=True
  3. 梯度累积:使用 gradient_accumulation_steps 模拟大批次
  4. Unsloth 加速:安装 unsloth 可获得 2x 训练加速

部署优化

  1. 自动配置:使用 hos-deploy 自动检测硬件并选择最优配置
  2. 健康检查:部署后自动执行健康检查确保服务正常
  3. 监控显存:使用 VRAMCallback 监控训练过程中的显存使用

项目结构

HOS-Model-Optimizer/
├── hos_optimizer/
│   ├── __init__.py          # 包初始化,导出主要类
│   ├── cli.py               # 统一命令行接口
│   ├── config.py            # 配置管理和优化
│   ├── quantize.py          # 量化模块(GGUF/AWQ/GPTQ)
│   ├── inference.py         # 推理模块(llama-cpp/vLLM/SGLang)
│   ├── train.py             # 训练模块(QLoRA/LoRA)
│   ├── deploy.py            # 部署模块(硬件检测/自动配置)
│   └── utils.py             # 工具函数
├── docs/
│   └── architecture.md      # 架构文档
├── pyproject.toml           # 项目配置
├── requirements.txt         # 依赖列表
├── setup.py                 # 安装脚本
├── LICENSE                  # MIT 许可证
├── README.md                # 项目主文档(本文件)
├── INSTALL.md               # 安装指南
├── EXAMPLES.md              # 使用示例
└── API.md                   # API 文档

贡献指南

欢迎贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

开发规范

  • 代码风格遵循 PEP 8,使用 black 格式化(行宽 100)
  • 提交前运行 flake8 检查
  • 新功能需要附带测试用例
  • Commit message 使用语义化格式
# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest

# 代码格式化
black hos_optimizer/

# 代码检查
flake8 hos_optimizer/

许可证

本项目基于 MIT License 开源。

MIT License

Copyright (c) 2026 HOS Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

相关链接

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support