招待論文
ICT システムの設計に関する知識の機械学習による獲得
黒田 貴之
†a)桑原 拓也
†丸山 貴志
†八鍬 豊
†田辺 和輝
†福田 達也
†里田 浩三
†大崎 隆夫
†Aquisition of Knowledge about ICT System Designing with Machine Learning
Takayuki KURODA
†a), Takuya KUWAHARA
†, Takashi MARUYAMA
†, Yutaka YAKUWA
†, Kazuki TANABE
†, Tatsuya FUKUDA
†, Kozo SATODA
†, and Takao OSAKI
†あらまし 企業がデジタル・トランスフォーメーションを実践して自身の業務変革を達成するには,これを支 えるICTシステムが要件に合わせて迅速・柔軟に提供されることが重要である.しかしながら,ICTシステムの 設計は定型化や自動化が困難であり,現状では熟練技術者の知識と多大な工数を要している.また,既存の自動 設計技術は,提供者が膨大な量の知識を事前に定義する必要があるため実用が困難であった.そこで本研究では,
AIと機械学習を活用することで,設計に必要な知識を自律的に獲得する手法を提案し,要件を満たすICTシス テムを迅速・柔軟に提供する体制を確立する.本論文では,その基礎方式を示すとともに,映像分析サービスを 題材とした実験を通じてAIが自律的に設計能力を獲得可能であることを実証する.加えて,学習の収束性と汎 化性の観点からその有効性を評価し,現状の課題について述べる.
キーワード 運用自動化,システム自動設計,機械学習,グラフ深層学習
1.
ま え が きAI
とIoT
の技術進化を背景にデジタル・トランス フォーメーション(DX
)が世界的な潮流となりつつあ り,国内でもユーザ企業の7
割がデジタル化に取り組 んでいるとの調査報告が示されている[1]
.DX
とは,ICT
の活用を前提とした新事業創出や業務の変革であ る.従来のICT
活用の目的は主にバックオフィスに おける社内の業務効率化であったのに対し,DX
にお いてはフロントオフィスにおける顧客向けの価値提供 の強化に焦点が当てられている.こうした目的におい て,ICT
システムに求められる要件は多様であり,且 つ変化もしやすいことから,その提供は迅速・柔軟に 実施できることが重要である[2]
.ICT
システムの提供を抜本的に迅速化・柔軟化する ことを目指す技術領域に,ICT
システムの自動構築や 自動運用がある.自動運用に関しては,近年AIOps [3]
や
Closed-loop Operation [4]
等の様々な概念が提唱さ†日本電気株式会社,東京都
NEC Corporation, Shiba, Minato-ku, Tokyo, 105–0123 Japan a) E-mail: [email protected]
DOI:10.14923/transcomj.2020AII0001
れており,国内でもネットワークの運用自動化に関す る研究が推進されている
[5], [6]
.ICT
システムの運用 は,見える化・分析・対処の三つの作業フェーズに大 別できる.このうち,見える化・分析フェーズにおい ては,AI
技術を活用した高度な自動化技術の研究開発 が活発に取り組まれている.一方,対処フェーズにお いては,ルールやパターンを用いた定型的な作業の自 動化が活用されるに留まっており,設計などの高度な 作業の効率化が課題となっている.ICT
システムの設 計は,様々な要件を満たしつつ構成要素を組み立てる 複雑な作業であり[7]
,ここに熟練設計者の知識と多大 な工数を要することが,DX
の普及を妨げる要因にな ると懸念されている[8]
.複雑で定型化が困難な作業を効率化するには,案件 ごとに策定すべき情報をできる限り簡素化することが 重要である.そこで,利用者が簡潔に要件を入力する だけで
ICT
システムを自動的に設計する技術の研究開 発が進められてきた[9], [10]
.しかしながら,これら の自動設計技術においては,利用者に多様な要件を入 力する自由を許容すると,設計に長時間の探索処理を 要するか,あるいは提供者に膨大な量の知識を事前に 定義させる必要が生じていた.そこで本研究では,提供者が事前に準備すべき情報 のうち,人手による入力が困難な情報である暗黙的な 設計の知識を,ニューラル・ネットワークと機械学習 により自律的に獲得する手法を提案する.これにより,
提供者に定義させる知識の量を実運用が可能な程度に 抑えつつ,利用者による多様な要件の入力と迅速な設 計導出を両立させることで,
ICT
システムを迅速・柔 軟に提供する体制を確立する.以下,本論文では,まず
2.
にてICT
システムとその 運用工程を整理し,既存技術の課題を明確化する.続 いて3.
にて,提案手法である学習型の自動設計技術の 詳細を示し,4.
でその設計と実装について補足する.5.
では,映像分析サービスの要件を題材とした実験を 行い,設計の知識が機械学習で獲得できることを客観 的に示す.最後に6.
で全体を総括する.2. ICT
システムの運用とその自動化本章では,本研究の対象である
ICT
システムの構築 と運用に関する検討の準備として,ICT
システム自体 の有様を概観した上で構築・運用の作業工程について 整理する.続いて構築・運用と設計作業の自動化に関 する既存研究を示し,その課題を明確化する.2. 1 ICT
システム一般にシステムとは互いに影響し合う複数の部分か らなる仕組みの全体のことであり,
ICT
システムとはICT
に関わる構成物からなるシステムである.以下で は,ICT
システムを単にシステムと呼ぶ.システムは 多種多様な構成物が多数の関係者から寄せられる多様 な要件に基づき,適切に組み合わされて構成される.システムの構成は構成要素及び構成要素間の関係性 によって定義できる.システムの構成要素には,用途 ごとの多様なアプリケーション
(AP)
,ミドルウェア やOS
やマシン及び仮想化基盤などの情報機器(IT)
, スイッチやファイアウォールなどのネットワーク機器(NW)
などがある.関係性については,例えば“OS
が マシンにホストされている”
や“
マシンとマシンが通 信接続されている”
のように,対象となる構成要素の 種類ごとに多様な関係性が定義できる.また一般にシステムには多くの関係者が存在する.
例えば,システムの要求者,利用者,構築者,提供者,
部品の開発者,各部分の管理者などがある.各関係者 はそれぞれにシステムに対する要件(要望や制約)や 責任をもつ.背反する要件は調整される必要があり,
また妥結された要件については全てが考慮され満足さ
れるよう,システムは構成されなければならない.
要件の種類は,大きく機能要件と非機能要件に分け ることができ,非機能要件については性能,可用性,
拡張性,連携性,運用性,保守性,セキュリティなど がある
[11]
.制約には例えば提供可能な資源量や予算 などがある.加えて,要件ごとに抽象度や付与する対 象領域にも違いが生じる.ここでの抽象度とは,例え ばOS
が必要である場合に,OS
であれば何でもよい,Linux
であればよい,あるいはUbuntu
の18.04
版でな ければならないといった限定の粒度のことである.ま た対象領域とは,例えば可用性をシステム全体で担保 させる,ある部門のサブシステムで担保させる,単一 の機器で担保させるといった構成要素の範囲のことで ある.2. 2
システムの構築と運用の工程図
1
にシステムの構築と運用の工程を示す.工程全 体は,要件の変化を起点としてシステムを構築・更新す る構築・更新フローと,システム側の変化を起点とし てこれを修正する運用フローとに大別できる.構築・更新フローは企画と構築の
2
フェーズ,運用フローは 見える化,分析,対処の3
フェーズに分類できる.企画フェーズは,顧客の要件を明確化するフェー ズであり要件分析や要件定義の工程からなる.構築 フェーズは,明確化された要件に基づいてシステムを 構築するフェーズであり,要件を満たすシステム構成 の設計(構成設計),構築・更新の作業手順の計画(手 順計画)及び構築実行の各工程からなる.
見える化と分析は,構築済みのシステムの状況を認 識・監視して,問題が生じた場合にはその原因を究明 するフェーズである.対処は問題を抱えた現状のシス テムの構成と顧客の要件とを踏まえて,新たな望まし いシステムの構成を再設計し,更新手順を計画・実行 するフェーズである.
図1 システムの構築と運用の工程 Fig. 1 Process of system construction and operation.
2. 3
システムの運用自動化技術前節で述べた各工程について,その自動化を目指し た研究開発事例が存在する.その進展の歴史を俯瞰す ると,まず物理的作業の自動化から知的作業の自動化 へ向かう流れがあり,更に単純な知的作業からより高 度な知的作業へ向かう流れが見て取れる.
ここで物理的作業とは,例えばサーバきょう体の設 置やネットワークケーブルの敷設といった人の肉体労 働を伴う作業のことである.
ICT
資源の仮想化技術の 進展によりサーバやネットワークは仮想マシンや仮想 ネットワークで代替できるようになり,またこれらのICT
資源をAPI
を介して操作するソフトウェア化が進 展している.これらの技術により,ユーザ企業のシス テムごとに必要とされる物理的作業の自動化について は,既に実用化され普及が進んでいる.各構成要素に 対する作成・更新・削除・情報取得の作業は各種API
に対するコマンドとして表現され,コマンドを並べた 一連の作業手順を実行することで,システム全体の自 動構築や自動監視を実行するオーケストレーション製 品やモニタリング製品が提案されている[12], [13]
.構築作業の自動化が進展すると今度はその内容を検 討する作業の自動化が課題となり,宣言的オーケスト レーション技術
[14], [15]
が提案されるようになった.これは所望のシステムの構成を基に構築作業の手順を 計画する機能までを含む自動構築技術であり,複数の 仕様や製品が既に実用化されている.
深層学習を始めとする第
3
世代のAI
が台頭すると 更に高度な知的作業の自動化に期待が寄せられ,特に 分析フェーズにおいて異常検知や障害原因分析などの 技術が盛んに研究されるようになった[5]
.その一方 で,構築と対処のフェーズにおいては,分析フェーズ に見られる程にはAI
の活用が進展していない.その 明確な理由は不明だが,昨今のAI
は多量のデータに基 づき本質的な知見を見出す帰納的な情報処理の能力に 特徴を有するため,帰納的な作業である見える化・分 析の方が応用しやすいことや,対処のフェーズは対象 のシステムに直接影響を及ぼすため自動化技術を導入 する際のリスクと敷居が高いことなどが考えられる.フローの中に自動化されない工程が残ると,フロー 全体としての自動化の効果が大きく損なわれるため,
設計工程の自動化はますます重要となりつつある.
2. 4
システムの設計工程の自動化技術続いて本節ではシステムの設計工程の自動化技術に 焦点を当て,既存技術とその課題について述べる.
構成のテンプレート化技術は,要件ごとに具体的な システム構成を人手で記述した上で,一部をパラメ タ値により調整可能にテンプレート化する技術であ る
[15]
.導入が容易な技術であるが,多数の観点から なる要件が交錯する一般的な状況においては,要件の わずかな違いが広範囲の構成に影響する場合があるた め,多様な要件への対応に向けた活用は困難である.Intent-based networking
は,利用者の意図(通信の両 端点及び帯域や遅延などの非機能要件)の入力に基づ いてネットワークを自動構築する技術である.利用者 に直感的な操作性を提供できる点に強みがある一方,現在提供されている技術や製品の多くは特定の基盤環 境を前提としており,利用者自身が保有する既存イン フラを利用したシステム構築など,一般的なシステム 構築への応用には課題を残している
[16], [17]
.より高度な柔軟性を追求した技術領域として,
Design Space Exploration
(DSE
)に基づくシステムの自動設 計技術がある[9], [10]
.図2
の(a)(b)(c)(d)
に示される ように,これらの技術では構成情報を変換する規則を 事前に複数用意しておき,これを用いて抽象的な構成 を具体的な構成へと段階的に変換する操作を探索的に 試行する.また,各構成要素には,他の構成要素が必 要であるという要件や提供可能な資源量に関する制約 等を定義させ,これに基づいて探索の枝刈りや優先度 の制御をすることで妥当な構成へと誘導する.自動設 計技術は比較的少量の定義情報から膨大な構成案を生 成して解を導出するため高い柔軟性が発揮できるが,設計対象の規模に対して探索に要する時間が爆発的に 増加する点が課題である.探索時間を抑制する手法も 提案されているが,状況に応じた探索戦略を人手で与 えるか,探索範囲を狭めるために指定可能な要件の自 由度を下げる必要が生じてしまう.
図2 提案手法の概要 Fig. 2 Outline of proposed method.
2. 5
基本アプローチと技術課題前節までに述べたシステムの有様,作業工程,既存 技術を鑑み,自動設計技術が満たすべき要求項目を以 下に整理する.
(
1
) 多様性:利用者が多様な要件を自由に指定す ることを許容し,これに柔軟に対応すること(
2
) 省力性:許容する利用者要求の多様性の増加 に対する,提供者側の作業工数の増加が少ないこと(
3
) 設計速度:対象システムの規模の増加に対す る探索時間の増加が少ないこと(
4
) 設計品質:多数の観点からなる要件を高い水 準で満足する構成を導出すること(
5
) 説明性:思考過程や判断の根拠を提示し結果 の妥当性を示すとともに,結果の修正が必要な場合に 利用者に検討材料となる情報を与えられること前節で述べた
DSE
による自動設計手法は,少ない準 備工数により高度に柔軟な設計が可能である.制約を 適切に指定することで設計品質を考慮可能であり,更 に探索の過程をトレースすることで説明性も担保でき ることから,有望なアプローチであると考えられる.課題は探索時間の抑制であるが,その解決にあたっ ては,検討対象となる構成案の多様性を安易に縮小さ せることなく,人の工数をかけずに,できるだけ万能 な探索戦略の獲得を追求することが肝要である.そこ で本研究では,この探索戦略の獲得に
AI
と機械学習 を応用するアプローチを採る.2. 6
関連するAI
技術と機械学習技術AI
や機械学習には様々な種類があり,用途や目的に 応じて適切な技術を選択する必要がある.本研究における
AI
の利用目的は,要件を満たす具 体的なシステム構成の探索を高速化する探索戦略の獲 得である.具体的には,システムを段階的に具体化す る過程で生じる構成案について,これがどの程度良い 案であるかを評価できればよい.これにより評価の高 い構成案を優先して探索することで,効率的に具体的 なシステム構成に到達できるようになる.すなわち,AI
への入力情報は構成案であり,出力情報はその評価 値である.AI
に期待される動作は,過去に学習した構 成案の中から,入力された構成案と類似した案を想起 し,その案の評価を推定値として返すことである.ここで,構成案の類似性の定義方法としては,例え ば,同じ種類の構成要素が含まれていること,一部の 構造が同じであること,などが考えられる.しかしな がら,このように類似性をつぶさに定義する方法では,
出力できる評価値の精度に問題が生じると考えられ る.例えば,あるアプリが
Linux
でしか動作しない場 合であれば,当該アプリがLinux
に配備された構成案と
Windows
に配備された構成案とは区別される必要があるし,一方でそのアプリがどちらの
OS
でも動作 する場合であれば,これらは類似した構成とみなして も差し支えない.このように,構成案の類似性の定義 方法は状況に応じて様々であり,各状況を適切に区別 できるほど大量に列挙することは困難である.同様の問題が,画像や音声等の認識技術に見られる.
当領域において,入力情報の類似性を規定する情報は,
一般に特徴量と呼ばれる.例えば,猫を識別する特徴 量について多くの猫の画像と同様の値を有する画像は 猫の画像であると認識できる.従来,あらゆる猫の画 像を適切に認識可能に特徴量を定義することは困難で あったが,特徴量を
AI
に自律的に抽出させる深層学 習技術により解決され,認識精度が飛躍的に高まると ともに様々な対象を容易に認識できるようになった.そこで本研究でも,深層学習に基づく
AI
を活用する.さて,このような
AI
を育成するには,教師データ として入力情報とこれに対する正しい出力情報の組を 多量に与える必要がある.本研究におけるAI
への入 力情報は構成案であり,出力情報はその評価値である から,教師データとしてはこれらの情報の組を与えれ ばよい.しかしながら,システム構成の良否はこれが 完全に具体化されて初めて評価できるものであり,具 体化途中の抽象的な構成案について,その良否を直ち に決定することは困難である.同様の状況が,囲碁
AI [18]
の学習に見られる.囲 碁AI
は,ある盤面の入力に対し,これがどの程度優 勢な状況であるかを評価することで,次の有効な指し 手を提案する.その学習においては,ある盤面の良否 は直ちに決定できないため,いったん保留したまま対 局を進め,勝敗が決した段階で,そこへ至る途中の盤 面の評価値を算出する.一回の対局で得られる途中の 盤面の評価は偶発性による影響が強く値が不正確であ る.そこで,学習は複数回の対局を重ねることで,勝 利へ繋がる盤面の評価は高く,敗退へ繋がる盤面の評 価は低くなるように,評価値が統計的に計算された後 に実行される.この手法をモンテカルロ木探索による 強化学習と呼ぶ.なお,評価値が直ちに決定できない 場合の学習手法には他にもQ
学習などがあるが,結果 が決まるまでのステップ数が有限で過程が木構造を取 るタスクにはモンテカルロ木探索が有効である.システム設計の課題はこれに合致するため,本研究ではモ ンテカルロ木探索を採用する.
本研究における構成案の評価は,囲碁
AI
における 盤面の評価と同様,最後まで具体化された結果どの程 度良い設計になりそうかを示す統計的な値である.こ のことを明示するため,以下,本論文では構成案に対 する評価値のことを有望度と呼ぶ.3.
学習型システム自動設計本研究では前節で述べた課題を踏まえ,
AI
と機械学 習を用いたシステム自動設計技術を確立する.本章で は,まずその概要を示し,続いてデータ構造とアルゴ リズムについて具体的に述べる.3. 1
概 要図
2
に本手法の概要を示す.本手法では,2.
までに 議論したアプローチに則り,要件を入力してこれを段 階的かつ探索的に具体化することで設計を導出する.その際,対応可能な要件の多様性と省力性を両立させ るため,以下に示す三つの機能によって自律的に構成 案の有望度を評価して探索を誘導する.
(
1
) 経験の獲得:事前に多数の要件について設計 の試行を繰り返して経験を獲得・蓄積することで,有 望度の基礎データを構築する.(
2
) 経験に基づく類推:構成案の特徴を比較する ことで,過去に経験した類似の構成案の有望度に基づ いて,未知なる新規の構成案の有望度を推定する.(
3
) 有望度に基づく探索:有望度の高い方へ探索 を誘導することで,設計速度と設計品質を向上させる.3. 2
データ構造本節では,本手法の軸となる
4
種の主要なデータ構 造について要点を述べる.3. 2. 1
構 成 情 報システムの構成を記載した情報を以下では構成情報 と呼ぶ.要件,設計及び具体化途中の構成案はいずれも 構成情報である.本手法では構成情報をグラフ形式で表 現する.その記述方法はおおむね
OASIS/TOSCA [15]
などの既存の構成情報の記述方法と同様である(ただ し,後述するように要件や構成案については一部を抽 象的あるいは省略して記載できる点が異なる).すな わち,構成情報は複数の構成要素や構成要素間の関係 性で記述され,それぞれグラフのノードとエッジとし て表現される.各構成要素と関係性は,固有の
id
とそ の種類を表す型の名前及び属性値をもつ.これらの値 はノードやエッジのプロパティ(複数の項目名と値のペアからなる辞書)として表現される.以下,本論文 では構成要素と関係性を総称する場合には単に要素と 呼ぶ.
要件や構成案の記述には次の
2
点の特徴がある.(
1
) 抽象的な要素を含むことができる(
2
) 限定する必要のない要素を省略できる 図3
に要件を表す構成情報の一例を示す.図の上部 に点線で記載された部分は構築したいICT
サービスの 骨格であり,抽象的な要素により記述されている.一 方,図の下部に実線で記載された部分は既存のネット ワークの構成を表現しており,具体的な要素により記 述されている.図3 (a)
に記載の分析機能は,動作する ために同図(b)
に記載のクラウド基盤などに配備され る必要があるが,他の基盤に配備されても差し支えな ければ記載を省略してもよい.このとき,要件は“
明 記された内容(特に具体的に記載された内容)を与条 件とした上で,抽象的に記載された要素の具体化や省 略された要素の補足に関する判断は他者に委ねる”
と いう意図を表現するものと解釈される.3. 2. 2
構成要素の型と関係性の型本手法では,同種の構成要素や関係性に共通に備わ る特性を型として定義しておき,構成情報を記述する 際には型を参照することで個々の構成要素や関係性を 効率的に記載する方式を採る.型の定義は各要素の開 発者が行うことを想定しており,これにより開発者に は各要素の特徴や動作に必要な要件等を自動設計機構 に指示する機会が提供される.
型には,まず既存手法と同様に次の
4
種の情報,す なわち1)
型の名前,2)
継承する型,3)
取り得る属性 値の種類とその初期値,4)
想定する他の構成要素との 関係性(関係性の型の場合は両端の構成要素の型)が図3 要件を表す構成情報の一例
Fig. 3 Example of configuration description which represents re- quirement.
定義できる.加えて,本手法では更に
5)
抽象性と6)
制約条件が定義できる.抽象性とは,それが抽象的な型であるか否かを表 すフラグである.ある要素は,その実現方法に選択 肢がある場合は抽象的であり,実現方法が自明であ る場合は具体的であるとする.例えば
OS
にはLinux
や
Windows
などのカテゴリーがあり,より具体的には
Ubuntu18.04
やWindows10
などの製品が選択でき る.複数の選択肢を含むOS
,Linux
,Windows
は抽象 的であり,それ自体しか選択肢がないUbuntu18.04
やWindows10
は具体的である.また,二つのアプリケーション間の
HTTP
接続は,より下層のTCP
接続等に よって実現され,その具体的な構成は状況により異な るため抽象的である.一方,仮想マシン(VM)
が仮想 基盤にホストされるという関係性は具体的である.制約条件は,ある要素が周辺の構成に求める要件で ある.例えば,図
3 (a)
の分析機能は,何らかの仮想化 基盤上にホストされる必要があることを制約条件とし て定義する.制約条件は,型がより多様な状況で利用 できるよう高い抽象度で記述されることが望ましい.3. 2. 3
具体化規則具体化規則は抽象的な要素の実現方法の選択肢(す なわち,具体化方法)を定義した情報である.各要素 の具体化方法は,当該要素を含む周辺の構成などの状 況により異なるため,具体化前後の二つの部分構成の 組として表現し,具体化前の構成(左辺)が具体化後 の構成(右辺)に書き換え可能であること示す.図
4
に具体化規則の一例を示す.図4
の具体化規則は,あ る二つの機能がそれぞれ異なるマシンにホストされて いる状況において,機能間のHTTP
接続は,マシン間 のTCP
接続に読み替えられること表現している.なお,同じ要素や同じ状況に対して,異なる具体化 後の構成をもつ具体化規則を定義できる.適用される 具体化規則は,後述する探索処理や
AI
の判断によっ図4 具体化規則の一例 Fig. 4 Example of refinement rule.
て決定される.複数の具体化規則を纏うことで,抽象 的な要素はその正確な意味を形成できる.
3. 2. 4
探 索 木3. 1
で述べたように,本手法では要件を入力として これを段階的かつ探索的に具体化することで設計を導 出する.この探索の道筋を記録することで形成される 木構造の情報を,本論文では単に探索木と呼ぶ.探索木の節は,要件か構成案か設計結果のいずれか に相当し,枝は要件から構成案を生成したり構成案か ら他の構成案や設計結果を生成したりする一段階の具 体化の操作に相当する.
要件や構成案が抽象的な構成であるのに対し,設計 結果は具体的な構成である.構成が具体的であるとは,
内包する全ての要素が具体的(各要素の型に定義され る抽象性の値が
False
)であり,且つ全ての要素の制約 条件が満たされている状態のことである.なお以降では,探索木について特に探索処理の動作 に着目する場合には,その節と枝とをそれぞれ
“
状態”
及び“
アクション”
と呼ぶ.3. 3
アルゴリズム前節で述べたデータ構造を踏まえて,まず設計機能 の動作を説明し,続いて学習機能の動作を説明する.
3. 3. 1
設計機能の動作設計機能の動作の全体は,入力された要件を初期状 態とし,具体的な設計結果を目的状態とする探索処理 である.有望な構成案に相当する状態を選択し,これ を具体化することで複数の次状態を生成する処理を,
具体的な構成が得られるまで繰り返す.本論文の設計 機能は,最初に具体的な構成が生成された時点で,こ れを設計結果として出力する.
有望な構成案に相当する状態を次の具体化対象とし て選択するために,本手法では,構成案の入力を受け 付けてその有望度をスカラ値で出力する機能を備えた
AI
を導入する.以下,本論文ではこのAI
を設計AI
と呼ぶ.設計機能は新規の構成案を生成するたびにそ の有望度を評価しておき,最も有望度の高い状態を次 の具体化対象とする.具体化対象の構成案が決定したら,当該構成案の中 の抽象的な要素を抽出し,これを左辺に含む具体化規 則を収集する.続いて,得られた具体化規則の左辺が 構成案の一部にマッチすることを確認し,マッチした 場合には該当箇所を具体化規則の右辺で書き換えるこ とで,新規の構成案を生成する.更に,適用された具 体化規則と生成された構成案を,それぞれ新規の枝と
図5 設計機能の動作の一例 Fig. 5 Example of designing process.
節として探索木を更新する.
図
5
に,以上の動作の一例を示す.要件(a)
には,(a1)
,(a2)
の二つの抽象的な要素が含まれている.(a1)
には具体化規則(X)
,(a2)
には具体化規則(Y)
及び(Z)
が適用可能であり,これらにより(b)
,(c)
,(d)
の三つ の構成案が生成できる.生成された三つの構成案をそ れぞれ設計AI
により評価し,有望度を算出する.こ こでは,(b)
の有望度が最も高かったため,次の具体 化対象として(b)
を選択している.構成案(b)
が含む 抽象的な要素は(b1)
のみであり,ここには具体化規則(Y)
及び(Z)
が適用可能である.そこで,まず具体化 規則(Y)
を適用した結果,抽象的な要素を含まない具 体的な構成案である(e)
が得られたため,ここで設計 を完了する.なお,構成案が抽象的な要素を含むにもかかわらず,
適用可能な具体化規則が見つからない場合は手詰まり となる.手詰まりとなった場合には,次に有望度の高 い構成案から探索を再開する.探索木の葉に相当する 全ての構成案が手詰まりの場合,設計は失敗となる.
手詰まりが発生する主な原因は,例えば関連の深いア プリとサーバを異なるネットワークに配置してしまう など,局所的には適切だが全体的には矛盾する形で具 体化規則が適用されてしまうことにある.この問題は 具体化規則に周辺状況も含めた適用条件を記載するこ とで緩和できるが,これには多くの工数を要してしま う.その代わりに設計
AI
によって矛盾する構成案が 排除されることで,具体化規則の不備が補完される.3. 3. 2
学習機能の動作学習機能は前述の設計を試行することで要件から設 計結果に至るパスを生成し,パス上の構成案に対応し た報酬を与えることで設計
AI
を学習させる.その具 体的な動作は,a )
学習エピソードの生成,b )
報酬の 計算,c )
学習の三つのステップの繰り返しからなる.図
6
に,学習エピソードの生成と報酬の計算に関わる図6 学習機能の動作の一例 Fig. 6 Example of learning process.
学習機能の動作の一例を示す.
a )
学習エピソードの生成要件から設計結果に至るパス及び設計結果の評価か らなる情報を,本論文では学習エピソードと呼ぶ.ま ず要件を初期状態とし,構成案の具体化を繰り返すこ とでパスを生成する.例えば,図
6
では,(a)
から(c)
,(e)
を経由して(h)
に至るパスや,(a)
から(c)
を経由し て(g)
に至るパスなどが得られている.パスが得られ たら設計結果の構成を評価する.本論文では,単純に 具体的な構成については1
を,手詰まりの構成につい ては0
を,それぞれ評価値として返す.このような評 価値に基づいて得られる有望度は,ある構成案がその 先で手詰まりになることなく設計結果に至る確率を示 す値になると期待できる.パスの生成においては,次状態の選択方法のあり方 が重要である.まず学習時には
AI
に多様な経験をさ せる必要があるため,次状態の選択にはランダム性を 含めることが必須である.一方,完全なランダムでは 見当はずれの試行をしすぎてしまうため,学習中の設 計AI
の判断も取り込むことで,試行の内容を設計成 功時の内容にある程度近づけることが有効である.本 論文では,学習中の設計AI
が推定した有望度の高い 設計案を選択する方法とランダムに選択する方法とを ランダムに切り替えて適用する.b )
報酬の計算報酬は偶発性の影響による値の揺らぎを緩和するた め,複数の学習エピソードから得られる値を集計して 統計的に算出する.複数の学習エピソードは,同一の 探索木上で学習エピソードの生成を繰り返すことで生 成できる.図
6
の例では,(a)
から(f)
,(g)
,(h)
,(i)
の それぞれに至る四つのパスが得られている.各学習エピソードについて,パス上の各構成案に対
応する報酬値を計算する.個々の学習エピソードにお ける各構成案の報酬値は,設計結果の評価値
v
に対し て適当な減衰率ϵ
を設計結果からのホップ数n
分だけ 乗じた値r = v ∗ ϵ
nと定義する.図6
の右側に評価値v = 1
,減衰率ϵ = 0.99
とした場合の,(a)
から(h)
に至 る学習エピソードに関する報酬計算の様子を示す.構 成案(e)
,(c)
及び要件(a)
は,(h)
からそれぞれ1
ホッ プ,2
ホップ及び3
ホップ離れているため,これらが受 け取る報酬はそれぞれh
1= 1 ∗ 0.99
1,h
2= 1 ∗ 0.99
2,h
3= 1 ∗ 0.99
3となる.同じ要件から開始してそれぞれに分岐した複数のパ スに対して報酬値が計算されると,結果として探索木 の根に近い構成案では複数の報酬値が与えられること になる.こうして得られる報酬値の集合から統計的な 値としての報酬値を計算する.その計算方法には,期 待値や最大値などの選択肢があるが,本論文では最大 値を採る.その理由は,本研究の自動設計が,同じ行 動をとれば同じ報酬が得られる決定的なプロセスであ り,かつ学習したい結果が常に最善の行動をとった場 合に得られる報酬(すなわち最大値)であって,この 値が高い方向へ設計時の探索を誘導したいからであ る.図
6
の各構成案に吹き出しを付けて統計的な値と しての報酬値を示す.例えば,構成案(c)
の報酬値は,g
1= 0 ∗ 0.99
1,h
2= 1 ∗ 0.99
2,i
2= 1 ∗ 0.99
2のうち最 大の値である1 ∗ 0.99
2となる.c )
学 習上記で得られた構成案と報酬値を設計
AI
に与える ことで,構成案の有望度を学習させる.構成案はグラ フ形式の情報であるため,AI
のモデルにはグラフ・ニューラル・ネットワーク(
GNN
)[19]
を用いる.以上の
3
ステップを繰り返す度に設計AI
のみを用 いた設計を試行すると,探索ステップ数が徐々に削減 される様子が観測できる.探索ステップ数の削減が収 まった時点で学習が収束したとみなし,処理を終える.なお,学習の初期段階においては,得られる有望度 の精度が低い(すなわち,十分に大きな母集団の事例 から得られる統計値からの誤差が大きい)ため,パス の生成において具体化規則の選択を誤り手詰まりにな ることが多い.一方,設計
AI
を学習させるには設計 に成功するパスが必要であり,成功するパスを頻繁に 取得できるほど学習は収束しやすくなる.そのため,いかに学習の初期段階から設計を成功させるかが,学 習の収束性において重要であるが,その手法の検討に ついては今後の課題とする.また具体的な構成の評価
尺度についても,成功と失敗だけでなく,各非機能要 件に対応する様々な観点について定義されるべきであ るが,その詳細化についても今後の課題とする.
4.
設計・実装本章では,
3.
で述べた技術を用いたシステム自動設 計機構の設計と実装について述べる.4. 1
アーキテクチャ図
7
にシステム自動設計機構の全体構成を示す.本 機構は以下の機能モジュールからなる.• API:
各機能モジュールと外部機能を接続•
データリポジトリ:
構成情報,型定義,具体化 規則を読み出し可能に記録•
探索機構:
要件から具体的な構成情報を生成•
設計AI:
構成情報の有望度を評価•
強化学習基盤:
設計AI
を育成•
データ生成基盤:
学習用の要件データや具体的 な設計結果の評価値を生成4. 2
動作フロー4. 2. 1
学習時の動作フローまず開発者が
API
を介して新規の構成要素をリポジ トリに登録するなどのイベントを起点として,データ 生成基盤が学習用の要件データを生成する.強化学習 基盤は,要件データを用いて探索機構に設計を試行さ せることで具体化パスと設計結果を獲得し,データ生 成基盤により設計結果の評価値を得る.強化学習基盤 は,得られた具体化パスと評価値に基づいて設計AI
を育成し,成果をリポジトリに記録する.4. 2. 2
設計時の動作フロー利用者が
API
を介して要件を入力し,探索機構が具 体的な設計結果を探索する.具体化の各ステップにお いて,設計AI
に有望度を問い合わせ,その結果に基 づいて探索を実施する.具体的な設計結果が得られた ら,API
を介して設計結果を返答する.必要に応じて 具体化パスを併せて返答する.図7 システム自動設計機構の全体構成 Fig. 7 Architecture of automated system design scheme.
図8 設計用GUIの試作画面 Fig. 8 Prototype of GUI for design.
図9 設計過程確認用GUIの試作画面 Fig. 9 Prototype of GUI for checking design process.
4. 3
ユーザ・インタフェース図
8
に設計用GUI
の試作画面を示す.図8
の上部 に表示された構成要素を図8 (a)
の枠内にドラック&
ドロップするなどのマウス操作により要件を入力する
と図
8 (b)
の枠内に設計結果が表示される.続いて図9
に設計過程確認用
GUI
の試作画面を示す.画面の上部 に,ステップごとの構成案が並べられており,図9 (a)
に示すように選択した個所の構成案を,図9 (a1)(a2)
に示すように比較して1
段階の具体化結果を確認でき る.また設計AI
が選択しなかった他の選択肢についても図
9 (a3)
に示すように確認することができ,これを利用者が選択することで設計を途中からやり直すと いった機能も実現できる.
5.
評 価本章では,図
3
に示した要件を評価シナリオに用い た実験を通じて,提案手法の有効性を評価する.5. 1
評価シナリオ図
3
は映像分析サービスを既存ネットワーク環境上 に構築する要件を示している.映像分析サービスにつ いては,カメラ,分析アプリ,端末が含まれること,カメラの映像を分析アプリに送信すること,分析アプ リの出力を端末に送信すること,カメラと端末が特定 のネットワーク領域に所属することが,抽象的に指定 されている.一方,既存ネットワーク環境については,
図10 具体化の過程と設計結果の一例 Fig. 10 Example of refinement process and a design result.
インターネットを介して接続された三つのネットワー ク領域を伴う構成が具体的に定義されている.
このとき利用者は,既存ネットワーク環境に合わせ て分析アプリの配備やネットワークの設定などを具体 化することを求めていると解釈できる.
5. 2
基本設計手法に関する評価5. 2. 1
評価1:
設計品質と説明性図
10
に,具体化の過程と設計結果の一例を示す.図
10
中の枠内は,各ステップ(S1)
〜(S4)
における変 換対象の部分構成であり,(a)-(d)
がそれぞれ(a’)-(d’)
に変換されたことを示している.まずステップ(S1)
で は,分析アプリに配備先となるクラウド基盤が割り当 てられている.ステップ(S2)
では,カメラがハード ウェアと組込みソフトウェアとに詳細化されている.ステップ
(S3)
では,分析アプリがロードバランサを介 して多重化された構成に具体化されている.途中に幾 つかのステップを経て,最後のステップ(S4)
では,ク ラウド上のネットワークと拠点のネットワークスイッ チとの間に定義された論理ネットワークが,両端に付 与された設定値へと具体化されている.このように入力された要件が段階的に具体化され,
最終的に完全に具体化された設計が得られていること がわかる.設計結果は要件や各構成要素の型定義とし て指定された全ての制約条件が満足されることが保証
される.型定義は複数の案件から参照されることで継 続的に洗練化されると期待できる.また,具体化の過 程を
4. 3
で紹介したGUI
を用いて調査することで,高 い説明性が得られる.すなわち,設計知識の蓄積漏れ や適用漏れの防止策が仕組みとして与えられるととも に,説明に必要な作業は自動化されるため,高い品質 や説明性が得られるようになると期待できる.5. 2. 2
評価2:
多様性と省力性2. 4
で考察したように,利用者の多様な要件への柔 軟な対応を実現するには,構成案の候補を豊富に揃え る必要がある.本手法によれば,モデルを追加するこ とで爆発的に構成案の候補数を増加させることができ る.具体的には,ある要件を完全に具体化するのに要 する具体化ステップ数をx
,各具体化ステップにおけ る選択肢の数の平均をn
と置くと,この具体化におい て必要なモデル数のオーダはO( n ∗ x )
であり,ここか ら生成可能な構成案数のオーダはO( n
x)
となる.これ はO(n ∗ x)
の工数によりO(n
x)
の工数分の構成テンプ レートが生成できることと同義であり,大幅に効率化 されることがわかる.なお,参考までに,本実験における要件と設計の記 述量及びモデルの記述量等について記載する.要件の 記載に要した行数は
434
行であり,設計結果に記載さ れた行数は799
行であった.最初の構成案が得られた 後も探索を継続したところ,少なくとも数千種以上の 他の構成案が生成されることが確認できた.また本実 験で用意した構成要素の型定義は36
種類,関係性の 型定義は37
種類,具体化規則は40
種類である.これ らのモデルの記述に要した行数は合計で3083
行であ り,モデル一つ当たりの平均行数は27
行であった.5. 3
学習能力に関する評価本節では,学習による設計速度の改善に関する実験 を通じて,多様な要件に対する設計速度を自律的に改 善する機能の実現性と有効性を示す.具体的には,学 習の収束性と汎化性について評価する.ここでは評価 シナリオを追加し,更に図
11
に示すように拠点数(L)
及び拠点当たりのカメラ数(M)
を変化させた要件のバ リエーションを用意する.なお実験を行うマシンの性 能による影響を排除するため,設計速度の指標として は探索ステップ数を用いる.5. 3. 1
評価3:
学習の収束性ある要件に対して,
3.
で述べた学習を実施しながら 探索ステップ数を計測した結果を図12
に示す.ここ で探索ステップ数は前後30
回の移動平均を示してい図11 追加の評価シナリオ Fig. 11 Additional evaluation scenario.
図12 学習に伴う設計速度の改善 Fig. 12 Improvement of design speed with learning.
る.比較のために,
2
種類の単純なヒューリスティッ クH1
及びH2
を用いた探索におけるステップ数につ いても併記してある.H1
とH2
はいずれも抽象的な要 素の数が少ない程有望であるとするヒューリスティッ クであり,H1
は抽象的な構成要素と関係性の合計数,H2
は抽象的な構成要素の数で判断する.学習開始時 点では探索に1000
ステップ以上を要しているのに対 し,学習終了時点では50
ステップ以下に削減されて おり,ヒューリスティックの性能を上回っている.学 習エピソード数が2
万を超えた辺りで探索ステップ数 の減少が止まるとともに分散も安定化していることか ら,学習は収束していると考えられる.この結果は,
“
システム設計”
というこれまでAI
が 適用されてこなかった新しいタスクについて,少なく とも意味のある学習が現実的な時間内に実施できたこ とを示している.実用に向けては,収束に要する学習 エピソード数の削減が必要だが,その具体的な目標値 を決定するには本格的な運用基盤における性能検証や,必要となるモデルやルールの数及び要件に含まれる要 素数に関する調査など,更なる研究が必要である.
5. 3. 2
評価4:
学習の汎化性続いて,図
13
に要件の規模を変化させた場合の設計 速度の変化の様子を示す.まず拠点当たりのカメラ数図13 要件の規模に伴う設計速度の変化 Fig. 13 Transition of design speed according to the scale of re-
quirements.
を増加させた場合においては,ヒューリスティックを 用いた手法では要件の規模の増加とともに探索ステッ プ数が爆発的に増加してしまうのに対し,本手法では 線形増加に抑えられている.この結果から,
AI
を用い た設計の判断が一定程度の汎化性を発揮できることが わかる.一方,拠点数を増加させた場合においては,拠点数
3
までは線形増加に抑えられているものの拠点 数4
を超えた時点で爆発的な増加を起こしており,現 時点では発揮できる汎化性に限界があることがわかる.拠点数を増加させた場合における探索の挙動を調べ たところ,分析アプリとこれをホストするサーバとが 異なる拠点に配置されるといった,明らかに矛盾した 構成案が探索の序盤に選択され,終盤に手詰まりにな るケースが多発していることが分かった.今後更に設 計
AI
の学習を進めるとともに学習能力を高めること で,こうした矛盾した構成案の有望度を設計AI
が正 しく評価可能とし,より多様な要件においても高い設 計速度を維持できることを実証する必要がある.6.
む す び本論文ではデジタル・トランスフォーメーションの 推進に向けて,
AI
を活用したICT
システムの自動設 計技術の基礎方式を示し,映像分析サービスの要件を 題材とした実験を通じて実現性と有効性を評価した.今後は,より現実的な要件に対応すべく,各種非機能 要件に関する制約条件の指定及び
AI
による評価に関 する研究開発を推進する.謝辞 本研究開発は,総務省の「革新的
AI
ネット ワーク統合基盤技術の研究開発(JPMI00316
)」によっ て実施した成果を含みます.文 献
[1] “企業IT動向調査2020(2019年度調査)〜データで探る
ユーザー企業のIT動向〜,”一般社団法人日本情報システ ム・ユーザー協会,April 2020.
[2] “なぜ,いまアジャイルが必要か?,”情報処理推進機構,
Feb. 2018.
[3] Y. Dang, Q. Lin, and P. Huang, “AIOps: real-world challenges and research innovations,” 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), Montreal, QC, Canada, pp.4–5, 2019.
[4] T. Miyamoto, K. Kuroki, M. Miyazawa, and M. Hayashi, “Al- assisted workflow management framework for automated closed- loop operation,” NOMS 2018 - 2018 IEEE/IFIP Network Opera- tions and Management Symposium, Taipei, pp.1–6, 2018.
[5] 川原亮一,渡辺敬志郎,原田薫明,川田丈浩,“ネットワーク オペレーションへのAI活用,”通ソマガジン,vol.12, no.1, pp.29–38, 2018.
[6] “AIを活用したネットワーク自動最適制御技術の研究開 発,”令和元年度版情報通信白書(第2部,第7節),総務 省,July 2019.
[7] “システム再構築を成功に導くユーザガイド,”情報処理推
進機構,Feb. 2018.
[8] “DXレポート〜ITシステム「2025年の崖」の克服とDX の本格的な展開〜,”経済産業省,2018年9月7日.
[9] Á. Hegedüs, Á. Horváth, I. Ráth, and D. Varró, “A model- driven framework for guided design space exploration,” 2011 26th IEEE/ACM International Conference on Automated Software En- gineering (ASE 2011), Lawrence, KS, pp.173–182, 2011.
[10] T. Kuroda, T. Kuwahara, T. Maruyama, K. Satoda, H. Shimonishi, T. Osaki, and K. Matsuda, “Weaver: a novel configuration designer for IT/NW services in heterogeneous environments,” 2019 IEEE Global Communications Conference (GLOBECOM), Waikoloa, HI, USA, pp.1–6, 2019.
[11] “非機能要求グレード,”情報処理推進機構,2018年4月
25日.
[12] Ansible, https://www.ansible.com/
[13] Zabbix, https://www.zabbix.com/
[14] T. Kuroda, M. Nakanoya, A. Kitano, and A. Gokhale, “The configuration-oriented planning for fully declarative IT system provisioning automation,” NOMS 2016 - 2016 IEEE/IFIP Network Operations and Management Symposium, Istanbul, pp.808–811, 2016.
[15] OASIS/TOSCA, https://www.oasis-open.org/committees/
tc_home.php?wg_abbrev=tosca
[16] 西島孝通,瀧田 裕,早野真史,引地謙治,宗宮利夫,“ユー ザ意図に基づくネットワーク自動設計/設定に関する一検 討—意図を満たす論理ネットワークの設計手法—,”信学技 報,NS2019-227, March 2020.
[17] M. Bezahaf, M.P. Hernandez, L. Bardwell, E. Davies, M.
Broadbent, D. King, and D. Hutchison, “Self-generated intent- based system,” 2019 10th International Conference on Networks of the Future (NoF), Rome, Italy, pp.138–140, 2019.
[18] D. Silver, J. Schrittwieser, K. Simonyan, I. Antonoglou, A. Huang, A. Guez, T. Hubert, L. Baker, M. Lai, A. Bolton, Y. Chen, T.
Lillicrap, F. Hui, L. Sifre, G. van den Driessche, T. Graepel, and D. Hassabis, “Mastering the game of Go without human knowl- edge,” Nature, 550, pp.354–359, 2017. DOI:10.1038/nature24270 [19] P.W. Battaglia, J.B. Hamrick, V. Bapst, A. Sanchez-Gonzalez, V.
Zambaldi, M. Malinowski, A. Tacchetti, D. Raposo, A. Santoro, R. Faulkner, C. Gulcehre, F. Song, A. Ballard, J. Gilmer, G. Dahl, A. Vaswani, K. Allen, C. Nash, V. Langston, C. Dyer, N. Heess,
D. Wierstra, P. Kohli, M. Botvinick, O. Vinyals, Y. Li, and R.
Pascanu, “Relational inductive biases, deep learning, and graph networks,” arXiv preprint arXiv:1806.01261, 2018.
(2020年5月14日受付,9月21日再受付,
11月5日早期公開)
黒田 貴之 (正員)
2004東北大学工学部退学.2009東北大 学大学院情報科学研究科博士後期課程修了.
同年NEC入社.2013米国Vanderbilt Uni- versityへ訪問(Visiting Scholar).NECシス テムプラットフォーム研究所主任研究員.
ICTシステムの設計と運用の自動化に関す る研究開発に従事.博士(情報科学),情報処理学会会員.
桑原 拓也
2015東京大学大学院情報理工学系研究 科コンピュータ科学専攻修士課程了.同 年NEC入社.ICTシステムの更改及び設 計の自動化に関する研究に従事.修士(理 工学).
丸山 貴志
2017名古屋大学大学院多元数理科学研究 科博士後期課程了.同年NEC入社.IT/NW システムの研究に従事.博士(数理学).
八鍬 豊
2009早稲田大学基幹理工学研究科情報理 工学専攻修士課程了.同年NEC入社.シ ステム自動設計技術の研究開発に従事.修 士(工学).
田辺 和輝 (正員)
2013東京工業大学工学部情報工学科卒.
2019同大学院工学院情報通信系博士後期課 程了.同年NEC入社.現在同社システム プラットフォーム研究所にてシステム自動 設計技術の研究開発に従事.博士(工学).
IEEE会員.
福田 達也
2015大阪大学大学院情報科学研究科博士 後期課程了.同年NEC入社.IT/NWシス テムの研究開発に従事.博士(情報科学).
里田 浩三 (正員)
1991京大工学部卒.1993同大大学院工学 研究科修士課程了.同年NEC入社.NEC システムプラットフォーム研究所研究部 長.現在名古屋大学大学院情報学研究科博 士後期課程在学中.メディア処理,メディ ア通信,システム自動設計の研究に従事.
情報処理学会,IEEE会員.2010 IEEE CQR Workshop Best Paper Award,2017 IEEE CCNC Best Paper Award,第63回電気科学技 術奨励賞,2016年度情報処理学会業績賞受賞.
大崎 隆夫
1994大阪大学理学部数学科退学.1996 大阪大学大学院理学研究科数学専攻博士課 程前期修了.1999大阪大学大学院理学研究 科数学専攻博士課程後期単位取得後退学.
1999大阪大学博士(理学)取得.同年NEC 入社.クライアントサーバソフト技術研究 所,OMCS事業本部,サービスプラットフォームシステム開発 本部,SI・サービス統括ユニット先端SI技術開発センターを 経て現職.デジタルビジネスプラットフォームユニット先端SI 技術開発本部.