distributed-offline-packing

Pack SFT JSONL samples into Energon WebDataset shards across multiple nodes.

1.2k|78|Updated Sep 16, 2025
One-click install
npx skills add https://github.com/EvolvingLMMs-Lab/LLaVA-OneVision-2 --skill distributed-offline-packing
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: distributed-offline-packing
Source: https://github.com/EvolvingLMMs-Lab/LLaVA-OneVision-2/tree/main/.opencode/skills/distributed-offline-packing
Command: npx skills add https://github.com/EvolvingLMMs-Lab/LLaVA-OneVision-2 --skill distributed-offline-packing

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Use this skill to orchestrate the multi-node packing of enormous SFT JSONL datasets into Energon WebDataset shards, enabling scalable SFT data preparation with padding-free shards and a consolidated metadataset.

Core Features & Use Cases

  • End-to-end distributed packing across multiple nodes using offline_packing/auto_pipe.sh to partition work, tokenize/prompts, bin samples, and generate webdataset shards.
  • Per-node Metadataset assembly that aggregates node outputs into a single logical dataset, suitable for large-scale SFT pipelines.
  • Prerequisites and guardrails including shared NFS, consistent Docker image, and script stages s1–s4 to ensure deterministic reproducibility.

Quick Start

Prepare an N-node environment with a shared NFS, mount the repository, and run offline_packing/auto_pipe.sh on your Part JSONL to produce Energon WebDataset shards.

Frequently Asked Questions about distributed-offline-packing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I pack large SFT JSONL datasets into WebDataset shards across multiple nodes?

You can pack large SFT JSONL datasets into Energon WebDataset shards across multiple nodes by partitioning the data, computing token lengths, binning samples, and writing tar shards with a final aggregated metadataset.

What is the best way to avoid filename collisions when generating WebDataset shards in a distributed pipeline?

To avoid filename collisions when generating WebDataset shards in a distributed pipeline, configure shard-prefixing for each node so that per-node outputs remain unique before aggregation into the final metadataset.

Do I need a shared NFS to distribute SFT data packing across nodes?

Yes, distributing SFT data packing across nodes requires a shared NFS to mount the repository and ensure all nodes can access the necessary scripts and data slices consistently.

How does the tokenization and binning process work for SFT data packing?

The tokenization and binning process for SFT data packing involves computing token lengths for each JSONL sample and grouping them into bins to create padding-free WebDataset shards.

What scripts are used for the end-to-end distributed packing of SFT data?

The end-to-end distributed packing of SFT data uses script stages s1 through s4, which handle partitioning, tokenizing, binning, and generating WebDataset shards with deterministic reproducibility.

Can I use a custom Docker image for multi-node SFT data packing?

Multi-node SFT data packing requires a consistent Docker image across all nodes to ensure deterministic reproducibility when running the offline packing pipeline and generating Energon WebDataset shards.