算子 (Operator) 是协助数据修改、清理、过滤、去重等基本流程的集合。我们支持广泛的数据来源和文件格式,并支持对自定义数据集的灵活扩展。
这个页面提供了OP的基本描述,用户可以参考API文档更细致了解每个OP的具体参数,并且可以查看、运行单元测试 (tests/ops/...
),来体验各OP的用法示例以及每个OP作用于内置测试数据样本时的效果。
Data-Juicer 中的算子分为以下 5 种类型。
类型 | 数量 | 描述 |
---|---|---|
Formatter | 9 | 发现、加载、规范化原始数据 |
Mapper | 63 | 对数据样本进行编辑和转换 |
Filter | 44 | 过滤低质量样本 |
Deduplicator | 8 | 识别、删除重复样本 |
Selector | 4 | 基于排序选取高质量样本 |
Grouper | 2 | 将样本分组,每一组组成一个批量样本 |
Aggregator | 3 | 对批量样本进行汇总,如得出总结或结论 |
下面列出所有具体算子,每种算子都通过多个标签来注明其主要功能。
- 领域标签
- 模态标签
- 语言标签
- 资源标签
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
local_formatter | 从本地文件准备数据集 | code | tests | |
remote_formatter | 准备远端数据集 (如 HuggingFace) | code | tests | |
csv_formatter | 准备本地 .csv 文件 |
code | tests | |
tsv_formatter | 准备本地 .tsv 文件 |
code | tests | |
json_formatter | 准备本地 .json , .jsonl , .jsonl.zst 文件 |
code | - | |
parquet_formatter | 准备本地 .parquet 文件 |
code | tests | |
text_formatter | 准备其他本地文本文件(完整的支持列表) | code | - | |
empty_formatter | 准备一个空数据集 | code | tests | |
mixture_formatter | 处理可支持本地文件的混合 | code | tests |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
audio_ffmpeg_wrapped_mapper | 运行 FFmpeg 语音过滤器的简单封装 | code | tests | |
calibrate_qa_mapper | 根据参考文本校准问答对 | code | tests | |
calibrate_query_mapper | 根据参考文本校准问答对中的问题 | code | tests | |
calibrate_response_mapper | 根据参考文本校准问答对中的回答 | code | tests | |
chinese_convert_mapper | 用于在繁体中文、简体中文和日文汉字之间进行转换(借助 opencc) | code | tests | |
clean_copyright_mapper | 删除代码文件开头的版权声明 (必须包含单词 copyright) | code | tests | |
clean_email_mapper | 删除邮箱信息 | code | tests | |
clean_html_mapper | 删除 HTML 标签并返回所有节点的纯文本 | code | tests | |
clean_ip_mapper | 删除 IP 地址 | code | tests | |
clean_links_mapper | 删除链接,例如以 http 或 ftp 开头的 | code | tests | |
expand_macro_mapper | 扩展通常在 TeX 文档顶部定义的宏 | code | tests | |
extract_entity_attribute_mapper | 给定主体和属性名,从文本中抽取主体的属性 | code | tests | |
extract_entity_relation_mapper | 从文本中抽取知识图谱的实体和关系 | code | tests | |
extract_event_mapper | 从文本中抽取出事件和事件相关人物 | code | tests | |
extract_keyword_mapper | 构造文本的关键词 | code | tests | |
extract_nickname_mapper | 抽取昵称称呼关系 | code | tests | |
extract_support_text_mapper | 为一段总结抽取对应原文 | code | tests | |
fix_unicode_mapper | 修复损坏的 Unicode(借助 ftfy) | code | tests | |
generate_qa_from_examples_mapper | 根据种子数据,生成新的对话样本。 | code | tests | |
generate_qa_from_text_mapper | 从文本中生成问答对 | code | tests | |
image_blur_mapper | 对图像进行模糊处理 | code | tests | |
image_captioning_from_gpt4v_mapper | 基于gpt-4-vision和图像生成文本 | code | - | |
image_captioning_mapper | 生成样本,其标题是根据另一个辅助模型(例如 blip2)和原始样本中的图形生成的。 | code | tests | |
image_diffusion_mapper | 用stable diffusion生成图像,对图像进行增强 | code | tests | |
image_face_blur_mapper | 对图像中的人脸进行模糊处理 | code | tests | |
image_tagging_mapper | 从输入图片中生成图片标签 | code | tests | |
nlpaug_en_mapper | 使用nlpaug 库对英语文本进行简单增强 |
code | tests | |
nlpcda_zh_mapper | 使用nlpcda 库对中文文本进行简单增强 |
code | tests | |
optimize_qa_mapper | 指令优化,优化问题和答案 | code | tests | |
optimize_query_mapper | 指令优化,优化 query | code | tests | |
optimize_response_mapper | 指令优化,优化 response | code | tests | |
pair_preference_mapper | 构造配对的偏好样本 | code | tests | |
punctuation_normalization_mapper | 将各种 Unicode 标点符号标准化为其 ASCII 等效项 | code | tests | |
python_file_mapper | 执行文件中定义的 Python 函数处理样本 | code | tests | |
python_lambda_mapper | 执行 Python lambda 函数处理样本 | code | tests | |
relation_identity_mapper | 识别一段文本中两个实体之间的关系 | code | tests | |
remove_bibliography_mapper | 删除 TeX 文档的参考文献 | code | tests | |
remove_comments_mapper | 删除 TeX 文档中的注释 | code | tests | |
remove_header_mapper | 删除 TeX 文档头,例如标题、章节数字/名称等 | code | tests | |
remove_long_words_mapper | 删除长度超出指定范围的单词 | code | tests | |
remove_non_chinese_character_mapper | 删除样本中的非中文字符 | code | tests | |
remove_repeat_sentences_mapper | 删除样本中的重复句子 | code | tests | |
remove_specific_chars_mapper | 删除任何用户指定的字符或子字符串 | code | tests | |
remove_table_text_mapper | 检测并删除可能的表格内容(:warning: 依赖正则表达式匹配,因此很脆弱) | code | tests | |
remove_words_with_incorrect_ substrings_mapper | 删除包含指定子字符串的单词 | code | tests | |
replace_content_mapper | 使用一个指定的替换字符串替换文本中满足特定正则表达式模版的所有内容 | code | tests | |
sentence_split_mapper | 根据语义拆分和重组句子 | code | tests | |
text_chunk_mapper | 对文本进行分片处理 | code | tests | |
video_captioning_from_audio_mapper | 基于 Qwen-Audio 模型根据视频的音频流为视频生成新的标题描述 | code | tests | |
video_captioning_from_frames_mapper | 生成样本,其标题是基于一个文字生成图片的模型和原始样本视频中指定帧的图像。不同帧产出的标题会拼接为一条单独的字符串。 | code | tests | |
video_captioning_from_summarizer_mapper | 通过对多种不同方式生成的文本进行摘要以生成样本的标题(从视频/音频/帧生成标题,从音频/帧生成标签,...) | code | tests | |
video_captioning_from_video_mapper | 生成样本,其标题是根据另一个辅助模型(video-blip)和原始样本中的视频中指定帧的图像。 | code | tests | |
video_extract_frames_mapper | 从视频中抽帧。 | code | tests | |
video_face_blur_mapper | 对视频中的人脸进行模糊处理 | code | tests | |
video_ffmpeg_wrapped_mapper | 运行 FFmpeg 视频过滤器的简单封装 | code | tests | |
video_remove_watermark_mapper | 去除视频中给定区域的水印 | code | tests | |
video_resize_aspect_ratio_mapper | 将视频的宽高比调整到指定范围内 | code | tests | |
video_resize_resolution_mapper | 将视频映射到给定的分辨率区间 | code | tests | |
video_split_by_duration_mapper | 根据时长将视频切分为多个片段 | code | tests | |
video_split_by_key_frame_mapper | 根据关键帧切分视频 | code | tests | |
video_split_by_scene_mapper | 将视频切分为场景片段 | code | tests | |
video_tagging_from_audio_mapper | 从视频提取的音频中生成视频标签 | code | tests | |
video_tagging_from_frames_mapper | 从视频提取的帧中生成视频标签 | code | tests | |
whitespace_normalization_mapper | 将各种 Unicode 空白标准化为常规 ASCII 空格 (U+0020) | code | tests |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
alphanumeric_filter | 保留字母数字比例在指定范围内的样本 | code | tests | |
audio_duration_filter | 保留包含音频的时长在指定范围内的样本 | code | tests | |
audio_nmf_snr_filter | 保留包含音频信噪比SNR(基于非负矩阵分解方法NMF计算)在指定范围内的样本 | code | tests | |
audio_size_filter | 保留包含音频的大小(bytes)在指定范围内的样本 | code | tests | |
average_line_length_filter | 保留平均行长度在指定范围内的样本 | code | tests | |
character_repetition_filter | 保留 char-level n-gram 重复比率在指定范围内的样本 | code | tests | |
flagged_words_filter | 保留使标记字比率保持在指定阈值以下的样本 | code | tests | |
image_aesthetics_filter | 保留包含美学分数在指定范围内的图像的样本 | code | tests | |
image_aspect_ratio_filter | 保留样本中包含的图片的宽高比在指定范围内的样本 | code | tests | |
image_face_count_filter | 保留样本中包含的图片中检测到的人脸数目在指定范围内的样本 | code | tests | |
image_face_ratio_filter | 保留样本中包含的图片的最大脸部区域在指定范围内的样本 | code | tests | |
image_nsfw_filter | 保留包含NSFW分数在指定阈值之下的图像的样本 | code | tests | |
image_pair_similarity_filter | 保留图像特征余弦相似度(基于CLIP模型)在指定范围内的样本 | code | tests | |
image_shape_filter | 保留样本中包含的图片的形状(即宽和高)在指定范围内的样本 | code | tests | |
image_size_filter | 保留样本中包含的图片的大小(bytes)在指定范围内的样本 | code | tests | |
image_text_matching_filter | 保留图像-文本的分类匹配分(基于BLIP模型)在指定范围内的样本 | code | tests | |
image_text_similarity_filter | 保留图像-文本的特征余弦相似度(基于CLIP模型)在指定范围内的样本 | code | tests | |
image_watermark_filter | 保留包含有水印概率在指定阈值之下的图像的样本 | code | tests | |
language_id_score_filter | 保留特定语言的样本,通过预测的置信度得分来判断 | code | tests | |
maximum_line_length_filter | 保留最大行长度在指定范围内的样本 | code | tests | |
perplexity_filter | 保留困惑度低于指定阈值的样本 | code | tests | |
phrase_grounding_recall_filter | 保留从文本中提取的名词短语在图像中的定位召回率在一定范围内的样本 | code | tests | |
special_characters_filter | 保留 special-char 比率的在指定范围内的样本 | code | tests | |
specified_field_filter | 根据字段过滤样本,要求字段的值处于指定目标中 | code | tests | |
specified_numeric_field_filter | 根据字段过滤样本,要求字段的值处于指定范围(针对数字类型) | code | tests | |
stopwords_filter | 保留停用词比率高于指定阈值的样本 | code | tests | |
suffix_filter | 保留包含特定后缀的样本 | code | tests | |
text_action_filter | 保留文本部分包含动作的样本 | code | tests | |
text_entity_dependency_filter | 保留文本部分的依存树中具有非独立实体的样本 | code | tests | |
text_length_filter | 保留总文本长度在指定范围内的样本 | code | tests | |
token_num_filter | 保留token数在指定范围内的样本 | code | tests | |
video_aesthetics_filter | 保留指定帧的美学分数在指定范围内的样本 | code | tests | |
video_aspect_ratio_filter | 保留包含视频的宽高比在指定范围内的样本 | code | tests | |
video_duration_filter | 保留包含视频的时长在指定范围内的样本 | code | tests | |
video_frames_text_similarity_filter | 保留视频中指定帧的图像-文本的特征余弦相似度(基于CLIP模型)在指定范围内的样本 | code | tests | |
video_motion_score_filter | 保留包含视频的运动分数(基于稠密光流)在指定范围内的样本 | code | tests | |
video_motion_score_raft_filter | 保留包含视频的运动分数(基于 RAFT 模型估计的稠密光流)在指定范围内的样本 | code | tests | |
video_nsfw_filter | 保留包含视频的NSFW分数在指定阈值之下的样本 | code | tests | |
video_ocr_area_ratio_filter | 保留包含视频的特定帧中检测出的文本的面积占比在指定范围内的样本 | code | tests | |
video_resolution_filter | 保留包含视频的分辨率(包括横向分辨率和纵向分辨率)在指定范围内的样本 | code | tests | |
video_watermark_filter | 保留包含视频有水印的概率在指定阈值之下的样本 | code | tests | |
video_tagging_from_frames_filter | 保留包含具有给定标签视频的样本 | code | tests | |
words_num_filter | 保留字数在指定范围内的样本 | code | tests | |
word_repetition_filter | 保留 word-level n-gram 重复比率在指定范围内的样本 | code | tests |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
document_deduplicator | 通过比较 MD5 哈希值在文档级别对样本去重 | code | tests | |
document_minhash_deduplicator | 使用 MinHashLSH 在文档级别对样本去重 | code | tests | |
document_simhash_deduplicator | 使用 SimHash 在文档级别对样本去重 | code | tests | |
image_deduplicator | 使用文档之间图像的精确匹配在文档级别删除重复样本 | code | tests | |
video_deduplicator | 使用文档之间视频的精确匹配在文档级别删除重复样本 | code | tests | |
ray_document_deduplicator | 通过比较 MD5 哈希值在文档级别对样本去重,面向RAY分布式模式 | code | - | |
ray_image_deduplicator | 使用文档之间图像的精确匹配在文档级别删除重复样本,面向RAY分布式模式 | code | - | |
ray_video_deduplicator | 使用文档之间视频的精确匹配在文档级别删除重复样本,面向RAY分布式模式 | code | - |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
frequency_specified_field_selector | 通过比较指定字段的频率选出前 k 个样本 | code | tests | |
random_selector | 随机筛选 k 个样本 | code | tests | |
range_specified_field_selector | 通过比较指定字段的值选出指定范围的 k 个样本 | code | tests | |
topk_specified_field_selector | 通过比较指定字段的值选出前 k 个样本 | code | tests |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
key_value_grouper | 根据给定键的值将样本分组,每一组组成一个批量样本。 | code | tests | |
naive_grouper | 将所有样本分为一个组,返回一个批量样本 | code | tests |
算子 | 标签 | 描述 | 源码 | 单测样例 |
---|---|---|---|---|
entity_attribute_aggregator | 从一些文本中总结出给定实体的属性 | code | tests | |
most_relavant_entities_aggregator | 从一些文本中抽取出与给定实体密切相关的实体,按重要性从高到低排序 | code | tests | |
nested_aggregator | 考虑到输入长度的限制,对样本中的内容进行嵌套聚合。 | code | tests |
我们欢迎社区贡献新的算子,具体请参考开发者指南。