Describes the format specifications, packaging requirements, size and quantity limits, and API upload quotas for text generation model fine-tuning data, helping users construct and upload compliant SFT/DPO/CPT training data by training method.
Overview
This document describes the format specifications, packaging requirements, size and quantity limits, and API upload quotas for text generation model fine-tuning data. The scope covers text generation model fine-tuning (text/image/video → text), including plain-text SFT/DPO/CPT, Qwen VL image and video understanding, video frame extraction, function calling, and thinking. Video generation model fine-tuning (image → video) is out of scope.
The dataset type (training set or evaluation set) cannot be changed after creation. The support for each training method and element is detailed in Training method and element support matrix. Format construction rules for each combination are described in the corresponding chapters below.
Management operations (creation parameters, version management, evaluation set management rules, import method selection, data cleansing, security and compliance) are covered in sibling documents; see Training set and evaluation set, Introduction to model fine-tuning, etc. We recommend downloading the data template for the corresponding scenario on the dataset creation page and preparing data according to the template structure to avoid import failures.
For dataset construction recommendations (recommended data scale, diversity and balance, data augmentation strategies), see Model fine-tuning introduction - Dataset construction tips.
Training method and element support matrix
The training set supports three training methods: SFT, DPO, and CPT. The support status of each training method and element is shown in the matrix table below. The recommended fine-tuning order is CPT (optional) → SFT → DPO (optional); the three are progressive, not mutually exclusive.
Region availability:
- SFT, local upload, log backflow, API upload, and multimodal data formats are supported in all regions.
- DPO, CPT, OSS import, and cloud storage mount are only supported in the Beijing region.
Training method | Text generation | Visual understanding - Image input | Visual understanding - Video input (qwen3.5+) | Visual understanding - Tool calling (qwen3.5+) | Deep thinking |
|---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ | |
✓ | ✗ | ✗ | ✗ | ✓ | |
✓ | ✗ | ✗ | ✗ | ✗ | |
✓ | ✗ | ✗ | ✗ | ✗ |
Text generation - SFT format
SFT text generation training data uses the jsonl file format, based on the ChatML messages multi-turn structure.
- Supports three roles: system, user, and assistant. The content field is a string (for the content array structure in multimodal scenarios, see the corresponding multimodal format chapter).
- Maximum single file size is 200 MB.
- A dataset can mix rows of different formats — each record independently selects a format, no need to unify into a single format.
- Available formats: standard ChatML, thinking, function calling, and function calling combined with thinking (see the sample tabbed pages below).
- Standard ChatML
- Thinking
- Function calling
(0.0, 1.0]; the larger the value, the higher the training importance.Supported by Qwen3.5+ by default; for other models, contact your account manager if support is needed.
Thinking tag rules
Thinking content is wrapped in <think>\n…\n</think>\n\n tags, placed inside the assistant output text (sharing the same last assistant content as the final reply). Rules:
- It can only be placed in the last assistant output; intermediate assistant outputs must not include thinking tags.
- The line breaks before and after the thinking tag must be preserved.
- If a training sample is configured so that the model does not output thinking tags, it is not recommended to re-enable the thinking mode when calling the model after training.
Evaluation set format
The evaluation set only serves text generation scenarios and is independent of the SFT/DPO/CPT training method — models trained with DPO/CPT also use the text generation evaluation set for evaluation, with no distinction made by training method.
Evaluation set specifications:
- File format is xlsx; the column structure can be found in the template downloaded from the console.
- Ingestion methods: local upload and log replay; Object Storage Service (OSS) import and cloud storage mounting are not supported.
- Only draft versions support online editing (Prompt/Completion); published versions cannot be edited.
- Supported log range is within the last 30 days.
- Maximum of 100,000 records per import.
- You must authorize the service-linked role and specify the API Key and model filter conditions.
- The training set is only available for SFT text generation scenarios (the text generation evaluation set is also supported).
Text generation - DPO format
DPO text generation training data uses the jsonl format. Based on the ChatML messages multi-turn structure, it additionally contains two contrasting assistant outputs, chosen and rejected, for preference alignment training. All content within messages is used as input, and DPO is used to train the model's positive/negative feedback on the last user input. For the messages multi-turn structure rules, see Text generation - SFT format.
For deep thinking content, the chosen or rejected assistant output can be wrapped with thinking tags. The thinking tag can only be placed in the last assistant line. For the rules, see Text generation - SFT format.
The loss_weight parameter (invite-only, only supported by Qwen3.5+) supports the chosen module. The value range is 0.0 to 1.0; the larger the value, the higher the training importance. For details, see Text generation - SFT format.
The single file size limit for DPO training data is 200 MB, consistent with SFT text generation. For the DPO definition, see Introduction to model fine-tuning. For draft and publish operations, see Training set and evaluation set.
See the code block below for a DPO text generation training data sample:
- Standard ChatML
- Deep thinking (thinking)
Text generation - CPT format
CPT text generation training data uses the jsonl plain text format, with one jsonl object per line, structured as {text}, where the text field is plain text content. For the messages multi-turn structure rules, see Text generation - SFT format.
CPT training data constraints:
- A minimum of 50 million Tokens is recommended, and the single file size limit is 300 MB.
- Draft status and data inheritance are not supported; each new version requires creating new data and publishing immediately.
Data inheritance strategy | SFT | DPO | CPT |
|---|---|---|---|
Inherit existing data | ✓ | ✓ | ✗ |
Create new data | ✓ | ✓ | Supported (force new) |
Visual understanding-SFT format
SFT image training data is used for Qwen VL multimodal understanding (the console UI option is "Image Understanding"). It uses a zip package format containing a data.jsonl training text data file and image files. data.jsonl must be placed at the root of the package. Each training record's messages in data.jsonl adopt a content array structure, with array items containing an image field (image) and a text field (text). A single-layer directory structure is recommended. For packaging rules, see Multimodal zip package packaging rules.
- Image input limits
- Video input limits
- The width and height of a single image must not exceed 1024 px.
- A single image must not exceed 10 MB.
- Supported formats: bmp, jpeg, jpg, png, tif, tiff, webp.
- Standard ChatML
- Thinking (thinking)
- Function calling (function calling)
- Image input
- Video file path mode
- Image frame list mode
Tool field description
The function calling mode adds tools definitions and the tool_calls/role:tool mechanism on top of the multi-turn messages structure. Field constraints are as follows:
- tools: tool definition array; each item contains type:"function" and function{name, description, parameters}; parameters is a JSON Schema (containing type/properties/required).
- messages: multi-turn dialogue array; roles include user, assistant, and tool.
- content: multimodal content array; can contain image, text, video, and other items (consistent with the multimodal understanding format).
- assistant.tool_calls: tool call array generated by the model; contains id, type:"function", function{name, arguments}; arguments is a JSON string.
- role:"tool": tool return; tool_call_id must correspond one-to-one with the corresponding tool_calls[].id; content contains the tool return result.
- Invite-only parameter; value range 0.0 to 1.0; the larger the value, the higher the relative importance of this row during training.
- For SFT thinking models, only the last assistant row supports loss_weight.
Thinking tag rules
Thinking content is wrapped in <think>\n…\n</think>\n\n tags and placed within the assistant output text (belonging to the same last assistant's content as the final reply). Rules:
- It must be placed only in the last assistant output; intermediate assistant outputs do not add thinking tags.
- The newlines before and after the thinking tags must be preserved.
- If the training samples set the model not to output thinking tags, after training is complete it is not recommended to enable the thinking mode for calls.
Multimodal zip package packaging rules
Multimodal understanding training data is uploaded as a zip package via the Add Dataset page. Packaging must meet the following constraints:
- The zip package supports up to 2 GB.
- The allowed character set for folder and file names inside the package is ASCII letters (a-z, A-Z), digits (0-9), underscores (_), and hyphens (-).
- The training text data file is fixed as data.jsonl and must be located in the root directory of the zip package — ensure that after extraction, opening the zip file directly shows data.jsonl, with no additional outer folder wrapping.
File size and quantity limits
The upper limits on local upload file size and quantity are set by training method and scenario, as detailed in the scenario-specific table below. For image admission limits, see Visual understanding-SFT format; for evaluation set format limits, see Evaluation set format; for log backflow ingestion limits, see Evaluation set format.
max_length takes values in the range 500 to 131072 as a training sequence length configuration parameter, not an upload admission upper limit. The upper limit on admission size for a single training data record is not given a numeric value in the source document; refer to the value displayed on the console page.
The upper limits on local upload file size and quantity are set by training method and scenario. The recommended data volume is the minimum suggested value:
Training method/scenario | Max single file size | Max file count (maxCount) | Recommended data volume |
|---|---|---|---|
Text generation - SFT format | 200 MB | 10 (default) | At least thousands of samples |
Text generation - DPO format | 200 MB | 10 (default) | At least hundreds of samples |
Text generation - CPT format | 300 MB | 1 | At least 50 million Tokens |
Multimodal (zip) | 2 GB | 1 | Prepare sufficient samples based on actual scenarios |
Filename (without extension) | ≤120 characters and unique | — | — |
Extension | Must be in the Create dataset list | — | — |
API upload quota
The quota for uploading fine-tuning files via the DashScope API (with purpose tagged as model fine-tuning) is shown in the quota table below. When creating a dataset in the console, the File API list supports merging and registering up to 10 files; fine-tuning files uploaded via the API are visible and usable in both the console model fine-tuning page and API calls.
Constraints for loading datasets via cloud storage mount:
- Specify the data.jsonl root directory manifest path via MountStorage's file_path; zip archives are not supported.
- When selecting cloud storage mount as the storage location, immediate publish is enforced; draft status is not supported.
- Before mounting, you must authorize the Bailian service to access OSS data.
- Single file exceeding 300 MB: upload via cloud storage mount or the multi-modal ZIP 2 GB channel.
- Total quota exceeded: delete historical files to free up space.
- Imported data automatically enables OSS server-side encryption (SSE-OSS, AES256).
Quota item | Limit | Description |
|---|---|---|
Single file size | Up to 300 MB | Fine-tuning files (for model fine-tuning purpose) |
Total valid file space | 100 GB | Cumulative of undeleted files |
Total valid file count | 10000 | Cumulative of undeleted files |
File storage duration | No time limit | Does not auto-expire |
File API list upper limit | 10 | Merged registration when creating a dataset in the console |
Dimension | OSS import | Cloud storage mount |
|---|---|---|
Prerequisite | Bailian data access authorization tag | Authorize Bailian service to access OSS data |
Data form | Single or batch files | Entire uncompressed dataset folder (zip not supported) |
Entry | Data Management > New Dataset > OSS Import | Model Fine-tuning > Create Training Task > Data Configuration > Dataset Mount |
Version draft | Supports draft and immediate publish | Forces immediate publish (draft not supported) |
Evaluation set ✓ | ✗ | ✗ |
Upload validation and common errors
When uploading files locally on the Add Dataset page, frontend validation rejects files that do not meet the admission rules and displays a prompt. Common validation rejections and upload error scenarios are shown in the collapsible items below:
Details
Details
- Check the maxCount upper limit corresponding to the current training method; for details see File size and quantity limits.
- Reduce the file count to within the upper limit; merge multi-modal data into a single zip, and merge CPT data into a single jsonl.
- If the file count still exceeds the limit, split into multiple datasets and upload in batches.
Details
Details
- Rename the file so that the filename (excluding extension) is shortened to within 120 characters.
- Use only a-z/A-Z/0-9/_/- characters; remove Chinese and other non-ASCII characters.
- Filenames inside a multi-modal archive must also be globally unique.
Details
Details
- Check for duplicate-named files and rename them so the part excluding extension is unique.
- Files with the same name but different extensions (e.g., image.jpg and image.png) are also judged as duplicates and must be differentiated simultaneously.
- Filenames inside a multi-modal zip must be globally unique, even if distributed across different folders.
Details
Details
- Check whether the file size exceeds the upper limit of the corresponding training method.
- Split the jsonl into multiple files for batch upload (SFT/DPO); CPT data splitting requires creating multiple new datasets.
- For the overflow handling method when a single file exceeds 300 MB, see API upload quota.
Details
Details
- Check whether the file extension is within the supported list for the corresponding scenario.
- Convert the file to a supported extension and repackage for upload.
- Image and video extensions inside a multi-modal zip must each conform, otherwise the entire package import fails.
Details
Details
- Verify that the OSS Bucket has the Bailian data access authorization tag added.
- Confirm that the Bailian service has been authorized to access OSS data.
- Check that data.jsonl and the file format conform to the packaging rules and retry the upload; for details see Multimodal zip package packaging rules.
- Publish and delete operations are both irreversible; published versions cannot be edited again, and only draft versions can be deleted or edited online.
- Dataset type (training set/evaluation set) cannot be changed or interchanged after creation; selecting the wrong one requires creating a new dataset and re-importing all data.
- Switching dataset type, training scenario, or training method clears the uploaded files and resets the storage location and import method.