2020.09.25

‘머신러닝을 쉽게’··· 추천 오픈소스 도구 14선

Serdar Yegulalp | InfoWorld
스팸 걸러내기, 안면 인식, 추천 엔진 등 예측 분석이나 패턴 인식을 수행할 만한 대규모 데이터 세트가 있다면 머신러닝(ML)이 우선적인 해답이다. 무료 오픈소스 소프트웨어가 급증하면서 ML을 폭넓은 환경에서 인기 프로그래밍 언어로 실행하는 것이 수월해졌다. 이들 오픈소스 도구에는 파이썬(Python), R, C++, 자바(Java), 스칼라(Scala), 클로저(Clojure), 자바스크립트(JavaScript), 고(Go) 등용 라이브러리가 포함되어 있다.
 
  • 아파치 머하웃
  • 컴포즈
  • 코어 ML 툴
  • 코텍스
  • 피처툴
  • 고런
  • 그라디오
  • H2O
  • 오릭스
  • 파이토치 라이트닝
  • 사이킷런
  • 쇼군
  • 스파크 MLlib
  • 웨카


아파치 머하웃
아파치 머하웃(Apache Mahout)은 ML 애플리케이션을 호스팅하기 위한 환경을 신속하게 효율적으로 구축할 방안을 제시한다. 머하웃은 역시 잘 알려진 아파치 프로젝트인 스파크(Spark)와 주로 연동된다. 원래는 분산 애플리케이션 실행을 위해 하둡과 연동되도록 고안된 것인데 플링크(Flink), H2O와 같은 다른 분산 백엔드와 연동되도록 확장됐다.

머하웃은 스칼라로 된 도메인 특화 언어를 사용한다. 버전 0.14는 프로젝트의 주요 내부 리팩터(refactor)로서, 아파치 스파크 2.4.3에 기반하고 있다. 

컴포즈
이노베이션 랩(Innovation Labs)의 컴포즈(Compose)는 ML모델에 공통적으로 존재하는 문제를 공략한다. 바로 원시 데이터에 라벨을 지정하는 일이다. 느리고 지루할 수 있지만 이 과정이 없다면 ML 모델은 유용한 결과를 내놓을 수 없다. 

컴포즈는 사용자가 본인 데이터에 쓸 라벨 함수 세트를 파이썬으로 작성하게 해 준다. 따라서 라벨 지정 작업이 최대한 프로그램적으로 완료될 수 있다. 다양한 변환과 임계치를 데이터에 설정하여 라벨 지정 절차를 좀더 수월하게 만들 수 있다. 예를 들면, 개별 값이나 변위치를 기준으로 빈(bin)에 데이터를 두는 것이다.

코어 ML 툴
애플의 코어 ML 프레임워크는 ML모델을 앱에 통합하게 해 주지만 자체적인 학습 모델 형식을 사용한다. 좋은 소식은 모델들을 사용하기 위해 미리 코어 ML형식으로 훈련시킬 필요가 없다는 것이다. 흔히 사용되는 거의 모든 ML프레임워크로부터의 모델을 코어 ML 툴을 사용해 코어 ML로 변환할 수 있다.

코어 ML 툴은 파이썬 패키지로 실행된다. 따라서, 풍부한 파이썬 ML라이브러리 및 도구와 통합된다. 텐서플로(TensorFlow), 파이토치(PyTorch), 케라스(Keras), 카페(Caffe), ONNX, 사이킷런(Scikit-learn), LibSVM, XG부스트(XGBoost)의 모델들은 모두 변환 가능하다. 신경망 모델 역시 훈련 후 양자화를 (가령, 여전히 정확한 약간의 깊이에 대해) 사용하여 규모에 맞게 최적화될 수 있다.

코텍스
코텍스(Cortex)는 파이썬과 텐서플로, 파이토치, 사이킷런 등의 모델들을 사용해 ML모델로부터 예측을 제공하는 편리한 수단을 제공한다. 

