🚀 一个面向 多模态大模型训练 的智能数据集构建与评估平台,支持图文问答、图像描述、DPO 数据集生成、AI 评分、训练语料导出等全流程。
DatasetLoom 是一款高质量的 多模态训练数据集构建平台,专为 AI 工程师、研究人员和团队设计。
基于 Next.js + NestJS + Turborepo 的现代化 Monorepo 架构,实现前后端解耦、高可维护性与灵活扩展。平台支持从文档解析、图像标注到模型评分、语料导出的完整数据流水线,助力高效构建用于 SFT、DPO、VQA、Image Captioning 等任务的训练数据。
🎯 核心能力:
- 监督微调(SFT)语料生成
- 偏好对齐(DPO)数据集构建
- 图文问答(VQA)与图像描述生成
- 模型输出自动评分与对比
- 支持 GPT-4V、LLaVA、Qwen-VL 等多模型接入
- 多人协作与权限管理
特性 | 说明 |
---|---|
多模态数据支持 | 支持图像、PDF、Word、Markdown、TXT 等格式上传与解析 |
智能文档分块 | 支持按段落、标题、语义等方式自动分块 |
图像标注与生成 | 支持区域标注、图文问答、图像描述一键生成 |
AI 自动评分系统 | 集成大模型对输出质量打分,支持多模型对比 |
DPO/SFT 数据集构建 | 可配置策略生成偏好对或指令微调语料 |
用户与权限管理 | 支持角色控制(管理员、协作者、访客) |
训练语料导出 | 支持 JSON、CSV、HuggingFace Dataset 等格式导出 |
API 文档化 | 后端集成 Swagger,访问 /api-docs 即可调试 |
多数据库支持 | 支持 SQLite(默认)、MySQL、PostgreSQL、SQL Server |
登录页 | 项目列表 |
---|---|
![]() |
![]() |
文档管理 | 分块策略 |
---|---|
![]() |
![]() |
问题生成 | 数据集导出 |
---|---|
![]() |
![]() |
🔍 API 文档地址:http://localhost:3088/api-docs
层级 | 技术 |
---|---|
前端 | Next.js App Router + React 18 + Tailwind CSS |
后端 | NestJS + TypeScript + RESTful API + Swagger |
ORM | Prisma |
构建工具 | Turborepo + pnpm |
数据库 | SQLite / MySQL / PostgreSQL / SQL Server |
部署 | Docker + Docker Compose |
git clone https://github.com/599yongyang/DatasetLoom.git
cd DatasetLoom
cp .env.example .env
修改
.env
中的DATABASE_URL
以匹配你的数据库类型(见下文“数据库支持”)。
本项目使用 pnpm 作为包管理工具。如果尚未安装,请运行:
# 使用 npm 安装 pnpm(推荐)
npm install -g pnpm
# 或使用 corepack(Node.js 16.13+ 内置)
corepack enable
corepack prepare pnpm@latest --activate
💡 安装完成后,可通过
pnpm --version
验证是否成功。
pnpm install
pnpm --filter=api prisma:migrate
# 推荐:同时启动前后端
pnpm run dev
# 或分别启动
pnpm --filter=web dev
pnpm --filter=api dev
- 🌐 前端:http://localhost:2088
- 🔌 后端 API:http://localhost:3088
- 📄 API 文档:http://localhost:3088/api-docs
本项目提供完整的 Docker 支持,便于一键部署至服务器或云环境。
cp .env.example .env
根据需要可编辑
.env
文件,例如修改数据库连接地址。
docker compose up -d --build
- 🌐 前端:http://localhost:2088
- 🔌 后端 API:http://localhost:3088
- 📄 API 文档:http://localhost:3088/api-docs
DatasetLoom 支持多种 SQL 数据库,通过 Prisma 实现无缝切换。
数据库 | 推荐场景 |
---|---|
✅ SQLite | 本地开发,无需配置 |
✅ MySQL | 中小型部署,成熟生态 |
✅ PostgreSQL | 生产推荐,支持 JSONB、全文搜索、向量 |
✅ SQL Server | 企业级安全与合规场景 |
修改 apps/api/prisma/schema.prisma
中的 provider
:
datasource db {
provider = "postgresql" // 可选: "mysql", "sqlite", "sqlserver"
url = env("DATABASE_URL")
}
并在 .env
中设置对应连接字符串:
# PostgreSQL(生产推荐)
DATABASE_URL="postgresql://user:password@db:5432/datasetloom?schema=public"
# MySQL
DATABASE_URL="mysql://user:password@localhost:3306/datasetloom"
# SQLite(开发默认)
DATABASE_URL="file:./dev.sqlite"
场景 | 描述 |
---|---|
AI 训练数据生成 | 快速构建 SFT/DPO 数据集,用于微调 LLM 或多模态模型 |
教育科研数据整理 | 解析论文、教材,生成问答对、摘要、练习题 |
垂直领域知识库构建 | 医疗、法律、金融等领域文档结构化与问答生成 |
模型评估与对比 | 对比 GPT-4V、LLaVA、Qwen-VL 等模型输出质量 |
团队协作标注 | 支持多用户协作,权限控制清晰 |
多模态内容理解 | 图像 + 文本联合处理,生成图文对齐语料 |
欢迎提交 Issue 或 Pull Request!
- Fork 项目
- 创建功能分支:
git checkout -b feat/your-feature
- 提交更改并推送
- 提交 PR
💡 提交前请运行:
pnpm run format
pnpm run typecheck
本项目采用 MIT License,允许自由使用、修改与商用。
如果你觉得 DatasetLoom 有帮助,请给项目一颗 ⭐ Star!
感谢支持,将持续维护和优化本项目 💙