目录
目录README.md

Lycos Metric: LLM 推理性能与成本分析平台

🚀 Lycos Metric

AI 推理性能与成本分析的未来平台

LLM性能分析 亚秒级响应 精准预估 零配置


🎯 核心使命: 为机器学习工程师、AI研究人员和基础设施团队提供部署前的智能决策支持

解决痛点: 在复杂的硬件配置和并行策略下,精确预估LLM推理的性能指标显存占用运营成本

🏗️ 技术架构: 前后端分离 + Vue 3生态 + Go高性能后端 + Python AI工具链

Lycos Metric 是一款功能强大的分析工具,旨在精确预估大语言模型(LLM)在不同硬件配置和并行策略下的推理性能(延迟、吞吐量)显存占用运营成本。它为机器学习工程师、研究人员和基础设施团队提供强大的决策支持,帮助他们在模型部署前进行硬件选型、成本预算和性能优化。

项目采用前后端分离架构,前端基于 Vue 3 + Element Plus 提供现代化、交互友好的用户界面,后端由 Gin 驱动,结合经过验证的数学模型,提供高性能的计算与分析能力。

✨ 产品功能矩阵

🎪 沉浸式功能体验,让AI性能分析变得简单而精确

🧮 智能性能计算器

🎯 实时计算引擎
调整模型参数、业务需求和优化选项
动态展示不同并行策略的性能指标

⚡ 核心特性: 多维度参数调优 • 实时结果反馈 • 最优方案推荐

📊 多方案智能对比

🔍 横向对比分析
流水线并行 vs 张量并行组合
一目了然找到性能最优解

🚀 核心特性: 方案对比矩阵 • 性能差异可视化 • 决策建议输出

🌐 3D性能曲面探索

🎨 沉浸式可视化
ECharts-GL驱动的3D性能曲面
并发数×序列长度×性能的立体展示

🎪 核心特性: 3D交互体验 • 参数空间探索 • 性能热力图

🤖 AI模型智能管理

🔗 零配置模型接入
Hugging Face Hub自动拉取 • ONNX动态解析 • 多模态模型支持

🌟 核心特性: 自动模型发现 • 配置智能解析 • 版本管理追踪

💾 GPU硬件资源池

⚙️ 硬件参数中心
A100/H100/RTX系列全覆盖
性能基准数据库

🏆 核心特性: 硬件性能库 • 成本效益分析 • 选型智能推荐


🎯 为什么选择 Lycos Metric?

3D可视化 极速响应 智能分析 生态融合

🌟 核心功能

🎯 核心能力矩阵

🚀 极速性能预估

亚秒级精确计算每Token延迟与系统吞吐量
基于第一性原理的数学模型,误差控制在5%以内

💾 智能显存分析

三维显存分解:权重 + KV缓存 + 瞬时激活
提前预警OOM风险,避免部署失败

🧠 并行策略优化

TP/PP/DP多维度策略自动寻优
一键找到最佳硬件配置组合

💻 硬件性能对决

A100 vs H100 vs RTX4090 全方位PK
性价比量化分析,选择不再纠结

📊 沉浸式可视化

ECharts-GL驱动的3D性能曲面图
参数空间一览无余,洞察性能奥秘

🤖 AI模型智能识别

零配置对接Hugging Face生态
ONNX动态解析,多模态模型随心用

⚡ 超级并行计算

Goroutine工作池 + Channel调度
千级配置搜索,秒级返回结果

🔧 企业级配置管理

RESTful CRUD完整生命周期
模型库/GPU库统一管理平台


🎪 技术亮点展示

亚秒响应 5%误差 千级搜索 零配置

🛠️ 技术栈

🎨 前端技术

Vue.js TypeScript Vite Element Plus
ECharts Axios Vue Router

⚡ 后端技术

Go Gin GORM Python
Hugging Face ONNX

🗄️ 数据库

PostgreSQL SQLite


📊 技术栈详细说明
技术分类 技术栈 版本要求 用途说明
前端框架 Vue 3 ^3.0 响应式用户界面构建
类型安全 TypeScript ^4.0 静态类型检查与开发体验提升
构建工具 Vite ^4.0 快速开发服务器与优化构建
UI组件库 Element Plus ^2.0 企业级UI组件与设计规范
数据可视化 ECharts + ECharts-GL ^5.0 2D/3D图表渲染与性能分析
HTTP客户端 Axios ^1.0 API请求与响应处理
路由管理 Vue Router ^4.0 单页应用路由控制
后端语言 Go ≥1.18 高性能并发服务开发
Web框架 Gin ^1.9 RESTful API与中间件
ORM框架 GORM ^1.25 数据库操作与模型管理
AI生态 Python ≥3.8 模型配置获取与ONNX分析
模型工具 ONNX-Tool latest 动态模型架构解析
AI平台 Hugging Face latest 预训练模型配置获取
生产数据库 PostgreSQL ≥12.0 企业级关系型数据存储
开发数据库 SQLite ≥3.35 轻量级本地数据存储

🏗️ 系统架构

本项目采用前后端分离的设计思想,后端以 Go 和 Gin 框架为核心,通过 GORM 与数据库交互,并策略性地与外部 Python 脚本协同工作。

系统架构图

🚀 快速开始

1. 环境准备

  • Git
  • Go (版本 >= 1.18)
  • Python (版本 >= 3.8)
  • Node.js (v16+) 和 npm

2. 获取代码

克隆本仓库到本地:

git clone https://gitlink.org.cn/yBKo741JVC/mxdsldxjmpg.git