대부분의 코텍스 패키지는 단지 몇 개의 파일로만 구성되어 있다(핵심 파이썬 로직). 어떤 모델을 사용하고 어떤 종류의 컴퓨팅 자원을 할당할지를 설명하는 cortex.yaml 파일과 필요한 파이썬 요건을 설치하기 위한 requirements.txt 파일이다. 전체 패키지는 도커 컨테이너로서 AWS 또는 다른 도커 호환 호스팅 시스템을 대상으로 배치된다. 컴퓨팅 자원은 쿠버네티스에 사용되는 정의를 따라하는 방식으로 할당되며, GPU 또는 아마존 인퍼런시아 ASIC(Amazon Inferential ASIC)를 사용해 제공 속도를 높일 수 있다.

피처툴
피처 창출(feature creation )이라고도 하는 피처 공학(Feature engineering)은 ML모델 훈련에 사용되는 데이터를 가져와서 모델 훈련에 더욱 유용한 변환되고 집계된 버전의 데이터를 주로 수동으로 만들어내는 작업이다. 피처툴(Featuretools)은 데이터프레임에서 데이터를 합성하여 구축된 고차원 파이썬 객체를 통해 이 작업을 할 수 있는 기능을 제공하며, 하나 또는 여러 개의 데이터프레임에서 추출된 데이터를 대상으로 이 작업을 할 수 있다. 

피처툴은 합성 연산을 위한 공통 기본 자료도 제공한다(예: time_since_previous는 시간이 찍힌 데이터의 인스턴스 사이에 경과한 시간을 제공). 따라서 직접 작동시킬 필요가 없다.

고런
고런(GoLearn)은 구글의 고(Go) 언어용 ML 라이브러리이다. 개발자 스티븐 휘트워스에 따르면, 단순함과 맞춤성이라는 2가지 목적으로 만들어졌다. 

단순함은 데이터가 라이브러리에 읽어 들여지고 처리되는 방식에 있는데 이는 사이파이(SciPy)와 R의 패턴에 따른다. 맞춤성은 데이터 구조 중 일부가 얼마나 수월하게 애플리케이션에서 확장될 수 있느냐에 있다. 휘트워스는 쇼군(Shogun) 툴박스에서 찾아볼 수 있는 라이브러리 가운데 하나인 보우팔 와빗(Vowpal Wabbit) 라이브러리용 고(Go) 래퍼(wrapper)도 만들었다.




2020.09.25

‘머신러닝을 쉽게’··· 추천 오픈소스 도구 14선

Serdar Yegulalp | InfoWorld
스팸 걸러내기, 안면 인식, 추천 엔진 등 예측 분석이나 패턴 인식을 수행할 만한 대규모 데이터 세트가 있다면 머신러닝(ML)이 우선적인 해답이다. 무료 오픈소스 소프트웨어가 급증하면서 ML을 폭넓은 환경에서 인기 프로그래밍 언어로 실행하는 것이 수월해졌다. 이들 오픈소스 도구에는 파이썬(Python), R, C++, 자바(Java), 스칼라(Scala), 클로저(Clojure), 자바스크립트(JavaScript), 고(Go) 등용 라이브러리가 포함되어 있다.
 
  • 아파치 머하웃
  • 컴포즈
  • 코어 ML 툴
  • 코텍스
  • 피처툴
  • 고런
  • 그라디오
  • H2O
  • 오릭스
  • 파이토치 라이트닝
  • 사이킷런
  • 쇼군
  • 스파크 MLlib
  • 웨카


아파치 머하웃
아파치 머하웃(Apache Mahout)은 ML 애플리케이션을 호스팅하기 위한 환경을 신속하게 효율적으로 구축할 방안을 제시한다. 머하웃은 역시 잘 알려진 아파치 프로젝트인 스파크(Spark)와 주로 연동된다. 원래는 분산 애플리케이션 실행을 위해 하둡과 연동되도록 고안된 것인데 플링크(Flink), H2O와 같은 다른 분산 백엔드와 연동되도록 확장됐다.

머하웃은 스칼라로 된 도메인 특화 언어를 사용한다. 버전 0.14는 프로젝트의 주요 내부 리팩터(refactor)로서, 아파치 스파크 2.4.3에 기반하고 있다. 

컴포즈
이노베이션 랩(Innovation Labs)의 컴포즈(Compose)는 ML모델에 공통적으로 존재하는 문제를 공략한다. 바로 원시 데이터에 라벨을 지정하는 일이다. 느리고 지루할 수 있지만 이 과정이 없다면 ML 모델은 유용한 결과를 내놓을 수 없다. 

