もちろんPFNもChainerを使って、さまざまなAIモデルを研究、開発している。同社はOSSミドルウェアや内製ツールを駆使して、オンプレミス環境にChainerクラスターによるAI開発プラットフォームを構築していると言う。その詳細はあまり語られることがないが、「July Tech Festa 2018」の基調講演で、PFNのエンジニアである大村伸吾氏がその概要を紹介した。大村氏は、PFNでAI開発のためのChainerクラスタの開発・運用を手掛けている本人だ。
PFNはどんなAIを実現しているのか
PFNは機械学習に関する深い知見と高い技術力で、世界中の企業とさまざまな分野のAIモデルを開発している。事業内容としてはIoT機器と分散機械学習を掛け合わせた分野でのシステム開発。交通システム、産業ロボット、バイオ・ヘルスケアでの開発が多い。通常は、トヨタ、ファナックなど大手製造業との協業の形になるので、消費者が直接目にする製品として現れるわけではないが、現実的かつ実用性の高いシステムを手掛けている。
例えば、工場のロボットアームが掴む部品は、通常パレットやケースにきれいに並べてロボットがつかめるようにする必要がある。PFNはケースに山積みにされた部品から正しく部品をピッキングするロボットを開発している。
2016年にアメリカのラスベガスで開催された「CES 2016」では、強化学習(事前学習ではなく環境のフィードバックによって学習をする方法)のデモとして、複数の自動運転車を同時に走らせてぶつからないAIを学習させる実験を行った。
自然言語によるロボット制御では、決められたコマンドではなく「茶色くてふわふわしたもの」といった命令でロボットを制御する技術を開発した。ちなみにこの場合、ロボットは、対象物の中から表現にあてはまる「くまのぬいぐるみ」を持ってくる。この研究は、ロボット工学と自動化に関する国際会議「ICRA」の2018 Best Paper Awardを獲得している。
GPUクラスタ「MN-1」の構成
以上のような研究開発を支えるのがニューラルネットワークの開発を支援するChainerだ。Chainerには分散学習(ChainerMN)、強化学習(ChainerRL)、画像認識(ChainerCV)など、いくつかのパッケージが存在する。今回大村氏によって解説されたのは、ChainerMNを実装した分散深層学習クラスタだ。
PFNでは、NVIDIA Tesla P100を1024個による「MN-1」というChainerMNクラスタをオンプレミスで構築し、社内の研究開発に利用している。MN-1は、1ラック8GPUのサーバーを16台で構成し、それを8ラックつないだクラスタだ(8×16×8=1024)。また、高速な分散処理を可能にするため、各ラックは56GbpsのInfiniBand FDRを2本使った高速FCチャネルによって接続される。
ChainerMNはGPU数にほぼ比例した速度特性を持つ。また、速度による精度変化も少ないのが特徴だ。MN-1は、ImageNetのベンチマーク(ImageNet in 15min)で2017年の1位の深層学習速度を記録している。しかし、GPUをたくさん用意し高速回線でつなげばいいかといえば、そう簡単な話ではない。
PFNでは、多数のエンジニア、金融系、バイオ系、医師などさまざまな研究者が、それぞれの用途でChanierを使う。ハードウェア構成だけでは、公平かつ効率のよいAI開発はできない。また、多様なニーズにも応えられない。