Chainer2.0가 근일 릴리스 또 그와는 다른 대규모 분산 처리에 대응한 Chainer도 릴리스되는 것 같다

닛케이 ITPro 2017/01/27 릴리스 기사에서
PFN의 심층 학습 프레임워크 「Chainer」가 대폭적인 고속화에 분산 처리에 대응

이 1년 반 정도 Chainer를 개인(학습과 약간의 연구)용으로, 또 최근 1년 정도는 업무 안건으로 TensorFlow를 사용해 왔습니다.

종종 이 두 가지의 차이는 무엇인가 생각했지만 Chainer가 뒤떨어지는 점은 복수 노드에서의 분산 처리에 대응하지 않는 것이었습니다.
그렇다고 해도 저변 프리랜서가 관련된 안건에서는 분산 처리가 필요할 정도로 대규모의 데이터 세트에 접하는 일은 우선 없습니다만.

적어도 32노드/128GPU에 대응하는 것 같습니다.




(상기 링크 대상에서 전재)

1노드/1GPU에서 20일 이상을 요한 학습이 32노드/128GPU에서는 무려 4.4시간까지 단축되었다는 것.
「20일 이상」을 20일로 계산해도 실로 109배의 고속화에 상당합니다.

또 128GPU로 1GPU에 대해 109배의 성능을 실현했다는 것은 실효 효율은 85.22%에 달하고 있어 이상이라고 말해도 좋을 정도의 고효율을 달성하고 있습니다.

자칭 저변 프리랜서입니다만 대규모 분산 처리만은 특기 분야이므로, 조금 말해 버리면 데이터의 관련성이 희소한 경우에서도, 좀처럼 85%는 효율은 낼 수 없습니다. 게다가 비교적 관련성이 조밀한 기계 학습으로 이 효율을 달성하는 것은 쾌거라고 말해 과언이 아니라고 생각합니다.

여담입니다만 분산 처리계 시스템에서는 「4개로 3개」라고 말을 자주 사용합니다만, 이것은 4대로 3대분의 성능을 달성하는 것을 목표로 하는 의미입니다. 즉 실효 효율 75%군요. 그러나, 이 75% 어디까지나 목표치이며 현실에는 그렇게 간단하게 달성할 수 있는 것은 아닙니다.

MXNet이나 CNTK에서는 대범 실효 40~50%가 되고 있어, 이 정도는 보통이라고 생각합니다만, 분산 처리 대응판 Chainer에서는 반드시 굉장한 기술이 사용되고 있을 것입니다.

Forward는 DataParallel에서 효율성을 높일 수 있지만, Backward는 loss 계산 전에 동기 처리가 필요하기 때문에 효율이 저하한다고 생각합니다.
loss 계산 후에는 Optimizer에 의한 backpropagation이 행해집니다만, 이것도 분산으로 실행하는지, 혹은 1 노드로 처리해 갱신된 Weight등을 각 노드에 전달하는 방식인가...

또 TensorFlow의 5배를 넘는 성능이 되기 때문에 대규모 안건으로의 채용이 기대되네요.

덧붙여서 분산 노드간 결합 기술로서는 MPI와 InfiniBand가 사용된다는 것.
ITPro의 기사에도 기재가 있습니다만 완전히 스파콘의 기술입니다.
Protocol Buffers와 10GbE로 어떻게 되겠습니까 ... (웃음)

또 우리와 같은 「보통의 사람」의 의견으로서, 1노드/4GPU등의 환경에서도 고속화되는 것을 크게 기대합니다.

최근에 Chainer2.0이 출시 될 것입니다.



ITPro 회원이 아니면 읽을 수없는 두 번째 페이지에 작성되었습니다.

PFN은 근일중에 「Chainer 2.0」을 릴리스 할 예정이지만, 이것은 분산 버전의 Chainer가 아니다.
라는 것.

불행히도 ITPro 기사는 Chainer2.0에 대한 자세한 내용을 전혀 언급하지 않았습니다.
「근일중」이 구체적으로 언제인지 궁금하네요.

요 전날 쓴 기사 에서 TensorFlow도 1.0이 슬슬 출시된다고 전했습니다만, 서로 절기 연마해 점점 좋은 프레임워크가 되어 주었으면 하는 것입니다. (타력 본원)

속보에 기대합니다.

좋은 웹페이지 즐겨찾기