컴포즈는 사용자가 본인 데이터에 쓸 라벨 함수 세트를 파이썬으로 작성하게 해 준다. 따라서 라벨 지정 작업이 최대한 프로그램적으로 완료될 수 있다. 다양한 변환과 임계치를 데이터에 설정하여 라벨 지정 절차를 좀더 수월하게 만들 수 있다. 예를 들면, 개별 값이나 변위치를 기준으로 빈(bin)에 데이터를 두는 것이다.

코어 ML 툴
애플의 코어 ML 프레임워크는 ML모델을 앱에 통합하게 해 주지만 자체적인 학습 모델 형식을 사용한다. 좋은 소식은 모델들을 사용하기 위해 미리 코어 ML형식으로 훈련시킬 필요가 없다는 것이다. 흔히 사용되는 거의 모든 ML프레임워크로부터의 모델을 코어 ML 툴을 사용해 코어 ML로 변환할 수 있다.

코어 ML 툴은 파이썬 패키지로 실행된다. 따라서, 풍부한 파이썬 ML라이브러리 및 도구와 통합된다. 텐서플로(TensorFlow), 파이토치(PyTorch), 케라스(Keras), 카페(Caffe), ONNX, 사이킷런(Scikit-learn), LibSVM, XG부스트(XGBoost)의 모델들은 모두 변환 가능하다. 신경망 모델 역시 훈련 후 양자화를 (가령, 여전히 정확한 약간의 깊이에 대해) 사용하여 규모에 맞게 최적화될 수 있다.

코텍스
코텍스(Cortex)는 파이썬과 텐서플로, 파이토치, 사이킷런 등의 모델들을 사용해 ML모델로부터 예측을 제공하는 편리한 수단을 제공한다. 

대부분의 코텍스 패키지는 단지 몇 개의 파일로만 구성되어 있다(핵심 파이썬 로직). 어떤 모델을 사용하고 어떤 종류의 컴퓨팅 자원을 할당할지를 설명하는 cortex.yaml 파일과 필요한 파이썬 요건을 설치하기 위한 requirements.txt 파일이다. 전체 패키지는 도커 컨테이너로서 AWS 또는 다른 도커 호환 호스팅 시스템을 대상으로 배치된다. 컴퓨팅 자원은 쿠버네티스에 사용되는 정의를 따라하는 방식으로 할당되며, GPU 또는 아마존 인퍼런시아 ASIC(Amazon Inferential ASIC)를 사용해 제공 속도를 높일 수 있다.

피처툴
피처 창출(feature creation )이라고도 하는 피처 공학(Feature engineering)은 ML모델 훈련에 사용되는 데이터를 가져와서 모델 훈련에 더욱 유용한 변환되고 집계된 버전의 데이터를 주로 수동으로 만들어내는 작업이다. 피처툴(Featuretools)은 데이터프레임에서 데이터를 합성하여 구축된 고차원 파이썬 객체를 통해 이 작업을 할 수 있는 기능을 제공하며, 하나 또는 여러 개의 데이터프레임에서 추출된 데이터를 대상으로 이 작업을 할 수 있다. 

피처툴은 합성 연산을 위한 공통 기본 자료도 제공한다(예: time_since_previous는 시간이 찍힌 데이터의 인스턴스 사이에 경과한 시간을 제공). 따라서 직접 작동시킬 필요가 없다.

고런
고런(GoLearn)은 구글의 고(Go) 언어용 ML 라이브러리이다. 개발자 스티븐 휘트워스에 따르면, 단순함과 맞춤성이라는 2가지 목적으로 만들어졌다. 

단순함은 데이터가 라이브러리에 읽어 들여지고 처리되는 방식에 있는데 이는 사이파이(SciPy)와 R의 패턴에 따른다. 맞춤성은 데이터 구조 중 일부가 얼마나 수월하게 애플리케이션에서 확장될 수 있느냐에 있다. 휘트워스는 쇼군(Shogun) 툴박스에서 찾아볼 수 있는 라이브러리 가운데 하나인 보우팔 와빗(Vowpal Wabbit) 라이브러리용 고(Go) 래퍼(wrapper)도 만들었다.


X