Coverage for / home / jenkins / .local / lib / python3.10 / site-packages / hyper_parallel / data / constants.py: 100%
33 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-10-25 05:45 +0800
« prev ^ index » next coverage.py v7.13.1, created at 2026-10-25 05:45 +0800
1# Copyright 2025-2026 Bytedance Ltd. and/or its affiliates
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14"""Static constants used by text, Omni, Online, batching, and indexed datasets."""
17# Text and Omni token semantics.
18IGNORE_INDEX = -100
19ROLE_SUPPORTED = ["system", "user", "assistant", "tool"]
20TEXT_LAZY_EXPORTS = {
21 "AutoTokenizer": "hyper_parallel.data.text.build_tokenizer",
22 "ChatTemplate": "hyper_parallel.data.text.chat_template",
23 "IdentityDataTransform": "hyper_parallel.data.text.text_transform",
24 "PlaintextTransform": "hyper_parallel.data.text.text_transform",
25 "TextConversationTransform": "hyper_parallel.data.text.text_transform",
26 "build_chat_template": "hyper_parallel.data.text.chat_template",
27 "build_indexed_text_dataset": "hyper_parallel.data.text.build_dataset",
28 "build_text_transform": "hyper_parallel.data.text.text_transform",
29 "build_online_iterable_dataset": "hyper_parallel.data.text.build_dataset",
30 "build_online_text_mapping_dataset": "hyper_parallel.data.text.build_dataset",
31 "build_tokenizer": "hyper_parallel.data.text.build_tokenizer",
32}
33IMAGE_INPUT_INDEX = -200
34VIDEO_INPUT_INDEX = -300
35AUDIO_INPUT_INDEX = -400
36IMAGE_OUTPUT_INDEX = -201
37VIDEO_OUTPUT_INDEX = -301
38AUDIO_OUTPUT_INDEX = -401
39TYPE2INDEX = {
40 "input": {
41 "image": IMAGE_INPUT_INDEX,
42 "video": VIDEO_INPUT_INDEX,
43 "audio": AUDIO_INPUT_INDEX,
44 },
45 "output": {
46 "image": IMAGE_OUTPUT_INDEX,
47 "video": VIDEO_OUTPUT_INDEX,
48 "audio": AUDIO_OUTPUT_INDEX,
49 },
50}
51MODALITY = TYPE2INDEX["input"].keys() | TYPE2INDEX["output"].keys()
53# Online source and split policy.
54ONLINE_SPLIT_NAMES = ("train", "valid", "test")
55ONLINE_SPLIT_COUNT = len(ONLINE_SPLIT_NAMES)
56ONLINE_SOURCE_PATH_KEY = "__online_source_path__"
57ONLINE_STOPPING_STRATEGIES = (
58 "first_exhausted",
59 "all_exhausted",
60 "all_exhausted_without_replacement",
61)
62ONLINE_BLEND_STRATEGIES = ("local_weighted", "global_interleave")
63ONLINE_FILE_FORMATS = {
64 ".arrow": "arrow",
65 ".csv": "csv",
66 ".json": "json",
67 ".jsonl": "json",
68 ".parquet": "parquet",
69}
71# Packing and Omni batch field rules.
72DEFAULT_FIELD_PACK_DIMS = {
73 "input_ids": -1,
74 "labels": -1,
75 "attention_mask": -1,
76 "loss_mask": -1,
77 "position_ids": -1,
78 "text_position_ids": -1,
79 "router_attention_mask": -1,
80 "mm_token_type_ids": -1,
81 "token_types": -1,
82 "pixel_values": 0,
83 "pixel_values_videos": 0,
84 "image_grid_thw": 0,
85 "video_grid_thw": 0,
86 "audio_values": 0,
87}
88PACKING_METADATA_FIELDS = {"packing_length", "cu_seq_lens"}
89OMNI_CONCAT_FIELDS = {
90 "audio_values",
91 "image_grid_thw",
92 "pixel_values",
93 "pixel_values_videos",
94 "video_grid_thw",
95}
96OMNI_LOSS_INPUT_FIELDS = {"labels", "loss_mask", "stream_loss_mask"}
97OMNI_INTERNAL_FIELDS = {"loss_mask", "stream_loss_mask", "cu_seq_lens", "packing_length"}
98OMNI_CP_TOKEN_FIELDS = frozenset({
99 "input_ids", "labels", "loss_mask", "stream_loss_mask", "attention_mask", "position_ids",
100 "text_position_ids", "router_attention_mask", "mm_token_type_ids", "token_types",
101})
102OMNI_CP_PAD_VALUES = {"labels": -100, "token_types": -1, "mm_token_type_ids": -1}
104# Indexed dataset storage and object-store paths.
105INDEX_HEADER = b"MMIDIDX\x00\x00"
106INDEX_VERSION = 1
107INDEX_DTYPE_CODES = {
108 1: "uint8",
109 2: "int8",
110 3: "int16",
111 4: "int32",
112 5: "int64",
113 6: "float64",
114 7: "float32",
115 8: "uint16",
116}
117PAD_TOKEN_ID = -1
118S3_PREFIX = "s3://"
119MSC_PREFIX = "msc://"
121# Dataset logger presentation.
122DATASET_LOGGER_NAME = "hyper_parallel.data"
123DATASET_LOG_FORMAT = (
124 "[%(asctime)s] [%(levelname)s] [%(filename)s:%(lineno)d] "
125 "[rank:%(rank_id)d] \t> %(message)s"
126)
127DATASET_DATE_FORMAT = "%Y-%m-%d %H:%M:%S.%f"