AIを構成する三つのレベル。そしてRPA

読者の皆さんにとってAI(Artificial Intelligence : 人口知能)とは何でしょうか?

2001年に公開されたアメリカのSF映画「AI」。人間と同じ感情を持つ少年の人工知能ロボットでした。

2016年にGoogle DeepMindのAlpha Goが韓国の囲碁のプロ棋士に勝ちました。将棋に比べて囲碁はコンピュータの計算量を左右する打ち手の組み合わせが多く、AIが人間に勝つのまでにあと10年はかかると言われていた中での勝利でした。

ムーアの法則に従い、コンピュータの計算能力が飛躍的に上がったことがAIの進化を下支えしています。

AIには、(1)ルールベース、(2)機械学習、(3)深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現します。AIのスピンオフとしての位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPA(Robotic Process Automation)が注目されています。現在は(1)ルールベースのAIを用いたものが多く見られます。

「Biz-Robo」や「WinActor」といったルールベースのRPAソリューションを用いた事例が増えている一方で、RPAはAIや深層学習・機械学習に比べて知名度が低く、「SilkTest」や「Selenium」のようなソフトウェア開発自動技術との違いや「TensorFlow」などのAI技術との違いがわからないといった方も多いのが実情です。

そこで、本連載では、RPAに焦点を絞って、概要から実装論まで幅広く紹介します。

ロボットによるホワイトカラー業務の自動化

「自動車工場の生産ラインで産業用ロボットが次々と自動車を作り上げていく」「カップ麺の麺を茹で、具材を混ぜ合わせ、カップに詰めるところまで全自動で産業用ロボットが担っている」――このように、ブルーカラーの現場では「業務の自動化」が当たり前のように実現されています。

その自動化を、事務などのホワイトカラー業務において適用する技術がRPAです。

取引先からメールを受け取って、その内容に応じて担当者がエクセルの帳簿をつけ、場合によってはシステムにも結果を投入する。システム化が進展してきたといっても、全ての業務の全自動化が実現できているわけではありません。稟議承認を伴う作業など、複数人でタスクの持ち回りを管理するワークフローシステムでも、タスクが回ってきた通知を受けた後、システムへの投入作業を行うのはやはり人手でした。

RPAを使えば大掛かりなシステムの機能追加などを行うことなく、こういった作業を自動化できるようになります。

野村総合研究所では、日本の労働人口の49%がAIやロボットなどで代替可能と試算しています。生産年齢人口(15歳から64歳まで)の減少により業務効率化が望まれる中、こういった人手の作業を自動化するRPAがにわかに注目されてきています。

ビジネスを牽引するSMACS/AI/IoT

近年注目されているデジタルビジネス。その代表例であるUberの配車ビジネスは、APIなどの「再利用」技術をフル活用し、自らシステムとして作り込む部分を極限まで減らすことにより、素早くビジネス化を実現しています。

クラウドの登場により、データセンターを持たないスタートアップ企業がビジネスアイディアを即座にシステムとして実現可能となり、Twitterなどのビッグデータからのデータマイニングにより、これまで得られなかった知見を発見することができます。

これまで「技術」はビジネスを実現するための一つのツールに過ぎないという認識の方も多かったかもしれませんが、昨今では「技術」がデジタルビジネスを牽引しており、存在感を増してきています。技術者の立場が比較的弱いと言われることもある中、こういった状況になってきていることは筆者も技術者の端くれとして嬉しい限りです。

「デジタル」を構成する技術としてSMACS(Social/Mobile/bigdata Analytics/Cloud/Security)という言葉がありますが、近年ではAI/IoTも併せて語られることが多くなりました。Googleなどによる自動運転技術や、Webサイトの問い合わせへの自動応答と可能にする対話型コンピューティング(代表例:Facebook Messenger。チャットボットとも呼ばれます)など、AIがデジタルビジネスを加速してきています。

現在のRPAではルールベースのAIによるホワイトカラー業務自動化が中心ですが、今後は機械学習や深層学習を活用し、自律的に動作するロボットが増えてくることも考えられます。

「ソフトウェア開発自動化」視点からのRPA

冒頭にて紹介したSilkTestやSeleniumは、4つの領域に分けられるソフトウェア開発自動化技術の中でテスト自動化に位置付けられます。本節ではソフトウェア開発自動化の視点からRPAを捉え、どういった類似点や違いがあるかを紹介します。

  1. 「ソースコード自動生成」 : 設計書などからソースコードを自動生成
  2. 「テスト自動化」 : 単体テストや機能テストなどを自動実行
  3. 「ビルド・デプロイ自動化」 : アプリケーションのコンパイル・パッケージングや、開発環境や本番環境などへのアプリケーションの配備などを自動化
  4. 「基盤自動化」 : インフラ技術者による環境構築作業などを自動化

下表下線部の「機能テスト」で用いられている自動実行技術はRPAと類似しており、ブラウザなどのPC操作を自動実行します。自動実行技術をシステム開発におけるテスト工程ではなく、ビジネス現場の業務用にカスタマイズし、当てはめたのがRPAと捉えることもできます。

ソフトウェア開発自動化は、原則開発者が利用することを前提とし、一定レベルのプログラミングなど、ITスキルを必要とします。一方でSeleniumなどの機能テストツールでも一部は採用されていますが、RPAはPC操作をキャプチャするなどのGUI操作(プログラミングレス)でロボット構築(業務自動化)を実現することで、非開発者でも扱えるようにするための工夫が加えられています。

表 : ソフトウェア開発自動化の4領域とRPA

No 領域名 想定ユーザ 対象フェーズ PC操作自動実行 利用技術例
1 ソースコード 開発者 開発(設計・実装) Eclipse、TERASOLUNA ViSC
2 テスト自動化 単体テスト JUnit、Jasmine、JsTestDriver
機能テスト Selenium、SilkTest、Selenide
パフォーマンステスト Apache JMeter
3 ビルド・デプロイ自動化(DevOps、 CI/CD) 開発環境 Jenkins、Gradle、Maven、Capistrano、Fabric
ステージング環境
本番環境
4 基盤自動化(Infrastructure as Code) 環境構築・環境変更 構築 : SDN、Chef、Puppet
テスト : ServerSpec
概念 : Immutable Infrastructure
仮想化 : Docker
5 RPA 開発者/非開発者 - (開発業務ではなく、ビジネスの現場向け) Blueprism、Openspan、BizRobo!、UiPath、Sikuli、WinActor、WorkFusion、Automation Anyware

アジャイル開発とRPA

システム構築には当然ながら時間がかかります。そのため企画時点で想定する価値は、システム提供時には低下していることもあります。アジャイル開発は短期間に小さな単位でシステムを構築することで価値を提供することに主眼を置き、システム提供後もユーザのフィードバックを受けながら価値を高めていきます。

短期間にユーザへ価値を提供するという観点ではRPAはアジャイル開発と類似していますが、プログラミングなどのシステムを構築するためのノウハウの必要性という観点では異なります。また、RPAはパソコンのマウス操作などシステム化が難しい領域の自動化によりシステム同士を繋いだり、システムの不足機能を補ったりする補完システムの一面を持ちます。

*  *  *

RPAのR(ロボティクス)という語感からAIと混同されることの多いRPA。AIを構成する三つのレベルを紹介することで、AIとRPAの関係性を明らかにしました。

RPAは現在、ルールベースの比較的シンプルな仕組みにもかかわらず、ホワイトカラー業務を効率化する切り札として注目されています。2017年6月27日にRPAテクノロジーズがBlue Prismの提供開始を発表するなど、RPA市場を巡った競争が激化してきています。

次回は、どういった仕組みで業務の自動化を実現しているかについて、実際のツールを用いて体感していただきます。

著者紹介


正野 勇嗣 (SHONO Yuji ) - NTTデータ シニアスペシャリスト

2011年頃まで開発自動化技術のR&Dに従事。その後、開発プロジェクト支援やトラブルシューティング等に主戦場を移す。「ソースコード自動生成」に加えて、JenkinsやMaven等の「ビルド自動化」、JsTestDriverやSelenium等の「テスト自動化」を扱うようになり、多様化する開発自動化技術動向に興味。

最近は第四の自動化であるInfrastructure as Code等の「基盤自動化」の魅力に惹かれている。開発自動化技術に関する雑誌・記事執筆も行う。2児のパパ。