| 개발자 | 아파치 소프트웨어 재단 |
|---|---|
| 발표일 | 2015년 10월 8일 |
| 안정화 버전 | 5.1.0
/ 2026년 4월 2일 |
| 저장소 | |
| 프로그래밍 언어 | C++, 파이썬 |
| 운영 체제 | 리눅스, macOS, 윈도우 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | singa |
Apache SINGA는 오픈 소스 기계 학습 라이브러리를 개발하기 위한 아파치 소프트웨어 재단의 최상위 프로젝트이다. 이 프로젝트는 확장 가능한 분산 학습을 위한 유연한 아키텍처를 제공하고, 광범위한 하드웨어에서 실행될 수 있도록 확장 가능하며, 의료 분야 애플리케이션에 중점을 두고 있다.
Apache SINGA는 대규모 데이터 분석을 위한 분산형, 효율적, 확장 가능하며 사용하기 쉬운 딥러닝 플랫폼 개발 공로로 2024년 SIGMOD 시스템상(SIGMOD Systems Award)을 수상했다.
SINGA 프로젝트는 싱가포르 국립 대학의 DB 시스템 그룹과 저장 대학의 데이터베이스 그룹이 대규모 복잡한 분석을 지원하고 데이터베이스 시스템을 더 지능적이며 자율 컴퓨팅이 가능하도록 만들기 위해 2014년에 시작했다. 이 프로젝트는 클러스터의 노드에 모델과 데이터를 분할하고 학습을 병렬화하여 분산 딥러닝에 집중했다. 프로토타입은 2015년 3월 아파치 인큐베이터에 수용되었으며, 2019년 10월 최상위 프로젝트로 졸업했다. 아래 표는 최신 버전, 최신 미리보기 버전, 유지 관리 중인 이전 버전 및 구버전 등 다양한 버전 정보를 담고 있다.
| 버전 | 최초 릴리스 날짜 | 최신 버전 | 릴리스 날짜 |
|---|---|---|---|
| 5.1.0 | 2026-04-02 | 5.1.0 | 2026-04-02 |
| 5.0.0 | 2025-04-14 | 5.0.0 | 2025-04-14 |
| 4.3.0 | 2024-09-07 | 4.3.0 | 2024-09-07 |
| 4.2.0 | 2024-03-15 | 4.2.0 | 2024-03-15 |
| 4.1.0 | 2023-11-05 | 4.1.0 | 2023-11-05 |
| 4.0.0 | 2023-04-07 | 4.0.0 | 2023-04-07 |
| 3.3.0 | 2022-06-07 | 3.3.0 | 2022-06-07 |
| 3.2.0 | 2021-08-15 | 3.2.0 | 2021-08-15 |
| 3.1.0 | 2020-10-30 | 3.1.0 | 2020-10-30 |
| 3.0.0 | 2020-04-20 | 3.0.0 | 2020-04-20 |
| 2.0.0 | 2019-04-20 | 2.0.0 | 2019-04-20 |
| 1.2.0 | 2018-06-06 | 1.2.0 | 2018-06-06 |
| 1.1.0 | 2017-02-12 | 1.1.0 | 2017-02-12 |
| 1.0.0 | 2016-09-08 | 1.0.0 | 2016-09-08 |
| 0.3.0 | 2016-04-20 | 0.1.0 | 2016-04-20 |
| 0.2.0 | 2016-01-14 | 0.2.0 | 2016-01-14 |
| 0.1.0 | 2015-10-08 | 0.1.0 | 2015-10-08 |
범례: 오래된 버전 오래된 버전, 지원 중 최신 버전 | |||
SINGA의 소프트웨어 스택은 코어(core), IO, 모델(model)이라는 세 가지 주요 구성 요소로 이루어져 있다. 아래 그림은 이 구성 요소들을 하드웨어와 함께 보여준다. 코어 구성 요소는 메모리 관리 및 텐서 연산을 제공하며, IO는 디스크와 네트워크 간의 데이터 읽기(및 쓰기)를 위한 클래스를 갖추고 있다. 모델 구성 요소는 기계 학습 모델을 위한 데이터 구조와 알고리즘을 제공하는데, 예를 들어 신경망 모델을 위한 레이어, 일반적인 기계 학습 모델을 위한 최적화기, 초기화기, 메트릭, 손실 함수 등이 포함된다.

