#!/usr/bin/env bash # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # Step 1: Generate SFT data using the teacher model. # # Uses data_curation/ to run the teacher model on OpenThoughts-3 prompts # and generate response trajectories for SFT training. # # Required environment variables: # TEACHER_MODEL - HuggingFace model name or path (e.g. Qwen/Qwen3-8B) # SFT_PROMPTS - Path to the prompt dataset (.jsonl or .parquet) # OUTPUT_DIR - Directory for generated SFT data # # Optional: # NUM_GPUS - Number of GPUs to use (default: 8) # TP_SIZE - Tensor parallel size per worker (default: 1) # # Extra args are passed through to data_curation/pipeline.py, e.g.: # bash scripts/generate_sft_data.sh --num-samples 10 set -euo pipefail # ---- CUDA / FlashInfer build environment ---- if [ -n "${CONDA_PREFIX:-}" ]; then export CUDA_HOME="${CUDA_HOME:-$CONDA_PREFIX}" export CUDA_PATH="${CUDA_PATH:-$CONDA_PREFIX}" export CUDACXX="${CUDACXX:-$CONDA_PREFIX/bin/nvcc}" export PATH="$CONDA_PREFIX/bin:$PATH" export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$CONDA_PREFIX/lib64:/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}" export LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:${LIBRARY_PATH:-}" fi echo "Using nvcc: $(which nvcc)" nvcc --version || true echo "CUDA_HOME=${CUDA_HOME:-}" echo "CUDACXX=${CUDACXX:-}" echo "LIBRARY_PATH=${LIBRARY_PATH:-}" # --------------------------------------------- : "${TEACHER_MODEL:?Set TEACHER_MODEL (e.g. Qwen/Qwen3-8B)}" : "${SFT_PROMPTS:?Set SFT_PROMPTS to the prompt dataset path}" : "${OUTPUT_DIR:?Set OUTPUT_DIR for generated SFT data}" # Resolve to absolute paths (workers may run from different cwd) SFT_PROMPTS="$(cd "$(dirname "${SFT_PROMPTS}")" && pwd)/$(basename "${SFT_PROMPTS}")" OUTPUT_DIR="$(mkdir -p "${OUTPUT_DIR}" && cd "${OUTPUT_DIR}" && pwd)" NUM_GPUS="${NUM_GPUS:-8}" TP_SIZE="${TP_SIZE:-1}" bash data_curation/run_curation.sh \ --model "${TEACHER_MODEL}" \ --input "${SFT_PROMPTS}" \ --output-dir "${OUTPUT_DIR}" \ --num-gpus "${NUM_GPUS}" \ --tensor-parallel-size "${TP_SIZE}" \ "$@"