Hugging Face가 엔드‑투‑엔드 ML 실험을 위해 Codex를 통합했습니다

Hugging Face는 OpenAI Codex를 HF-skills 저장소와 통합하여 AI 코딩 에이전트가 데이터 검증부터 모델 배포까지 전체 머신러닝 라이프사이클을 관리할 수 있게 했습니다. 이 통합을 통해 엔지니어는 파인튜닝 및 RL 정렬과 같은 복잡한 실험을 하드웨어를 자동 선택하고, 학습 지표를 모니터링하며, 상세한 실험 보고서를 유지하는 에이전트에 위임할 수 있습니다.

자동화된 엔드‑투‑엔드 ML 워크플로우

Codex는 이제 간단한 자연어 프롬프트만으로 완전한 머신러닝 실험을 실행할 수 있습니다. HF-skills 저장소 내의 AGENTS.md 파일을 활용함으로써 Codex는 다음 작업을 수행합니다:

  • 파인튜닝 및 정렬: 감독된 파인튜닝(SFT), 직접 선호 최적화(DPO), 강화 학습(RL)을 검증 가능한 보상과 함께 실행합니다.
  • 인프라 관리: 적절한 하드웨어를 자동으로 선택하고(예: 1B 파라미터 미만 모델에 t4-small), Hugging Face Jobs에 작업을 제출합니다.
  • 데이터 검증: CPU에서 데이터셋을 검사하여 학습 방법과 호환되는지 확인합니다(예: SFT의 경우 'messages' 열, DPO의 경우 'chosen'/'rejected' 열 존재 여부 확인).
  • 모니터링 및 보고: Trackio를 통해 실시간 학습 지표를 검토하고, 파라미터, 실행 상태, 평가 점수를 추적하는 구조화된 training_reports/<model>-<dataset>-<method>.md 파일을 유지합니다.
  • 배포: 모델을 양자화된 GGUF 형식(예: Q4_K_M)으로 내보내 로컬 배포에 사용하고, 최종 모델을 Hugging Face Hub에 게시합니다.

기술 구현 및 설정

이 통합은 Model Context Protocol (MCP) 및 특수 스킬 파일에 의존하여 코딩 에이전트와 Hugging Face 생태계 간의 격차를 메웁니다.

구성

이 기능을 사용하려면 사용자는 Codex를 설치하고 HF-skills 저장소를 클론해야 합니다. Codex는 AGENTS.md 파일을 자동으로 감지하여 필요한 머신러닝 스킬을 로드합니다. Hub와의 보다 깊은 통합을 위해 사용자는 ~/.codex/config.toml 파일에 Hugging Face MCP 서버를 구성할 수 있습니다:

[mcp_servers.huggingface]
command = "npx"
args = ["-y", "mcp-remote", "https://huggingface.co/mcp?login"]

하드웨어 및 비용 스케일링

Codex는 훈련 중인 모델의 파라미터 수에 따라 하드웨어를 선택합니다:

모델 크기 추천 하드웨어 예상 비용 사용 사례
< 1B 파라미터 t4-small $1 - $2 교육/실험
1B - 3B 파라미터 t4-medium or a10g-small $5 - $15 소규모 훈련
3B - 7B 파라미터 a10g-large or a100-large (with LoRA) $15 - $40 프로덕션 수준 훈련

현재 시스템은 7B 파라미터를 초과하는 모델을 지원하지 않습니다.

실험 라이프사이클 예시

open-r1/codeforces-cots 데이터셋과 openai_humaneval 벤치마크를 사용해 코드 해결 능력을 향상시키는 작업을 맡게 되면, Codex는 다음과 같은 구조화된 파이프라인을 따릅니다:

  1. 준비: 데이터셋을 검증하고 가장 저렴한 사용 가능한 GPU를 선택합니다(예: 0.6B 모델에 t4-small).
  2. 실행: 작업을 Hugging Face Jobs에 제출하고 사용자에게 예상 비용 및 시간(예: 20분에 약 $0.30)을 제공합니다.
  3. 추적: 실행 로그와 Trackio 대시보드에 대한 링크를 포함해 훈련 보고서를 업데이트하고 실시간 손실을 모니터링합니다.
  4. 평가: 파인튜닝된 체크포인트의 pass@1 점수를 기본 모델과 비교하는 평가 작업을 실행합니다.
  5. 최종화: 필요 시 LoRA 어댑터를 병합하고 모델을 GGUF 형식으로 변환해 llama-server를 통해 로컬에서 사용할 수 있게 합니다.

Sources