태그 보관물: CNN

fairseq: New SOTA of NMT

18158912_821511514668337_8758096610476425216_n

페이스북의 FAIR팀에서 블로그를 통해 기계번역에 대한 새 모델 fairseq를 공개하였습니다. 기계번역 분야에서는 리커런트 뉴럴 네트워크Recurrent Neural Network가 정석처럼 사용되어 왔습니다만 최근에 콘볼루션 뉴럴 네트워크Convolution Neural Network를 시퀀스 처리에도 사용되고 있습니다. fairseq는 콘볼루션 뉴럴 네트워크와 어텐션 메카니즘을 사용해 기계 번역에서 최고 성능state-of-the-art을 갱신했다고 합니다. 블로그에서 콘볼루션이 단어 한개씩 처리하는 RNN 보다 훨씬 효율적으로 GPU를 사용할 수 있고 전체 문맥을 한꺼번에 조망하는 것이 사람이 번역하는 그것과 비슷하다고 주장합니다. 최근 구글의 NMT 결과와 비교했을 때 더 성능이 높으면서도 NVidia K40 GPU에서 무려 9.3배가 빠르고 GTX-1080ti 에서는 21배나 빠르다고 합니다.

fairseq의 토치 소스는 깃허브에 공개되어 있으며 영어-프랑스어, 영어-독일어, 영어-루마니아어에 대해서는 미리 학습시킨 모델을 제공합니다. 콘볼루션이 주류가 된다면 NLP 책들의 수정이 불가피 하겠네요. 🙂

TPU Revealed

2017-04-05_1013

구글이 자사의 데이터센터에서 사용하고 있는 머신러닝 칩셋인 TPU(Tensor Processing Unit)에 대한 성능과 구성에 대해 자세한 내용을 페이퍼공개했습니다. 페이퍼 내용을 보면 GPU/CPU 조합 보다 15~30배 가량 성능이 높다고 합니다. 개인적으로 눈길을 끄는 것은 2016년 7월에 작업한 것으로 보이는 이 페이퍼에 구글의 머신 러닝 추론inference을 위해 사용하고 있는 텐서플로우 모델 워크로드의 60%가 기본적인 피드포워드feed-forward 신경망이라는 점입니다.

스크린샷 2017-04-10 오전 1.54.39

이 수치가 거의 10개월 전의 데이터이고 텐서플로우, 즉 TPU로 서빙한 것에 국한될 수 있지만 예상외로 차이가 많은 것 같습니다. 페이퍼에서도 언급하고 있듯히 TPU의 성능 향상은 CNN을 타깃으로 하지만 실제로는 MLP가 주요 애플리케이션에 사용되고 있는 것 같습니다. 그렇다면 가중치 크기로 보아 비교적 레이어의 유닛수가 많은 MLP0은 유투브 추천에 MLP1은 광고 추천에 사용되는 것이 아닐까 조심스럽게 추측해 봅니다.

Benchmarks for popular CNN models

스탠포드 비전랩의 저스틴 존슨(Justin Johnson)이 콘볼루션 뉴럴 네트워크의 잘 알려진 모델들을 비교 벤치마크한 자료를 깃허브에 공개하였습니다. 이 벤치마크는 토치로 수행되었으며 메모리 부족으로 ResNet-200을 GTX 1080에서 돌리지 못한 것을 제외하고는 모든 모델을 Titan X와 GTX 1080에서 직접 비교할 수 있도록 테스트했습니다. 결과로는 GTX 1080이 모든 모델에 대해 조금 더 빨랐으며 ResNet-50이 VGG-16보다 빠르고 에러도 작았고 ResNet-101은 VGG-16과 비슷한 속도에서 VGG-19보다 훨씬 에러가 작았습니다.

Network Layers Top-1 error Top-5 error Speed (ms) Citation
AlexNet 8 42.90 19.80 23.18 [1]
VGG-16 16 25.60 8.10 232.55 [2]
VGG-19 19 25.50 8.00 281.69 [2]
ResNet-18 18 30.43 10.76 47.07 [3]
ResNet-34 34 26.73 8.74 79.70 [3]
ResNet-50 50 24.01 7.02 153.90 [3]
ResNet-101 101 22.44 6.21 235.33 [3]
ResNet-152 152 22.16 6.16 328.90 [3]
ResNet-200 200 21.66 5.79 [4]