MCPcopy Create free account
hub / github.com/InternLM/InternBootcamp / DataPostProcessor

Class DataPostProcessor

internbootcamp/utils/data_postprocess.py:20–258  ·  view source on GitHub ↗

数据后处理器 功能: 1. 读取 evaluator 输出的 jsonl 文件 2. 应用过滤函数筛选数据 3. 应用转换函数转换数据(支持一对一或一对多) 4. 输出新的 jsonl 文件 示例用法: # 创建处理器 processor = DataPostProcessor() # 注册过滤函数 processor.add_filter(lambda x: x.get("success") == True) proc

Source from the content-addressed store, hash-verified

18
19
20class DataPostProcessor:
21 """
22 数据后处理器
23
24 功能:
25 1. 读取 evaluator 输出的 jsonl 文件
26 2. 应用过滤函数筛选数据
27 3. 应用转换函数转换数据(支持一对一或一对多)
28 4. 输出新的 jsonl 文件
29
30 示例用法:
31 # 创建处理器
32 processor = DataPostProcessor()
33
34 # 注册过滤函数
35 processor.add_filter(lambda x: x.get("success") == True)
36 processor.add_filter(lambda x: x.get("score", 0) > 0.5)
37
38 # 注册转换函数
39 processor.add_transformer(extract_training_data)
40
41 # 执行处理
42 processor.process(
43 input_path="eval_results.jsonl",
44 output_path="filtered_results.jsonl"
45 )
46 """
47
48 def __init__(self):
49 """初始化数据处理器"""
50 self.filters: List[Callable[[Dict[str, Any]], bool]] = []
51 self.transformers: List[Callable[[Dict[str, Any]], Union[Dict[str, Any], List[Dict[str, Any]]]]] = []
52 self.stats = defaultdict(int)
53
54 def add_filter(self, filter_func: Callable[[Dict[str, Any]], bool], name: Optional[str] = None):
55 """
56 添加过滤函数
57
58 Args:
59 filter_func: 过滤函数,接收一个字典,返回布尔值
60 返回 True 表示保留该数据,False 表示过滤掉
61 name: 过滤函数的名称(可选,用于统计)
62
63 示例:
64 processor.add_filter(lambda x: x.get("success") == True)
65 processor.add_filter(lambda x: x.get("score", 0) > 0.5, name="high_score")
66 """
67 if name:
68 filter_func._filter_name = name
69 self.filters.append(filter_func)
70 return self
71
72 def add_transformer(self, transform_func: Callable[[Dict[str, Any]], Union[Dict[str, Any], List[Dict[str, Any]]]], name: Optional[str] = None):
73 """
74 添加转换函数
75
76 Args:
77 transform_func: 转换函数,接收一个字典,返回一个字典或字典列表

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected