Kimi와 kvcache-ai 팀, 오픈소스 AgentENV 공개 — Kimi K3 규모에서 에이전트 강화학습 훈련을 위한 분산 플랫폼
Moonshot AI
Moonshot AI 팀과 kvcache-ai가 MIT 라이선스로 AgentENV (AENV)를 공개했습니다. 이는 Firecracker 마이크로 가상 머신을 사용하여 에이전트 환경을 실행하는 분산 시스템으로, 빠른 샌드박스 생성, 일시 중지, 재개 및 포크를 가능하게 하여 Kimi K3 모델 (2.8조 파라미터, Mixture of Experts 구조)의 에이전트 강화학습 훈련을 가속화합니다. 이 프로젝트는 E2B와의 호환성을 지원하여 기존 에이전트의 마이그레이션을 간소화합니다.
Moonshot AI 팀(Kimi K3 모델 개발사)은 kvcache-ai와 함께 에이전트 환경의 대규모 실행을 위한 분산 시스템인 AgentENV 플랫폼을 MIT 라이선스로 오픈소스화했습니다. 이 플랫폼은 2.8조 개 파라미터의 mixture-of-experts(MoE) 모델인 Kimi K3의 강화 학습(RL) 훈련에 사용됩니다. 각 샌드박스는 Firecracker 마이크로 VM으로, 자체 Linux 커널, 파일시스템, 네트워크 네임스페이스를 가지며 커널 수준의 격리를 제공합니다. 샌드박스 수명 주기 관리는 Axum HTTP API를 통해 오케스트레이터로 요청을 라우팅하여 처리됩니다. rootfs 파일시스템은 사용자 공간의 ublk를 통해 실행되며, overlaybd를 사용하여 계층화된 이미지를 구현합니다. 기본 계층은 읽기 전용이며 샌드박스 간에 공유되고, 각 샌드박스는 고유한 쓰기 가능한 상위 계층을 가집니다. 게스트 VM 내에서는 envd 데몬(포트 49983)이 명령, 파일 작업, 상태 보고를 처리하며, 리버스 프록시가 클라이언트에서 VM 서비스로의 HTTP 및 WebSocket 트래픽을 라우팅합니다. 오버헤드 감소에 특별히 주의를 기울였습니다. 호스트 페이지 캐시는 스토리지 데이터와 메모리 스냅샷 간에 공유되며, 메모리 ballooning 메커니즘을 통해 과잉 게스트 메모리를 호스트로 회수할 수 있어, 환경이 분기됨에 따라 오버커밋을 지원합니다. 주요 기능으로는 스냅샷, 일시 중지, 재개, 포크가 있습니다. 스냅샷은 전체가 아닌 증분 방식입니다. 보고된 데이터에 따르면, 스냅샷 로드 또는 재개는 50ms 미만, 일시 중지는 100ms 미만, 증분 스냅샷은 무거운 쓰기 부하에서도 100ms 미만으로 완료됩니다. RL에 특화된 포크 기능은 실행 중인 샌드박스를 동일 노드에서 최대 16개의 독립적인 하위 샌드박스로 복제할 수 있습니다. 부모 샌드박스는 캡처 중에 잠시 일시 중지되었다가 재개됩니다. 모든 하위 인스턴스는 부모의 파일시스템, 메모리, 리소스 구성을 상속받습니다. 이를 통해 비용이 많이 드는 설정(의존성 설치, 리포지토리 복제)을 한 번 수행한 후, 상태를 포크하여 병렬 실행할 수 있습니다. 스냅샷은 S3 호환 객체 스토리지 또는 분산 파일시스템에 저장됩니다. 기본적으로 각 샌드박스에는 TTL(Time-to-Live)이 있으며, 만료 시 삭제되지 않고 일시 중지됩니다. 삭제하려면 생성 시 autoPause: false를 전달해야 합니다. 이미지는 overlaybd를 통해 온디맨드로 로드되며, 로컬 디스크 캐시는 핫 데이터를 저장하고 콜드 데이터를 제거합니다. 이는 모든 노드에서 모든 이미지를 사전 로드(프리히팅)할 필요가 없으며, 로컬 디스크 용량을 초과할 수 있습니다. 상태는 세 가지 계층으로 구성됩니다. 아티팩트를 위한 수집기 워크스페이스, 스냅샷 리포지토리(영구 스토리지), 파생 구성을 위한 로컬 런타임 캐시입니다. 두 가지 리포지토리 백엔드가 지원됩니다. posix_fs(기본값)와 oss(공통 S3 호환 클라이언트 사용, 리전을 명시적으로 지정해야 함). iroh 기반의 선택적 P2P 전송을 통해 이웃 노드에 아티팩트를 광고할 수 있지만, 기본적으로 비활성화되어 있습니다. 공유 스토리지의 경우 최소 1Gbit/s 대역폭을 권장하며, 10Gbit/s 이상을 강력히 권장합니다. 쉬운 전환을 위해 AgentENV는 E2B 호환 HTTP API를 제공합니다. E2B_API_URL을 자체 서버로 설정하기만 하면 공식 E2B Python/TypeScript SDK가 에이전트 코드 변경 없이 작동합니다. 네이티브 CLI인 aenv도 사용 가능합니다. 배포에는 Linux 6.8 이상과 /dev/kvm이 필요하며, 설치 스크립트는 Ubuntu 24.04를 대상으로 합니다. CLI는 x86_64 및 arm64의 Linux와 macOS를 지원하며, 서버는 Linux(KVM 필요)가 필요합니다. 5가지 배포 방법이 문서화되어 있습니다. systemd를 사용한 설치 스크립트, Docker 이미지, 클러스터 시뮬레이션을 위한 Docker Compose, 게이트웨이, 스케줄러, DaemonSet을 포함한 Kubernetes 매니페스트, Rust 소스에서 빌드. 다중 노드 배포에서는 포트 8080의 게이트웨이와 포트 9090의 스케줄러가 추가됩니다.
출처: MarkTechPost —
원문
