本模型基于Qwen2架构,专门用于将非结构化文本按照预定义的JSON模式转换为结构化输出。
下载量 399
发布时间 : 2/7/2025
模型介绍
内容详情
替代品
模型简介
该模型经过微调,能够将非结构化文本(如手册、问答文档)映射为结构化JSON格式,支持基于给定JSON模式的分层数据提取。
模型特点
高效结构化转换
能够将非结构化文本准确映射到预定义的JSON模式中
层级数据提取
支持具有层级关系的复杂JSON模式提取
快速推理
利用Unsloth库实现高效模型推理
模型能力
非结构化文本解析
JSON模式匹配
层级数据提取
结构化输出生成
使用案例
文档处理
质量手册结构化
将非结构化的质量保证手册转换为符合特定模式的JSON格式
生成标准化的文档结构,便于后续处理和分析
数据标准化
问答数据转换
将问答形式的非结构化数据转换为结构化JSON
实现问答数据的标准化存储和检索
license: apache-2.0 language:
- en base_model:
-
- DeepSeek
- R1
- SFT
- Qwen
- JSON
- Unstructured
- Structured
MasterControlAIML R1-Qwen2.5-1.5b SFT R1 JSON 非结构化转结构化模型
本仓库提供了一个经过微调的Qwen2模型,专门用于将非结构化文本按照预定义的JSON模式转换为结构化输出。该模型基于基础模型MasterControlAIML/DeepSeek-R1-Strategy-Qwen-2.5-1.5b-Unstructured-To-Structured进行微调,并利用LoRA技术实现高效适配。
核心亮点:
- 开发者: bhaviktheslider
- 许可证: Apache-2.0
- 微调基础:
MasterControlAIML/DeepSeek-R1-Strategy-Qwen-2.5-1.5b-Unstructured-To-Structured
- 加速训练: 使用Unsloth和Hugging Face的TRL库实现2倍训练加速。
目录
概述
本模型专为需要将非结构化文本(如手册、问答文档)映射为结构化JSON格式的任务而设计。它支持基于给定JSON模式的分层数据提取,确保生成的输出严格遵循模式定义的结构和规则。
特性
- 高效推理: 利用Unsloth库实现快速模型推理。
- 结构化输出: 将文本输入映射为具有层级关系的严格JSON模式。
- 灵活集成: 提供使用Unsloth API和Hugging Face Transformers的代码片段示例。
- 高级提示: 下文提供使用Alpaca提示模板和LangChain提示模板的详细示例。
安装
先决条件
- Python: 3.8+
- PyTorch: (建议支持CUDA)
- 必要库:
transformers
,torch
,unsloth
,langchain
(用于高级用法)
安装命令
通过以下命令安装所需的Python包:
pip install torch transformers unsloth langchain
快速开始
使用Unsloth进行快速推理
Unsloth库可快速加载并运行模型推理。以下是基础示例:
from unsloth import FastLanguageModel
import torch
MODEL = "MasterControlAIML/DeepSeek-R1-Qwen2.5-1.5b-SFT-R1-JSON-Unstructured-To-Structured"
# 加载模型和分词器
model, tokenizer = FastLanguageModel.from_pretrained(
model_name=MODEL,
max_seq_length=2048,
dtype=None,
load_in_4bit=False,
)
# 准备推理
FastLanguageModel.for_inference(model)
ALPACA_PROMPT = """
以下是描述任务的指令,附带提供进一步上下文的输入。编写一个适当完成请求的响应。
### 指令:
{}
### 响应:
{}
"""
# 示例指令和提示
instruction = ""(见下文示例)
prompt = ALPACA_PROMPT.format(instruction, "")
inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
output = model.generate(**inputs, max_new_tokens=2000)
# 打印生成文本
print(tokenizer.batch_decode(output, skip_special_tokens=True)[0])
使用Transformers进行推理
也可直接使用Hugging Face的Transformers:
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
import torch
MODEL = "MasterControlAIML/DeepSeek-R1-Qwen2.5-1.5b-SFT-R1-JSON-Unstructured-To-Structured"
# 初始化分词器和模型
tokenizer = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(MODEL, torch_dtype=torch.float16, device_map="auto")
ALPACA_PROMPT = """
以下是描述任务的指令,附带提供进一步上下文的输入。编写一个适当完成请求的响应。
### 指令:
{}
### 响应:
{}
"""
TEXT = ""(见下文示例)
prompt = ALPACA_PROMPT.format(TEXT, "")
inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
text_streamer = TextStreamer(tokenizer)
with torch.no_grad():
output_ids = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_new_tokens=2000,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1,
streamer=text_streamer,
pad_token_id=tokenizer.pad_token_id,
)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
提示词与代码示例
示例:使用LangChain进行高级数据提取
代码
from langchain_core.prompts import PromptTemplate
# 示例文本输入(结构略有不同)
TEXT1 = """
质量保证手册概述
本文档介绍了制造过程的质量保证程序。
## 制造过程简介
本节涵盖制造过程的基础知识,包括定义和简史。
| 名称 | 描述 |
|---------------------|---------------------------|
| 过程1 | 制造过程中的初始步骤。|
### 详细过程1
该过程精炼材料以满足特定标准。
| 参数 | 范围 |
|-----------|----------|
| 温度 | 200-300°C |
**操作参数**
这些操作参数对过程成功至关重要。
| 设置 | 类别 |
|---------|------------|
| 关键 | 高精度 |
"""
# 不同的JSON模式示例
SCHEMA1 = """
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "用点分隔的整数表示元素的层级ID。"
},
"title": {
"type": "string",
"description": "章节或组件的描述性标题。"
},
"level": {
"type": "integer",
"description": "从0开始的层级。"
},
"level_type": {
"type": "string",
"enum": ["ROOT", "SECTION", "SUBSECTION", "DETAIL_N"],
"description": "层级类型。"
},
"component": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idc": {
"type": "integer",
"description": "顺序唯一的组件ID。"
},
"component_type": {
"type": "string",
"enum": ["PARAGRAPH", "TABLE", "CALCULATION", "CHECKBOX"],
"description": "组件类型。"
},
"metadata": {
"type": "string",
"description": "额外的元数据标记(可能是<title>、<note>或<overview>)。"
},
"properties": {
"type": "object",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idx": {
"type": "string",
"description": "唯一标识符,X.Y(X代表行,Y代表列,对于表格;否则为0)。"
},
"name": {
"type": "string",
"description": "属性名称。"
},
"value": {
"type": "string",
"description": "属性值。"
},
"unit": {
"type": "string",
"description": "可选单位。"
},
"metrics": {
"type": "boolean",
"description": "标记变量是否为指标。"
},
"formula": {
"type": "boolean",
"description": "标记变量是否有公式。"
}
}
}
},
"content": {
"type": "array",
"items": {
"type": "string"
},
"description": "文本内容(如注释、多选题、问题、要点等)。"
}
}
}
}
}
},
"children": {
"type": "array",
"items": {
"$ref": "#"
},
"description": "嵌套元素。"
}
},
"required": ["id", "title", "level", "level_type", "component", "children"]
}
"""
# LangChain提示词,用于指导模型
SYSTEM_PROMPT = """
### 角色:
您是专门将分层文本数据映射到给定JSON模式的专家数据提取器。
### 数据输入:
- **文本:** ```{TEXT}```
- **空白JSON模式:** ```{SCHEMA}```
### 任务要求:
1. 分析给定文本,将所有相关信息严格映射到提供的JSON模式中。
2. 在输出中提供**两个必填部分**:
- **`<answer>`:** 填充后的JSON对象
- **`<think>`:** 映射决策的理由
### 输出结构:
`<think> /* 映射逻辑的解释 */ </think>`
`<answer> /* 完整的JSON对象 */ </answer>`
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型
支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型
英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型
英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型
英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型
支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型
英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型
英语
O
facebook
6.3M
198
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers

支持多种语言
L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型
支持多种语言
T
google-t5
5.4M
702
Xlm Roberta Large
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型
支持多种语言
X
FacebookAI
5.3M
431
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文