(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024121837
(43)【公開日】2024-09-09
(54)【発明の名称】多段階推論システム、及び、多段階推論装置
(51)【国際特許分類】
G06F 9/54 20060101AFI20240902BHJP
G06F 9/48 20060101ALI20240902BHJP
G06N 5/04 20230101ALI20240902BHJP
【FI】
G06F9/54 B
G06F9/48 370
G06N5/04
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023029023
(22)【出願日】2023-02-28
(71)【出願人】
【識別番号】319000436
【氏名又は名称】ラトナ株式会社
(74)【代理人】
【識別番号】100185878
【弁理士】
【氏名又は名称】植田 晋一
(72)【発明者】
【氏名】高橋 智
(72)【発明者】
【氏名】大田和 響子
(57)【要約】
【課題】複数の推論処理が多段階に組み合わされて処理が行われる場合において、処理時間の短縮化を図る。
【解決手段】多段階推論システム100は、コンテナ技術を用いてアプリケーションが実装された推論装置1A、1B、1Cにより構成される。推論システム100は、推論装置1A、1B、1Cに設けられ、機械学習モデルを用いて推論処理を実行する複数の推論部111~117と、推論装置1の少なくとも1つに設けられ、推論部111~117から後続の推論部111~117へのデータの授受を非同期で実行し、データのキューイング機構を備える非同期通信部44と、を備える。
【選択図】
図11
【特許請求の範囲】
【請求項1】
コンテナ技術を用いてアプリケーションが実装された推論装置の複数により構成される多段階推論システムであって、
前記多段階推論システムは、
前記推論装置に設けられ、機械学習モデルを用いて推論処理を実行する複数の推論部と、
前記推論装置の少なくとも1つに設けられ、前記推論部から後続の前記推論部へのデータの授受を非同期で実行し、データのキューイング機構を備える非同期通信部と、を備える、多段階推論システム。
【請求項2】
前記推論装置のそれぞれは、複数の前記推論装置にまたがる前記アプリケーションの実行環境を構成するオーケストレーションエンジンを備え、
前記推論装置の1つは、異なる前記推論装置の間において、前記推論部から後続の前記推論部へのデータの授受を非同期で実行可能な前記非同期通信部を備える、請求項1に記載の多段階推論システム。
【請求項3】
前記推論装置のそれぞれは、相互に連携して動作することで、異なる前記推論装置の間において、前記推論部から後続の前記推論部へのデータの授受を非同期で実行可能な前記非同期通信部を備える、請求項1に記載の多段階推論システム。
【請求項4】
前記非同期通信部は、前記推論部から書き込まれる前記データ、及び、前記後続の推論部から読み出される前記データをキューイング可能に構成されている、請求項1に記載の多段階推論システム。
【請求項5】
前記非同期通信部は、前記推論部から書き込まれてキューイングされた前記データを、前記後続の推論部から読み出されるキューに移動させた後に、前記後続の推論部に、読み出し対象の前記データが存在することを通知する、請求項4に記載の多段階推論システム。
【請求項6】
前記推論部は、前記機械学習モデルを用いた推論処理部と、変換部とを有し、
前記変換部は、前記推論処理部から出力されるデータを、前記後続の推論部の前記推論処理部への入力形式に変換する、請求項1に記載の多段階推論システム。
【請求項7】
前記変換部は、前記データをJSON形式に変換する、請求項6に記載の多段階推論システム。
【請求項8】
前記推論部は、前記データに対して特徴に応じた1つ以上のタグを付与し、前記タグが付された複数の前記データを、前記非同期通信部の前記キューイング機構に記録し、
前記後続の推論部は、前記キューイング機構に記録された前記データに付された前記タグを参照し、前記推論部自身の処理に用いる特徴の前記タグが付されたデータを取得する、請求項1に記載の多段階推論システム。
【請求項9】
前記推論部は、前記データを分割して複数の分割データを生成し、前記分割データに対して特徴に応じたタグを付与し、前記タグが付された複数の前記分割データを、前記非同期通信部の前記キューイング機構に記録し、
前記後続の推論部は、前記非同期通信部の前記キューイング機構に記録された前記分割データに付された前記タグを参照し、自身の処理に用いる特徴の前記タグが付された前記分割データを取得する、請求項1に記載の多段階推論システム。
【請求項10】
前記後続の推論部は、取得した複数の前記分割データを結合し、結合した前記分割データを用いて推論処理を行う、請求項9に記載の多段階推論システム。
【請求項11】
前記非同期通信部のキューイング機構は、複数の前記後続の推論部からの前記データの読み出しが可能なキューを備える、請求項9に記載の多段階推論システム。
【請求項12】
前記非同期通信部のキューイング機構は、複数の前記推論部からの前記データの書き込みが可能なキューを備える、請求項11に記載の多段階推論システム。
【請求項13】
コンテナ技術を用いてアプリケーションが実装される多段階推論装置であって、
前記多段階推論装置は、機械学習モデルを用いて推論処理を実行する複数の推論部と、前記推論部から後続の前記推論部へのデータの授受を非同期で実行する非同期通信部と、を備え、
前記非同期通信部は、データのキューイング機構を備える、多段階推論装置。
【請求項14】
前記多段階推論装置は、前記コンテナ技術により実装されるアプリケーションの実行環境を管理するオーケストレーションエンジンを備える、請求項13に記載の多段階推論装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多段階推論システム、及び、多段階推論装置に関する。
【背景技術】
【0002】
近年注目されている人工知能技術によれば、過去のデータを用いた機械学習によって学習済みモデルを構築し、構築された学習済みモデルを用いた推論処理が行われている。推論処理は、一般に計算能力の高い計算機で行われる必要があり、例えば、REST(Representational State Transfer)のような明確でシンプルなAPI(Application Programming Interface)により各機能が接続された、汎用的なアーキテクチャに基づいて構成されたサーバが利用される(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年の機械学習は複雑化しており、複数の推論処理を状況に応じて組み合わせ、組み合わせた推論結果を用いてさらに推論処理が行われることがある。しかしながら、RESTのような汎用的なアーキテクチャにおいてはシンプルなAPIで機能が連結されるため、処理負荷が高い場合には、ある推論部の処理結果を用いて次の推論部が処理を行うと、次の推論部が処理の実行中に新たな処理を受け付けられないので、次の処理の開始まで時間を要する場合がある。そのため、汎用的なアーキテクチャ設計の計算機において多段階の推論処理を組み合わせる場合には、最終的な推論結果を得るまでに時間がかかるおそれがある。
【0005】
本発明は、このような課題を解決するためになされたものであり、複数の推論処理が多段階に組み合わされて処理が行われる場合において、処理時間の短縮化を図る多段階推論システム、及び、多段階推論装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本願発明の一態様の多段階推論システムは、コンテナ技術を用いてアプリケーションが実装された推論装置の複数により構成される。多段階推論システムは、推論装置に設けられ、機械学習モデルを用いて推論処理を実行する複数の推論部と、推論装置の少なくとも1つに設けられ、推論部から後続の推論部へのデータの授受を非同期で実行し、データのキューイング機構を備える非同期通信部と、を備える。
【0007】
本願発明の多段階推論装置は、コンテナ技術を用いてアプリケーションが実装される。多段階推論装置は、機械学習モデルを用いて推論処理を実行する複数の推論部と、推論部から後続の推論部へのデータの授受を非同期で実行する非同期通信部と、を備え、非同期通信部は、データのキューイング機構を備える。
【発明の効果】
【0008】
本願発明の多段階推論システム、及び、多段階推論装置によれば、コンテナ技術を用いて実装された推論部から後続の推論部へのデータの授受を非同期で実行する非同期通信部を備えており、非同期通信部は、データのキューイング機構を備える。
【0009】
コンテナ技術で実装されたアプリケーション間は、コンテナエンジンの技術によって相互に通信可能であるが、特に、マイクロサービスアーキテクチャを採用する場合には、推論部の数が多くなるためデータの授受に大きな遅延が発生し、処理速度が低下するおそれがある。
【0010】
そこで、推論部から後続の推論部へのデータの授受を行うために、キューイング機構を有する非同期通信部を別途備えることにより、推論部は、後続の推論部が処理中であっても後続の推論部の処理の完了を待たずに、処理結果の送信を実行できるため、全体として多段階の推論処理の高速化を図ることができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態の多段階の推論装置に関する概略構成図である。
【
図4B】非同期通信部のキューイング機構の説明図である。
【
図5】非同期通信部の処理を示すフローチャートである。
【
図6】多段階の推論装置のソフトウェアの概略構成の一例を示す図である。
【
図7】多段階の推論システムの具体的態様を説明する表である。
【
図10】第2実施形態の多段階の推論システムの概略構成図である。
【
図11】多段階の推論システムのシステム構成図である。
【
図12】変形例の多段階の推論システムのシステム構成図である。
【
図13A】第3実施形態の多段階の推論装置が備える非同期通信部のキューイング機構の説明図である。
【
図13B】非同期通信部の書き込み側のキューイング機構の説明図である。
【
図13C】非同期通信部の読み出し側のキューイング機構の説明図である。
【
図14】非同期通部信の処理を示すフローチャートである。
【
図15】多段階の推論装置のソフトウェアの概略構成の一例を示す図である。
【
図16】第4実施形態の多段階の推論装置のソフトウェアの概略構成を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施の形態について説明する。実施の形態の説明において、個数や量などに言及する場合や特に記載がある場合等を除き、本発明の範囲は必ずしもその個数や量などに限定するものではない。実施形態を示す図面において、同一の名称は、同一部分または相当部分を示すものとする。また、実施形態の説明において、同一の名称を付した部分等に対しては、重複する説明は繰り返さずに省略する。
【0013】
図1は、本実施形態の多段階の推論処理を実行する推論装置に関する概略構成図である。
【0014】
この図には、ローカル環境10に設けられる推論装置1、複数のセンサ2A、2B、及び、制御対象装置3と、これらのローカル環境10に設けられた機器とネットワーク4を介して接続される学習システム5、及び、データストレージ6とが示されている。なお、この図には2つのセンサ2A、2Bが示されているが、3つ以上のセンサ2が設けられていてもよい。推論装置1が車両に搭載されている場合には、照度センサ2や、速度センサ2により取得されたデータを用いて、推論装置1が複数の多段階の推論処理を行い、最終的な推論結果を求める。そして、推論装置1は、得られた最終的な推論結果に基づいて制御対象装置3(ステアリング、アクセル、及び、ブレーキ等)を制御する。
【0015】
推論装置1は、ネットワーク4を介して、学習システム5やデータストレージ6と通信可能に接続されている。学習システム5は、ローカル環境10でセンサ2により取得されたセンサ情報を用いて機械学習を実行することで、複数の学習済みモデルを生成する。データストレージ6は、センサ2により取得されたセンサ情報や、学習済みモデル等の任意のデータを記憶可能に構成されている。データストレージ6に記憶された学習済みモデルは、推論装置1にダウンロードされて推論処理に用いられる。
【0016】
【0017】
推論装置1は、全体を制御するCPU(Central Processing Unit)及び/又はGPU(Graphics Processing Unit)により構成される制御部11と、ROM(Read Only Memory)、RAM(Random Access Memory)、及び/またはハードディスク等により構成され、プログラムや各種のデータ等を記憶する記憶部12と、ネットワーク4等を介して通信を行う通信部13と、タッチパネル等の情報表示デバイスに対してデータに応じた表示を行う表示部14と、タッチパネル等の機器からの入力を受け付ける入力部15と、を備える。
【0018】
制御部11、記憶部12、通信部13、表示部14、及び、入力部15は、相互接続により互いに通信可能に構成されている。なお、推論装置1は、記憶部12に記録されているプログラムを実行することにより所定の処理を実行可能に構成されている。この図に示される推論装置1のハードウェア構成は一例であって、記憶されているプログラムに沿って動作することで所定の処理を実行可能に構成されていればよい。以下では、推論装置1のソフトウェア構成について説明する。
【0019】
図3は、推論装置1のソフトウェア構成図である。本実施形態のソフトウェア構成においては、コンテナ技術を用いてアプリケーションが仮想化されてコンテナ化されるとともに、オーケストレーションエンジンによりコンテナの実行環境が管理されている。なお、
図3の例におけるコンテナ化は、仮想化ソフトウェアやゲストOS(OS:Operating System)を用いておらず、推論装置1のホストOS内のカーネルの機能を用いた仮想化が行われているものとする。
【0020】
詳細には、推論装置1には、ホストOS31とともにコンテナエンジン32が設けられている。所定の処理を行うアプリケーションは、コンテナエンジン32の環境下で実行可能に仮想化されており、このようなアプリケーションをコンテナ33と称するものとする。
【0021】
詳細には、コンテナ33は、所定の処理を実行するプロセス以外に、コマンドやライブラリを備える。コンテナ33は、コマンドを介してホストOS31のカーネルを利用することで、相互に隔離された仮想環境(コンテナ環境)においてプロセスを実行できる。このように、コンテナ環境がコンテナ33毎に設けられることにより、メモリ等の物理的なハードウェアリソースが隔離されるので、実行環境への依存性を低下させることができる。
【0022】
さらに、推論装置1には、コンテナ環境のリソースを管理するオーケストレーションエンジン34が設けられている。オーケストレーションエンジン34は、コンテナエンジン32によって仮想化されたコンテナ環境を管理(オーケストレーション)する。具体的には、オーケストレーションエンジン34は、クラスタ35と称される論理領域を構築し、クラスタ35内で複数のコンテナ33からなるポッド36をアプリケーションの実行単位として、アプリケーションの実行環境を管理する。なお、本実施形態においては、機械学習モデルを用いた第1推論部~第3推論部がポッド36の態様で実装されている。
【0023】
ここで、コンテナエンジン32により提供される機能によって、コンテナ33が相互に通信可能である。詳細には、コンテナ33の実行環境に仮想NIC(Network Interface Card)が設けられ、これらの仮想NICと推論装置1の物理NICとを接続する仮想スイッチが設けられることで、コンテナ33間は相互に通信可能となる。
【0024】
また、オーケストレーションエンジン34により提供される機能によって、物理NICと接続される仮想ネットワークがクラスタ35内に構築され、ポッド36に対して仮想IPアドレスが設定され、ポッド36間の通信がIPアドレスを用いて実行可能となる。このように、コンテナエンジン32及びオーケストレーションエンジン34が提供する通信機能を用いて、コンテナ33及びポッド36は、それぞれ、相互に通信することができる。
【0025】
図4A、4Bは、本実施形態の推論部の間のデータの授受の方法を示す図である。
図4Aに示される第1推論部41、第2推論部42、第3推論部43、及び、非同期通信部44は、それぞれポッド36として実装されており、オーケストレーションエンジン34により構築されるクラスタ35(
図4Aにおいて不図示)内で実行される。
【0026】
第1推論部41~第3推論部43は、学習済みモデルを用いて推論処理を行う。推論装置1においては、マイクロサービスアーキテクチャが採用されており、第1推論部41~第3推論部43は、最小限の処理の単位で細分化されているため、他に多数の推論部が推論装置1内に設けられ得る。
【0027】
図4Aに示すように、第1推論部41から、第2推論部42及び第3推論部43の少なくとも一方に対して、非同期通信部44を介してデータを受け渡すことが可能である。この例においては、第1推論部41は、推論結果のデータを、非同期通信部44を介して第2推論部42に受け渡す。なお、第1推論部41による処理結果のデータは、非同期通信部44を介して、第3推論部43にも受け渡し可能である。
【0028】
非同期通信部44には、第1推論部41から書き込みが行われる第1キュー45、第2推論部42からの読み込みが行われる第2キュー46、及び、第3推論部43からの読み込みが行われる第3キュー47が設けられている。非同期通信部44は、第1推論部41、第2推論部42、及び、第3推論部43と、第1キュー45、第2キュー46、及び、第3キュー47との対応関係を記録している。なお、非同期通信部44には、第1キュー45、第2キュー46、及び、第3キュー47に限らず、第1推論部41の読み込みキューや、第2推論部42、及び、第3推論部43の書き込みキュー(不図示)が設けられている。
【0029】
図4Bに示すように、第1キュー45、第2キュー46、及び、第3キュー47は、それぞれ、複数のキューデータの格納領域(キュー#0~キュー#n-1のn個のキュー)を備える。
【0030】
第1推論部41~第3推論部43は、非同期通信部44と通信可能な状態となっており、第1推論部41は、非同期通信部44内の第1キュー45にキューデータを書き込むことができ、第2推論部42は、非同期通信部44内の第2キュー46からキューデータを読み出すことができ、第3推論部43は、非同期通信部44内の第3キュー47からキューデータを読み出すことができる。
【0031】
キュー#0~#n-1には、所定のフォーマットでキューデータが記録されている。所定のフォーマットのキューデータには、送信元、宛先、及び、データ部が含まれる。また、キューの管理は、先入れ先出し(FIFO:First In, First Out)の原則に基づいて行われる。すなわち、第1推論部41は、第1キュー45にキューデータの書き込み処理を行う場合には、予めキューイングされたキューの次に、新たなキューデータを書き込む。例えば、第1キュー45内においてキュー#0~#2にキューデータが存在する場合には、キュー#3に新たなキューデータが書き込まれる。
【0032】
その後、非同期通信部44は、第1キュー45にアクセスし、キュー#0に存在するキューデータ内の宛先情報を取得すると、その宛先情報と対応するキュー(例えば、宛先が第2推論部42である場合には、第2キュー46)にキューデータをコピーする。その後、第1キュー45においては、キュー#1~#n-1のキューデータが、それぞれキュー#0~#n-2に移動される。そして、第2キュー46においては、第1キュー45のキュー#0に存在したキューデータが、キューデータが存在するキューの次のキューにコピーされる。例えば、キュー#0~#2にキューデータが存在する場合には、キュー#3にコピーされる。
【0033】
非同期通信部44は、第2推論部42に対して第2キュー46に書き込みが行われたことを伝えると、第2推論部42は、非同期通信部44内の第2キュー46にアクセスし、キュー#0のキューデータを取得する。その後、第2キュー46において、取得されたキュー#0のキューデータが削除され、キュー#1~#n-1のキューデータが、それぞれキュー#0~#n-2に移動される。
【0034】
このような一連の処理によって、第1推論部41と、第2推論部42及び第3推論部43との間で非同期通信が可能となる。
【0035】
図5は、非同期通信に関する処理を説明するフローチャートである。この図には、第1推論部41、非同期通信部44、及び、第2推論部42の処理が示されている。
【0036】
まず、第1推論部41の処理について説明する。第1推論部41は、これらの処理の開始前において待機状態であるものとする。
【0037】
ステップS511において、第1推論部41は、何らかの起動要求に基づいて起動状態に遷移して、その後、所定の推論処理を開始する。起動要求は、他のマイクロサービスに限らず、オーケストレーションエンジン34等のシステム側から受信してもよい。
【0038】
ステップS512において、第1推論部41は、推論処理を実行して、推論結果を生成する。
【0039】
ステップS513において、第1推論部41は、ステップS512で生成された推論結果を用いて、所定のフォーマットに沿ったキューデータを生成する。
図4Bを用いて説明したように、キューデータには、発信元に第1推論部41が含まれ、宛先に後続の処理を行う第2推論部42が含まれ、データ部には第1推論部41による推論結果が含まれる。
【0040】
第1推論部41は、このように生成された送信データを、非同期通信部44内の第1キュー45に記録する。なお、
図4Bを用いて説明したように、第1キュー45へのキューデータの記録はFIFOに基づいて行われる。
【0041】
ステップS514において、第1推論部41は、処理を終了して待機状態に遷移する。
【0042】
次に、ステップS521~S525に示された非同期通信部44の処理について説明する。非同期通信部44は、定期的に書き込み用のキューを監視している。この例においては、非同期通信部44は、第1推論部41から書き込まれる第1キュー45を監視している。
【0043】
ステップS521において、非同期通信部44は、第1推論部41からの第1キュー45への書き込みを検出する。
【0044】
ステップS522において、非同期通信部44は、第1キュー45への書き込みを検出すると、第1キュー45に新たに追加されたキューデータをログとして保存する。
【0045】
ステップS523において、非同期通信部44は、第1キュー45のキュー#0に記録されたキューデータを取得し、その宛先情報を確認する。ここでは、宛先は第2推論部42であるものとする。
【0046】
ステップS524において、非同期通信部44は、第1キュー45に対してキューデータの取得処理を行い、取り出したキューデータを第2推論部42と対応する第2キュー46に移動させる。これらの第1キュー45及び第2キュー46に対する処理は、
図4Bを用いて説明したように、FIFOに従って行われる。
【0047】
ステップS525において、非同期通信部44は、第2キュー46と対応付けられた第2推論部42へ、キュー通知を送信する。
【0048】
次に、ステップS531~S535に示された第2推論部42の処理について説明する。第2推論部42は、これらの処理の前では待機状態であって、非同期通信部44からのキュー通知によって起動状態となり、一連の処理を終えると再度、待機状態となる。
【0049】
ステップS531において、第2推論部42は、非同期通信部44からキュー通知を受信する。
【0050】
ステップS532において、第2推論部42は、ステップS531のキュー通知の受信に応じて起動状態となり、一連の処理を開始する。
【0051】
ステップS533において、第2推論部42は、非同期通信部44内の第2キュー46にアクセスして、キュー#0からデータを取得する。その後、第2キュー46において、取得されたキュー#0のデータが削除され、キュー#1~#n-1のデータは、それぞれキュー#0~#n-2に移動される。
【0052】
ステップS534において、第2推論部42は、ステップS532で取得したキューデータのデータ部の情報、すなわち、第1推論部41の推論結果を用いて、所定の第2処理を実行する。
【0053】
ステップS535において、第2推論部42は、一連の処理を終えると、待機状態に遷移する。
【0054】
これらの処理において、キューの処理、すなわち、ステップS513における第1キュー45へのキューデータの追加、ステップS524における第1キュー45からのキューデータの取り出し、及び、第2キュー46へのキューデータの追加、並びに、ステップS533における第2キュー46からのキューデータの取得は、FIFOの原則に基づいて行われる。
【0055】
図6は、本実施形態の多段階の推論装置1のソフトウェアの概略構成の一例を示す図である。この図によれば、推論装置1は、第1センサ21~第5センサ25により取得されたセンサ情報を受け付け、前段推論部62、及び、後段推論部65の推論結果を組み合わせて、最終推論部68が最終推論結果を求める。そして、制御部69は、最終推論結果を用いて制御対象装置3を制御する。
【0056】
第1センサ21~第5センサ25と対応して、第1センサ計算部611~第5センサ計算部615が設けられている。そして、第1センサ計算部611~第5センサ計算部615、前段推論部62内の前段第1推論部621~前段第3推論部623、及び、後段推論部65内の後段第1推論部651~後段第5推論部655の間には、データの授受を行う非同期通信部44が介在するが、図では省略されている。以下、推論装置1の詳細な構成について説明する。
【0057】
推論装置1には、第1センサ21~第5センサ25と個々に対応して第1センサ計算部611~第5センサ計算部615が設けられている。そして、前段第1推論部621~前段第3推論部623は、第1センサ計算部611~第5センサ計算部615からの出力のうちの一部または全部を利用して、所定の処理を実行する。
【0058】
図示された例では、前段第1推論部621は、第1センサ計算部611~第3センサ計算部613の入力を受け付け、前段第2推論部622は、第2センサ計算部612~第4センサ計算部614の入力を受け付け、前段第3推論部623は、第3センサ計算部613~第5センサ計算部615の入力を受け付ける。
【0059】
その後、後段第1推論部651~後段第5推論部655は、前段第1推論部621~前段第3推論部623の出力の一部又は全てを利用して、所定の処理を行う。図示された例では、後段第1推論部651~後段第5推論部655は、前段第1推論部621~前段第3推論部623からの出力の全てを利用して、所定の推論処理を行う。
【0060】
そして、後段第1推論部651~後段第5推論部655により得られた結果は、最終推論部68に入力されて最終推論結果を得るのに用いられる。その後、最終推論部68からの出力に基づいて制御部69が制御信号を生成し、これらの制御信号を用いて制御対象装置3が制御される。
【0061】
前段第1推論部621~前段第3推論部623、及び、後段第1推論部651~後段第5推論部655は、内部に、推論処理部631~633、及び、661~665、並びに、変換部641~643、及び、671~675を備える。推論処理部631~633、661~665、及び、変換部641~643、671~675の処理について、前段第1推論部621を用いて説明する。
【0062】
前段第1推論部621のさらに前段に設けられた第1センサ計算部611~第5センサ計算部615は、第1センサ21~第5センサ25から取得したセンサ情報に基づいて、後続の推論処理で処理可能な複数の計算結果を生成する。例えば、第1センサ21はGPS(Global Positioning System)装置であり、第1センサ計算部611によって、所定の位置情報が生成される。他の例では、第2センサ22は車両前方に設けられたミリ波データであり、第2センサ計算部612によって、前方の障害物の位置及び大きさを示す情報を生成する。
【0063】
前段第1推論部621は、第1センサ計算部611~第3センサ計算部613からセンサ情報の入力を受け付ける。前段第1推論部621は、推論処理部631と変換部641とを備える。推論処理部631に利用されている学習済みモデルは、サプライヤーから汎用的に配布されているものであり、その出力されるデータフォーマットは配布元により指定されたもので、不要な書式が含まれていることがある。そこで、変換部641によって、推論処理部631から出力されるデータのフォーマットを変換し、不要な情報を削除することで、非同期通信部44のキューへの書き込み時間を短縮することができる。
【0064】
変換部641による変換後のデータフォーマットとしては、複数のパラメータが含まれ得るため、XMLのような記述的形式や、JSON形式のような辞書的形式により記載されるのが好ましい。JSON形式であれば、後続の後段第1推論部651~後段第5推論部655の処理において、学習済みモデルへ入力する際に更なる変換が不要になるため、全体として推論装置1の処理の高速化を図ることができる。
【0065】
同様の処理が、前段第2推論部622、及び、前段第3推論部623で行われ、前段第1推論部621~前段第3推論部623の推論結果を用いて、後段第1推論部651~後段第5推論部655がさらに推論処理を行い、その後、最終推論部68により最終推論結果を得ることができる。
【0066】
図7は、推論装置1の具体的処理を示す表である。この表に示されるように、センサ2としては、LiDAR、レーダー、ビジョンカメラ、車内カメラ、風力計、GPS、温度・湿度計、輝度計、慣性記憶装置(IMU)が考えられる。そして、これらのセンサ2と対応して、センサ計算部61が設けられており、センサ2から出力されるセンサデータを所定のフォーマットに変換する。例えば、LiDARから出力されるデータは、前方の障害物を示す画像データに変換される。
【0067】
前段推論部62は複数の推論部を有しており、これらの推論部は、機械学習を用いて、車外人物検出、車内人物検出、障害物検出、天候判断、温度・湿度判断、自己位置推定、車車間距離推定、ルート判断、方向判断等を行う。推論部は、汎用的な学習モデルを機械学習された学習済モデルが用いられ、所定の推論処理に必要なセンサ情報の入力を受け付ける。例えば、推論部の中には、LiDAR及びビジョンカメラのセンサ情報を用いて、人物検出や車外人物検出や障害物検出を行うものがある。他にも、GPS及び温度・湿度計のセンサ情報を用いて、天候判断を行うものもある。
【0068】
後段推論部65は、複数の推論部を有しており、これらの推論部は、機械学習を用いて、状況に応じた種々の処理を行う。例えば、理論加速度の推論や、制動力の推論を行う。
【0069】
理論加速度の推論においては、例えば、慣性加速度を考慮した算出処理、目的地までの推進ベクトルに基づいた算出処理、トルク出力を考慮した算出処理、風力ベクトルを考慮した算出処理、発進時における一定以上の加速度制御のための補正処理、カーブ走行時を考慮した算出処理、減速時における一定以上の加速度制御のための補正処理、ステアリングによる推進ベクトルを考慮した推論処理、駐車時における推論処理、バック走行時における推論処理、前方斜辺角を考慮した推論処理タイヤ摩擦の演算、天気(雨)のタイヤ摩擦を考慮した算出処理、回生ブレーキ制動力を考慮した算出処理、油圧ブレーキ制動力を考慮した算出処理が行われる。
【0070】
制動力の推論においては、目的地までの推進ベクトルに対する、速度と慣性加速度に基づいた算出処理、モータ回転トルクによる算出処理、必要なブレーキ制動力と回生ブレーキ制動力に基づいた油圧ブレーキに対する算出処理、作用した制動力に対する補正処理、カーブ時などのステアリング発生前における速度と慣性加速度に基づいた算出処理等が行われる。
【0071】
これらの推論処理は、種々のサプライヤーから提供されているため、出力フォーマットが統一されていない。特に、サプライヤー独自のフォーマットになっている場合もあるため、そのような場合には、後段第1推論部651~後段第5推論部655が備える変換部671~675により、XMLやJSON等の後続の推論処理への入力可能な方式に変換される。
【0072】
最終推論部68は、制御部69が制御可能なように、インバータ制御信号(DC/AC変換、電流/電圧)、モータ制御(トルク指令値、トランスミッション制御)、ブレーキ制御(回生/摩擦制動)等の最終推論結果を算出する。最終的に、制御部69は、これらの最終推論結果に基づいて、制御対象装置3に対する制御信号を生成する。
【0073】
図8は、推論部で用いられる学習モデルの学習過程を示す図である。
【0074】
図4Aや
図6等に示された推論処理においては、第1推論部41~第3推論部43、前段第1推論部621~前段第3推論部623内の推論処理部631~633、及び、後段第1推論部651~後段第5推論部655内の推論処理部661~665に、学習済みモデルが用いられている。
【0075】
推論装置1は、第1センサ21~第5センサ25からのセンサ情報を受け付け、
図6に示すような多段階の推論処理を経て、制御対象装置3への制御信号を生成する。また、推論装置1内の推論部間のデータの授受は、
図5のステップS522に示すように、ログとして記録されている。センサ情報、制御信号、及び、ログ情報は、データストレージ6に記録される。
【0076】
学習システム5は、データストレージ6に記録されたこれらのデータを用いて機械学習を行い、学習済みの機械学習モデルを構築する。構築された学習済みモデルは、所定の周期で推論装置1にダウンロードされる。このようにして、推論装置1の推論精度を高めることができる。
【0077】
なお、
図1においては、推論装置1は、センサ2や制御対象装置3と直接接続されるように説明されたがこれに限らない。クラウト側に推論装置1を設けてもよい。
【0078】
また、
図5に示された処理では、非同期通信部44は、第2キュー46にキューデータをコピーした後に、キューデータの送信先の宛先となる第2推論部42に対して、キュー通知を行った。この処理に替えて、第2推論部42は、第2キュー46を定期的に監視することでキュー通知を省略できる。なお、
図5の例のようにキュー通知を用いることにより、第2推論部42のキューデータの読み出しタイミングが早くなるため、推論装置1の処理速度の高速化を図ることができる。一方で、キュー通知を省略することで、第2推論部42の処理負荷を低減できる。
【0079】
また、
図6に示される推論装置1は、前段第1推論部621~前段第3推論部623、後段第1推論部651~後段第5推論部655、及び、最終推論部68の3段階の推論が行われたが、これに限られず、より多くの段数の推論を含む任意の態様で推論が実行されてよい。例えば、
図9に示されるように、第1推論部41~第3推論部43及び最終推論部68に加えて、第4推論部48、及び、第5推論部49が設けられ、非同期通信部44を介して相互にデータを授受可能に構成されてもよい。第1推論部41~第5推論部49は、再帰的な推論処理を繰り返し実行しており、最終推論部68はこれらの推論結果を用いて適宜、最終推論結果を算出する。このような複雑な多段階の処理においては、非同期通信部44を設けることにより、推論部は、後続の推論処理の完了を待たずに、推論結果を非同期通信部44に送信し、自身の処理を終了できるため、多段階の推論処理の処理時間の短縮化を図ることができる。
【0080】
本実施形態の推論装置1によれば、コンテナ技術を用いて実装され、第1推論部である前段第1推論部621から第2推論部である後段第1推論部651へのデータ通信を非同期で実行する非同期通信部44を備える。非同期通信部44は、データのキューイング機構を備える。
【0081】
コンテナ技術で実装されたアプリケーション間は、コンテナエンジンの技術によって相互に通信可能であるが、特に、マイクロサービスアーキテクチャを採用する場合には、推論部の数が多くなるためデータの送受信に大きな遅延が発生し、処理速度が低下するおそれがある。
【0082】
そこで、前段第1推論部621から後段第1推論部651へのデータの授受を行うために、非同期通信部44が授受の対象となるデータをキューイングすることにより、後続の後段第1推論部651が処理中であっても後段第1推論部651の処理の完了を待たずに、処理結果の送信を実行できるため、全体として多段階の推論処理の高速化を図ることができる。
【0083】
本実施形態の推論装置1によれば、非同期通信部44は、送信側である第1推論部41から書き込まれる第1キュー45、及び、受信側である第2推論部42から読み込まれる第2キュー46の両者を備える。このように、送受信の双方においてキューイング機構を備えることで、多段階の推論装置1の動作のさらなる安定化を図ることができる。
【0084】
本実施形態の推論装置1によれば、非同期通信部44は、第1推論部41から書き込まれて第1キュー45にキューイングされたデータを、第2推論部42から読み出される第2キュー46に移動させる。このような処理が含まれることにより、非同期通信部44内に複数のキューを実装することができ、多段階の推論装置1の動作のさらなる安定化を図ることができる。
【0085】
本実施形態の推論装置1によれば、各推論部から送信されるデータの形式は、後続の推論部の機械学習モデルへ入力される形式であり、具体的にはJSON形式である。推論部に利用されている機械学習により得られた学習済みモデルは、汎用的に配布されているものであり、その出力されるデータフォーマットは配布元により指定されたものであり、不要な書式が含まれていることがある。そこでやりとりするデータをJSON形式とすることで、不要なフォーマットが削除されるので通信速度の向上を図ることができるとともに、後続の推論部の機械学習モデルへの入力形式となることで、後続の推論部の処理速度の向上を図ることができる。
【0086】
本実施形態の推論装置1によれば、推論部である前段第1推論部621~前段第3推論部623、及び、後段第1推論部651~後段第5推論部655は、機械学習モデルを備える推論処理部631~633、661~665と、変換部641~643、671~675とを有する。このような変換部641~643、671~675を備えることにより、各推論部から送信されるデータの形式が後続の推論部の機械学習モデルへ入力される形式でない場合であっても、変換部の処理により適切な形式に変更することができる。
【0087】
(第2実施形態)
第1実施形態においては、1つの推論装置1が多段階の推論を行う例について説明したが、これに限らない。第2実施形態においては、複数の推論装置1が推論システムを構築し、推論システムが多段階の推論処理を行う例について説明する。
【0088】
図10は、本実施形態の推論システムの概略構成図である。
図1に示した第1実施形態の構成と比較すると、ローカル環境10において、1つの推論装置1に替えて、3つの推論装置1A、1B、1Cが設けられており、これらの推論装置1A、1B、1Cにより推論システム100が構成されている。
【0089】
推論装置1Aにはセンサ2A、2Bが接続され、推論装置1Bにはセンサ2Cが接続され、推論装置1Cにはセンサ2Dが接続されている。センサ2A、2Bが取得したセンサ情報は、推論装置1Aに受け付けられた後に、推論装置1A~1Cからなる推論システム100によって処理される。同様に、センサ2Cが取得したセンサ情報は、推論装置1Bに受け付けられた後に、推論システム100によって処理される。センサ2Dが取得したセンサ情報は、推論装置1Cに受け付けられた後に、推論システム100によって処理される。
【0090】
図11は、推論システム100のソフトウェア構成を示す図である。推論装置1A~1Cにはそれぞれオーケストレーションエンジン34が設けられており、これらのオーケストレーションエンジン34が連携して、複数の推論装置1にまたがるクラスタ35が形成される。このような場合には、クラスタ35内で、ポッド36(推論部、及び、非同期通信部)は、仮想的なIPネットワークにおいて相互に通信可能である。このようなポッド36間の相互の通信は、クラスタ35内において、推論装置1A~1Cの物理的な構成に影響されることなく行われる。
【0091】
クラスタ35内には、マスタ351とノード352とが設けられ、マスタ351がクラスタ35内の全体を管理し、ノード352内にポッド36が配置(デプロイ)され動作する。なお、異なるノード352に配置されるポッド36も、オーケストレーションエンジン34により構成される仮想ネットワークにおいて、相互に通信可能となる。なお、
図3においては、クラスタ35内のマスタ351及びノード352の記載は省略されていた。
【0092】
そこで、クラスタ35内に1つの非同期通信部44を設ける。そして、第1推論装置1Aに設けられた推論部111、112、第2推論装置1Bに設けられた推論部113、114、及び、第3推論装置1Cに設けられた推論部115~117は、非同期通信部44を介して相互にデータの授受を行うことができる。
【0093】
このように、複数の推論装置1A~1Cのそれぞれにオーケストレーションエンジン34が設けられ、複数の推論装置1にまたがるクラスタ35が形成される場合には、クラスタ35内に1つの非同期通信部44を設けることで、推論装置1A~1Cに設けられる推論部111~117がキューイングを用いて相互に通信可能となる。
【0094】
さらに、オーケストレーションエンジン34が複数の推論装置1A~1Cに設けられることによって、複数の推論装置1A~1Cのハードウェアリソースを用いてポッド36の実行環境となるクラスタ35を構成することができる。オーケストレーションエンジン34は、マニフェストと称される設定ファイルの記述に沿ってポッド36のノード352内の配置及び実行を管理するので、複数の推論装置1A~1Cを用いる場合でも、全体としての動作の安定化を図るとともに、ハードウェアの設定が容易になるというメリットがある。
【0095】
(変形例)
図11の例では、複数の推論装置1A~1Cに設けられたオーケストレーションエンジン34により、推論装置1A~1Cにまたがるクラスタ35が構成された。これに対して、本変形例では、推論装置1A~1Cにまたがるクラスタ35が構成されていない例について説明する。
【0096】
図12は、変形例における推論システム100の構成を示す図である。例えば、この図においては、推論装置1A~1Cの個々にクラスタ35が構成されている。そのため、推論装置1A~1Cに設けられるそれぞれのポッド36は、推論装置1A~1Cの間でデータの授受を行うことができない。
【0097】
そこで、推論装置1A~1Cのそれぞれに非同期通信部44が設けられており、複数の非同期通信部44が連携して、内部に設けられた書き込みキューから読み込みキューへのデータのコピーが行われることになる。このように、複数の推論装置1A~1Cが同一のクラスタ35に属さない場合でも、それぞれの推論装置1A~1Cに非同期通信部44を設け、任意の書き込みキューから任意の読み込みキューへのキューデータのコピーが可能とすることで、異なる推論装置1A~1Cの間での推論部111~116のデータの授受が可能になる。
【0098】
(第3実施形態)
次に、第3実施形態においては、非同期通信部の他の態様について説明する。
【0099】
図13A~
図13Cは、第1実施形態とは異なる態様の、第1推論部131、第2推論部132、第3推論部133、及び、非同期通信部134が示されている。推論装置1において、第1推論部131、第2推論部132、第3推論部133、及び、非同期通信部134は、ポッド36として実装される。
【0100】
書き込み側である第1推論部131は、推論処理部1311、分割変換部1312、及び、タグ設定部1313を備える。読み込み側である第2推論部132は、タグ選択部1321、結合部1322、及び、推論処理部1323を備え、第3推論部133は、タグ選択部1331、結合部1332、及び、推論処理部1333を備える。また、非同期通信部134は、第1推論部131から書き込まれる第1キュー1341と、第2推論部132、及び、第3推論部133から読み込まれる第2キュー1342、及び、第3キュー1343とを備える。
【0101】
書き込み側の第1推論部131においては、推論処理部1311から出力される推論結果を、分割変換部1312が所定の機能単位で分割するとともに、JSON形式に変換する。例えば、推論処理部1311の出力に、位置情報に関するパラメータと、速度情報に関するパラメータとが含まれる場合には、位置情報と速度情報とで分割されたキューデータが生成される。そして、タグ設定部1313は、それらの分割されたキューデータに対して、それぞれタグ(例えば、位置情報と速度情報とを示す2つのタグ)を付す。タグが付された分割データは、第1キュー1341に書き込まれる。
【0102】
非同期通信部134は、第1キュー1341に記録されたキューデータの宛先を確認し、宛先となる推論部(例えば、第2推論部132)と対応するキュー(例えば、第2キュー1342)に移動させる。
【0103】
そして、読み込み側の第2推論部132においては、まず、タグ選択部1321は、第2キュー1342を検索し、第2キュー1342内に存在するタグが設定された分割データのうち、自身の処理に必要なタグが付されたデータを取得する。取得されるデータは複数であってもよく、複数ある場合には取得されたデータが結合部1322により結合される。そして、推論処理部1323は、結合されたデータを利用して推論処理を実行する。このようにすることで、第2推論部132は、自身に必要な分割データのみを処理に利用することになるため、不要なデータの取得を省略できる。第3推論部133においても、第2推論部132と同等の処理が実行される。
【0104】
図13Bは、書き込み用の第1キュー1341の構造を示す図である。
図13Bに示すように、第1キュー1341は、複数のキューデータ格納領域(図中では、キュー#0~キュー#n-1のn個のキュー)を備える。そして、キュー#0~#n-1には、所定のフォーマットでキュー情報が記録されている。所定のフォーマットには、送信元、タグ、及び、送信情報が含まれる。また、キューの管理は、先入れ先出し(FIFO:First In, First Out)に基づいて行われる。
【0105】
図13Cは、読み出し用の第2キュー1342の構造を示す図である。第2キュー1342は、複数のキューデータ格納領域(図中では、キュー#0~キュー#n―1のn個のキュー)を備える。そして、キュー#0~キュー#n-1には、所定のフォーマットでキュー情報が記録されており、それぞれのキューには、送信元、タグ、及び、送信情報が記録される。
【0106】
読み出し側の第2推論部132のタグ選択部1321、及び、第3推論部133のタグ選択部1331は、このような読み出し用の第2キュー1342に対してタグを用いて検索し、処理対象のデータを検出し、検出したデータを取得する。なお、検出するデータは複数あってもよく、取得された複数のデータは、結合部1322において結合される。そして、推論処理部1323は、結合部1322において結合により生成されたデータに対して推論処理を行う。なお、読み出し側の第2キュー1342、及び、第3キュー1343に記憶されたキューデータは、所定時間経過後に削除される。
【0107】
このように、第1推論部131においては、推論処理部1311による推論結果に対して、分割変換部1312が機能毎に分割し、それらの分割された推論結果に対してタグ設定部1313がタグを設定する。そして、第1推論部131から書き込まれるタグ付きの分割データに対して、第2推論部132は、タグを用いて自身の処理に必要なデータを選択し、推論処理部1323の推論処理に用いる。同様に、第3推論部133は、第1推論部131から書き込まれるデータのうち必要なデータを用いて、推論処理部1333の処理に用いることができる。
【0108】
図14は、非同期通信に関する処理を説明するフローチャートである。この図には、第1推論部131、非同期通信部134、及び、第2推論部132の処理が示されている。
【0109】
まず、第1推論部131の処理について説明する。第1推論部131は、
図5に示された第1推論部41の処理と比較すると、ステップS513に代えて、ステップS1411~S1413の処理が実行される。
【0110】
ステップS1411において、分割変換部1312は、推論処理部1311により生成された推論結果に対して、所定のフォーマットに変換するとともに、機能単位で分割する。
【0111】
ステップS1412において、タグ設定部1313は、ステップS1411において分割により生成された分割データに対して、機能に応じたタグを付与する。分割データ、及び、対応するタグは、ともに、キューデータに記憶される。
【0112】
ステップS1413において、タグ設定部1313は、ステップS1412において生成されたタグ付きの分割データを、非同期通信部134の第1キュー1341に書き込む。ステップS1411においては、複数の分割データが生成されるため、これらの分割データと対応するタグとを含むキューデータが第1キュー1341の複数のキューに記録される。
【0113】
次に、非同期通信部134の処理について説明する。非同期通信部134は、
図5に示された処理と比較すると、ステップS523~S525に代えて、ステップS1421~S1423の処理が実行される。また、この図の処理では、ステップS525の処理が省略されており、すなわち、キューデータが書き込まれた後に、宛先となる後続の第2推論部132への、キュー通知が行われない。そのため、第2推論部132は、定期的に、非同期通信部134の第2キュー1342を監視している。
【0114】
ステップS1421において、非同期通信部134は、第1キュー1341に書き込まれた分割データについて、対応するタグの修正及び追加を必要に応じて行う。第1推論部131のタグ設定部1313によるタグの設定処理では、後続の第2推論部132及び第3推論部133のタグ選択の処理に必要なタグが十分に設定されていない場合がある。そこで、非同期通信部134は、例えば、予めユーザにより設定された条件に基づいて、分割データに設定されたタグの変更や、分割データに対してさらにタグを付す。
【0115】
ステップS1422において、非同期通信部134は、第1キュー1341に書き込まれた分割データに対して、ステップS1421の処理によりタグの変更及び追加されたものが記憶されているキューデータを、読み出し側の第2キュー1342及び第3キュー1343にコピーする。なお、書き込み側のキューは、全ての読み出し側のキューに対してコピーされることになる。そして、コピーされたキューデータは、後続の第2推論部132及び第3推論部133に取得されて、推論処理に用いられる。
【0116】
ステップS1423において、非同期通信部134は、書き込み側の第1キュー1341、及び、読み出し側の第2キュー1342及び第3キュー1343において、書き込み後に所定時間経過したキューデータを削除する。
【0117】
次に、第2推論部132の処理について説明する。第2推論部132は、
図5に示された処理と比較すると、ステップS531が省略され、ステップS533に代えて、ステップS1431~S1432の処理が実行される。なお、上述のように、非同期通信部134はキュー通知を行わないため、第2推論部132は、定期的に、非同期通信部134の第2キュー1342を監視している。
【0118】
ステップS1431において、第2推論部132が実行状態となった後に、タグ選択部1321は、非同期通信部134の第2キュー1342を参照し、推論処理部1323の推論処理に必要な機能と対応するタグを検索する。
【0119】
ステップS1432において、第2推論部132の結合部1322は、ステップS1431において選択されたタグを含むキューデータを取得し、これらのキューデータを、所定の規則に沿って結合する。結合の際のキューデータの順番は、推論処理部1323の推論処理に適した形式となるように定められている。
【0120】
このようにすることで、第2推論部132においては、タグ選択部1321によって、読み出し対象の第2キュー1342に記録されているキューデータのうち、自身の推論処理に必要な機能と対応するタグを有する分割データが集められ、結合部1322によってこれらの分割データが結合され、最終的に、推論処理部1323による推論処理が実行される。
【0121】
(第4実施形態)
【0122】
図15は、第4実施形態の推論装置1の全体構成の一例の概略構成図である。この推論装置1においては、第3実施形態に示したように、推論部が、分割変換部、タグ設定部、結合部、及び、タグ選択部を備える。
【0123】
この処理においては、第1センサ21からセンサ情報を受け付ける第1センサ計算部1511、第2センサ22からセンサ情報を受け付ける第2センサ計算部1512、前段推論部152、後段推論部153、及び、最終推論部154が、非同期通信部155を介して接続されている。また、前段推論部152は、前段第1推論部1521と前段第2推論部1522とを備え、後段推論部153は、後段第1推論部1531と後段第2推論部1532とを備える。
【0124】
非同期通信部155は、第1センサ計算部1511の書き込みキュー15511及び読み込みキュー15512、第2センサ計算部1512の書き込みキュー15521及び読み込みキュー15522、前段第1推論部1521の書き込みキュー15531及び読み込みキュー15532、前段第2推論部1522の書き込みキュー15541及び読み込みキュー15542、後段第1推論部1531の書き込みキュー15551及び読み込みキュー15552、後段第2推論部1532の書き込みキュー15561及び読み込みキュー15562、最終推論部154の書き込みキュー15571及び読み込みキュー15572を有している。これらのキューは、内部で相互に接続されており、任意の書き込みキューから任意の読み込みキューへのキューデータのコピーが可能である。
【0125】
第1センサ計算部1511は、不図示の推論処理部、分割変換部、タグ設定部、及び、結合部を備えており、書き込みキュー15511へのキューデータの書き込み、及び、読み込みキュー15512からのキューデータの読み込みが可能なように構成されている。同様に、第2センサ計算部1512は、書き込みキュー15521へのキューデータの書き込み、及び、読み込みキュー15522からキューデータの読み込みが可能なように構成されている。
【0126】
前段第1推論部1521は、推論処理部15211、分割変換部15212、タグ設定部15213、結合部15214、及び、タグ選択部15215を有する。そしで、タグ設定部15213によって、非同期通信部155内の書き込みキュー15531に対して、タグ付きの分割キューデータが書き込まれ、タグ選択部15215によって、非同期通信部155内の読み込みキュー15532から、所望のタグが付された分割キューデータが取得される。これにより、推論処理部15211は、第1センサ計算部1511、及び、第2センサ計算部1512からの入力を、タグ選択部15215、及び、結合部15214を介して取得し、推論結果を分割変換部15212、及び、タグ設定部15213を介して、後続の後段推論部153に受け渡す。
【0127】
前段第2推論部1522、後段第1推論部1531、及び、後段第2推論部1532は、前段第1推論部1521と同様の構成をしており、書き込みキュー15541、15551、15561、及び、読み込みキュー15542、15552、15562を介して、データの授受が行われる。最終推論部154についても、他の推論部と同様の構成としてもよい。
【0128】
このように、推論処理部15211、15221、15311、15321は、これらの処理の前段の処理結果のフォーマットに限らず、自身の処理に必要な情報をタグにより選択して取得可能となる。
【0129】
(第5実施形態)
第4実施形態においては、非同期通信部155内に、推論部(ポッド36)のそれぞれと対応して、書き込み用のキュー、及び、読み込み用のキューが設けられる例について説明した。第5実施形態においては、非同期通信部155内に、複数の推論部(ポッド36)に対して、1対の書き込みキュー及び読み込みキューが設けられる例について説明する。
【0130】
図16は、第4実施形態の推論装置1の概略構成図であって、第3実施形態の
図15と対応する。この図によれば、第1センサ計算部1511、第2センサ計算部1512、前段第1推論部1521、前段第2推論部1522、後段第1推論部1531、後段第2推論部1532、及び、最終推論部154と対応して、1対の書き込みキュー161及び読み込みキュー162が設けられる。
【0131】
ある推論部から後続の推論部にデータを送る場合には、推論部は、推論結果を分割して分割データを生成し、生成した分割データに対してラベルを付したものを、書き込みキュー161に書き込む。そして、非同期通信部155は、書き込みキュー161から読み込みキュー162への移動を行うとともに、必要に応じてタグの補正、追加(ステップS1421)を行う。
【0132】
そして、後続の推論部は、分割データを受け取るために、非同期通信部155の読み込みキュー162にアクセスし、自身の処理に必要なラベルが付されている分割データを選択して取得して結合する。このように結合された分割データが、後続の推論部による推論処理に用いられる。
【0133】
このような構成となることで、送信側、受信側において、ポッド36毎に異なるキューを設ける必要がなくなるため、非同期通信部155内の処理を簡略化できる。さらに、後続の推論部が自身の処理に必要な分割データを取得するため、キューデータのフォーマットにおける宛先を省略することも可能となる。一方で、第1実施形態の
図5のステップS525に示されるように、非同期通信部44が、宛先に応じた後続の推論部に対してキュー通知を送信してもよく、このような場合には、後続の推論部の処理の開始を早めることができる。
【0134】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【0135】
1、1A、1B、1C 推論装置
2、2A~2D、21~25 センサ
3 制御対象装置
4 ネットワーク
5 学習システム
6 データストレージ
10 ローカル環境
34 オーケストレーションエンジン
35 クラスタ
351 マスタ
352 ノード
41~43、48、49 推論部
44 非同期通信部
45~47 第1キュー~第3キュー
61 センサ計算部
62 前段推論部
65 後段推論部
67 変換部
68 最終推論部
69 制御部
100 推論システム
111~117 推論部
131~133 第1推論部~第3推論部
134 非同期通信部
151 前段第1推論部
153 後段推論部
154 最終推論部
155 非同期通信部
161 書き込みキュー
162 読み込みキュー
611~615 センサ計算部
621~623 前段第1推論部~前段第3推論部
631~633、661~655、1311、1323、1333、15211、15221、15311、15321 推論処理部
641~643 変換部
651~655 後段第1推論部~後段第5推論部
1312、15212、15212、15222、15312、15322 分割変換部
1313、15213、15223、15313、15323 タグ設定部
1321、1331、15215、15225、15315、15325 タグ選択部
1322、1332、15214、15224、15314、15324 結合部
1341~1343 第1キュー~第3キュー
1511、1512 第1センサ計算部、第2センサ計算部
1521、1522 前段第1推論部、前段第2推論部
1531、1532 後段第1推論部、後段第2推論部
15511、15521、15531、15541、15551、15571、15561 書き込みキュー
15512、15522、15532、15542、15552、15562、15572 読み込みキュー