openeuler/docs-model-dataset实战指南:从PR数据下载到BERT模型训练全流程
【免费下载链接】docs-model-datasetTo develop dataset for openEuler documentation.项目地址: https://gitcode.com/openeuler/docs-model-dataset
前往项目官网免费下载:https://ar.openeuler.org/ar/
openeuler/docs-model-dataset是一个专为openEuler文档优化设计的数据集构建工具,能够从社区PR数据中提取高质量文档修改样本,支持多规则过滤、AI智能评估和BERT模型训练,帮助开发者快速构建文档优化模型训练数据。
🌟 为什么选择docs-model-dataset?
核心功能亮点
docs-model-dataset提供从数据采集到模型训练的完整解决方案,主要特点包括:
- 多规则智能过滤:内置10种过滤规则,精准筛选有价值的文档修改,过滤无效格式变动
- AI驱动评估:基于大模型的文档编辑质量评估与标签分类,支持22种文档优化标签体系
- 灵活可扩展架构:模块化设计,支持自定义过滤器和评估规则,轻松适应不同场景需求
- 完整训练支持:提供BERT文本分类模型训练流程,验证数据集标签的可分类性
项目架构概览
项目采用清晰的模块化结构,主要包含以下核心组件:
docs-model-dataset/ ├── crawler/ # PR数据爬取模块 ├── filters/ # 数据过滤规则引擎 ├── processors/ # 数据处理器 ├── llm_label/ # LLM评估与标签分类 ├── llm_few_shot/ # Few-shot验证流水线 ├── bert_train/ # BERT模型训练 ├── utils/ # 工具函数 ├── data/ # 数据存储目录 ├── main.py # 主入口程序 └── config.py # 全局配置📋 准备工作:环境搭建与安装
快速安装步骤
- 克隆仓库
git clone https://gitcode.com/openeuler/docs-model-dataset cd docs-model-dataset- 安装依赖
pip install -r requirements.txt- 验证安装
python main.py --help成功安装后将显示命令行帮助信息,包含所有可用功能和参数说明。
📥 第一步:PR数据下载
docs-model-dataset提供便捷的数据下载功能,支持从Gitee API获取openEuler社区的PR数据。
基础下载命令
# 下载开放状态的PR数据 python main.py download --state open --per_page 50 --max_pages 2命令参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
--state | PR状态(open/closed/merged) | --state merged |
--per_page | 每页PR数量 | --per_page 100 |
--max_pages | 最大页数(0表示全部) | --max_pages 5 |
下载结果存储
下载的数据会保存在data/raw/目录下,生成JSON和JSONL两种格式文件:
data/raw/prs_open.json- 开放状态PR完整数据data/raw/prs_open.jsonl- 按行存储的PR数据,便于大文件处理
🔍 第二步:数据过滤与处理
原始PR数据中包含大量无效或低质量的修改,需要通过过滤系统提取有价值的训练样本。
执行数据处理
python main.py process \ --input data/raw/prs_open.json \ --output data/processed/prs_open_filtered.json \ --rejected data/processed/prs_open_filtered_rejected.json内置过滤规则
系统默认启用多种过滤规则,确保数据质量:
| 规则名称 | 功能描述 | 适用场景 |
|---|---|---|
file_extension | 只保留.md文件 | 过滤非文档文件 |
type_base | 只保留modify类型修改 | 过滤新增/删除文件 |
content_length | 过滤短内容修改 | 排除微小改动 |
markdown_heading_level | 过滤仅标题级别变化 | 排除格式调整 |
配置自定义过滤
可通过修改config.py调整过滤规则参数:
# config.py 中的过滤器配置示例 FILTER_CONFIG = { 'file_extension': { 'allowed_extensions': ['.md'] # 只允许Markdown文件 }, 'content_length': { 'min_length': 6 # 内容最小字符数 } }🧠 第三步:LLM智能评估与标签
利用大模型对过滤后的数据进行智能评估,生成详细标签,为模型训练提供高质量标注数据。
构建向量数据库
首先需要构建向量数据库,用于动态few-shot学习:
python llm_few_shot/build_embedding_database.py \ --input-file data/label_data/auto_pass.jsonl \ --output-dir llm_few_shot/data/label_embedding运行评估流水线
# 一键启动评估流程 cd llm_few_shot && ./run.sh或手动运行详细流程:
python llm_few_shot/pipeline.py \ --units-data-file ../data/processed/units_prs_closed.jsonl \ --sample-count 10 \ --model-name "Qwen/Qwen3-8B"评估结果格式
评估后的结果会添加详细标签信息,示例如下:
{ "pr_number": 123, "file_path": "docs/example.md", "add_content": "新的内容", "remove_content": "旧的内容", "evaluation": { "is_valid": true, "valid_reason": "该修改修复了专业术语的拼写错误", "label_id": "1", "label_name": "错别字-英文错别字" } }评估结果保存在llm_few_shot/data/validation_results/目录下,包含详细的分析报告和对比数据。
🤖 第四步:BERT模型训练与评估
docs-model-dataset提供完整的BERT模型训练流程,用于验证数据集标签的质量和可分类性。
一键训练评估
cd bert_train && ./run_train_eval.sh分步执行流程
- 数据准备
python bert_train/prepare_core_dataset.py \ --input ../data/label_data/auto_pass_*.jsonl \ --output_dir data \ --text_format bert_pair- 模型训练
python bert_train/train_classifier.py \ --data_dir data \ --output_dir models \ --epochs 3- 模型评估
python bert_train/eval_classifier.py \ --data_dir data \ --model_dir models训练结果
训练结果会保存在bert_train/data/result/目录,包括:
classification_report.txt- 分类性能报告confusion_matrix.json- 混淆矩阵数据eval_metrics.json- 评估指标汇总
📊 数据格式说明
处理后数据格式
经过过滤处理后的数据包含丰富的上下文信息:
{ "pr_number": 123, "file_path": "docs/example.md", "hunk_header": "@@ -10,7 +10,7 @@", "add_content": "新的内容", "remove_content": "旧的内容", "unit_id": "PR123_docs_example_md_unit_0", "context_before": "上下文内容", "context_after": "上下文内容", "change_type": "modify" }文档编辑标签体系
系统定义了22个文档编辑优化标签,涵盖拼写、标点、格式等多个类别,例如:
- 拼写类:英文专业名词大小写、中文相似字错误
- 标点类:中英文标点混用、成对标点缺失
- 格式类:换行不一致、代码块规范问题
- 表达类:语义优化、冗余精简
完整标签体系可参考项目文档中的详细说明。
💡 使用技巧与最佳实践
高效数据采集
- 首次运行时建议使用
--max_pages 1进行测试,验证配置正确性 - 大批量下载时可降低
--per_page数值,避免API请求限制 - 定期更新数据保持数据集时效性
过滤规则优化
- 对中文文档建议启用
punctuation_change规则过滤标点错误 - 技术文档应启用
code_block_language_tag确保代码块规范 - 根据具体需求调整
content_length的min_length参数
模型训练调优
- 训练BERT模型时建议至少使用3个epochs
- 数据量较大时可增加
batch_size提升训练效率 - 通过调整学习率参数优化模型性能
🚀 总结与展望
openeuler/docs-model-dataset提供了从PR数据采集到模型训练的完整解决方案,通过多规则过滤和AI智能评估,能够快速构建高质量的文档优化模型训练数据集。无论是文档质量改进、智能编辑工具开发还是NLP模型训练,本项目都能提供强有力的支持。
未来,项目将继续扩展过滤规则库,优化LLM评估流程,并探索更多文档优化场景,为openEuler社区文档质量提升贡献力量。
希望本指南能帮助你快速掌握docs-model-dataset的使用,如有任何问题或建议,欢迎参与项目贡献!
【免费下载链接】docs-model-datasetTo develop dataset for openEuler documentation.项目地址: https://gitcode.com/openeuler/docs-model-dataset
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考