SINGA-Auto(VLDB2018에서 Rafiki로 소개됨)는 기계 학습 모델의 학습 및 추론 서비스를 제공하기 위한 Apache SINGA의 하위 시스템이다. SINGA-Auto는 사용자가 기계 학습 모델을 직접 구성하고, 하이퍼파라미터를 튜닝하며, 예측 정확도와 속도를 최적화해야 하는 번거로움을 덜어준다. 사용자는 단순히 데이터 세트를 업로드하고 학습을 수행하도록 서비스를 구성한 다음, 추론을 위해 모델을 배포할 수 있다. 클라우드 서비스 시스템으로서 SINGA-Auto는 하드웨어 자원 관리, 장애 복구 등을 수행한다. 사용 편의성을 위해 구조화된 데이터(예: EMR 데이터) 분석, 이미지 인식, 텍스트 처리와 같은 인기 있는 작업을 위한 내장 기계 학습 모델 세트인 모델 주(Model Zoo)를 제공한다.
학습 서비스에서는 분산 하이퍼파라미터 튜닝을 위한 일반 프레임워크가 제안되었으며, 딥러닝 모델을 위해 특별히 설계된 협업 튜닝 방식이 마련되어 있다. 추론 서비스에서는 전체 정확도를 최적화하고 지연 시간을 줄이기 위해 강화 학습 기반의 스케줄링 알고리즘이 제안되었다. 이는 요청 속도 변화에 적응할 수 있다.
SINGA-Easy(ACM Multimedia 2021)는 도메인 특정 애플리케이션 사용자(예: 멀티미디어, 의료 영상 분석)가 딥러닝 알고리즘 및 추론 서비스를 쉽게 채택할 수 있도록 Apache SINGA의 구성 요소로 구축된 사용하기 쉬운 딥러닝 프레임워크이다. 이 프레임워크는 학습 단계에서의 분산 하이퍼파라미터 튜닝, 추론 단계에서의 동적 계산 비용 제어, 모델 설명을 통해 멀티미디어 콘텐츠와 직관적인 사용자 상호작용을 제공한다. 정확도를 향상하기 위해 이미지 및 구조화된 데이터 정규화를 위한 정규화 방법을 지원한다(ACM SIGMOD 2023). 도메인 사용자가 학습 결과를 수용할 수 있도록 돕기 위해, SINGA-Easy는 LIME 및 Grad-CAM에 기반한 모델 설명 관점에서 사용자가 모델 성능을 평가할 수 있는 옵션을 제공한다.
MLCask(IEEE ICDE 2021)는 협업 분석을 위한 기계 학습 파이프라인의 진화 및 버전 관리를 쉽게 하기 위해 데이터 정제부터 데이터 분석까지의 기계 학습 파이프라인을 관리하는 파이프라인 관리 하위 시스템이다. 이는 비용을 절감하고 도입을 촉진하는 역할을 한다. MLCask는 Git과 유사한 엔드투엔드 ML 라이프사이클 관리를 지원한다. 파이프라인 구성 요소와 작업 공간의 버전 기록을 활용하여, MLCask는 변경되지 않은 전처리 단계를 건너뛰어 잦은 재학습 문제를 해결한다. 비선형 버전 제어 의미론과 병합 작업은 파이프라인의 효과적인 협업 개발을 용이하게 한다.
버전 4.1.0부터 Apache SINGA는 PostgreSQL 내에서의 모델 선택 및 추론을 지원한다. 이 시스템은 학습이 필요 없는 기술과 학습 기반 모델 선택 기술을 모두 통합한 자원 효율적인 2단계 모델 선택 알고리즘을 구현한다. 이 모델 선택 알고리즘은 실행 지연 시간과 메모리 소비를 최적화하여 저장 프로시저를 통해 PostgreSQL에 비침해적으로 통합된다. 데이터베이스 내 모델 선택 기능을 포함함으로써 사용자는 지정된 응답 시간 요구 사항 내에서 고성능 모델을 얻을 수 있다.
Apache SINGA는 넷이즈, Carnegie Technologies, CBRE, 씨티그룹, 주롱헬스 병원(JurongHealth Hospital), 싱가포르 국립 대학, 싱가포르 국립 대학 병원, 노블리스, Shentilium Technologies, 싱가포르 종합 병원, 탄톡셍 병원, YZBigData 등의 조직에서 사용되고 있다. Apache SINGA는 은행, 교육, 금융, 의료, 부동산, 소프트웨어 개발 및 기타 카테고리의 애플리케이션 전반에서 사용된다.
응텡퐁 종합 병원(Ng Teng Fong General Hospital)은 Apache SINGA 팀과 협력하여 당뇨병 전단계(혈당 수치가 정상보다 높지만 당뇨병으로 분류될 만큼 높지는 않은 상태) 진단을 받은 사람들을 위한 애플리케이션을 개발했다.
주롱헬스 푸드 로그(JurongHealth Food Log, JHFoodLog) 앱이라 불리는 이 애플리케이션은 Apache SINGA를 사용하여 음식 사진을 나시 파당, 락사, 차슈 라이스를 포함한 현지 요리 데이터베이스와 일치시키며, 건강증진위원회(Health Promotion Board), 주롱헬스 캠퍼스, 호주 식품 영양 데이터베이스의 영양 데이터를 활용한다. 포괄적인 데이터 정제(예: 일관된 서식 지정, 데이터 중복 제거, 식품 분류, 사람에 의한 보정) 후, 데이터베이스에는 13개의 식품 그룹과 233개의 식품 카테고리를 포함하는 209,861개의 이미지가 포함되어 있다.
이 앱을 통해 병원의 생활습관 중재(Liven) 프로그램 참가자들은 체중 감량 및 운동 목표를 설정할 수 있다. 6개월간의 연구에 따르면 앱을 사용한 20명의 환자 거의 모두가 초기 체중의 4~5%를 감량한 것으로 나타났다.