Skip to content

Commit 9c7549a

Browse files
committed
feat: Update README and package.json for improved project clarity and correct homepage link
1 parent f8d8b6d commit 9c7549a

File tree

3 files changed

+160
-88
lines changed

3 files changed

+160
-88
lines changed

README.md

Lines changed: 158 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,61 @@
1-
# 🚀 大模型日志分析工具
1+
# 🚀 ML Log Analyzer
22

3-
一个现代化的 React + Vite 应用,用于分析和可视化大模型训练日志中的损失函数(Loss)和梯度范数(Grad Norm)数据。
3+
一个现代化的在线工具,专门用于分析和可视化大模型训练日志中的损失函数(Loss)和梯度范数(Grad Norm)数据。支持多种日志格式,提供智能解析、多图表同步显示和高级对比分析功能
44

5-
[![GitHub Pages](https://img.shields.io/badge/GitHub-Pages-green)](https://blog.javazero.top/compare_tool/)
5+
[![GitHub Pages](https://img.shields.io/badge/GitHub-Pages-green)](https://log.javazero.top/)
66
[![License](https://img.shields.io/badge/License-MIT-blue)](#license)
77
[![React](https://img.shields.io/badge/React-19.1.0-blue)](https://reactjs.org/)
88
[![Vite](https://img.shields.io/badge/Vite-6.3.5-green)](https://vitejs.dev/)
99

1010
## 🌟 在线使用
1111

12-
**直接访问**: [https://blog.javazero.top/compare_tool/](https://blog.javazero.top/compare_tool/)
13-
14-
## ✨ 功能特性
15-
16-
### 📁 **文件上传**
17-
- **拖拽上传**:将日志文件直接拖拽到网页上即可上传
18-
- **多文件支持**:同时上传和分析多个日志文件
19-
- **格式支持**:支持 `.log``.txt` 格式的文本文件
20-
21-
### 🔍 **数据解析**
22-
- **正则表达式匹配**:使用自定义正则表达式提取Loss和Grad Norm数据
23-
- **默认模式**:提供默认的匹配规则 `loss:\\s*([\\d.]+)``grad norm:\\s*([\\d.]+)`
24-
- **实时重解析**:修改正则表达式后可以重新解析所有文件
25-
26-
### 📊 **TensorBoard样式可视化**
27-
- **原始数据**: 低透明度显示真实波动
28-
- **平滑曲线**: 移动平均显示趋势(可选)
29-
- **智能布局**: 响应式设计,适配不同屏幕尺寸
30-
- **交互式图表**: 基于 Chart.js 的高性能图表渲染
31-
32-
### 🔬 **对比分析**
33-
当选择2个文件时,提供专门的对比图表和统计指标:
34-
- **Normal**: 原始差值 (File2 - File1)
35-
- **Absolute**: 绝对差值 |File2 - File1|
36-
- **Relative**: 相对差值百分比
37-
- **统计指标**: Mean Error (ME) 和 Mean Square Error (MSE)
38-
39-
### 🎨 **现代化界面**
40-
- **Tailwind CSS**: 现代化的响应式设计
41-
- **直观操作**: 简洁清晰的用户界面
42-
- **实时反馈**: 即时的数据更新和图表渲染
12+
**直接访问**: [https://log.javazero.top/](https://log.javazero.top/)
13+
14+
无需安装,打开即用!支持所有现代浏览器。
15+
16+
## ✨ 核心功能
17+
18+
### 📁 **智能文件上传**
19+
- **🎯 全页面拖拽**:将日志文件拖拽到页面任意位置即可上传
20+
- **📊 多文件支持**:同时上传和分析多个训练日志文件
21+
- **📝 格式兼容**:支持所有文本格式文件(`.log``.txt`、无后缀等)
22+
- **⚡ 即时解析**:文件上传后立即开始解析和可视化
23+
24+
### 🔍 **强大的数据解析系统**
25+
- **🎨 关键词匹配**(默认模式):智能识别日志中的关键字,自动提取数值
26+
- Loss: `loss` → 自动查找后续数字
27+
- Grad Norm: `global_norm` → 自动提取梯度范数值
28+
- **⚙️ 正则表达式模式**:支持复杂的自定义匹配规则
29+
- **🤖 智能推荐**:系统自动分析日志格式并推荐最佳解析方式
30+
- **🔬 多格式支持**:JSON、键值对、数组、科学计数法等多种日志格式
31+
- **🎯 独立配置**:每个文件可单独配置解析规则
32+
33+
### 📊 **高级可视化图表**
34+
- **🔄 多图表同步**:鼠标hover时,所有图表同步显示相同步骤的数据点
35+
- **🎯 精确定位**:hover时显示实心圆点,精确指示当前训练步骤
36+
- **⚡ 零延迟响应**:所有交互效果即时响应,无动画延迟
37+
- **📏 可调整尺寸**:图表高度可以自由调整,适应不同分析需求
38+
- **🎨 动态布局**:根据显示的图表数量自动调整布局(单列/双列)
39+
40+
### 🔬 **深度对比分析**
41+
当选择2个文件时,系统提供专业的对比分析:
42+
- **📈 Normal模式**: 原始差值分析 (File2 - File1)
43+
- **📊 Absolute模式**: 绝对差值分析 |File2 - File1|
44+
- **📉 Relative模式**: 相对差值百分比分析
45+
- **📋 统计指标**: 详细的Mean Difference、Mean Absolute Error、Mean Relative Error
46+
- **⚖️ 基准线设置**: 可配置相对误差和绝对误差的基准线
47+
48+
### �️ **灵活的显示控制**
49+
- **👁️ 图表切换**:独立控制Loss函数和Grad Norm图表的显示
50+
- **📁 文件管理**:支持文件启用/禁用,灵活控制参与分析的数据
51+
- **📊 数据范围**:支持设置分析的起始和结束位置,专注特定训练阶段
52+
- **🔄 实时更新**:所有配置修改后图表立即更新
53+
54+
### 🎨 **现代化用户界面**
55+
- **📱 响应式设计**:完美适配桌面、平板和手机设备
56+
- **🌈 直观交互**:清晰的视觉反馈和用户引导
57+
- **♿ 无障碍支持**:完整的键盘导航和屏幕阅读器支持
58+
- **🎯 用户友好**:简洁明了的操作流程,零学习成本
4359

4460
## 🛠️ 技术栈
4561

@@ -49,94 +65,150 @@
4965
- **图表库**: Chart.js + react-chartjs-2
5066
- **图标**: Lucide React
5167
- **开发语言**: JavaScript (ES6+)
68+
- **部署方式**: GitHub Actions + GitHub Pages
5269

53-
## 🚀 快速开始
70+
## 🚀 部署说明
5471

55-
### 方法1: 在线使用 (推荐)
56-
直接访问 GitHub Pages 部署的版本,无需任何安装。
72+
本项目采用 GitHub Actions 自动化部署到 GitHub Pages,每次推送到主分支时自动构建和部署。
5773

58-
### 方法2: 本地开发
74+
如需 fork 此项目进行自定义开发:
5975

60-
```bash
61-
# 克隆仓库
62-
git clone https://github.com/JavaZeroo/compare_tool.git
63-
cd compare_tool
76+
1. Fork 本仓库到你的 GitHub 账户
77+
2. 在仓库设置中启用 GitHub Pages
78+
3. 选择 GitHub Actions 作为部署源
79+
4. 推送代码时将自动触发构建和部署
6480

65-
# 安装依赖
66-
npm install
81+
## 📝 使用指南
6782

68-
# 启动开发服务器
69-
npm run dev
83+
### 🎯 快速上手
84+
1. **📂 上传文件**: 拖拽训练日志文件到页面任意位置
85+
2. **🔍 选择解析方式**:
86+
- **关键词匹配**(推荐):直接使用 `loss``global_norm` 关键字
87+
- **正则表达式**:自定义复杂的匹配规则
88+
3. **📊 查看图表**: 系统自动解析并生成交互式图表
89+
4. **⚖️ 对比分析**: 上传两个文件时自动启用高级对比功能
90+
5. **🎛️ 调整显示**: 控制图表显示选项和数据范围
7091

71-
# 构建生产版本
72-
npm run build
92+
### 🔧 高级功能
93+
- **📁 文件独立配置**: 每个文件可单独设置解析规则和数据范围
94+
- **🔄 多图表同步**: hover任意图表时,所有相关图表同步显示
95+
- **📏 图表调整**: 拖拽调整图表高度,适应不同分析需求
96+
- **📋 统计分析**: 自动计算并显示详细的统计指标
7397

74-
# 预览生产版本
75-
npm run preview
76-
```
98+
## 📊 支持的日志格式
7799

78-
## 📝 使用方法
100+
### 🎯 关键词匹配模式(推荐)
101+
支持多种常见的训练日志格式:
79102

80-
1. **上传文件**: 拖拽或选择 `.log`/`.txt` 文件
81-
2. **配置正则**: 根据日志格式调整正则表达式(可选)
82-
3. **查看图表**: 系统自动解析并生成可视化图表
83-
4. **对比分析**: 上传两个文件时可进行详细对比
84-
5. **调整显示**: 控制数据点和平滑曲线的显示
103+
```bash
104+
# 标准格式
105+
loss: 0.1234
106+
global_norm: [1.5678]
85107

86-
## 📊 支持的日志格式
108+
# JSON 格式
109+
{"loss": 0.1234, "global_norm": 1.5678}
87110

88-
工具支持包含以下格式的训练日志:
111+
# 数组格式
112+
loss [0.1234]
113+
global_norm: [1.5678]
89114

115+
# 科学计数法
116+
loss: 1.234e-4
117+
global_norm: 1.5678E+0
118+
119+
# MindFormers 格式
120+
Step 100: loss=0.1234 global_norm=1.5678
90121
```
91-
loss: 0.1234
92-
grad norm: 1.5678
122+
123+
### ⚙️ 正则表达式模式
124+
对于特殊格式的日志,可以使用自定义正则表达式:
125+
126+
```bash
127+
# 默认正则
128+
Loss: loss:\\s*([\\d.eE+-]+)
129+
Grad Norm: grad[\\s_]norm:\\s*([\\d.eE+-]+)
130+
131+
# 自定义示例
132+
train_loss:\\s*([\\d.eE+-]+)
133+
gradient_norm:\\s*([\\d.eE+-]+)
93134
```
94135

95-
您可以通过修改正则表达式来适配其他格式。
136+
## 🔧 功能特色
96137

97-
## 🔧 自定义配置
138+
### 🎯 智能解析系统
139+
- **关键词匹配**: 默认模式,智能识别常见训练日志格式
140+
- **智能推荐**: 自动分析日志结构,推荐最佳解析方式
141+
- **多格式支持**: 兼容JSON、键值对、数组、科学计数法等格式
142+
- **实时预览**: 解析结果实时预览,包含数值、行号、原文信息
98143

99-
### 正则表达式
100-
- **Loss**: `loss:\\s*([\\d.]+)`
101-
- **Grad Norm**: `grad norm:\\s*([\\d.]+)`
144+
### 📊 高级可视化
145+
- **同步显示**: 多图表联动,hover时同步显示相同训练步骤
146+
- **精确定位**: 实心圆点精确标识当前hover位置
147+
- **即时响应**: 零延迟交互,所有动画已优化
148+
- **响应式布局**: 根据图表数量自动调整单列/双列布局
102149

103-
### 显示选项
104-
- 显示/隐藏原始数据点
105-
- 启用/禁用平滑曲线
106-
- 多种对比模式选择
150+
### 🔬 专业对比分析
151+
- **三种对比模式**: Normal、Absolute、Relative差值分析
152+
- **统计指标**: Mean Difference、Mean Absolute Error、Mean Relative Error
153+
- **基准线设置**: 可配置对比基准线,突出显示显著差异
154+
- **差值可视化**: 专门的差值图表,清晰展示训练差异
155+
156+
### 🎛️ 灵活控制
157+
- **文件管理**: 支持文件启用/禁用、删除、重命名
158+
- **独立配置**: 每个文件可单独设置解析规则和数据范围
159+
- **全局同步**: 全局解析配置可一键应用到所有文件
160+
- **数据范围**: 支持设置分析的起始和结束步骤
107161

108162
## 📦 项目结构
109163

110164
```
111165
src/
112-
├── components/ # React 组件
113-
│ ├── Header.jsx # 页面头部
114-
│ ├── FileUpload.jsx # 文件上传
115-
│ ├── FileList.jsx # 文件列表
116-
│ ├── RegexControls.jsx # 正则控制
117-
│ ├── ComparisonControls.jsx # 对比控制
118-
│ └── ChartContainer.jsx # 图表容器
119-
├── App.jsx # 主应用组件
120-
├── main.jsx # 应用入口
121-
└── index.css # 全局样式
166+
├── components/ # React 组件
167+
│ ├── Header.jsx # 页面头部(已清空)
168+
│ ├── FileUpload.jsx # 文件上传组件
169+
│ ├── FileList.jsx # 文件列表管理
170+
│ ├── RegexControls.jsx # 解析规则控制
171+
│ ├── ComparisonControls.jsx # 对比模式控制
172+
│ ├── ChartContainer.jsx # 图表容器和同步控制
173+
│ ├── ResizablePanel.jsx # 可调整尺寸的图表面板
174+
│ └── FileConfigModal.jsx # 文件配置弹窗
175+
├── App.jsx # 主应用组件
176+
├── main.jsx # 应用入口
177+
└── index.css # 全局样式和无障碍支持
122178
```
123179

124180
## 🤝 贡献
125181

126-
欢迎贡献代码!请查看 [Contributing Guidelines](CONTRIBUTING.md) 了解详情。
182+
欢迎贡献代码和提出建议!
183+
184+
### 如何贡献
185+
1. Fork 本仓库
186+
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
187+
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
188+
4. 推送到分支 (`git push origin feature/AmazingFeature`)
189+
5. 打开一个 Pull Request
190+
191+
### 报告问题
192+
如果您发现任何问题或有功能建议,请在 [Issues](https://github.com/JavaZeroo/log-parser/issues) 页面提交。
127193

128194
## 📄 许可证
129195

130196
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
131197

132198
## 🙏 致谢
133199

134-
- [Chart.js](https://www.chartjs.org/) - 强大的图表库
135-
- [React](https://reactjs.org/) - 用户界面库
136-
- [Vite](https://vitejs.dev/) - 快速的构建工具
200+
感谢以下开源项目的支持:
201+
202+
- [Chart.js](https://www.chartjs.org/) - 强大的图表库,提供高性能可视化
203+
- [React](https://reactjs.org/) - 现代化的用户界面库
204+
- [Vite](https://vitejs.dev/) - 快速的前端构建工具
137205
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的CSS框架
138-
- [Lucide](https://lucide.dev/) - 美观的图标库
206+
- [Lucide](https://lucide.dev/) - 美观一致的图标库
139207

140208
---
141209

142-
如果这个工具对您有帮助,请给它一个 ⭐ !
210+
## ⭐ 支持项目
211+
212+
如果这个工具对您的机器学习项目有帮助,请给它一个 ⭐ !
213+
214+
您的支持是我们持续改进的动力。

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"version": "1.0.0",
66
"type": "module",
7-
"homepage": "https://blog.javazero.top/compare_tool/",
7+
"homepage": "https://log.javazero.top",
88
"scripts": {
99
"dev": "vite",
1010
"build": "vite build",

src/App.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ function App() {
282282
<span className="ml-1">在线使用</span>
283283
</span>
284284
<a
285-
href="https://github.com/JavaZeroo/compare_tool"
285+
href="https://github.com/JavaZeroo/log-parser"
286286
target="_blank"
287287
rel="noopener noreferrer"
288288
className="inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"

0 commit comments

Comments
 (0)