아파치 머하웃

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

아파치 머하웃은 스칼라 기반의 도메인 특화 언어인 삼사라(Samsara)를 제공하여 R과 유사한 구문으로 알고리즘을 표현할 수 있게 해주는 오픈 소스 머신 러닝 라이브러리이다. 아파치 스파크를 사용하여 개발되었으며, GPU/CPU 가속을 지원하고, 추천 엔진을 포함한다. 2014년부터 MapReduce 알고리즘 지원을 중단하고, 백엔드 독립적인 프로그래밍 환경 구축에 초점을 맞추어 개발되었다.

아파치 머하웃 - [IT 관련 정보]에 관한 문서
기본 정보

이미지 준비중입니다.

아파치 머하웃 로고
개발자아파치 소프트웨어 재단
최신 릴리스 버전14.1
최신 릴리스 날짜2020년 10월 7일
저장소Mahout Repository
운영체제크로스 플랫폼
프로그래밍 언어자바, 스칼라
장르기계 학습
라이선스아파치 라이선스 2.0
웹사이트아파치 머하웃 웹사이트
출시일2009년 4월 7일
개요
설명확장 가능한 기계 학습 및 데이터 마이닝
추가 정보
참고 자료Introducing Apache Mahout
InfoQ: Apache Mahout: Highly Scalable Machine Learning Algorithms
Algorithms - Apache Mahout - Apache Software Foundation
📚 더 읽어볼만한 페이지
  • 빅 데이터 제품 - 빅쿼리
    빅쿼리는 구글의 데이터 분석 서비스로, 드레멜을 기반으로 수조 행의 데이터에 대한 빠른 쿼리를 가능하게 하며, 데이터 관리, 쿼리 실행, 서비스 통합, 접근 제어, 기계 학습 기능을 제공한다.
  • 빅 데이터 제품 - SAP HANA
    SAP HANA는 SAP SE에서 개발한 인메모리, 컬럼 지향 데이터베이스 관리 시스템으로, 빠른 데이터 처리 속도를 기반으로 온라인 트랜잭션 처리와 온라인 분석 처리를 단일 플랫폼에서 지원하며, SAP S/4HANA 등 다양한 SAP 애플리케이션 실행에 사용되고 클라우드 및 온프레미스 환경에 배포 가능하다.
  • 기계 학습 및 데이터 마이닝 소프트웨어 - GNU 옥타브
    GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다.
  • 기계 학습 및 데이터 마이닝 소프트웨어 - SAS (소프트웨어)
    SAS는 통계 분석, 데이터 마이닝, 예측 모델링 기능을 제공하는 소프트웨어 제품군으로, 농업 데이터 분석을 위해 개발되어 다양한 산업 분야에서 활용되고 있으며 인공지능 및 머신러닝 분야로 투자를 확대하고 있다.
  • 2009년 소프트웨어 - 윈도우 서버 2008 R2
    윈도우 서버 2008 R2는 윈도우 7 기반의 마이크로소프트 서버 운영 체제로, 하이퍼-V 2.0을 통한 가상화 성능 향상, 액티브 디렉터리 기능 개선, IIS 7.5를 통한 웹 서비스 강화 등의 기능이 추가되었으나 2020년 1월에 지원이 종료되었다.
  • 2009년 소프트웨어 - 인터넷 익스플로러 8
    인터넷 익스플로러 8은 마이크로소프트가 개발하여 2009년에 출시된 웹 브라우저로, 사용자 인터페이스, 웹 표준 준수, 보안 기능 등을 개선하고 웹 조각, 액셀러레이터 등의 새로운 기능을 추가했으나, 웹 표준 미준수 등의 문제로 인해 2016년에 지원이 종료되었다.

2. 특징

2.1. 삼사라(Samsara)

아파치 머하웃-삼사라는 사용자가 기존의 스칼라 방식의 구문 대신 R과 유사한 구문을 사용할 수 있게 해주는 스칼라 도메인 특화 언어(DSL)이다. 이를 통해 사용자는 알고리즘을 간결하고 명확하게 표현할 수 있다.

