全4153文字
PR

グーグルやフェイスブックも

 例えば深層学習フレームワークとしては米グーグルが開発する「TensorFlow」や米フェイスブックによる「PyTorch」、Preferred Networks(PFN)が開発する「Chainer」がある。

 Python用ライブラリーには他にも深層学習以外の機械学習に対応した「scikit-learn」や行列操作の「NumPy」、表形式データを操作する「pandas」、データを可視化する「Matplotlib」などが人気だ。これらはAIやデータ分析に関わるITエンジニアの多くが使う定番である。

 Pythonはオープンソースソフトウエア(OSS)のプログラミング言語であり無償で利用できるし、ここに挙げたAI分野のライブラリーやフレームワークも全てOSSなので無償で利用できる。数値計算ライブラリーやAI分野の主要ライブラリーはCやC++で開発されているため処理が高速だ。プログラムのソースコードをコンピューターで実行可能な形式に逐次変換して実行する「インタープリター」方式の言語であるPythonは一般に動作速度が遅いとされる。しかし外部ライブラリーが本体の弱点を補っている。

 Python利用者の間にAI分野のノウハウやサンプルコードが蓄積していることも大きな魅力だ。Pythonに詳しい野村総合研究所の大橋俊介システムデザインコンサルティング部主任データサイエンティストは「開発中にAIプログラムがうまく動かないといったトラブルが起こった場合、Googleで検索すればほとんどは解決策にたどり着く。ライブラリーのアップデートも早い」と明かす。

 AIシステムは完成するまで精度や速度が十分かどうか分からない。素早く開発してトライ・アンド・エラーを繰り返す必要がある。ライブラリーが充実していて情報が豊富なPythonはAIシステムを素早く開発するのに向いている。「AI分野のプログラミングでPython以外を選ぶ理由がない」(SCSKの津路憲宏R&DセンターAI技術部課長代理)のが現状だ。

データ分析やインフラ運用でも人気

 AI以外の領域でもPython人気が高まっている。その一例が統計解析など一般的なデータ分析だ。かつてはプログラミング言語「R」が強い分野だったが「2010年ごろからPython人気が高まり、現在はRと人気を二分している。勢いはPythonの方があると感じる」。DNAのデータを情報科学の手法で解析する研究に取り組む東京大学の辻真吾先端科学技術研究センターゲノムサイエンス分野特任助教はこう話す。

 インフラ運用やネットワーク設定の自動化もPythonの得意領域だ。サイバーエージェントのアドテク本部でインフラエンジニアを務める青山真也氏は「クラウドのAPI(アプリケーション・プログラミング・インターフェース)を呼び出したり、サーバー設定自動化ツールAnsibleを拡張したりするのにPythonを活用している」と明かす。

 AIやデータ分析ほどではないが、Webアプリケーション開発にPythonを使う動きもある。代表格が米フェイスブックだ。写真共有SNS「Instagram」をPythonで実装している。Webアプリケーション分野のPython向けライブラリーとしては「Django」や「Flask」が人気だ。

 プログラムの書きやすさといったPythonの言語仕様を支持する声も多い。インタープリター方式であるPythonは、作成したソースコードをコンパイルせずにそのまま実行できる。文字列か数値かといった変数の型が実行時に決まる「動的型付け」を採用するのも特徴の一つだ。ソースコード内での型宣言が不要なため「同じ処理でもJavaの半分以下」(東大の辻特任助教)という少ない記述量で済む。

 Pythonの処理系や開発環境はWindows、macOS、Linuxと様々なOS上で動作する。特にmacOSやLinuxはPythonを標準搭載する。この点も開発の手軽さにつながっている。

 「他人の書いたソースコードでも読みやすい」という点でもPythonは人気を集めている。インデントを利用した独特の文法を採用しているためだ。またJavaやPHPだと繰り返しや条件分岐などの処理を書く方法が複数あるが、Pythonでは基本的に1つ。工具通販サイト大手MonotaROのデータマーケティング部門APIグループの増田泰氏は「Pythonだと誰が書いても似たようなプログラムになる」と語る。この特徴はチームで開発する場合に威力を発揮する。Pythonを使うと他人の書いたプログラムの読解に苦労する心配が少なくて済むからだ。