検索
連載

freeeのAIチームが作り上げた、チームの力を最大限に生かすための機械学習基盤とは特集:2020年、AI活用の成否を分かつ技術とは(3)(1/2 ページ)

「最新の進化を取り入れ、freeeという企業の今のステージに適した機械学習基盤を目指した」。freeeのAIラボで機械学習基盤の構築を主導している田中浩之氏はこう話す。では、freeeの今に適した機械学習基盤とは、どのようなものなのか。

Share
Tweet
LINE
Hatena

 freeeで機械学習/AIによる推論サービスを担当しているAIラボでは、チームで利用する機械学習インフラ基盤を構築し、2019年後半に運用を開始した。基盤構築の中心となっている田中浩之氏は、自身が以前、自然言語処理の研究を始めたころを振り返り、機械学習を支援する技術が驚くべき進歩を遂げたと話す。

 「当時はC言語で一からアルゴリズムを書いていた。今はそのようなことがなくなり、1日あるいは半日でプロトタイプを回していけるようになった。すごいことだと思う」

 機械学習関連ツールの発達は目覚ましかったが、次第に落ち着いてきた。代わって「特にこの1、2年は、コンテナやCI/CD(継続的インテグレーション/継続的デリバリー)など、ソフトウェアエンジニアリングの進化が著しい」。AIラボにおける機械学習インフラ基盤の構築では、こうした進化をチームとして最大限に生かすにはどうしたらいいかがテーマになったという。

あくまでもサービスの価値を高めるための機械学習/AI

 freeeは、会計をはじめとしたバックオフィスを効率化するクラウドサービスを提供している企業だ。機械学習/AI機能は、これらのサービスにおけるユーザーの利便性を高めるためにある。同社のビジネスにおいて、少なくとも現時点では機械学習/AIが主となっているわけではない。このことも、freeeにおける機械学習基盤構築のアプローチに影響を与えている。

 では、freeeのサービスでは、機械学習/AIがどのように使われているか。新基盤上で既に動いている機能の1つに、freee会計の「自動で経理」における仕訳の自動推測がある。自動で経理は、銀行口座やクレジットカードから取り込んだ明細について、仕訳の自動化を助ける機能だ。

 自動で経理における仕訳の支援は、ルールとAIの、ハイブリッドな仕組みで行われている。ルールベースの仕訳というのは、明細の表示名をもとに、「この名前で入ってきたらこの費目に仕訳する」という関係を明示的に指定するものだ。一方、こうした単純なルールでは賄えない、より複雑な処理については、AIを適用した自動的な推測を行っている。


「自動で経理」における仕訳の自動推測

 自動推測は必ずユーザーの確認を待って適用となるため、100%の精度が求められるわけではない。だが大量に取り込まれるデータの処理を効率化することが目的の機能であるため、誤りが多いのでは使い物にならない。そこでユーザーの修正結果に基づいた学習データを都度追加することで機械学習モデルの継続的な改善を進めている。

 現在のところ、利用実態に合わせて複数の機械学習モデルを組み合わせて運用している。だが、会計処理は個別性が高く、業種、さらには企業ごとに慣習的なものがある。そこで、全体最適的なモデルを生かしながら、各社の処理履歴を活用して個別性を加味できる、新たな形のAI支援機能を研究中という。

 freeeでは上記のような、サービスに埋め込まれたAI支援機能が複数存在している。今後もサービスの価値を高めるため、機械学習/AIが大きな役割を果たしていくことは間違いない。

 こうした将来を見据え、機械学習/AIを担当する部署であるAIラボでは、新たな機械学習基盤を構築した。2019年後半に運用を始めてからおよそ半年がたち、「ようやくパイプラインが回るようになってきたところ」という。同基盤上では、新規の機械学習プロダクトを稼働する一方、既存のプロダクトを移し始めている。

