Skip to main content
Article·huggingface.co
llmmachine-learningresearchopen-sourcedata-pipelinessoftware-heritage-archive

The Stack v2

Access BigCode's 67TB 'The Stack v2' dataset, sourced from Software Heritage, to train advanced code-focused Large Language Models. This massive resource accelerates AI development for code generation, understanding, and automation.

intermediate5 min5 steps
The play
  1. Grasp The Stack v2's Scale
    Recognize 'The Stack v2' as BigCode's 67TB dataset, built from Software Heritage, designed to train advanced code LLMs. Understand its role in boosting code generation, understanding, and developer tool capabilities.
  2. Install Hugging Face `datasets`
    Prepare your environment by installing the `datasets` library, essential for interacting with this massive resource.
  3. Load a Streaming Language Subset
    Access a specific programming language (e.g., Python) from 'The Stack v2' using streaming to avoid downloading the full dataset. This allows quick exploration.
  4. Inspect Sample Data
    Iterate through a few entries from the streaming dataset to understand its structure and content (e.g., `content`, `path`, `hexsha` fields).
  5. Prepare for LLM Training
    Plan your data preprocessing pipeline (tokenization, formatting) to convert raw code snippets into a format suitable for your target LLM. This is crucial for pre-training or fine-tuning code models.
Starter code
from datasets import load_dataset

# Load a small streaming sample of the Python subset from The Stack v2
# This avoids downloading the entire 67TB dataset for a quick look.
try:
    python_dataset_stream = load_dataset("bigcode/the-stack-v2", data_dir="data/python", split="train", streaming=True)

    print("First 3 entries of the Python dataset (streaming):")
    for i, item in enumerate(python_dataset_stream):
        if i >= 3:
            break
        print(f"--- Entry {i+1} ---")
        print(f"File path: {item.get('hexsha', 'N/A')}/{item.get('path', 'N/A')}")
        print(f"Content (first 100 chars):\n{item.get('content', 'N/A')[:100]}...\n")
except Exception as e:
    print(f"Error loading dataset: {e}")
    print("Ensure 'datasets' library is installed (`pip install datasets`).")
    print("For full dataset access, consider removing `streaming=True` but be aware of the 67TB size.")
Source
The Stack v2 — Action Pack