# LoHate **Repository Path**: chen-junfa/lo-hate ## Basic Information - **Project Name**: LoHate - **Description**: LoRA-based Hate Speech Detection with Multi-Branch Ensemble - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: 大语言模型微调 ## README # Lo-Hate 项目 ## 项目简介 Lo-Hate 是一个基于大语言模型的低资源仇恨言论检测项目。该项目通过创新的集成学习方法,在有限标注数据的场景下实现高效的仇恨言论识别。项目采用 PEFT (Parameter-Efficient Fine-Tuning) 技术对预训练模型进行高效适配,结合检索增强生成 (RAG) 策略提升检测准确性。 ## 项目特点 - **多分支模型架构**:项目包含 5 个独立训练的模型分支,分别针对仇恨言论的不同维度进行检测 - **低资源适应**:采用参数高效微调技术,在小样本场景下仍能取得良好效果 - **集成决策**:通过相似性分组和投票机制,综合多模型预测结果 - **检索增强**:内置相似案例检索功能,辅助模型做出更准确的判断 ## 目录结构 ``` ├── data/ # 数据目录 │ ├── branch_0-4/ # 各分支的训练/验证/测试数据 │ ├── target.json # 目标标注数据 │ ├── terms.json # 术语定义 │ └── train.json # 训练数据 ├── models/ # 模型文件 │ ├── branch_0-4/ # 5个分支的PEFT适配器权重和配置 ├── output/ # 输出结果 ├── utils/ # 工具模块 │ ├── ensemble.py # 集成学习工具 │ ├── form_sft.py # 格式转换工具 │ ├── parser.py # 数据解析器 │ ├── prepare_output.py # 输出预处理 │ ├── prompt.py # 提示词生成 │ ├── score.py # 评分计算 │ ├── srag.py # 相似案例检索 │ └── term.py # 术语处理 ├── train.py # 训练脚本 ├── test.py # 测试脚本 └── output.py # 输出处理脚本 ``` ## 快速开始 ### 环境要求 - Python 3.8+ - PyTorch - Transformers - PEFT - 其他依赖包 ### 安装 ```bash pip install -r requirements.txt ``` ### 训练 ```bash python train.py ``` ### 测试 ```bash python test.py ``` ## 核心模块说明 ### 数据解析 (utils/parser.py) 提供 `Quadruple` 和 `Trueriplet` 类用于结构化解析仇恨言论数据,支持硬匹配和软匹配两种相似度计算方式。 ### 集成学习 (utils/ensemble.py) 使用并查集算法对相似的预测结果进行分组,通过投票机制选出最佳预测字符串。 ### 检索增强 (utils/srag.py) 基于向量相似度检索历史相似案例,为当前预测提供参考信息。 ### 评分计算 (utils/score.py) 提供多种评估指标的计算功能,用于衡量模型性能。 ## 模型说明 每个分支模型都是基于 PEFT 框架训练的低秩适配器,包含以下文件: - `adapter_config.json`: 适配器配置 - `adapter_model.safetensors`: 模型权重 - `tokenizer.json/vocab.json`: 分词器文件 - `training_args.bin`: 训练参数 ## 输出结果 模型预测结果保存在 `output/` 目录下: - `result.txt`: 最终预测结果 - `branch_0-4.txt`: 各分支的独立预测 - `prepared.json`: 预处理后的输出数据 ## 许可证 本项目遵循 [许可证名称] 许可证。