open-thoughts/OpenThoughts-Agent
Data recipes and robust infrastructure for training AI agents
OpenThoughts‑Agent (OT‑Agent)
정의 – 소규모 에이전트형 언어 모델을 구축하고 평가하기 위한 연구급 코드베이스입니다. 데이터 생성("datagen"), 모델 파인튜닝(SFT), 추론 트레이스 실행, Harbor 평가 프레임워크를 통한 벤치마크 성능 측정까지 데이터에서 평가까지의 전체 파이프라인에 중점을 둡니다.
주요 구성 요소
- Datagen 스택 – Ray와 vLLM을 사용한 대규모 트레이스 생성을 위한 유틸리티로, 선택적 HPC 지원 확장(
.[datagen])이 포함됩니다. CUDA/C++ 확장(flash‑infer, flash‑attn, triton)용 헬퍼와 클러스터 또는 클라우드 VM에서 작업을 시작하는 스크립트가 포함됩니다. - SFT 스택 – 오픈소스 LLaMA‑Factory 저장소(서브모듈로)를 래핑하여 모델을 파인튜닝합니다.
[sft]확장으로 설치합니다. 훈련 구성은sft/lf_configs/에 있습니다. - 평가 스택 – 로컬 러너(
eval/local/run_eval.py)와 통합 리스너(eval/unified_eval_listener.py)가 Harbor/Daytona 샌드박스 작업을 구동하고, 트레이스 아티팩트를 수집하며, 결과를 Supabase와 HuggingFace에 업로드합니다. 단일 노드 테스트와 대규모 SLURM/HPC 실행을 모두 지원합니다. - 런처 – 모듈식
python -m hpc.launch진입점으로, 작업 유형(datagen,sft,eval_listener등)과 대상 플랫폼(SLURM 클러스터, SkyPilot 클라우드 VM 또는 로컬 Docker/Modal)을 추상화합니다. sbatch 스크립트를 생성하고, 환경 dotfiles를 처리하며, 부족한 GPU 리소스를 자동으로 재시도할 수 있습니다. - 클라우드 헬퍼 – SkyPilot 기반 래퍼(
data/cloud/launch_tracegen_cloud.py,eval/cloud/launch_eval_cloud.py)를 통해 SLURM 스크립트를 작성하지 않고 GCP, AWS, Lambda 또는 Kubernetes에서 동일한 datagen/eval 파이프라인을 실행할 수 있습니다.
일반적인 워크플로우
- 설정 – Python 3.12 환경을 만들고
uv pip install -e .[datagen,sft,cloud]로 기본 스택을 설치합니다. - 데이터 생성 –
python -m hpc.launch --job_type datagen …또는 클라우드 런처로 datagen 스크립트를 실행합니다. 스크립트는 데이터셋과 선택적 트레이스 로그를 생성합니다. - 파인튜닝 – LLaMA‑Factory 구성을 사용하여 생성된 데이터로 소규모 에이전트형 모델을 훈련하는 SFT 작업(
--job_type sft)을 시작합니다. - 평가 – 빠른 sanity check를 위해
eval/local/run_eval.py를 실행하거나 클러스터에서 전체 평가 리스너(--job_type eval_listener)를 제출합니다. 결과는 자동으로 업로드되어 공개 리더보드에 표시됩니다.
인프라 참고 사항
- HPC 클러스터(SLURM, 모듈 기반 툴체인)용으로 설계되었지만 컨테이너(Singularity)와 클라우드 VM에서도 작동합니다.
- 무거운 GPU 중심 종속성(flash‑attn, vLLM, deepspeed, bitsandbytes)은 선택적 확장입니다. README에 자세한 컴파일러/CUDA 버전 가이드가 있습니다.
- 시크릿(HF 토큰, W&B, Supabase, Daytona)은
DC_AGENT_SECRET_ENV가 참조하는 개인 환경 파일에 있어야 합니다.
대상 독자 – 적당한 규모로 에이전트형 LLM을 만들기 위한 엔드투엔드 파이프라인이 필요한 연구자나 엔지니어, 특히 HPC 또는 클라우드 기반 GPU 클러스터에 익숙한 사람.
더 알아보기 – 프로젝트 웹사이트, 리더보드, 트레이스 뷰어 링크는 README 상단에 있습니다. docs/EVAL_GUIDE.md와 hpc/README.md에 더 자세한 사용법이 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트