```scala
val G = B %*% B.t - C - C.t + (ksi dot ksi) * (s_q cross s_q)

2.2. 백엔드 독립성(Backend Agnostic)

아파치 머하웃의 코드는 실행 엔진으로부터 도메인 특화 언어를 추상화한다. 활발한 개발은 아파치 스파크 엔진을 사용하여 이루어지지만, 사용자는 자신이 선택한 어떠한 엔진이라도 자유롭게 구현할 수 있다. 과거에는 H2O와 아파치 플링크가 구현되었으며, 코드 베이스에 예시가 존재한다.

2.3. GPU/CPU 가속

JVM은 계산 속도가 느리기로 악명이 높다. 속도 향상을 위해 "네이티브 솔버"가 추가되었으며, 이를 통해 코어 내, 더 나아가 분산 BLAS 연산을 JVM 외부로 이동시켜 여러 CPU 및/또는 CPU 코어, 또는 [https://viennacl.sourceforge.net ViennaCL] 라이브러리에 맞춰 빌드된 경우 GPU를 통해 처리하기 위해 힙 외부 또는 GPU 메모리에 오프로딩한다. ViennaCL은 OpenMP와 OpenCL로 구현된 BLAS 연산을 갖춘 고도로 최적화된 C++ 라이브러리이다. 릴리스 14.1부터 OpenMP 빌드는 안정적인 것으로 간주되며, OpenCL 빌드는 여전히 실험적인 POC 단계에 있다.

2.4. 추천 엔진

아파치 머하웃은 교대 최소 제곱, 동시 발생, 상관 동시 발생 알고리즘을 구현한다. 머하웃 고유의 추천 알고리즘으로, 동시 발생을 확장하여 데이터의 여러 차원에서 사용할 수 있도록 한 기능을 제공한다.

3. 역사

wikitable

👆
좌우로 밀어서 보기
아파치 머하웃 출시 역사
버전출시일비고
0.12009-04-07
0.22009-11-18
0.32010-03-17
0.42010-10-31
0.52011-05-27
0.62012-02-06
0.72012-05-16
0.82013-07-25
0.92014-02-01
0.10.02015-04-11삼사라 DSL(Samsara DSL)
0.10.12015-05-31
0.10.22015-08-06
0.11.02015-08-07
0.11.12015-11-06
0.11.22016-03-11
0.12.02016-04-11아파치 플링크 엔진 추가
0.12.12016-05-19
0.12.22016-06-13
0.13.02017-04-17
0.14.02019-03-07소스 전용 (바이너리 없음)
14.12020-10-07

3.1. 맵리듀스에서 아파치 스파크로 전환

머하웃의 핵심 알고리즘인 클러스터링, 분류 및 배치 기반 협업 필터링은 맵/리듀스 패러다임을 사용하여 하둡 위에 구현되었다. 하지만, 하둡 기반 구현에 대한 기여만 허용된 것은 아니며, 단일 노드 또는 비 하둡 클러스터에서 실행되는 기여도 허용되었다. 예를 들어, 머하웃의 'Taste' 협업 필터링 추천 구성 요소는 원래 별도의 프로젝트였으며 하둡 없이도 독립적으로 실행될 수 있었다.

2014년부터 MapReduce 알고리즘에 대한 지원은 점진적으로 중단되기 시작했다. 버전 0.10.0부터 "Samsara"라는 코드명으로, 백엔드 독립적인 프로그래밍 환경 구축에 초점을 맞추었다. 이 환경은 대수적 백엔드 독립적 최적화 도구와 인 메모리 및 분산 대수적 연산자를 통합하는 대수적 Scala DSL로 구성된다. 지원되는 대수적 플랫폼은 아파치 스파크 등이 있다.

3.2. 출시 역사

wikitable

👆
좌우로 밀어서 보기
아파치 머하웃 출시 역사
버전출시일비고
0.12009-04-07
0.22009-11-18
0.32010-03-17
0.42010-10-31
0.52011-05-27
0.62012-02-06
0.72012-05-16
0.82013-07-25
0.92014-02-01
0.10.02015-04-11삼사라 DSL(Samsara DSL)
0.10.12015-05-31
0.10.22015-08-06
0.11.02015-08-07
0.11.12015-11-06
0.11.22016-03-11
0.12.02016-04-11아파치 플링크(Apache Flink) 엔진 추가
0.12.12016-05-19
0.12.22016-06-13
0.13.02017-04-17
0.14.02019-03-07소스 전용 (바이너리 없음)
14.12020-10-07

3.3. 개발자

아파치 머하웃은 커뮤니티에 의해 개발된다. 이 프로젝트는 "프로젝트 관리 위원회(PMC)"라는 그룹에 의해 관리된다. 현재 PMC는 앤드루 머스먼, 앤드루 팔룸보, 드류 패리스, 이자벨 드로스트-프롬, 제이크 매닉스, 팻 페렐, 파리토시 란잔, 트레버 그랜트, 로빈 아닐, 세바스찬 쉘터, 스테보 슬라비치이다.