清原PyQ Founderは沸騰するPythonの人気を、「AI(人工知能)ブームにけん引されている」と分析する。AIの中で特にホットな深層学習(ディープラーニング)の分野で、Pythonの存在感が大きいからだ。デンソーグループでAI研究を担うデンソーアイティーラボラトリの吉田悠一研究開発グループシニアリサーチャは「深層学習を使ったソフトを開発するなら、プログラミング言語の選択肢は事実上Pythonしかない」と指摘する。

 AIを使ったソフトを効率良く開発するには、ライブラリー(ソフトの部品群)の利用が欠かせない。「ゼロから作ると1カ月かかるものを、ライブラリーを使うと数行書く時間だけで実装できる」(吉田シニアリサーチャ)。試行錯誤を繰り返すAIを使ったソフトの開発では、手軽に試せるか否かが大きな違いとなる。

 具体的には、米グーグル(Google)が開発・公開する深層学習ライブラリー「TensorFlow(テンソルフロー)」、米フェイスブック(Facebook)が開発・公開する深層学習ライブラリー「PyTorch(パイトーチ)」、機械学習アルゴリズムを幅広くカバーする「scikit-learn(サイキットラーン)」などがよく使われている。どれもオープンソースであり、無料で利用できる。

 これらのライブラリーへの命令はプログラムとして記述する。ライブラリーによって対応するプログラミング言語に違いがあるが、ほとんどのライブラリーで共通して使えるのがPythonだ。

 目的に応じてライブラリーを使い分けたり、ライブラリー同士を比較したりするにはPythonを使うしかない。「得意なプログラミング言語が他にあっても、深層学習を使ったソフトを開発するときはPythonでプログラムを書く人が多い」(吉田シニアリサーチャ)。

 AIを使ったソフトの開発でエンジニアや研究者の多くがPythonを使うため、情報の蓄積もPython一色となっている。TISの美澄暢彦サービス事業統括本部AIサービス事業部AIサービス企画開発部主任は「インターネットでAIについて検索して出てくるプログラムはほとんどPythonだ。参考になるプログラムが多いし、AIを扱うならPythonの利用が近道となる」という。

AI出品機能をPythonで開発

 PythonとAIでソフトを開発している代表例がメルカリだ。Tensor Flowと類似画像検索ライブラリーの「Faiss(ファイス)」を使って、「AI出品」と呼ぶ機能を実装している(図3)。商品の写真をアップロードすると、ブランド名やカテゴリー、商品名などを自動入力する機能だ。AIが画像を解析して、過去の出品との類似や色を推定している。

図3●メルカリの AI出品機能
[画像のクリックで拡大表示]

 メルカリは出品や受発注の管理、ユーザー同士のコミュニケーションなどの機能は、主にプログラミング言語のPHPで開発している。AI出品では、PHPでプログラミングされた出品機能と、PythonでプログラミングされたAI出品機能がAPI(アプリケーション・プログラミング・インターフェース)を通じて連携して動作する。

 具体的には、ユーザーが出品する商品の写真をアップロードしたタイミングで、出品機能がAI出品機能に写真データを渡す。AI出品機能は写真を解析して、カテゴリーや商品名などを出品機能に返答する。出品機能はカテゴリーや商品名などを出品画面の該当項目に入力する。ユーザーに対しては、最も可能性の高い候補を入力した状態で出品画面を表示する。もし違っていれば、ユーザーが手作業で修正する。

 AIを使ったソフト開発では、データを学習して「モデル(入力データから回答を推定する仕組み)」を作るプログラムを開発したり、モデルを使ってデータから推定するプログラムを開発したりする。ライブラリーを使うと、そうしたアルゴリズムを実装する手間を減らせる。

この先は有料会員の登録が必要です。「日経SYSTEMS」定期購読者もログインしてお読みいただけます。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら