Skip to content

tmracy/LLM_EXPAND

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM 语料扩写与筛选流水线

这是一个基于大型语言模型(LLM)的自动化语料扩写工具。它能够根据给定的种子语料,生成大量高质量、多样化的新语料,并通过一个多阶段的筛选和质检流程,确保最终产出的数据可用于意图识别等下游任务的训练。

核心架构

本项目采用了一个多阶段流水线(Pipeline)的设计,确保生成语料的质量:

  1. LLM 生成: 使用一个强大的生成模型(如豆包),根据用户提供的详细指令(包括场景、语气、关键词等)进行初步扩写。
  2. 规则筛选: 对生成结果进行快速的硬性规则检查(如字数范围)。
  3. 相似度筛选: 计算扩写语料与原始语料的向量相似度,剔除语义偏移过大的结果。
  4. LLM 质检: 使用另一个独立的质检模型(如 Gemini Flash),对通过前两轮筛选的语料进行最终的质量检查。

✨ 功能特性

  • 高度可定制化: 通过修改 Prompt 和输入数据,可以控制扩写语料的几乎所有方面。
  • 多重质量保障: 结合规则、向量相似度和 LLM 质检,层层把关,确保数据质量。
  • 并行处理: 利用多线程并发执行质检任务,大幅提升处理速度。
  • 配置简单: 通过 .env 文件集中管理所有 API 密钥。

🛠️ 如何使用

1. 克隆代码库

git clone <你的仓库URL>
cd LLM_expand

2. 创建并激活虚拟环境

# 创建虚拟环境
python3 -m venv venv

# 激活 (macOS/Linux)
source venv/bin/activate
# 激活 (Windows)
# venv\Scripts\activate

3. 安装依赖

pip install -r requirements.txt

4. 配置 API 密钥

在项目根目录下创建一个名为 .env 的文件,并填入你的 API 密钥。此文件已被 .gitignore 忽略,不会被上传到 GitHub

# .env 文件模板
API_KEY_DOUBAO="sk-..."
API_KEY_DOUBAO_EMBEDDING="sk-..."
API_KEY_Gemini="sk-..."

5. 准备输入数据

你需要准备一个 JSON 格式的输入文件。代码中默认为 扩写语料_1.json。文件格式应为一个列表,其中每个元素是一个包含以下键的字典:

  • text: 原始种子语料 (必需)
  • description: 语料描述 (可选)
  • scene: 场景 (可选)
  • tone: 语气 (可选)
  • required_keywords: 必需关键词列表 (可选)
  • example: 示范语料 (可选)
  • range: 字数区间列表,如 [10, 50] (可选)

6. 运行程序

一切准备就绪后,运行主程序:

python main.py

处理完成后,结果将保存在一个 CSV 文件中。

📄 开源协议

本项目采用 Apache-2.0 License 开源协议。

About

大模型语料生成

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages