아파치 시스템DS
Apache System![]() | |
개발자 | Apache Software Foundation, IBM |
---|---|
초기 릴리즈 | 2015년 11월 2일 | 전 )
안정적 해제 | 2.0.0 / 2020년 10월 22일; 전 |
리포지토리 | SystemDS 리포지토리 |
기록 위치 | Java, Python, Description Machine Learning, C |
운영 체제 | Linux, macOS, Windows |
유형 | 머신러닝, 딥러닝, 데이터 과학 |
면허증 | 아파치 라이선스 2.0 |
웹사이트 | systemds |
Apache SystemDS(이전, Apache System)ML)은 스파크 및 하둡 클러스터로 자동 확장되는 유연한 머신러닝 시스템이다.SystemDS의 특징은 다음과 같다.
- R 유사 언어와 Python 유사 언어를 통한 알고리즘 사용자 정의 가능.
- 독립 실행형, Spark Batch, Spark MLContext, Hadoop Batch 및 JMLC를 포함한 다중 실행 모드.
- 데이터 및 클러스터 특성을 기반으로 자동 최적화하여 효율성과 확장성 모두 보장
역사
SystemML은 2010년 IBM 펠로우 시바쿠마르 바이티아나단이 이끄는 IBM 알마덴 연구센터의 연구자들에 의해 만들어졌다.데이터 과학자가 작은 데이터를 위해 R, 파이썬과 같은 언어로 머신러닝 알고리즘을 작성하는 것이 관찰되었다.빅데이터로 확장할 때가 되면 스칼라와 같은 언어로 알고리즘을 확장할 시스템 프로그래머가 필요할 것이다.이 프로세스에는 일반적으로 반복당 며칠 또는 몇 주가 소요되며, 빅데이터에서 작동하도록 알고리즘을 변환하는 오류가 발생할 수 있다.SystemML은 이 과정을 단순화하려고 한다.시스템의 주요 목표ML은 R형이나 Python형 언어로 작성된 알고리즘을 빅데이터에서 작동하도록 자동으로 확장해 오류가 발생하기 쉬운 다중 반복 번역 접근법 없이 같은 답을 만들어 내는 것이다.
2015년 6월 15일, 샌프란시스코에서 열린 스파크 서밋에서 IBM Analytics의 Beth Smith 총지배인은 IBM이 오픈소싱 시스템이라고 발표했다.아파치 스파크 및 스파크 관련 프로젝트에 대한 IBM의 주요 약속의 일환으로 ML.SystemML은 2015년 8월 27일 GitHub에서 공개되었고, 2015년 11월 2일 Apache Incubator 프로젝트가 되었다.2017년 5월 17일 아파치 소프트웨어 재단 이사회에서 아파치 시스템의 졸업을 승인했다.아파치 최상위 프로젝트로서의 ML.
주요 기술
다음은 시스템에 내장된 몇 가지 기술이다.DS 엔진.
예
다음 코드 조각은 입력 A 의 주성분 분석을 수행하며, 입력 A {\ 및 e e e 을(를 반환한다
# PCA.dml # 참고: https://github.com/apache/systemds/blob/master/scripts/algorithms/PCA.dml#L61 N = 노를 젓다(A); D = ncol(A); # z-축소 수행(축소 및 스케일링) A = 저울(A, 중심==1, 저울==1); # 공동행렬 뮤 = 콜섬(A)/N; C = (t(A) %*% A)/(N-1) - (N/(N-1))*t(뮤) %*% 뮤; # 고유 벡터 및 값 계산 [평가, 전구들] = 고유성의(C);
호출 스크립트
spark-mit SystemDS.jar -f PCA.dml -nvargs INPUT=INPUT_DIR/pca-1000x1000 \ OUTPUT=출력_DIR/pca-1000x1000-모델 PROJDATA=1 중앙=1 SOLE=1
개선사항
시스템DS 2.0.0은 새로운 이름으로 첫 번째 주요 출시물이다.이 릴리스에는 주요 리팩터링, 몇 가지 주요 기능, 많은 개선 사항 및 수정 사항, 그리고 엔드투엔드 데이터 과학 라이프사이클을 더 잘 지원하기 위한 일부 실험적인 기능이 포함되어 있다.그 외에도, 이 릴리스는 최신 버전이 아니고 구식인 몇 가지 기능도 제거한다.
- DML-body를 위한 새로운 메커니즘(스크립트 레벨)
builtin
데이터 청소, 확장 및 기능 엔지니어링 기술, 새로운 ML 알고리즘 및 모델 디버깅을 포함한 데이터 사전 처리를 위한 다양한 새로운 내장 기능. - 체인 방정식(MICE) 및 기타 기법에 의한 다변량 귀책의 다중 귀책, 클래스 불균형을 위한 오버샘플링 기법인 SMOTE, 전후방 NA 채우기, 스키마 및 길이 정보를 이용한 청소, 표준 일변도를 이용한 특이치 검출 지원 등 여러 가지 데이터 청소 방법이 구현되었다.이온 및 사분위간 범위 및 기능 의존성 발견.
- 루프 중복 제거 지원, 전체 및 부분 재사용, 컴파일러 지원 재사용, 재사용을 촉진하기 위한 몇 가지 새로운 재작성 등 계통 추적 및 재사용을 위한 완전한 프레임워크.
- 연합 매트릭스 및 프레임, 연합에 대한 지원을 포함한 새로운 연합 런타임 백엔드
builtin
s ()transform-encode
,decode
등). - 리팩터 압축 패키지 및 손실 압축에 대한 정량화, 이진 셀 연산, 왼쪽 매트릭스 곱셈을 포함한 기능을 추가하십시오.[experimental]
- 여러 용도에 대한 지원이 포함된 새로운 파이톤 바인딩
builtin
s, 매트릭스 연산, 연합 텐서 및 계통 트레이스. - 누적 집계 연산자의 Cuda 이행 (
cumsum
,cumprod
등) - 슬라이스 파인더를 사용한 새로운 모델 디버깅 기술.
- 새로운 텐서 데이터 모델(값 유형이 다른 기본 텐서, 스키마가 있는 데이터 텐서) [실험적]
- AWS용 클라우드 배포 스크립트 및 통합 작업을 설정하고 시작하는 스크립트.
- 다음을 통해 성능 향상
parallel sort
,gpu cum agg
,append cbind
등 - 새로운 및 개선된 재작성, 스파크 컨텍스트 생성 감소, 신규 등 다양한 컴파일러 및 런타임 개선
eval
프레임워크, 목록 작업, 몇 가지 이름을 지정하도록 기본 커널 라이브러리 업데이트. - 다음에 대한 새로운 데이터 리더/라이터
json
에 대한 프레임과 지원sql
데이터 소스로서 - 기타 개선 사항: 문서 개선, 테스트 개선, 실행/해제 스크립트, 개선된 포장, 시스템ds용 도커 컨테이너, 람다 표현식 지원, 버그 수정
- MapReduce 컴파일러 및 런타임 백엔드가 제거됨
pydml
파서, Java-UDF 프레임워크, 스크립트 레벨 디버거. - 사용되지 않음
./scripts/algorithms
, 그러한 알고리즘들이 점차 시스템의 일부가 될 것이기 때문에.DSbuiltin
s
기부금
SystemDS는 코드, 질의응답, 커뮤니티 구축 또는 확산에 기여하는 것을 환영한다.기부자 가이드는 https://github.com/apache/systemds/blob/master/CONTRIBUTING.md에서 확인할 수 있다.
참고 항목
참조
- ^ SystemDS, Apache. "SystemML 1.2.0 Release Notes". systemds.apache.org. Retrieved 2021-02-26.
외부 링크
- 아파치 시스템ML 웹사이트
- IBM Research - 시스템ML
- Shiv Vaithyanathan, Creator of SystemML 및 IBM Fellow와의 Q&A
- 빅 데이터 및 머신러닝을 위한 범용 번역기
- SystemML: Fred Reiss의 Scale 프레젠테이션에서 선언적 기계 학습
- SystemML: MapReduce에서 선언적 기계 학습
- 대규모 시스템 학습을 위한 하이브리드 병렬화 전략ML
- SystemML의 Optimizer: 대규모 머신러닝 프로그램을 위한 계획 생성
- IBM의 SystemML 머신러닝 시스템이 Apache Incubator 프로젝트가 됨
- IBM, Apache Spark 오픈 소스 커뮤니티에 머신러닝 기술 제공
- IBM의 시스템아파치 인큐베이터 프로젝트로서 앞으로 나아가는 ML