m3dev/gokart
Gokart solves reproducibility, task dependencies, constraints of good code, and ease of use for Machine Learning Pipeline.
해결하는 문제
Gokart는 재현 가능한 기계학습 파이프라인을 쉽게 만들 수 있도록 도와줍니다. 일반적인 ML 개발 과제인 태스크 의존성 관리, 시드 고정을 통한 일관된 결과 보장, SOLID 원칙을 장려함으로써 깔끔한 코드베이스 유지와 같은 문제를 해결합니다.
작동 방식
Luigi의 래퍼로 구축된 Gokart는 ML 워크플로우를 일련의 태스크로 정리합니다. 각 태스크에 대한 메타데이터(출력 데이터, 모듈 버전, 처리 시간, 랜덤 시드 등)를 자동으로 추적하고 해시 값이 포함된 별도의 피클 파일에 저장합니다. 태스크 파라미터가 변경되면 파이프라인이 영향을 받는 부분을 자동으로 다시 실행합니다. 메모리 사용량을 낮추기 위해 중간 결과는 파일을 통해 교환되며, 이 결과물은 클라우드 스토리지(GCS 및 S3)를 지원합니다. 또한 I/O 시 pandas DataFrame 컬럼 검사를 내장 지원하고, 병렬 실행 시 Redis를 사용하여 태스크를 잠급니다.
대상 사용자
배치 처리 및 팀 개발을 위한 강력하고 재현 가능한 환경이 필요한 머신러닝 엔지니어 및 데이터 과학자.
주요 기능
- 자동 재현성: numpy와 random의 시드를 자동으로 고정하고 모든 모듈 버전과 파라미터를 추적합니다.
- 스마트 재실행: 태스크 파라미터가 변경되면 파이프라인을 자동으로 다시 실행합니다.
- 클라우드 통합: 중간 결과의 데이터 저장소로 S3 및 GCS를 네이티브로 지원합니다.
- 타입 안정성: 타입 애노테이션과 mypy 플러그인을 지원하여 파이프라인의 강건성을 보장하고 태스크 간 타입 오류를 방지합니다.
- 메모리 효율성: 모든 데이터를 메모리에 유지하는 대신 중간 파일을 통해 태스크 간 데이터를 교환합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트