File size: 2,198 Bytes
0e96581
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/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}" \
    "$@"