3. 后端设置与启动

  1. 克隆仓库

    git clone https://gitlink.org.cn/yBKo741JVC/mxdsldxjmpg.git
    cd backend-go
  2. 配置 Go 模块代理 (中国大陆用户推荐) 为了解决 Go 依赖包下载缓慢或失败的问题,请设置国内镜像。

    go env -w GOPROXY=https://goproxy.cn,direct
  3. 安装 Go 依赖

    go mod tidy
  4. 安装 Python 依赖

    这些库是动态获取模型配置和进行 ONNX 分析所必需的。

    pip install -r ./python_scripts/requirements.txt
  5. 启动服务

    go run main.go

    服务启动后,默认监听 8000 端口。控制台将输出日志,显示服务已成功运行。

4. 前端设置与启动

  1. 进入前端目录并安装依赖

    cd ../frontend # 假设前端代码在 frontend 目录
    npm install
  2. 启动前端开发服务器

    npm run dev

    服务启动后,根据命令行提示(通常是 http://localhost:5173)在浏览器中打开应用。

📐 核心数学公式

本分析器基于以下核心公式进行性能和资源预估。

符号 含义 符号 含义
L Transformer 层数 H 隐藏层维度
A 注意力头数 A_kv KV 头的数量
T_p 张量并行大小 P_p 流水线并行大小
B 单 GPU 批量大小 S 输入序列长度
G 生成的 Token 数量 b_w, b_a, b_kv 权重/激活/KV缓存精度
F_{peak} GPU 峰值 TFLOPS B_{hbm} GPU HBM 带宽
\eta_f FLOPs 效率 \eta_m HBM 内存效率

1. 总峰值显存 (Peak Memory per GPU)

Mempeak=Memweights+Memkv_cache+Memactivation_peak\text{Mem}_{\text{peak}} = \text{Mem}_{\text{weights}} + \text{Mem}_{\text{kv\_cache}} + \text{Mem}_{\text{activation\_peak}}
  • 模型权重显存 (Weight Memory):

    • 由各层(Attention, MLP)权重构成,根据并行策略划分。
MemweightsParamsattnTp+ParamsmlpTpEp+(per layer)\text{Mem}_{\text{weights}} \approx \frac{\text{Params}_{\text{attn}}}{T_p} + \frac{\text{Params}_{\text{mlp}}}{T_p \cdot E_p} + \dots \quad (\text{per layer})

注:这是一个简化表示,实际计算考虑了所有组件。

  • KV 缓存显存 (KV Cache Memory):

    Memkv_cache=LPp×2B(S+G)(HA)AkvTp×bkv\text{Mem}_{\text{kv\_cache}} = \frac{L}{P_p} \times 2 \cdot B \cdot (S+G) \cdot (\frac{H}{A}) \cdot \frac{A_{kv}}{T_p} \times b_{kv}
  • 峰值激活显存 (Peak Activation Memory):

    Memact_peak=max(Memact_attn,Memact_mlp)\text{Mem}_{\text{act\_peak}} = \max(\text{Mem}_{\text{act\_attn}}, \text{Mem}_{\text{act\_mlp}})
    • Standard Attention: Memact_attn=max(BSHTp,BAS2Tp)×ba8\text{Mem}_{\text{act\_attn}} = \max(\frac{B \cdot S \cdot H}{T_p}, \frac{B \cdot A \cdot S^2}{T_p}) \times \frac{b_a}{8}
    • Flash Attention: Memact_attn=BSHTp×ba8\text{Mem}_{\text{act\_attn}} = \frac{B \cdot S \cdot H}{T_p} \times \frac{b_a}{8}

2. 总延迟 (Total Latency)

Latencytotal=Latencyprefill+G×Latencydecode_token\text{Latency}_{\text{total}} = \text{Latency}_{\text{prefill}} + G \times \text{Latency}_{\text{decode\_token}}
  • 单层延迟 (Latency per Layer):

    • 由层内各组件延迟累加而成。
Latencylayer=Latattn+Latmlp+2×Latlayernorm+2×Lattp_comm\text{Latency}_{\text{layer}} = \text{Lat}_{\text{attn}} + \text{Lat}_{\text{mlp}} + 2 \times \text{Lat}_{\text{layernorm}} + 2 \times \text{Lat}_{\text{tp\_comm}}

注:每个组件的延迟 Lat_x 是其计算和内存访问时间的较大值: max(Time_compute, Time_memory)


3. 吞吐量 (Throughput)

  • 解码吞吐量 (Decode Tokens per Second):TPSdecode=BatchSizeglobalLatencydecode_token=BDpLatencydecode_token\text{TPS}_{\text{decode}} = \frac{\text{BatchSize}_{\text{global}}}{\text{Latency}_{\text{decode\_token}}} = \frac{B \cdot D_p}{\text{Latency}_{\text{decode\_token}}}

🤝 加入我们,共同打造AI性能分析未来

开源贡献 交流讨论 Star支持

🎆 贡献流程

1️⃣ Fork 仓库

🍴 Fork 本仓库到您的账号

2️⃣ 创建分支

🌱 创建功能分支
feature/YourFeature

3️⃣ 编写代码

💻 实现您的创意
遵循项目规范

4️⃣ 提交变更

📦 提交代码并推送
到远程分支

5️⃣ 发起PR

🚀 创建 Pull Request
等待合并审核

📝 贡献类型

💬 问题反馈 🚀 功能开发 🔧 代码优化 📚 文档完善
Bug修复、问题报告 新功能开发、API扩展 性能优化、代码重构 README更新、注释完善

📄 开源协议

MIT License

🎆 自由使用 · 🔄 自由修改 · 💰 商业友好

本项目采用 MIT 开源许可证,您可以自由使用、修改和分发本软件。


❤️ 特别鸣谢

Contributors

感谢所有为 Lycos Metric 做出贡献的开发者们!

关于
460.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号