페이스북이 자연어 처리를 위한 프로젝트를 현재 오픈소스로 공개했다. 이로써 더 나은 텍스트 마이닝 방법이 가능해졌다.
페이스북이 실험 프로젝트와 프로덕션 시스템을 손쉽게 결합할 수 있도록 자연어 처리(NLP)를 위한 머신러닝 라이브러리인 파이텍스트(PyText) 프로젝트를 오픈소스로 전환했다.
파이토치(PyTorch)는 머신러닝을 위해 페이스북의 기존 파이토치 라이브러리로 구축됐으며 회사에서 내부적으로 사용하는 것으로 특히 신경망(예 : NLP)을 사용해 머신러닝을 수행하는 방법을 다루기 위해 작성되었다. 이러한 라이브러리는 전형적으로 실험을 위해 최적화된 프레임워크와 프로덕션을 위해 최적화된 프레임워크 사이의 절충점이었다.
실험을 위해 만들어진 프레임워크는 빠른 프로토타이핑을 가능하게 했지만 페이스북의 엔지니어들은 "지연 시간과 메모리 사용량이 증가했다"고 게시물에서 밝혔다. 반면 프로덕션을 위해 제작된 프레임워크는 로드가 잘 걸렸지만 빠르게 개발하기가 어려웠다.
파이텍스트의 가장 큰 차이점은 실험이나 프로덕션 용도로 페이스북의 주장을 최적화할 수 있는 워크플로우라는 데 있다. 프레임워크의 구성 요소는 서로 꿰매어 전체 NLP 파이프라인을 만들거나 개별 조각을 다른 상황에서 분리하여 재사용할 수 있다.
새로운 모델 교육은 여러 노드에 분산될 수 있으며 여러 모델을 동시에 교육할 수 있다. 또한 파이텍스트는 텍스트 분류를 위해 기존의 많은 모델을 사용할 수 있으며 이러한 경우 전체적으로 꼭 교육을 받아야 하지 않아도 될 수 있다.
파이텍스트는 문맥 모델을 통한 이해력을 높여 이전 입력에서 텍스트에 대한 모델의 이해를 풍부하게 한다. 예를 들어, 챗봇(chatbot)은 토론에서 이전 메시지의 정보를 재사용하여 답변을 구성할 수 있다.
파이텍스트의 한 가지 기능은 파이썬으로 구동되는 머신러닝 시스템이 언어와 관련하여 발생할 수 있는 성능 문제를 피하는 방법 찾기를 보여준다. 파이텍스트 모델은 Caffe(Convolutional Architecture for Fast Feature Embedding)2를 사용하여 신속하게 추론할 수 있도록 최적화된 ONNX(Open Neural Network Exchange) 형식으로 내보낼 수 있다. 이렇게 하면 추론 프로세스는 파이썬의 런타임에 의해 제한되지 않지만 파이썬은 여전히 파이프라인을 구성하고 모델 교육을 조율하는 데 사용된다.
파이토치 자체는 최근 파이썬에 제한받지 않고 교육 및 추론을 가속하기 위한 기능을 자체적으로 갖춘 공식 버전 1.0 릴리스를 받았다. 이것들 중 하나인 토치 스크립트는 실행 속도를 높이기 위해 JIT(Just-in-time)으로 파이썬 코드를 구성하지만 이 언어의 하위 집합에서만 작동할 수 있다.
파이텍스트의 단기 계획에는 다국어 모델링 및 기타 모델링 기능 지원, 모델 디버깅, 분산된 교육을 위한 최적화 추가 등이 포함된다. ciokr@idg.co.kr