Tag Archives: FBLearner Flow

Facebook’s DeepText

deeptext

페이스북이 딥러닝 기반의 텍스트 분석 엔진인 딥텍스트(DeepText)에 대해 소개했습니다. 딥텍스트는 콘볼루션 뉴럴 네트워크와 리커런트 뉴럴 네트워크를 조합하여 사용하여 단어(word) 수준의 학습과 문자(character) 수준의 학습을 할 수 있다고 합니다. 일전에 소개해 드렸던 FbLearner Flow와 토치(Torch)를 사용하여 구성되었습니다.

페이스북은 언어별로 모델을 학습하지 않고 각 언어의 의미가 같은 단어를 관련지어 나타낼 수 있는 공통 임베딩 스페이스(common embedding space)을 사용하여 다양한 언어에 대한 학습속도를 높인다고 합니다. 딥텍스트는 페이스북의 과학자인 Xiang Zhang과 Yann LeCun이 발표한 페이퍼를 기초로 개발되었습니다. 딥텍스트는 텍스트를 임베딩하는 비감독(unsupervised) 학습과 의미를 분류하기 위한 감독(supervised) 학습을 병행하고 있습니다. 임베딩 기술 덕택에 감독학습을 위한 샘플링 데이터는 비교적 작은 양을 필요로 한다고 합니다.

아마도 이번 발표는 얼마전 구글이 발표한 SyntaxNet에 대한 페이스북 나름대로의 응대가 아닐까 생각합니다. 하지만 뉴럴 네트워크 구조나 소스를 공개하지 않는 페이스북의 발표에 커뮤니티의 반응은 그리 좋지만은 않은 것 같습니다.

FBLearner Flow

facebook-ai

이미지출처: 페이스북

얼마전에 페이스북이 사용하고 있는 머신러닝 플랫폼에 대한 간단한 설명을 담은 기사가 보도되었습니다. 이 기사에서는 Flow, AutoML 같은 용어들이 언급되었었는데요. 기사에 언급된 AutoML을 가지고 AI 를 만드는 AI 라고 좀 자극적인 타이틀이 달렸습니다. AutoML은 어제 소개해드린 TPOT과 같은 피처 엔지니어링(feature engineering)이나 모델 셀렉션(model selection)을 자동화해주는 툴로 예상됩니다.

페이스북이 어제 자사의 머신러닝 플랫폼인 FBLearner Flow에 대한 소개 글인 ‘Introducing FBLearner Flow: Facebook’s AI backbone‘를 블로그에 올렸습니다. 위 기사의 Flow가 바로 어제 공개된 FBLearner Flow입니다.

페이스북은 머신러닝을 이용하는데 알고리즘보다 피처 엔지니어링이나 하이퍼파라메타(hyperparameter) 튜닝에 훨씬 많은 시간이 필요하다는 것을 알았습니다. 여러가지 방식으로 많은 실험을 해보려면 이전의 설정이나 워크플로우가 저장되고 공유되는 것이 유익합니다. FBLearner Flow는 이런 요구사항을 반영하여 재사용 가능한 알고리즘과 워크플로우, 엔지니어간의 공유, 병렬처리가 가능한 플랫폼으로 만들어 졌습니다. 현재 동시에 수천개의 머신러닝 태스크가 운영되고 있으며 지금까지 백만여개의 모델이 훈련되었고 초당 6백만개의 예측결과를 만들어 내고 있습니다. 대략 페이스북 개발팀의 25%가 사용하고 있다고 하네요.

블로그에서 iris 데이터셋을 이용한 의사결정트리의 맛보기 코드를 살짝 보여 주었는데요. 조금 놀라운 건 페이스북이 파이썬을 사용했다는 것 입니다.

Continue reading