機械学習基盤は何を考慮して設計しているのか

 「freeeでは、機械学習のエンジニアが大勢いるわけではない。小規模なチームなので、機械学習の構築や運用でも、分担が決まっているわけではない。チーム全員で『こういう機能が欲しい』と考えたものを皆で作り、利用している」

 田中氏たちは、4つの方針で、機械学習基盤を構築したという。

自由度の確保

 メンバー各人には、作業を自分なりのやり方でやりたいという強い気持ちがある。

「『Jupyter Notebookしかないからがんばってやりなさい』ではなく、一人一人いろいろなやり方ができる環境が欲しかった」

オープンさ

 何がどのような設定でどう動いているのかを、直接関わっていない人でも容易に知ることができる環境にしたかった。そのことで、「自分がやっていないので分からない」といったことを極力減らしたかった。

 「特定の分野に強く、これに集中したい人もいる。そうした人でも、自分のモデルが実際プロダクトでどう動いているかを調べたいときに調べられるような環境が大事だと思う。周辺領域の知識は、今後の機械学習エンジニアにとって重要な資産になる」

全社基盤との連携性

 全社的なサービス基盤との連携度を高め、社内の他チームとの協力関係をより緊密にしたい。

コンパクト

 機能がさまざまな場所やツールに分散しているのではなく、なるべく1つの環境に集約されている状況が望ましい。

 田中氏たちは、Kubernetesによるコンテナ環境を採用することで、これらの方針に即した機械学習基盤を構築した。なお、freeeではAmazon Web Services(AWS)をサービスの基盤として利用しているため、AIラボでも以前からAWS上で作業を行ってきた。新機械学習基盤では、関連する機能を「Amazon Elastic Kubernetes Service(Amazon EKS)」のクラスタ群に集約し、この上でチームのエンジニアが自由に動ける仕組みを実現した。

 コンテナ基盤により、第1の方針である各チームメンバーにとっての自由度がまず大きく向上した。

 これまでは、何かを試したいとか、実験的にやってみたいというとき、仮想マシンを立ち上げるのであれば、社内で許可を得る必要があった。また、freeeではセキュリティガバナンスの関係から、手元のPCにデータを置かない決まりになっている。新基盤ではプロダクトレベルのセキュリティを担保しつつ各人がコンテナを立ち上げて即座に試せるようになった。

 「データベースとやり取りする仕組みを実験的に作ってみたいといったときにも、そういう環境をサクッと用意できる」

 2点目のオープンさという観点でも、Kubernetesの良さが生きる。インフラ回りの設定については、社内のコンテナ運用を担当しているチームに頼むこともできるし、コードで記述する仕組みを使い、自身で動かすことにチャレンジすることも可能だ。

 「自分で書いたサービスを自分で動かすことができ、自分で稼働に関与しない場合でも、どのように動いているかが分かる状態にしている」

 3番目の社内基盤との連携に関しては、Kubernetesを使っている社内エンジニアが共通に使えるデリバリー、デプロイの仕組みに相乗りできるようになった。このため、AIラボでは、モデルを作ってサービスとして動かせるものにするところまでをやればいい。どうプロダクトに配信するかなどは共通の仕組みを使うことで、楽ができるようになった。

 4番目の「コンパクト」についても、機械学習用のEKSクラスタに、データの検証からプロトタイピング、モデル開発といった開発作業のためのツールが全て入っている。このため、AIラボの各メンバーは、1つの基盤上で全ての作業を完結できる。

 ちなみに、データ管理については、以前から社内に専任のチームが存在しており、データを統合、整理して、開発チームが全てのデータを単一のアクセス方法で取得できるようにする役割を担っている。

 「われわれは、データをいかに加工して現実の問題に落とし込み、課題解決のためのデータ分析をするかにフォーカスすればいい。リードタイムの短縮にとても役立っている」

具体的な機械学習基盤の構成

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
[an error occurred while processing this directive]
ページトップに戻る