IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッドの特許一覧

特許7521107AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体
<>
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図1
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図2
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図3
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図4
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図5
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図6
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図7
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図8
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図9
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図10
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図11
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図12
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図13
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図14
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図15
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図16
  • 特許-AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240716BHJP
   G06N 3/08 20230101ALI20240716BHJP
【FI】
G06N20/00
G06N3/08
【請求項の数】 22
(21)【出願番号】P 2023505761
(86)(22)【出願日】2021-07-05
(65)【公表番号】
(43)【公表日】2023-08-16
(86)【国際出願番号】 CN2021104537
(87)【国際公開番号】W WO2022022233
(87)【国際公開日】2022-02-03
【審査請求日】2023-02-28
(31)【優先権主張番号】202010732241.0
(32)【優先日】2020-07-27
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】521486206
【氏名又は名称】ホアウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッド
【氏名又は名称原語表記】Huawei Cloud Computing Technologies Co., Ltd.
【住所又は居所原語表記】Huawei Cloud Data Center,Jiaoxinggong Road,Qianzhong Avenue, Gui’an New District, Guizhou,550025,China
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(72)【発明者】
【氏名】▲ウ▼ ▲書▼哲
(72)【発明者】
【氏名】金 ▲シン▼
(72)【発明者】
【氏名】李 心成
(72)【発明者】
【氏名】▲塗▼ 丹丹
【審査官】福西 章人
(56)【参考文献】
【文献】特開2020-086778(JP,A)
【文献】国際公開第2019/138655(WO,A1)
【文献】特開2018-065221(JP,A)
【文献】国際公開第2016/151618(WO,A1)
【文献】国際公開第2016/152053(WO,A1)
【文献】国際公開第2019/202941(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
人工知能AIモデルを更新する方法であって、前記方法は、
推論データセットを得るステップであって、前記推論データセット内の推論データが、推論を実行するために既存のAIモデルに入力されるために使用される、ステップと、
前記推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するステップであって、前記訓練データセットが、前記既存のAIモデルを訓練するために使用されるデータセットである、ステップと、
更新済みのAIモデルを得るために、前記推論データセットを使用して前記既存のAIモデルを更新するステップであって、
前記差がオフライン更新条件を満たす場合に、前記推論データセットを使用して前記既存のAIモデルをオフラインで更新するステップ、または
前記差がオフライン更新条件を満たさない場合に、前記推論データセットを使用して前記既存のAIモデルをオンラインで更新するステップを含む、ステップ
を含む、方法。
【請求項2】
前記既存のAIモデルは推論プラットフォームに配備され、前記方法は、
前記更新済みのAIモデルの推論精度を前記既存のAIモデルの推論精度と比較し、前記更新済みのAIモデルの前記推論精度が前記既存のAIモデルの前記推論精度より良好であると決定するステップと、
前記既存のAIモデルの代わりに推論を実行するために、前記更新済みのAIモデルを前記推論プラットフォームに配備するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記更新済みのAIモデルを前記推論プラットフォームに配備する前記ステップの前に、前記方法は、
表示インターフェイスを使用して前記既存のAIモデルの前記推論精度と前記更新済みのAIモデルの前記推論精度を表示するステップと、
前記既存のAIモデルに対するユーザの更新命令を受信するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記推論データセットを使用して前記既存のAIモデルをオンラインで更新する前記ステップは、
前記推論データセットのデータ分布と前記訓練データセットのデータ分布との前記差を使用して、前記既存のAIモデル内の目標部分のパラメータ変化量を決定するステップと、
現在のパラメータと前記既存のAIモデル内の前記目標部分の前記パラメータ変化量とに基づいて、前記更新済みのAIモデル内の目標部分のパラメータを決定するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記推論データセットを使用して前記既存のAIモデルを更新する前記ステップは、
前記推論データセットに基づいて目標データセットを構築するステップと、
前記目標データセットを使用して前記既存のAIモデルを更新するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記推論データセットに基づいて目標データセットを構築する前記ステップは、
前記推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して前記目標データを表示するステップと、
ユーザによる前記目標データのラベル付けの結果を得るステップと、
前記目標データと、前記目標データの前記ラベル付け結果とに基づいて、前記目標データセットを構築するステップと
を含む、請求項5に記載の方法。
【請求項7】
前記目標データセットは前記推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、
前記目標データセットを使用して前記既存のAIモデルを更新する前記ステップは、
前記目標データセット内の前記ラベルなしデータを使用して、前記既存のAIモデル内の特徴抽出部分を教師なし方式で最適化するステップと、
前記最適化された特徴抽出部分と前記目標データセット内の前記ラベル付きデータとに基づいて、前記既存のAIモデルを更新するステップと
を含む、請求項5に記載の方法。
【請求項8】
前記目標データセットは前記推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、
前記目標データセットを使用して前記既存のAIモデルを更新する前記ステップは、
前記ラベルなしデータのラベル付け結果を得るために、前記既存のAIモデルを使用して前記目標データセット内の前記ラベルなしデータにラベルを付けるステップと、
前記ラベルなしデータの前記ラベル付け結果と前記目標データセット内の前記ラベル付きデータとに基づいて、前記既存のAIモデルを更新するステップと
を含む、請求項5に記載の方法。
【請求項9】
前記目標データセットを使用して前記既存のAIモデルを更新する前記ステップは、
前記目標データセット内のデータのデータ特性に基づいて、前記既存のAIモデルを更新するためのポリシーを得るステップと、
前記ポリシーに基づいて前記既存のAIモデルを更新するステップと
を含む、請求項5または6に記載の方法。
【請求項10】
前記方法は、
ユーザによって入力されるAIモデル更新期間を得るステップをさらに含み、
前記推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定する前記ステップは、
前記AIモデル更新期間に基づいて、前記推論データセットのデータ分布と前記訓練データセットのデータ分布とに差があると決定するステップ
を含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
人工知能AIモデルを更新する装置であって、前記装置は、
推論データセットを得るように構成された取得モジュールであって、前記推論データセット内の推論データが、推論を実行するために既存のAIモデルに入力されるために使用される、取得モジュールと、
前記推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するように構成された決定モジュールであって、前記訓練データセットが、前記既存のAIモデルを訓練するために使用されるデータセットである、決定モジュールと、
更新済みのAIモデルを得るために、前記推論データセットを使用して前記既存のAIモデルを更新するように構成された更新モジュールであって、
前記推論データセットのデータ分布と前記訓練データセットのデータ分布との前記差を使用して、前記既存のAIモデル内の目標部分のパラメータ変化量を決定し、かつ
現在のパラメータと前記既存のAIモデル内の前記目標部分の前記パラメータ変化量とに基づいて、前記更新済みのAIモデル内の目標部分のパラメータを決定するように構成された、更新モジュール
を含む、装置。
【請求項12】
前記既存のAIモデルは推論プラットフォームに配備され、前記決定モジュールは、前記更新済みのAIモデルの推論精度を前記既存のAIモデルの推論精度と比較し、かつ前記更新済みのAIモデルの前記推論精度が前記既存のAIモデルの前記推論精度より良好であると決定するようにさらに構成され、
前記更新モジュールは、前記更新済みのAIモデルを前記推論プラットフォームに配備するようにさらに構成され、その結果、前記更新済みのAIモデルが前記既存のAIモデルの代わりに推論を実行する、請求項11に記載の装置。
【請求項13】
前記装置は、前記更新済みのAIモデルが前記推論プラットフォームに配備される前に、表示インターフェイスを使用して前記既存のAIモデルの前記推論精度と前記更新済みのAIモデルの前記推論精度とを表示するように構成された表示モジュールと、
前記既存のAIモデルに対するユーザの更新命令を受信するように構成された受信モジュールと
をさらに含む、請求項12に記載の装置。
【請求項14】
前記更新モジュールは、
前記推論データセットのデータ分布と前記訓練データセットのデータ分布との前記差を使用して、前記既存のAIモデル内の目標部分のパラメータ変化量を決定し、かつ
現在のパラメータと前記既存のAIモデル内の前記目標部分の前記パラメータ変化量とに基づいて、前記更新済みのAIモデル内の目標部分のパラメータを決定する
ように構成される、請求項11から13のいずれか一項に記載の装置。
【請求項15】
前記更新モジュールは、
前記推論データセットに基づいて目標データセットを構築し、かつ
前記目標データセットを使用して前記既存のAIモデルを更新する
ように構成される、請求項11から14のいずれか一項に記載の装置。
【請求項16】
前記更新モジュールは、
前記推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して前記目標データを表示し、
ユーザによる前記目標データのラベル付けの結果を得、かつ
前記目標データと前記目標データの前記ラベル付け結果とに基づいて、前記目標データセットを構築する
ように構成される、請求項15に記載の装置。
【請求項17】
前記目標データセットは、前記推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、
前記更新モジュールは、
前記目標データセット内の前記ラベルなしデータを使用して、前記既存のAIモデル内の特徴抽出部分を教師なし方式で最適化し、かつ
前記最適化された特徴抽出部分と前記目標データセット内の前記ラベル付きデータとに基づいて、前記既存のAIモデルを更新する
ように構成される、請求項15に記載の装置。
【請求項18】
前記目標データセットは、前記推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、
前記更新モジュールは、
前記ラベルなしデータのラベル付け結果を得るために、前記既存のAIモデルを使用して前記目標データセット内の前記ラベルなしデータにラベルを付け、かつ
前記ラベルなしデータの前記ラベル付け結果と前記目標データセット内の前記ラベル付きデータとに基づいて、前記既存のAIモデルを更新する
ように構成される、請求項15に記載の装置。
【請求項19】
前記更新モジュールは、
前記目標データセット内のデータのデータ特性に基づいて、前記既存のAIモデルを更新するためのポリシーを得、かつ
前記ポリシーに基づいて前記既存のAIモデルを更新する
ように構成される、請求項15または16に記載の装置。
【請求項20】
前記取得モジュールは、ユーザによって入力されるAIモデル更新期間を得るようにさらに構成され、
前記決定モジュールは、前記AIモデル更新期間に基づいて、前記推論データセットのデータ分布と前記訓練データセットのデータ分布とに差があると決定するように構成される、
請求項11から19のいずれか一項に記載の装置。
【請求項21】
人工知能AIモデルを更新する計算デバイスであって、前記計算デバイスはプロセッサとメモリとを含み、
前記メモリはコンピュータ命令を保管し、
前記プロセッサは前記コンピュータ命令を実行し、その結果、前記計算デバイスは、請求項1から10のいずれか一項に記載の方法を実行する、
計算デバイス。
【請求項22】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体はコンピュータ命令を保管し、前記コンピュータ可読記憶媒体内の前記コンピュータ命令が計算デバイスによって実行されると、前記計算デバイスは、請求項1から10のいずれか一項に記載の方法を実行し、または前記計算デバイスは、請求項11から20のいずれか一項に記載の装置の機能を実施する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年7月27日に中国国家知識産権局に出願された「AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体」と題する中国特許出願第202010732241.0号の優先権を主張するものであり、同特許出願は、参照によりその全体が本書に組み入れられる。
【0002】
本出願は、人工知能(Artificial Intelligence、AI)技術の分野に関し、特に、AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体に関する。
【背景技術】
【0003】
人工知能技術の発展に伴い、AIモデルがますます広く利用されている。現在、AIモデルでは、主に、機械学習などのアルゴリズムを使用して、大量のデータに基づいてAIモデルのパラメータが学習される。AIモデルは、大量のデータを学習することによって得られる。したがって、構築されたAIモデルは特定の汎化能力を有するが、AIモデルが使用されるシナリオにおけるデータ分布とAIモデルの訓練データの分布とに大きな差があると、AIモデルの性能に影響がおよび、精度が低下する。分布の差が大きいほど、精度の低下が大きいことを意味する。しかし、AIモデルの実際の適用環境はダイナミックに変化する。したがって、実際の適用シナリオでは、データ分布が絶えず変化し得る。このため、AIモデルは、変化する適用シナリオで安定した精度を維持できない。AIモデルの精度をシナリオの変化に適応させることを可能にするには、AIモデルが適応的に更新される必要がある。
【0004】
関連技術では、AIプラットフォームが開発され、ユーザがAIプラットフォームを使用してモデルを更新している。具体的に述べると、AIプラットフォームは、AIモデルの訓練からAIモデルの配備にかけて必要な機能を提供する。これらの機能は、一般的に、データラベル付け、データ管理、モデル訓練、およびモデル推論などを含む。ユーザは、AIプラットフォームを使用してAIモデルを訓練できる。その後、ユーザは、現在のAIモデルが現在のシナリオに適していないと決定した場合に、現在のシナリオのデータセットを提供してAIモデルを更新でき、その結果、更新済みのAIモデルは現在のシナリオに適している。次に、ユーザは、更新済みのAIモデルを現在のシナリオに適用する。
【0005】
関連技術のAIモデルを更新する方法によると、AIモデルの精度が低下し、ユーザが現在のシナリオでAIモデルの精度が低下していることに気づいた後にのみ、AIモデルを更新できる。このため、AIモデルは適時に更新されない。
【発明の概要】
【0006】
本出願は、AIモデルを適時に更新するために、AIモデルを更新する方法、装置、および計算デバイス、ならびに記憶媒体を提供する。
【課題を解決するための手段】
【0007】
第1の態様によると、本出願は、AIモデルを更新する方法を提供し、本方法は、推論データセットを得るステップであって、推論データセット内の推論データが、推論を実行するために既存のAIモデルに入力されるために使用される、ステップと、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するステップであって、訓練データセットが、既存のAIモデルを訓練するために使用されるデータセットである、ステップと、更新済みのAIモデルを得るために、推論データセットを使用して既存のAIモデルを更新するステップとを含む。
【0008】
本出願の解決策では、AIモデルを更新する方法がAIプラットフォームによって実行されてよい。上記の方法では、AIモデルの精度が低下していることにユーザが気づいた場合にのみ、既存のAIモデルを更新するのではなく、推論データセットのデータ分布と訓練データセットのデータ分布とに差がある場合に、既存のAIモデルが更新される。したがって、AIモデルをより適時に更新できる。
【0009】
可能な一実装において、既存のAIモデルは推論プラットフォームに配備され、本方法は、更新済みのAIモデルの推論精度を既存のAIモデルの推論精度と比較し、更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定するステップと、既存のAIモデルの代わりに推論を実行するために、更新済みのAIモデルを推論プラットフォームに配備するステップとをさらに含む。
【0010】
本出願の解決策では、既存のAIモデルは推論プラットフォームに配備されてよく、推論プラットフォームはAIプラットフォームの一部であってよく、またはAIプラットフォームから独立していてもよい。AIプラットフォームは、更新済みのAIモデルの推論精度と既存のAIモデルの推論精度とを得、次いで、更新済みのAIモデルの推論精度を既存のAIモデルの推論精度と比較することができる。更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好である場合、AIプラットフォームは、既存のAIモデルの代わりに更新済みのAIモデルを使用して推論プラットフォームで推論を実行するために、更新済みのAIモデルを推論プラットフォームに配備する。このように、既存のAIモデルは、更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好である場合にのみ更新される。したがって、更新済みのAIモデルを使用して推論を行う場合の推論精度は高い。
【0011】
可能な一実装において、更新済みのAIモデルを推論プラットフォームに配備するステップの前に、本方法は、表示インターフェイスを使用して既存のAIモデルの推論精度と更新済みのAIモデルの推論精度を表示するステップと、既存のAIモデルに対するユーザの更新命令を受信するステップとをさらに含む。
【0012】
本出願の解決策では、更新済みのAIモデルを推論プラットフォームに配備する前に、AIプラットフォームは、表示インターフェイスを使用して既存のAIモデルの推論精度と更新済みのAIモデルの推論精度を表示でき、ユーザは、既存のAIモデルを更新するかどうかを選択できる。既存のAIモデルに対するユーザの更新命令を受信すると、AIプラットフォームは、更新済みのAIモデルを推論プラットフォームに配備できる。このように、ユーザは、更新済みのAIモデルを配備するかどうかを決定できるため、ユーザエクスペリエンスをより良好なものにすることができる。
【0013】
可能な一実装において、推論データセットを使用して既存のAIモデルを更新するステップは、差がオフライン更新条件を満たす場合に、推論データセットを使用して既存のAIモデルをオフラインで更新するステップ、または差がオフライン更新条件を満たさない場合に、推論データセットを使用して既存のAIモデルをオンラインで更新するステップを含む。
【0014】
本出願の解決策では、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差がオフライン更新条件を満たすかどうかを決定できる。差がオフライン更新条件を満たす場合、AIプラットフォームは、推論データセットを使用して既存のAIモデルをオフラインで更新できる。差がオフライン更新条件を満たさない場合、AIプラットフォームは、推論データセットを使用して既存のAIモデルをオンラインで更新できる。このように、異なる差に基づいて異なる更新方式を選択できるため、更新期間を短縮できる。
【0015】
可能な一実装において、推論データセットを使用して既存のAIモデルをオンラインで更新するステップは、推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して、既存のAIモデル内の目標部分のパラメータ変化量を決定するステップと、現在のパラメータと既存のAIモデル内の目標部分のパラメータ変化量とに基づいて、更新済みのAIモデル内の目標部分のパラメータを決定するステップとを含む。このように、オンライン更新中には、AIモデル内のいくつかの部分のパラメータのみを更新できるため、既存のAIモデルをオンラインで更新できる。
【0016】
可能な一実装において、推論データセットを使用して既存のAIモデルを更新するステップは、推論データセットに基づいて目標データセットを構築するステップと、目標データセットを使用して既存のAIモデルを更新するステップとを含む。
【0017】
可能な一実装において、推論データセットに基づいて目標データセットを構築するステップは、推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して目標データを表示するステップと、ユーザによる目標データのラベル付けの結果を得るステップと、目標データと、目標データのラベル付け結果とに基づいて、目標データセットを構築するステップとを含む。
【0018】
本出願の解決策では、AIプラットフォームは、推論データセットからサンプル条件を満たす目標データを選択し、目標データをユーザに表示することができ、ユーザは目標データにラベル付けする。AIプラットフォームは、ユーザによる目標データのラベル付けの結果と目標データとに基づいて目標データセットを構築できる。このように、既存のAIモデルが更新されるときに、構築された目標データセットは、サンプル条件を満たし、ユーザによってラベル付けされた目標データを含むので、更新済みのAIモデルは、推論データセットに対して推論を実行するのにより適したものになり得る。
【0019】
可能な一実装において、推論データセットからサンプル条件を満たす目標データを得るステップは、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、推論データセットからサンプル条件を満たす目標データを得るステップであって、目標データが既存のAIモデルを更新するのに適している、ステップを含む。このように、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、目標データを既存のAIモデルの更新により適したものにすることができる。
【0020】
可能な一実装において、目標データセットは、現在のラベル付きデータでサンプリングおよび/または生成され推論データセットのデータ分布に適したラベル付きデータをさらに含み、現在のラベル付きデータは訓練データセット内のデータを含む。このように、推論データセットのデータ分布に適したラベル付きデータを、既存のラベル付きデータから得ることができる。したがって、目標データセットは大量のラベル付きデータを有することができ、更新済みのAIモデルの推論精度をより高いものにすることができる。
【0021】
可能な一実装において、目標データセットは推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、目標データセットを使用して既存のAIモデルを更新するステップは、目標データセット内のラベルなしデータを使用して、既存のAIモデル内の特徴抽出部分を教師なし方式で最適化するステップと、最適化された特徴抽出部分と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新するステップとを含む。このように、既存のAIモデルが更新される前には、AIモデル内の特徴抽出部分を最適化できる。
【0022】
可能な一実装において、目標データセットは推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、目標データセットを使用して既存のAIモデルを更新するステップは、ラベルなしデータのラベル付け結果を得るために、既存のAIモデルを使用して目標データセット内のラベルなしデータにラベルを付けるステップと、ラベルなしデータのラベル付け結果と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新するステップとを含む。このように、目標データセット内のラベルなしデータにラベル付けできるので、目標データセットは大量のラベル付きデータを有することができ、更新済みのAIモデルの推論精度をより高いものにすることができる。
【0023】
可能な一実装において、目標データセットを使用して既存のAIモデルを更新するステップは、目標データセット内のデータのデータ特性に基づいて、既存のAIモデルを更新するためのポリシーを得るステップと、ポリシーに基づいて既存のAIモデルを更新するステップとを含む。このように、目標データセット内のデータのデータ特性を使用して、既存のAIモデルを更新するためのポリシーを選択し、既存のAIモデルを更新することができる。したがって、既存のAIモデルを更新する効率を向上させることができ、更新済みのAIモデルの推論精度をより高いものにすることができる。
【0024】
可能な一実装において、本方法は、ユーザによって入力されるAIモデル更新期間を得るステップをさらに含み、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するステップは、AIモデル更新期間に基づいて、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するステップを含む。このように、ユーザはAIモデル更新期間を決定でき、更新期間に達すると、AIモデル更新手順が実行される。
【0025】
第2の態様によると、本出願は、人工知能AIモデルを更新する装置を提供し、本装置は、推論データセットを得るように構成された取得モジュールであって、推論データセット内の推論データが、推論を実行するために既存のAIモデルに入力されるために使用される、取得モジュールと、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するように構成された決定モジュールであって、訓練データセットが、既存のAIモデルを訓練するために使用されるデータセットである、決定モジュールと、更新済みのAIモデルを得るために、推論データセットを使用して既存のAIモデルを更新するように構成された更新モジュールとを含む。このように、AIモデルの精度が低下していることにユーザが気づいた場合にのみ、既存のAIモデルを更新するのではなく、推論データセットのデータ分布と訓練データセットのデータ分布とに差がある場合に、既存のAIモデルが更新される。したがって、AIモデルを適時に更新できる。
【0026】
可能な一実装において、既存のAIモデルは推論プラットフォームに配備され、決定モジュールは、更新済みのAIモデルの推論精度を既存のAIモデルの推論精度と比較し、かつ更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定するようにさらに構成され、更新モジュールは、更新済みのAIモデルを推論プラットフォームに配備するようにさらに構成され、その結果、更新済みのAIモデルが既存のAIモデルの代わりに推論を実行する。このように、既存のAIモデルは、更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好である場合にのみ更新されるので、推論精度は高い。
【0027】
可能な一実装において、本装置は、更新済みのAIモデルが推論プラットフォームに配備される前に、表示インターフェイスを使用して既存のAIモデルの推論精度と更新済みのAIモデルの推論精度とを表示するように構成された表示モジュールと、既存のAIモデルに対するユーザの更新命令を受信するように構成された受信モジュールとをさらに含む。このように、ユーザは、更新済みのAIモデルを配備するかどうかを決定できるため、ユーザエクスペリエンスをより良好なものにすることができる。
【0028】
可能な一実装において、更新モジュールは、差がオフライン更新条件を満たす場合に、推論データセットを使用して既存のAIモデルをオフラインで更新し、または差がオフライン更新条件を満たさない場合に、推論データセットを使用して既存のAIモデルをオンラインで更新するように構成される。このように、異なる差に基づいて異なる更新方式を選択できるため、更新期間を短縮できる。
【0029】
可能な一実装において、更新モジュールは、推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して、既存のAIモデル内の目標部分のパラメータ変化量を決定し、かつ現在のパラメータと既存のAIモデル内の目標部分のパラメータ変化量とに基づいて、更新済みのAIモデル内の目標部分のパラメータを決定するように構成される。このように、オンライン更新中には、AIモデル内のいくつかの部分のパラメータのみを更新できるため、既存のAIモデルをオンラインで更新できる。
【0030】
可能な一実装において、更新モジュールは、推論データセットに基づいて目標データセットを構築し、かつ目標データセットを使用して既存のAIモデルを更新するように構成される。
【0031】
可能な一実装において、更新モジュールは、推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して目標データを表示し、ユーザによる目標データのラベル付けの結果を得、かつ目標データと目標データのラベル付け結果とに基づいて、目標データセットを構築するように構成される。このように、既存のAIモデルが更新されるときに、構築された目標データセットは、サンプル条件を満たし、ユーザによってラベル付けされた目標データを含むので、更新済みのAIモデルは、推論データセットに対して推論を実行するのにより適したものになり得る。
【0032】
可能な一実装において、更新モジュールは、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、推論データセットからサンプル条件を満たす目標データを得、目標データが既存のAIモデルを更新するのに適している、ように構成される。このように、スクリーニングによってサンプル条件を満たす目標データをより正確に得ることができる。
【0033】
可能な一実装において、目標データセットは、現在のラベル付きデータでサンプリングおよび/または生成され推論データセットのデータ分布に適したラベル付きデータをさらに含み、現在のラベル付きデータは訓練データセット内のデータを含む。
【0034】
可能な一実装において、目標データセットは、推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、更新モジュールは、目標データセット内のラベルなしデータを使用して、既存のAIモデル内の特徴抽出部分を教師なし方式で最適化し、かつ最適化された特徴抽出部分と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新するように構成される。このように、既存のAIモデルが更新される前には、AIモデル内の特徴抽出部分を最適化できる。
【0035】
可能な一実装において、目標データセットは、推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含み、更新モジュールは、ラベルなしデータのラベル付け結果を得るために、既存のAIモデルを使用して目標データセット内のラベルなしデータにラベルを付け、かつラベルなしデータのラベル付け結果と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新するように構成される。このように、目標データセット内のラベルなしデータにラベル付けできるので、目標データセットは大量のラベル付きデータを有することができ、更新済みのAIモデルの推論精度をより高いものにすることができる。
【0036】
可能な一実装において、更新モジュールは、目標データセット内のデータのデータ特性に基づいて、既存のAIモデルを更新するためのポリシーを得、かつポリシーに基づいて既存のAIモデルを更新するように構成される。このように、目標データセット内のデータのデータ特性を使用して、既存のAIモデルを更新するためのポリシーを選択し、既存のAIモデルを更新することができる。したがって、既存のAIモデルを更新する効率を向上させることができ、更新済みのAIモデルの推論精度をより高いものにすることができる。
【0037】
可能な一実装において、取得モジュールは、ユーザによって入力されるAIモデル更新期間を得るようにさらに構成され、
決定モジュールは、AIモデル更新期間に基づいて、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定するように構成される。
【0038】
第3の態様によると、AIモデルを更新する計算デバイスが提供され、計算デバイスはプロセッサとメモリとを含み、メモリはコンピュータ命令を保管し、プロセッサはコンピュータ命令を実行して、第1の態様および第1の態様の可能な実装の方法を実施する。
【0039】
第4の態様によると、コンピュータ可読記憶媒体が提供され、コンピュータ可読記憶媒体はコンピュータ命令を保管する。コンピュータ可読記憶媒体内のコンピュータ命令が計算デバイスによって実行されると、計算デバイスは、第1の態様および第1の態様の可能な実装の方法を実行することが可能になり、または計算デバイスは、第2の態様および第2の態様の可能な実装の装置の機能を実施することが可能になる。
【0040】
第5の態様によると、命令を含むコンピュータプログラム製品が提供される。コンピュータプログラム製品が計算デバイス上で実行すると、計算デバイスは、第1の態様および第1の態様の可能な実装の方法を実行することが可能になり、または計算デバイスは、第2の態様および第2の態様の可能な実装の装置の機能を実施することが可能になる。
【図面の簡単な説明】
【0041】
図1】本出願の一実施形態によるAIプラットフォーム100の構造の概略図である。
図2】本出願の一実施形態によるAIプラットフォーム100の適用シナリオの概略図である。
図3】本出願の一実施形態によるAIプラットフォーム100を配備する概略図である。
図4】本出願の一実施形態によるAIプラットフォーム100が配備される計算デバイス400の構造の概略図である。
図5】本出願の一実施形態による作業モードの概略図である。
図6】本出願の一実施形態によるAIモデルを更新する論理図である。
図7】本出願の一実施形態によるAIモデルを更新する方法の概略フローチャートである。
図8】本出願の一実施形態によるユーザ参加なしでAIモデルを更新する概略図である。
図9】本出願の一実施形態によるユーザ参加ありでAIモデルを更新する概略図である。
図10】本出願の一実施形態によるAIモデルを更新する方法の概略フローチャートである。
図11】本出願の一実施形態によるAIモデル更新シナリオの概略図である。
図12】本出願の一実施形態によるデータ分布差を決定する別の概略図である。
図13】本出願の一実施形態によるAIモデルのローカルパラメータを更新する概略図である。
図14】本出願の一実施形態による目標データを決定する概略図である。
図15】本出願の一実施形態によるAIモデルを更新する装置の構造の概略図である。
図16】本出願の一実施形態によるAIモデルを更新する装置の構造の概略図である。
図17】本出願の一実施形態による計算デバイスの構造の概略図である。
【発明を実施するための形態】
【0042】
本出願の目的、技術的解決策、および利点をより明確にするため、以下では、添付の図面を参照しながら本出願の実装を詳細にさらに説明する。
【0043】
現在、人工知能が絶えずブームとなっている。機械学習は、AIを実現するための中心的な手段である。機械学習は、医療、輸送、教育、金融など様々な業界に浸透している。様々な業界の技術的専門家と非AI技術的専門家の両方が、AIと機械学習で指定されたタスクを完了することを期待している。
【0044】
本出願で提供される技術的解決策および実施形態の理解を容易にするため、以下では、AIモデル、AIモデル訓練、およびAIプラットフォームなどの概念を詳細に説明する。
【0045】
AIモデルは、機械学習の考え方を用いて実際的な問題を解決する数学的なアルゴリズムモデルである。AIモデルは、大量のパラメータと大量の計算式(または計算ルール)とを含む。AIモデル内のパラメータは、訓練データセットを使用してAIモデルを訓練することによって得られ得る値である。例えば、AIモデル内のパラメータは、AIモデル内の計算式や計算因子の重みである。AIモデルは、いくつかのハイパーパラメータ(hyper-parameter)をさらに含む。ハイパーパラメータは、AIモデル構築またはAIモデル訓練を指図するために使用できる。ハイパーパラメータには、例えば、AIモデル訓練におけるイテレーション(iteration)数、学習率(leaning rate)、バッチサイズ(batch size)、AIモデルの層数、および各層のニューロン数など、複数の種類がある。ハイパーパラメータは、訓練データセットを使用してAIモデルを訓練することによって得られるパラメータであり得、または既定のパラメータであり得る。既定のパラメータは、訓練データセットを使用してAIモデルを訓練することによって更新されない。
【0046】
AIモデルには様々なものがある。広く使用されているAIモデルは、ニューラルネットワークモデルである。ニューラルネットワークモデルは、生体神経回路網(動物の中枢神経系)の構造や機能を模倣する数学的なアルゴリズムモデルである。1つのニューラルネットワークモデルが異なる関数を有する複数のニューラルネットワーク層を含み得、各層はパラメータと計算式とを含む。ニューラルネットワークモデル内の様々な層は、様々な計算式または様々な関数に基づく様々な名称を有する。例えば、畳み込み計算を行う層は畳み込み層と呼ばれ、畳み込み層は通常、入力信号(画像など)に対して特徴抽出を行うために使用される。あるいは、複数の既存のニューラルネットワークモデルを組み合わせることによって1つのニューラルネットワークモデルが形成され得る。異なる構造を有するニューラルネットワークモデルが、異なるシナリオ(例えば、分類および識別)で使用され得、またはモデルが同じシナリオで使用される場合に異なる効果を提供し得る。ニューラルネットワークモデルが異なる構造を有するということは、具体的には、ニューラルネットワークモデル内のネットワーク層の層数が異なること、ネットワーク層の順序が異なること、およびネットワーク層における重み、パラメータ、または計算式が異なることのうちのいずれか1つ以上を含む。業界には、識別または分類などの適用シナリオで使用され、高い精度を有する複数の様々なるニューラルネットワークモデルが既に存在する。いくつかのニューラルネットワークモデルが、指定された訓練データセットを使用して訓練され、次いで、独立して、または別のニューラルネットワークモデル(または別の機能モジュール)と共に、タスクを完了するために使用され得る。それぞれのAIモデルは、通常、タスクを完了するために使用される前に訓練される必要がある。
【0047】
AIモデル訓練とは、既存のサンプル(すなわち、訓練データセット)と指定された方法を使用して、AIモデルが既存のサンプルのルールに適合することを可能にし、AIモデル内のパラメータを決定することを意味する。例えば、画像分類や検出識別に使用されるAIモデルが訓練される場合は、訓練画像セットを用意する必要がある。訓練画像セット内の訓練画像がラベルを有するかどうかに基づいて(すなわち、画像が指定されたタイプまたは名前を有するかどうか)、AIモデル訓練が、教師あり訓練(supervised training)と教師なし訓練(unsupervised training)とに分けられ得る。AIモデルに対して教師あり訓練が実行される場合は、訓練画像セット内にあって訓練に使用される訓練画像はラベル(label)を有する。AIモデル訓練中は、訓練画像セット内の訓練画像がAIモデルの入力として使用され、訓練画像に対応するラベルがAIモデルの出力値のリファレンスとして使用され、AIモデルの出力値と訓練画像に対応するラベルとの間の損失(loss)値が損失関数(loss function)を使用して計算され、AIモデル内のパラメータが損失値に基づいて調整される。訓練画像セット内の各訓練画像を使用してAIモデルが反復的に訓練され、AIモデルが、入力訓練画像に基づいて、訓練画像に対応するラベルと同じ出力値を高精度で出力できるようになるまで、AIモデル内のパラメータが絶え間なく調整される。AIモデルに対して教師なし訓練が実行される場合は、画像セット内にあって訓練に使用される訓練画像はラベルを有さず、訓練画像セット内の訓練画像がAIモデルに連続的に入力され、AIモデルを使用して入力画像のタイプまたは特徴を決定または識別できるようになるまで、AIモデルが訓練画像セット内の訓練画像間の関連性と潜在的なルールを徐々に識別する。例えば、クラスタリングの場合は、大量の訓練画像を受信した後に、クラスタリングに使用されるAIモデルが、各訓練画像の特徴、ならびに訓練画像間の関連性および差を学習し、訓練画像を複数のタイプに自動的に分類することができる。異なるタスクタイプに対して異なるAIモデルを使用できる。いくつかのAIモデルは、教師あり学習によってのみ訓練できる。いくつかのAIモデルは、教師なし学習によってのみ訓練できる。いくつかの他のAIモデルは、教師あり学習と教師なし学習の両方で訓練できる。訓練が完了したAIモデルは、指定されたタスクを完了するために使用できる。一般的に、機械学習のすべてのAIモデルは、教師あり学習で訓練される必要がある。AIモデルが教師あり学習で訓練される場合、AIモデルは、ラベルを有する訓練画像セットからより的を絞ったやり方で、訓練画像セット内の訓練画像と対応するラベルとの関連性を学習でき、その結果、別の入力推論画像を予測するためにモデルが使用される場合には、訓練が完了したAIモデルは高い精度を有する。
【0048】
以下では、データ分類タスクに使用されるニューラルネットワークモデルが教師あり学習で訓練される一例を説明する。データ分類タスクを完了するために使用されるニューラルネットワークモデルを訓練するには、まず、タスクに基づいてデータが収集され、訓練データセットが構築される。構築された訓練データセットは、リンゴ、ナシ、およびバナナの3種類のデータを含む。収集された訓練データは、タイプに基づいて3つのフォルダに別々に保管され、フォルダの名前は、フォルダ内の全データのラベルである。訓練データセットが構築された後には、データ分類を実施できるニューラルネットワークモデル(畳み込みニューラルネットワーク(convolutional neural network、CNN)など)が選択され、訓練データセット内の訓練データがCNNに入力され、CNN内の各層の畳み込みカーネルを使用してデータに対して特徴抽出と特徴分類が行われる。最後に、データが各タイプに属するときに存在する信頼度(confidence)が出力され、信頼度とデータに対応するラベルとに基づいて損失関数を使用して損失値が計算され、損失値とCNN構造とに基づいてCNN内の各層のパラメータが更新される。訓練プロセスは、損失関数によって出力される損失値が収束するまで、または訓練データセット内のすべてのデータが訓練に使用されるまで、絶え間なく実行される。この場合、訓練は終了する。
【0049】
損失関数は、AIモデルが訓練される度合いを測定するために使用される(すなわち、AIモデルによって予測される結果と実際の目標との差を計算するために使用される)関数である。AIモデル訓練プロセスでは、AIモデルの出力は、実際に予測される値に可能な限り近いことが期待されるため、入力データに基づいてAIモデルによって現在予測されている値を実際に所望される目標値(すなわち、入力データのラベル)と比較でき、次いで、2つの値の差に基づいてAIモデル内のパラメータが更新される(勿論、通常は第1回の更新の前に初期化プロセスがある、すなわち、AIモデル内のパラメータに対して初期値が予め構成される)。訓練のたびに、AIモデルによって現在予測されている値と実際の目標値との差が損失関数を使用して決定され、AIモデルが実際に望まれる目標値を、または実際に望まれる目標値に非常に近い値を、予測できるまで、AIモデルのパラメータを更新する。この場合、AIモデルの訓練は完了したと考えられる。
【0050】
AIモデルの訓練が完了した後には、訓練が完了したAIモデルを使用してデータに対して推論を実行して推論結果を得ることができる。例えば、画像分類シナリオでは、具体的な推論プロセスは以下の通りである。AIモデルに画像が入力され、AIモデル内の各層の畳み込みカーネルを使用して画像の特徴抽出が行われ、抽出された特徴に基づいて画像が属するカテゴリが出力される。物体検出(物体検出と呼ばれることもある)のシナリオでは、AIモデルに画像が入力され、AIモデル内の各層の畳み込みカーネルを使用して画像の特徴抽出が行われ、抽出された特徴に基づいて、画像に含まれる各物体のバウンディングボックスの位置およびカテゴリが出力される。画像分類と物体検出をカバーするシナリオでは、AIモデルに画像が入力され、AIモデル内の各層の畳み込みカーネルを使用して画像の特徴抽出を行い、抽出された特徴に基づいて、画像が属するカテゴリ、ならびに画像に含まれる各物体のバウンディングボックスの位置およびカテゴリが出力される。ここで、AIモデルについて、いくつかのAIモデルが強い推論能力を有し、いくつかのAIモデルが弱い推論能力を有することに注意されたい。AIモデルが強い推論能力を有するとは、AIモデルを使用して画像に対して推論を実行する場合に、推論結果の精度が或る値以上であることを意味する。AIモデルが弱い推論能力を有するとは、AIモデルを使用して画像に対して推論を実行する場合に、推論結果の精度がその値より低いことを意味する。
【0051】
データラベル付けは、対応するシナリオのすべてのラベルをラベル付けされていない各データに加えるプロセスである。例えば、ラベルなしデータはラベルなし画像である。画像分類シナリオでは、ラベルなし画像が属するカテゴリがラベルなし画像に加えられる。物体検出シナリオでは、位置情報とカテゴリがラベルなし画像内の物体に加えられる。勿論、データラベル付けは、対応するシナリオでラベルの一部を1つ以上のラベルなしデータに加えるプロセスであってもよい。例えば、物体検出シナリオでは、ラベルなし画像内の物体にカテゴリのみが加えられ、ラベルなし画像内の物体の位置情報は加えられない。
【0052】
AIプラットフォームは、AI開発者とユーザのために便利なAI開発環境と便利な開発ツールとを提供するプラットフォームである。AIプラットフォームには、様々な問題を解決するための様々なAIモデルまたはAIサブモデルが組み込まれている。AIプラットフォームは、ユーザによって入力される要件に基づいて適切なAIモデルを確立できる。具体的に述べると、ユーザは、AIプラットフォームでユーザの要件を決定し、プロンプトに基づいて訓練データセットを準備し、訓練データセットをAIプラットフォームにアップロードするだけでよく、その結果、AIプラットフォームは、ユーザのために、ユーザの要件を実現するために使用できるAIモデルを訓練できる。例えば、ユーザが画像分類モデルを必要とする場合は、AIプラットフォームが保管されたAIモデルから分類モデルを選択し、次いで、ユーザが必要とするAIモデルを得るために、訓練データセットを使用して分類モデルを更新することができる。あるいは、ユーザは、プロンプトに基づいてユーザのアルゴリズムおよび訓練データセットを準備し、アルゴリズムおよび訓練データセットをAIプラットフォームにアップロードする。AIプラットフォームは、ユーザのアルゴリズムおよび訓練データセットに基づいて、ユーザの要件を実現するために使用できるAIモデルを訓練できる。ユーザは、訓練が完了したAIモデルを使用して、ユーザの指定されたタスクを完了できる。
【0053】
上述のAIモデルが一般的な用語であり、AIモデルがディープラーニングモデルや機械学習モデルなどを含むことに注意されたい。
【0054】
図1は、本出願の一実施形態によるAIプラットフォーム100の構造の概略図である。図1がAIプラットフォーム100の構造の概略図の一例を示しているにすぎず、AIプラットフォーム100におけるモジュールの分割が本出願で限定されないことを理解されたい。図1に示されているように、AIプラットフォーム100は、ユーザ入力/出力(input/output、I/O)モジュール101と、モデル訓練モジュール102と、推論モジュール103とを含む。任意に選べることとして、AIプラットフォームは、AIモデル保管モジュール104とデータ保管モジュール105とをさらに含み得る。
【0055】
以下、AIプラットフォーム100内の各モジュールの機能を簡単に説明する。
【0056】
ユーザI/Oモジュール101は、ユーザによって入力される推論データセットを受信するように構成され、またはユーザによって、AIプラットフォームと推論データを生成するデバイスとの間の接続を確立し、かつ推論データを生成するデバイスから推論データセットを得るように構成される。例えば、推論データを生成する装置は、カメラなどである。ユーザI/Oモジュール101は、ユーザによって入力または選択されるタスク目標を受信し、かつユーザの訓練データセットを受信するなどするようにさらに構成される。ユーザI/Oモジュール101は、ユーザによって推論データセット内の目標データ(目標データは推論データセットのデータ分布に適したサンプルである)にラベル付けした結果を受信し、かつユーザからラベル付きの1つ以上のデータを得るなどするようにさらに構成される。勿論、ユーザI/Oモジュール101は、別のユーザにAIモデルを提供するなどするようにさらに構成される。例えば、ユーザI/Oモジュール101は、グラフィカルユーザインターフェイス(graphical user interface、GUI)またはコマンドラインインターフェイス(CLI)を使用して実装されてよい。例えば、GUIは、AIプラットフォーム100によってユーザに提供され得る複数のAIサービス(画像分類サービスおよび物体検出サービスなど)を表示する。ユーザは、GUIでタスク目標を選択できる。例えば、ユーザは、画像分類サービスを選択し、ユーザは、複数のラベルなし画像をAIプラットフォームのGUIにアップロードし続けるなどすることができる。GUIは、タスク目標と複数のラベルなし画像を受信した後に、モデル訓練モジュール102と通信する。モデル訓練モジュール102は、ユーザによって決定されたタスク目標に基づいて、ユーザのために、ユーザのタスク目標を完了するために使用できる初期AIモデルを選択または検索する。
【0057】
任意に選べることとして、ユーザI/Oモジュール101は、ユーザによって入力される、タスク目標を完了するために使用されるAIモデルに対する効果期待を受信するようにさらに構成されてよい。例えば、最終的に得られたAIモデルを顔認識に用いた場合に存在する精度が99%より大きいという効果期待が、入力または選択される。
【0058】
任意に選べることとして、ユーザI/Oモジュール101は、ユーザによって入力されるAIモデルを受信するなどするようにさらに構成されてよい。例えば、ユーザは、ユーザのタスク目標に基づいてGUIで初期AIモデルを入力できる。ユーザI/Oモジュール101は、ユーザによる選択のために、様々な予め組み込まれた初期AIモデルを提供するようにさらに構成されてよい。例えば、ユーザは、ユーザのタスク目標に基づいてGUIで初期AIモデルを選択できる。
【0059】
任意に選べることとして、AIモデルが画像分類シナリオと物体検出シナリオに適用される場合は、ユーザI/Oモジュール101は、ユーザによって入力される推論データセット内のラベルなし画像の低レベル特徴および高レベル特徴を受信するようにさらに構成されてよい。画像分類シナリオでは、低レベル特徴は、画像の解像度、画像のアスペクト比、画像の赤緑青(RGB)の平均および分散、画像の輝度、画像の彩度、または画像の鮮明度のうちのいずれか1つ以上を含む。高レベル特徴は、特徴抽出モデル(CNNなど)で畳み込みカーネルを使用することによって抽出される、画像の抽象的な特徴である。物体検出シナリオでは、低レベル特徴は、バウンディングボックスの低レベル特徴と画像の低レベル特徴とを含む。バウンディングボックスの低レベル特徴は、単一の画像フレーム内の各バウンディングボックスのアスペクト比、画像の面積に対する単一の画像フレーム内の各バウンディングボックスの面積の比、単一の画像フレーム内の各バウンディングボックスの周縁化度、単一の画像フレーム内の各バウンディングボックスのオーバーラップ率、単一の画像フレーム内の各バウンディングボックスの輝度、または単一の画像フレーム内の各バウンディングボックスのぼけ度のうちのいずれか1つ以上を含み得る。画像の低レベル特徴は、画像の解像度、画像のアスペクト比、画像のRGBの平均および分散、画像の輝度、画像の彩度、画像の鮮明度、単一の画像フレーム内のボックスの数、または単一の画像フレーム内のボックスの面積の分散のうちのいずれか1つ以上を含み得る。高レベル特徴は、特徴抽出モデル(CNNなど)で畳み込みカーネルを使用することによって抽出される、画像の抽象的な特徴である。
【0060】
任意に選べることとして、ユーザI/Oモジュール101は、ユーザが訓練データセット内の訓練データにラベル付けし、ユーザが推論データセット内の目標データをラベル付けするために、GUIを提供するようにさらに構成されてよい。
【0061】
任意に選べることとして、ユーザI/Oモジュール101は、初期AIモデルおよび訓練データセット内の訓練データについてのユーザの様々な構成情報を受信するようにさらに構成されてよい。
【0062】
任意に選べることとして、ユーザI/Oモジュール101は、モデル訓練モジュール102が、更新前に存在するAIモデルの推論精度、および更新済みのAIモデルの推論精度などを提供し、ユーザがAIモデル更新命令を入力するために、GUIを提供するようにさらに構成されてよい。
【0063】
任意に選べることとして、ユーザI/Oモジュール101は、ユーザがAIモデル更新期間を入力するために、GUIを提供するようにさらに構成されてよい。
【0064】
モデル訓練モジュール102は、AIモデルを訓練するように構成される。ここで、「訓練」とは、初期AIモデルを訓練し、訓練が完了したAIモデルを最適化および更新することとして理解され得る。初期AIモデルは、訓練されていないAIモデルを含む。訓練が完了したAIモデルは、初期AIモデルを訓練することによって得られるAIモデル、または訓練が完了した既存のAIモデルを更新することによって得られるAIモデルである。
【0065】
モデル訓練モジュール102は、ユーザI/Oモジュール101、推論モジュール103、およびAIモデル保管モジュール104と通信できる。具体的に述べると、モデル訓練モジュール102は、ユーザI/Oモジュール101から、ユーザによってラベル付けされたデータを得ることができる。モデル訓練モジュール102は、初期AIモデルとしてAIモデル保管モジュール104から既存のAIモデルを得るなどすることができる。モデル訓練モジュール102は、推論モジュール103から推論データセットの推論結果と推論データセットとを得、推論結果と推論データセットとに基づいてAIモデルを訓練することができる。
【0066】
任意に選べることとして、モデル訓練モジュール102は、ユーザI/Oモジュール101によって受信される訓練データセット内の訓練データに対して前処理作業を実行するようにさらに構成される。例えば、ユーザによってアップロードされた訓練画像セット内の訓練画像が前処理された後に、訓練画像セット内の訓練画像のサイズには一貫性があり得、訓練画像セット内の不適切な訓練画像はさらに除去され得る。前処理された訓練データセットは、初期AIモデルを訓練するのに適し得、より良い訓練効果を得るためにさらに使用され得る。前処理された訓練画像セットはさらに、データ保管モジュール105に保管され得る。
【0067】
任意に選べることとして、モデル訓練モジュール102は、GUIでユーザによって選択されるAIモデルを初期AIモデルとして決定し、GUIを使用してユーザによってアップロードされるAIモデルを初期AIモデルとして決定するようにさらに構成されてよい。
【0068】
任意に選べることとして、モデル訓練モジュール102は、評価結果を得るために、訓練されたAIモデルを評価するようにさらに構成されてよい。勿論、独立したモジュールがAIモデルを評価してもよい。
【0069】
推論モジュール103は、AIモデルを使用して推論データセットに対して推論を実行し、推論データセットの推論結果と目標データとを出力する。推論モジュール103は、ユーザI/Oモジュール101およびAIモデル保管モジュール104と通信できる。推論モジュール103は、ユーザI/Oモジュール101から推論データセットを得、推論データセットに対して推論処理を実行して、推論データセットの推論結果を得る。推論モジュール103は、推論データセットの推論結果と目標データとをユーザI/Oモジュール101にフィードバックする。ユーザI/Oモジュール101は、ユーザによってラベル付けされた目標データと推論結果に対するユーザのラベル確認とを得、ユーザによってラベル付けされた目標データとユーザがラベル確認を実行する推論データとをモデル訓練モジュール102にフィードバックする。モデル訓練モジュール102は、より最適化されたAIモデルを得るために、ユーザI/Oモジュール101によって提供される、目標データと、ユーザがラベル確認を実行する推論データとに基づいて、最適化されたAIモデルを訓練し続ける。モデル訓練モジュール102は、より最適化されたAIモデルを保管のためにAIモデル保管モジュール104へ送信し、より最適化されたAIモデルを推論処理のために推論モジュール103へ送信する。
【0070】
任意に選べることとして、推論モジュール103が推論データセットに対して推論を実行するときに、出力は、AIモデルの推論データセットのデータ分布と訓練データセットのデータ分布との差をさらに含み得る。この場合、推論モジュール103は、モデル訓練モジュール102に差を提供し、モデル訓練モジュール102は、差に基づいてAIモデル更新方式を決定できる。勿論、AIモデルの推論データセットのデータ分布と訓練データセットのデータ分布との差は、推論モジュール103によって決定されなくてもよく、AIプラットフォーム上の独立したモジュールによって決定される。加えて、AIモデルの推論データセットのデータ分布と訓練データセットのデータ分布との差は、モデル訓練モジュール102によって決定されてもよい。
【0071】
任意に選べることとして、推論モジュール103は、ユーザI/Oモジュール101によって受信される推論データセット内の推論データに対して前処理作業を実行するようにさらに構成される。例えば、ユーザによってアップロードされた推論画像セット内の推論画像が前処理された後に、推論画像セット内の推論画像のサイズには一貫性があり得、推論画像セット内の不適切な推論画像はさらに除去され得る。前処理された推論データセットは、初期AIモデルによる推論の実行に適し得、より良い推論効果を得るためにさらに使用され得る。前処理された推論画像セットはさらに、データ保管モジュール105に保管され得る。
【0072】
推論モジュール103に前処理された推論データセットを提供し、モデル訓練モジュール102に前処理された訓練画像セットを提供するため、推論モジュール103およびモデル訓練モジュール102に別々に接続された独立したモジュールによってデータ前処理作業が実行されてよい。
【0073】
任意に選べることとして、AIモデル更新プロセスにおいて、ユーザ参加がない場合は、推論モジュール103は、推論データセットの推論結果と目標データとをユーザI/Oモジュール101に提供しなくてよい。
【0074】
任意に選べることとして、初期AIモデルは、訓練データセット内のデータを使用してAIモデル保管モジュール104内のAIモデルが訓練された後に得られるAIモデルをさらに含み得る。
【0075】
AIモデル保管モジュール104は、初期AIモデル、更新済みのAIモデル、AIサブモデル構造、および既定モデルなどを保管するように構成される。既定モデルは、AIプラットフォーム上で訓練済みで、そのまま使用できるAIモデル、またはAIプラットフォーム上で訓練済みではあるが、訓練および更新を継続する必要があるAIモデルである。AIモデル保管モジュール104は、ユーザI/Oモジュール101およびモデル訓練モジュール102と通信できる。AIモデル保管モジュール104は、モデル訓練モジュール102によって送信される、訓練が完了した初期AIモデルおよび更新済みのAIモデルを受信し、保管する。AIモデル保管モジュール104は、モデル訓練モジュール102にAIサブモデルまたは初期AIモデルを提供する。AIモデル保管モジュール104は、ユーザによってアップロードされてユーザI/Oモジュール101によって受信される初期AIモデルを保管する。別の実施形態で、AIモデル保管モジュール104が、モデル訓練モジュール102の一部として使用され得ることを理解されたい。
【0076】
データ保管モジュール105(例えば、クラウドサービスプロバイダによって提供されるオブジェクト保管サービス(Object Storage Service、OBS)に対応するデータ保管リソースであってよい)は、ユーザによってアップロードされる訓練データセットおよび推論データセットを保管するように構成され、データ前処理モジュール105によって処理されたデータを保管するようにも構成され、推論データセットのデータ分布に適したサンプリングまたは生成されたデータを保管するようにさらに構成される。
【0077】
任意に選べることとして、前述の説明では、ユーザI/Oモジュールが推論データセットを得る。勿論、データ保管モジュール105が、推論データセットを得るために、データソースに直接接続されてもよい。例えば、データ保管モジュール105はカメラに接続され、カメラによって撮影されたビデオ画像が推論データセットを構成する。
【0078】
任意に選べることとして、データ保管モジュール105は、知識ベースをさらに保管してよく、知識ベースは、AIモデルをより迅速に更新するのに役立つ知識を含む。
【0079】
本出願のAIプラットフォームが、ユーザとやり取りできるシステムであり得ることに注意されたい。このシステムは、ソフトウェアシステム、ハードウェアシステム、またはソフトウェアとハードウェアとを組み合わせたシステムであってよい。これは本出願で限定されない。
【0080】
モデル訓練モジュール102が、AIモデルに対して初期訓練を実行するように構成され、AIモデルを更新するようにさらに構成されることにさらに注意されたい。勿論、本出願の本実施形態では、初期訓練を実行するように構成されたモジュールと、AIモデルを更新するように構成されたモジュールとが、別々に配備されてもよい。
【0081】
前述のモジュールの機能により、本出願の本実施形態で提供されるAIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定し、差がある場合には、AIモデルに対して更新処理を実行することができ、その結果、AIモデルは適時に更新され得る。
【0082】
前述のAIプラットフォームが推論モジュール103を含まなくてよく、AIプラットフォームがAIモデルの更新処理を提供するようにのみ構成されることに注意されたい。具体的に述べると、ユーザは、AIプラットフォームに推論データセット、AIモデル、およびAIモデルを訓練するための訓練データセット(またはAIモデルを訓練するための訓練データセットのデータ分布であってもよい)を提供し、AIプラットフォームはAIモデルを更新する。AIプラットフォームは、ユーザに更新済みのAIモデルを提供する。あるいは、AIプラットフォームは、サードパーティのプラットフォーム(すなわち、推論データに対して推論を実行する推論プラットフォーム)に接続され、AIプラットフォームは、サードパーティのプラットフォームから推論データセット、AIモデル、およびAIモデルを訓練するための訓練データセット(またはAIモデルを訓練するための訓練データセットのデータ分布であってもよい)を得、AIプラットフォームはAIモデルを更新する。AIプラットフォームは、サードパーティのプラットフォームに更新済みのAIモデルを提供する。
【0083】
図2は、本出願の一実施形態によるAIプラットフォーム100の適用シナリオの概略図である。図2に示されているように、一実施形態において、AIプラットフォーム100は全面的にクラウド環境に配備されてよい。クラウド環境は、基本リソースを使用してクラウドコンピューティングモードでユーザにクラウドサービスを提供するエンティティである。クラウド環境は、クラウドデータセンターとクラウドサービスプラットフォームとを含む。クラウドデータセンターは、クラウドサービスプロバイダによって保有される多数の基本リソース(計算リソース、保管リソース、およびネットワークリソースを含む)を含む。クラウドデータセンターに含まれる計算リソースは、多数の計算デバイス(例えば、サーバ)であってよい。AIプラットフォーム100は、クラウドデータセンター内のサーバまたは仮想マシン上に個別に配備されてもよく、またはAIプラットフォーム100は、クラウドデータセンター内の複数のサーバ上に分散して配備されてもよく、またはクラウドデータセンター内の複数の仮想マシン上に分散して配備されてもよく、またはクラウドデータセンター内のサーバおよび仮想マシン上に分散して配備されてもよい。図2に示されているように、AIプラットフォーム100は、クラウドサービスプロバイダによってクラウドサービスプラットフォーム上でAIクラウドサービスに抽象化され、ユーザに提供される。ユーザがクラウドサービスプラットフォーム上のクラウドサービスを購入した後には(事前にリチャージし、次いで最終的なリソース使用状況に基づいて決済できる)、クラウド環境が、クラウドデータセンターに配備されたAIプラットフォーム100を使用してユーザにAIプラットフォームクラウドサービスを提供する。ユーザは、AIプラットフォームクラウドサービスを利用するときに、アプリケーションプログラミングインターフェイス(application programming interface、API)またはGUIを使用して、AIモデルによって完了されるタスクを決定し、訓練画像セットと推論データセットをクラウド環境にアップロードすることができる。クラウド環境内のAIプラットフォーム100は、ユーザのタスク情報、訓練データセット、および推論データセットを受信し、データの前処理、AIモデルの訓練、および訓練が完了したAIモデルを使用した推論データセットに対する推論などの作業を実行する。AIプラットフォームは、APIまたはGUIを使用して、推論データセットの推論結果、推論データセットで決定された目標データ、更新前に存在するAIモデルの推論精度、および更新済みのAIモデルの推論精度などのコンテンツをユーザに返す。ユーザは、更新済みのAIモデルを配備するかどうかをさらに選択する。訓練が完了したAIモデルは、指定されたタスクを完了するために、ユーザによってダウンロードされてよく、またはオンラインで使用されてもよい。
【0084】
本出願の別の実施形態において、クラウド環境内のAIプラットフォーム100がAIクラウドサービスに抽象化され、ユーザに提供される場合は、サービスが、2つの部分に、すなわち、基本的なAIクラウドサービスと、データ分布に基づいてAIモデルを更新するクラウドサービスとに、分割され得る。基本的なAIクラウドサービスは、AIモデルを訓練するサービスであってよい。ユーザは、クラウドサービスプラットフォーム上で基本的なAIクラウドサービスのみを購入できる。ユーザは、AIモデルを更新するクラウドサービスを利用する必要がある場合に、サービスを購入する。購入後は、クラウドサービスプロバイダがAIモデルを更新するクラウドサービスのAPIを提供し、最後に、APIを呼び出した回数に基づいて、AIモデルを更新するクラウドサービスに対する追加の課金を実行する。勿論、ユーザは、AIモデルを更新するクラウドサービスのみを購入することもできる。
【0085】
本出願で提供されるAIプラットフォーム100の配備は柔軟である。図3に示されているように、別の実施形態では、本出願で提供されるAIプラットフォーム100が様々な環境に分散して配備されてよい。本出願で提供されるAIプラットフォーム100は、複数の部分に論理的に分割されてよく、各部分は異なる機能を有する。例えば、一実施形態において、AIプラットフォーム100は、ユーザI/Oモジュール101と、モデル訓練モジュール102と、AIモデル保管モジュール104と、データ保管モジュール105とを含む。AIプラットフォーム100の各部分は、端末計算デバイス、エッジ環境、およびクラウド環境内のいずれか2つまたは3つの環境に別々に配備されてよい。端末計算デバイスは、端末サーバ、スマートフォン、ノートブックコンピュータ、タブレットコンピュータ、パーソナルデスクトップコンピュータ、およびインテリジェントカメラなどを含む。エッジ環境は、端末計算デバイスに近い1セットのエッジ計算デバイスを含む環境であり、エッジ計算デバイスは、エッジサーバ、および計算能力を有するエッジスモールセルなどを含む。様々な環境またはデバイスに配備されたAIプラットフォーム100の様々な部分は、構築されたAIモデルの決定および訓練などの機能をユーザに協調的に提供する。例えば、一シナリオにおいて、AIプラットフォーム100内のユーザI/Oモジュール101およびデータ保管モジュール105は、端末計算デバイスに配備され、AIプラットフォーム100内のモデル訓練モジュール102、推論モジュール103、およびAIモデル保管モジュール104は、エッジ環境内のエッジ計算デバイスに配備される。ユーザは、端末計算デバイス内のユーザI/Oモジュール101へ訓練データセットと推論データセットを送信し、端末計算デバイスは、訓練データセットと推論データセットをデータ保管モジュール105に保管する。エッジ計算デバイス内のモデル訓練モジュール102は、推論データセットに基づいてAIモデルを更新する。本出願で、AIプラットフォーム100の特定の部分が配備される特定の環境が限定されないことを理解されたい。実際の用途では、端末計算デバイスの計算能力、エッジ環境およびクラウド環境のリソース占有状態、または特定の適用要件に基づいて、適応的な配備が行われ得る。上記は、ユーザが訓練データセットを入力する必要がある一例を使用して説明されている。勿論、ユーザは訓練データセットを入力しなくてもよく、ユーザは訓練データセットの分布を直接入力してもよく、またはモデル訓練モジュール102が現在の既存のAIモデルを解析し、訓練データセットの分布を決定する。
【0086】
AIプラットフォーム100は、いずれかの環境内の計算デバイス上に個別に配備されてよい(例えば、エッジ環境内のエッジサーバ上に個別に配置)。図4は、AIプラットフォーム100が配備される計算デバイス400のハードウェア構造の概略図である。図4に示されている計算デバイス400は、メモリ401と、プロセッサ402と、通信インターフェイス403と、バス404とを含む。メモリ401、プロセッサ402、および通信インターフェイス403は、バス404を使用して互いに通信可能に接続される。
【0087】
メモリ401は、読み取り専用メモリ(Read Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、ハードディスク、フラッシュメモリ、またはそれらの任意の組み合わせであってよい。メモリ401は、プログラムを保管できる。メモリ401に保管されたプログラムがプロセッサ402によって実行されると、プロセッサ402および通信インターフェイス403は、AIプラットフォーム100がユーザのためにAIモデルを訓練し、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定し、かつ推論データセットに基づいてAIモデルを更新する方法を実行するように構成される。メモリは、データセットをさらに保管できる。例えば、メモリ401内の保管リソースの一部は、AIプラットフォーム100が必要とするデータを保管するように構成されたデータ保管モジュール105にグループ分けされ、メモリ401内の保管リソースの一部は、AIモデルライブラリを保管するように構成されたAIモデル保管モジュール104にグループ分けされる。
【0088】
プロセッサ402は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、グラフィックス処理装置(GPU)、またはそれらの任意の組み合わせを使用できる。プロセッサ402は、1つ以上のチップを含み得る。プロセッサ402は、ニューラルネットワーク処理装置(neural-network processing unit、NPU)などのAIアクセラレータを含み得る。
【0089】
通信インターフェイス403は、トランシーバなどのトランシーバモジュールを使用して、計算デバイス400と別のデバイスまたは通信ネットワークとの通信を実施する。例えば、通信インターフェイス403を使用してデータが得られ得る。
【0090】
バス404は、計算デバイス400のコンポーネント(例えば、メモリ401、プロセッサ402、および通信インターフェイス403)間で情報を転送するための経路を含み得る。
【0091】
本出願の実施形態では、AIモデルを更新する方法において、既存のAIモデルが更新されるときに、オンラインシングルノード自己更新、オンラインマルチノード協調更新、およびオフラインマルチノード協調更新などの複数の作業モードがあり得る。オンラインシングルノード自己更新は、AIモデルが配備された計算ノードが互いに独立しており、ノードによってアクセスされたデータを使用してオンラインのみでAIモデルを更新することを意味する。オンラインマルチノード協調更新は、計算ノードがアクセスされたデータを互いに交換することを可能にするために、異なる計算ノード間にデータ通信が加えられることを意味する。この場合、オンラインでモデルを更新するときに、或る1つの計算ノードは、当該計算ノードによってアクセスされるデータを使用でき、また、別の計算ノードによって共有されているデータを使用することもできる。オフラインマルチノード協調更新は、AIモデルの更新がオフラインで同時に実行され得ることを意味する。このモードでは、計算ノードによってアクセスされるデータが、AIモデルがオフラインで更新されるときに一緒に使用するために集約され得る。AIモデルがオフラインで更新された後には、更新済みのAIモデルが各計算ノードにプッシュされる。図5の(a)、図5の(b)、および図5の(c)にそれぞれ対応している。
【0092】
具体的に述べると、既存のAIモデルが更新されるときには、実際の状況に基づいて適切な作業モードが選択され得る(詳細なプロセスは後述する)。例えば、推論データセットのデータ分布の変化と訓練データセットのデータ分布の変化が大きくない場合は、オンラインシングルノード自己更新が用いられる。推論データセットのデータ分布の変化と訓練データセットのデータ分布の変化が大きい場合は、オフラインマルチノード協調更新が用いられる。
【0093】
本出願の実施形態では、図6に示されているAIモデルを更新する論理図がさらに提供される。
【0094】
図6は、データソース、オフライン更新、オンライン更新、および知識ベースなどを含んでいる。データソースは、AIモデルを更新する方法が適用されるシナリオのデータを含む。知識ベースは、モデル訓練の演繹的知識および/またはドメイン知識を含む。演繹的知識および/またはドメイン知識は、モデル更新ポリシーを選択するための基礎を提供でき、AIモデル更新プロセスでモデル更新を指図するポリシーを提供することもできる。例えば、ユーザがネコを検出するためのAIモデルを必要とする場合は、AIプラットフォームが、ドメイン知識から、ネコとトラの両方がネコ科に属し、類似していることを学習する。現在、AIプラットフォームは、トラを検出するためのAIモデルを既に有している。AIプラットフォームは、トラを検出するためのAIモデルを得、次いで、ネコを検出するためのAIモデルを得るために、ネコの画像を使用して、トラを検出するためのAIモデルを更新することができる。別の一例として、ユーザがAIモデルの推論速度、メモリ占有、およびハードウェアデバイスのうちのいずれか1つ以上について要件を有する場合は、AIプラットフォームは、ユーザの要件と知識ベースとに基づいて、ユーザの要件を満たすAIモデルアーキテクチャまたは既定モデルを選択できる。
【0095】
オンライン更新は、AIモデルをオンラインで適応的に更新することを意味する。オフライン更新は、AIモデルをオフラインで更新することを意味する。オフライン更新中に使用されるデータは、実際のデータ(推論データセット内のデータなど)と、サンプリングまたは生成される、推論データセットに適したラベル付きデータ(図6では生成されたデータと簡単に呼ばれている)とを含み得る。勿論、使用されるデータはデータ特性を含み得、データ特性は、様々なタイプのデータの統計および分布などの情報である。図6の左下隅の枠において、「オフライン更新」は、AIモデルを更新するためのデータを得ることと、データに基づいて既存のAIモデルを更新することとを含む、オフライン更新プロセスである。ここで、オフライン更新中に、既存のAIモデル内のパラメータが調整され得、または新しいAIモデルが更新済みのAIモデルとして再訓練され得ることに注意されたい。新しいAIモデルが再訓練される場合、オフライン更新プロセスは、AIモデル保管モジュール104から得られた初期モデルを処理することをさらに含む。オンライン更新中に使用されるデータ(簡単にオンラインデータと呼ばれることがある)は、実際のデータから得られるデータ、およびサンプリングまたは生成される、推論データセットに適したラベル付きデータなどを含み得る。
【0096】
図7を参照して、AIモデルを更新する方法の具体的な手順を以下に説明する。本方法がAIプラットフォームによって実行される一例を説明に使用する。
【0097】
ステップ701.AIプラットフォームは、推論データセットを得る。
【0098】
推論データセット内の推論データは、推論を実行するために既存のAIモデルに入力されるために使用され、既存のAIモデルは、更新前に存在するAIモデルと呼ばれることもある。
【0099】
本実施形態では、ユーザが、推論データセットをAIプラットフォームに入力でき、またはAIプラットフォームが、接続された推論データソースなどから推論データセットを得る。例えば、AIプラットフォームはカメラに接続され、AIプラットフォームは推論データセット内のデータとしてカメラからデータを連続的に得ることができ、カメラは推論データソースである。推論データセット内のデータはラベルなしデータである。
【0100】
ステップ702.AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定する。
【0101】
訓練データセットは、既存のAIモデルを訓練するために使用されるデータセットである。
【0102】
本実施形態では、推論データセットが得られるたびに、AIプラットフォームが、推論データセットのデータ分布を決定し、訓練データセットのデータ分布を得ることができる。あるいは、AIモデル更新期間に達するたびに、AIプラットフォームが、推論データセットのデータ分布を決定し、訓練データセットのデータ分布を得ることができる。AIモデル更新期間は、ユーザによって設定されてよい。
【0103】
AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布とに差があるかどうかを決定する。推論データセットのデータ分布と訓練データセットのデータ分布とに差がある場合は、AIプラットフォームがステップ703を実行する。そうでない場合は、以降の処理は行われない。理由は次の通りである。推論データセットのデータ分布と訓練データセットのデータ分布とに差がある場合は、既存のAIモデルが推論データセットに適さない可能性が高く、推論データセットに適応するために既存のAIモデルに対して更新処理が行われる。推論データセットのデータ分布と訓練データセットのデータ分布とに差がない場合、それは、既存のAIモデルが引き続き推論データセットに適していることを意味し、処理リソースを節約するため、既存のAIモデルに対して更新処理は行われなくてよい。
【0104】
ここで、訓練データセットのデータ分布を得るプロセスは、以下の通りであってよい。AIプラットフォームは、訓練データセットを得、訓練データセットに基づいて訓練データセットのデータ分布を決定することができ、またはAIプラットフォームは、ユーザから訓練データセットのデータ分布を得ることができ、またはAIプラットフォームは、既存のAIモデルによる推論データセットの推論結果に基づく解析によって訓練データセットのデータ分布を得ることができる。
【0105】
ステップ703.AIプラットフォームは、更新済みのAIモデルを得るために、推論データセットを使用して既存のAIモデルを更新する。
【0106】
本実施形態において、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定した場合は、AIプラットフォームが、更新済みのAIモデルを得るために、推論データセットに基づいて既存のAIモデルを更新することができる。
【0107】
このように、データ分布の変化が認識され得るため、既存のAIモデルは、データ分布の変化に基づいて適時に更新され得る。
【0108】
可能な一実装において、既存のAIモデルは推論プラットフォームに配備される(推論プラットフォームは、AIプラットフォームの一部であってよく、例えば、推論プラットフォームは、上述の推論モジュールなどを含み、またはAIプラットフォームから独立したプラットフォームであってもよい)。ステップ703の後に、AIプラットフォームは、更新済みのAIモデルの推論精度を既存のAIモデルの推論精度と比較し、更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定し、更新済みのAIモデルを推論プラットフォームに配備することができ、その結果、更新済みのAIモデルが既存のAIモデルの代わりに推論を実行する。
【0109】
本実施形態において、AIプラットフォームは、第1の評価結果と第2の評価結果を得るために、訓練データセットのデータ分布に適したテストデータセットと推論データセットのデータ分布に適したテストデータセットとを使用して更新済みのAIモデルを別々に評価し、第3の評価結果と第4の評価結果を得るために、推論データセットのデータ分布に適したテストデータセットと訓練データセットのデータ分布に適したテストデータセットとを使用して既存のAIモデルを別々に評価することができる。第1の評価結果が第4の評価結果より大幅に低くなく、第2の評価結果が第3の評価結果より良好である場合、AIプラットフォームは、更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定する。AIプラットフォームは、推論プラットフォームに更新済みのAIモデルを提供できる(具体的には、更新済みのAIモデルの全内容を提供してよく、または既存のAIモデルの内容とは異なる更新済みのAIモデルの内容を提供してもよい)。推論プラットフォームは、既存のAIモデルの代わりに更新済みのAIモデルを使用して推論処理を実行できる。
【0110】
既存のAIモデルと更新済みのAIモデルが評価されるときに、精度再現率(Precision Recall、PR)曲線、平均精度(Average Precision、AP)指標、偽陽性率、および偽陰性率のうちのいずれか1つ以上が使用され得ることに注意されたい。勿論、異なるタイプのAIモデルが評価されるときには、異なる評価指標が使用されてもよい。例えば、物体検出シナリオでは、PR曲線やAP指標などに加えて、バウンディングボックスのインターセクション・オーバー・ユニオン分布と、異なるインターセクション・オーバー・ユニオンの場合のAPの平均値とが使用されてもよい。ここではPR曲線を一例として使用する。勿論、ボックスプロットや混同行列といった様々な図が使用されてよく、PR曲線は制限を課さない。
【0111】
上記の説明では、推論精度を使用してAIモデルが評価される。勿論、推論速度が使用されてもよい、すなわち、AIプラットフォームは、AIモデルを評価するための基礎として推論精度および推論速度の包括的結果を使用する。
【0112】
可能な一実装において、ユーザは、更新済みのAIモデルを配備するかどうかを決定できる。更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定した場合、AIプラットフォームは、表示インターフェイスを使用して既存のAIモデルの推論精度と更新済みのAIモデルの推論精度を表示できる。ユーザは、2つのモデルの推論精度に基づいて、更新済みのAIモデルを配備するかどうかを決定できる。ユーザは、更新済みのAIモデルを配備することを決定するときに、AIモデル更新をトリガでき、AIプラットフォームは、既存のAIモデルに対するユーザの更新命令を受信する。AIプラットフォームは、推論プラットフォームに更新済みのAIモデルを提供できる。
【0113】
ここで、AIプラットフォームは、推論精度を表示するときに、更新済みのAIモデルのモデル特性またはユーザによって指定された情報を、例えば、勾配変化傾向、訓練に使用される損失関数の減少傾向、検証セットの精度変化傾向、中間出力結果、または中間特徴視覚化のうちのいずれか1つ以上を表示するのに役立つ他の情報を、表示インターフェイスでさらに表示できる。
【0114】
可能な一実装において、ステップ703では、様々な差に基づいて様々な更新方式が使用されてよい。
【0115】
差がオフライン更新条件を満たす場合は、AIプラットフォームが推論データセットを使用して既存のAIモデルをオフラインで更新する。差がオフライン更新条件を満たさない場合は、AIプラットフォームが推論データセットを使用して既存のAIモデルをオンラインで更新する。
【0116】
オフライン更新条件は、予め設定される。例えば、本出願の本実施形態において、画像の場合、オフライン更新条件は、画像の再構築誤差と訓練画像セットの再構築誤差との差が第1の値より大きく、予測された画像の予測誤差と画像の特徴に対応する元の画像との差が第2の値より大きいことである。別の一例として、本出願の本実施形態において、スイッチで異常検出が行われる場合は、推論データセット内のデータはパケット損失率であり、オフライン更新条件は、推論データセット内の最大パケット損失率と訓練データセット内の最大パケット損失率との差が第3の値より大きいことである。
【0117】
本実施形態において、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差がオフライン更新条件を満たすかどうかを決定できる。差がオフライン更新条件を満たす場合、それは、推論データセットのデータ分布と訓練データセットのデータ分布との差が大きいこと、既存のAIモデルが推論データセットに対して推論を実行するのに適していないこと、オンライン更新が遅いこと、およびオンライン更新が適していないことを意味する。AIプラットフォームは、推論データセットを使用して既存のAIモデルをオフラインで更新する。
【0118】
差がオフライン更新条件を満たさない場合、それは、推論データセットのデータ分布と訓練データセットのデータ分布との差があまり大きくないことを意味し、既存のAIモデルは推論データセットに対して推論を実行するのに適していないが、オンライン更新を実行できる。AIプラットフォームは、推論データセットを使用して既存のAIモデルをオンラインで更新する。
【0119】
このように、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて更新方式を柔軟に選択できる。
【0120】
可能な一実装において、オンライン更新中には、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、更新されたAIモデル内のパラメータが決定され得る。詳細は以下の通りである。
【0121】
AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して、既存のAIモデル内の目標部分のパラメータ変化量を決定し、現在のパラメータと既存のAIモデル内の目標部分のパラメータ変化量とに基づいて、更新済みのAIモデル内の目標部分のパラメータを決定する。
【0122】
目標部分は、既存のAIモデル内の1つのサブモデルであるか、または既存のAIモデル内のすべてのサブモデルである。
【0123】
本実施形態において、AIプラットフォームは、データ分布の変化とパラメータ変化量との関係を得ることができる。この関係は、AIプラットフォームによるプリモデリングによって得られてよく、または別のプラットフォームから得られてもよい。AIプラットフォームは、データ分布の変化とパラメータ変化量との関係を得、推論データセットのデータ分布と訓練データセットのデータ分布との差、およびデータ分布の変化とパラメータ変化量との関係を使用することによって、目標部分のパラメータ変化量を決定することができる。次いで、AIプラットフォームは、現在のパラメータと既存のAIモデル内の目標部分のパラメータ変化量とを使用して、更新済みのAIモデル内の目標部分のパラメータを決定する。AIプラットフォームは、更新済みのAIモデルを得るために、既存のAIモデル内の目標部分の現在のパラメータの値を目標部分のパラメータで置き換える。このように、AIモデルの一部またはすべてのパラメータがオンラインで更新され得る。
【0124】
可能な一実装において、既存のAIモデルが更新されるときには、データセット(これは、これ以降、目標データセットと呼ばれることがある)に基づいて既存のAIモデルに対して更新処理が実行されてよく、処理は以下の通りである。
【0125】
AIプラットフォームは、推論データセットに基づいて目標データセットを構築し、目標データセットを使用して既存のAIモデルを更新する。
【0126】
本実施形態において、既存のAIモデルは、推論データセットを使用して目標データセットを構築でき、例えば、推論データセット内のいくつかのデータを目標データセット内のデータとしてサンプリングできる。次いで、AIプラットフォームは、目標データセットを使用して既存のAIモデルに対して更新処理を実行して、更新済みのAIモデルを得る。
【0127】
可能な一実装において、目標データセットを使用して既存のAIモデルが更新されるときには、ユーザが目標データセットの構築に参加してよく、または目標データセットの構築に参加しなくてもよい。ユーザは、目標データセットの構築に参加する場合に、推論データの推論結果を確認でき、またはAIプラットフォームによって提供される目標データにラベルを付けることができる。この場合は、目標データセットがラベル付きデータを含み、AIプラットフォームは、教師あり学習技術などを用いて既存のAIモデルを更新できる。加えて、AIプラットフォームは、必要に応じて、教師なし学習技術を用いて既存のAIモデルを更新できる。さらに、AIプラットフォームは、転移学習技術とドメイン適応技術を用いて既存のAIモデルに対して微調整と適応を行うことができる。
【0128】
ユーザが目標データセットの構築に参加しない場合は、AIプラットフォームが、教師なし学習技術を用いて既存のAIモデルを更新でき、または半教師あり学習技術を用いて既存のAIモデルを更新できる。
【0129】
具体的な処理は以下の通りである。1.ユーザの参加に基づいて目標データセットが構築され得る。AIプラットフォームは、推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して目標データを表示し、ユーザによる目標データのラベル付けの結果を得、目標データと、目標データのラベル付け結果とに基づいて、目標データセットを構築する。
【0130】
サンプル条件は、推論データセット内の典型的なデータを指示するために使用される。
【0131】
本実施形態において、AIプラットフォームは、推論データセットからサンプル条件を満たす目標データを決定できる。次いで、AIプラットフォームは、表示インターフェイスを使用して目標データを表示する。具体的に述べると、目標データは、推論データセット内でラベル付けされていないデータであり得、または推論データセットに対して推論が行われた後のラベルを有するデータであり得る。目標データが推論データセット内でラベル付けされていないデータである場合は、ユーザが表示インターフェイスで目標データにラベルを付けることができ、AIプラットフォームは、ユーザによる目標データのラベル付けの結果を得る。目標データが推論データセットに対して推論が行われた後のラベルを有するデータである場合は、ユーザが表示インターフェイスで目標データの既存のラベルを確認でき、AIプラットフォームはまた、ユーザによる目標データのラベル付けの結果を得ることができる。AIプラットフォームは、目標データセット内のラベル付きデータの一部として目標データと目標データのラベル付け結果とを使用できる。
【0132】
2.ユーザ参加がある場合、AIプラットフォームは、表示インターフェイスを使用して推論データセットの推論結果を表示できる。ユーザは、推論結果に対してラベル確認を行う。AIプラットフォームは、ラベル確認が行われる推論結果を、目標データセット内のラベル付きデータとして得ることができる。加えて、ユーザが推論結果に対してラベル確認を行うときに、新しいカテゴリが見つかった場合は、ラベル確認が行われる結果に新しいカテゴリのラベルが加えられ得、新しいカテゴリのラベルも目標データセット内のラベル付きデータとして使用される。
【0133】
3.ユーザ参加がない場合、目標データセットは、現在のラベル付きデータでAIプラットフォームによってサンプリングおよび/または生成され推論データセットのデータ分布に適したデータをさらに含み得る。現在のラベル付きデータは、訓練データセット内のデータを含み得、別の既存のシナリオにおけるラベル付きデータをさらに含み得る。ここで、「サンプリング」とは、現在のラベル付きデータで、推論データセットのデータ分布に適したデータを見つけることを意味する。ここで、「生成」とは、現在のラベル付きデータとデータ生成アルゴリズムとに基づいて推論データセットのデータ分布に適したデータを生成することを意味する。このように、推論データセットのデータ分布に適した少量の既存データがある場合は、AIモデルの更新に役立てるため、推論データセットのデータ分布に適した大量のデータも提供され得る。
【0134】
ユーザ参加がある場合に、ユーザがリアルタイムでデータのラベル付けに参加でき、AIプラットフォームが、ユーザによってラベル付けされたラベル付きデータを使用してリアルタイムで訓練を実行できることに注意されたい。
【0135】
可能な一実装において、目標データセットを使用して既存のAIモデルに対して更新処理が実行されることは、以下の通りであり得る。
【0136】
AIプラットフォームは、目標データセット内のデータのデータ特性に基づいて、既存のAIモデルを更新するためのポリシーを得、ポリシーに基づいて既存のAIモデルを更新する。
【0137】
本実施形態において、AIプラットフォームは、目標データセット内のデータのデータ特性と、知識ベース内の演繹的知識および/またはドメイン知識とを使用して、既存のAIモデルを更新するためのポリシーを選択できる。次いで、AIプラットフォームは、更新済みのAIモデルを得るために、ポリシーを使用して既存のAIモデルを更新する。
【0138】
例えば、目標データセット内に少量のラベル付きデータがある場合は、知識ベース内の演繹的知識に基づいて、少量のラベル付きデータがあるときに転移学習技術および/または少数ショット学習技術が使用されることが学習される。AIプラットフォームは、転移学習技術および/または少数ショット学習技術を使用して既存のAIモデルを更新できる。
【0139】
目標データセット内に大量のラベル付きデータがある場合は、知識ベース内の演繹的知識に基づいて、大量のラベル付きデータがあるときに教師あり学習技術が使用されることが学習される。AIプラットフォームは、教師あり学習技術を使用してAIモデルを更新できる。ここでの教師あり学習技術が一般的な用語にすぎず、一例として使用されているにすぎないことに注意されたい。具体的な実装では、教師あり学習技術は特定の教師あり学習訓練方法であり得、対応する訓練方法はタスクやシナリオによって異なる。
【0140】
可能な一実装において、AIモデル更新プロセスで、ユーザ参加がない場合は、目標データセット内のラベル付きデータは、現在のラベル付きデータでサンプリングおよび/または生成され推論データセットのデータ分布に適したデータである。目標データセットが推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含む場合、AIプラットフォームは、目標データセット内のラベルなしデータを使用して、既存のAIモデル内の特徴抽出部分を教師なし方式で最適化し、最適化された特徴抽出部分と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新することができる。
【0141】
本実施形態において、目標データセットが、推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含む場合、AIプラットフォームは、最適化された特徴抽出部分を得るために、目標データセット内のラベルなしデータを使用して、既存のAIモデル内の特徴抽出部分を教師なし方式で最適化できる。ここで、教師なし方式は、自己教師あり方式などであってよい。次いで、AIプラットフォームは、更新済みのAIモデルを得るために、最適化された特徴抽出部分と推論データセットのデータ分布に適したラベル付きデータとを使用して、既存のAIモデルをさらに更新できる。このように、ユーザ参加がない場合でも、既存のAIモデルは更新できる。例えば、図8に示されているように、ユーザ参加がない場合に、AIプラットフォームは、推論データセットに対して推論を実行するときに推論結果と目標データとを得、(図8の(a)に示されているように)推論結果のみをユーザに提供し、目標データはユーザに提供しない。AIプラットフォームは、既存のAIモデルを更新する。AIプラットフォームは、既存のAIモデルを更新した後に、(図8の(b)に示されているように)更新済みのAIモデルをユーザに提供できる。その後、AIプラットフォームは、更新済みのAIモデルを使用して推論を実行して、推論結果と目標データとを得、(図8の(c)に示されているように)ユーザに推論結果を提供することができる。勿論、図8において、目標データは出力されなくてよい。
【0142】
ここで、「最適化された特徴抽出部分と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルが更新される」が、勿論、最適化された特徴抽出部分と目標データセット内のラベルなしデータおよびラベル付きデータとに基づいて、既存のAIモデルが更新されることであり得ることに注意されたい。
【0143】
可能な一実装において、AIモデル更新プロセスで、ユーザ参加がない場合は、目標データセット内のラベル付きデータは、現在のラベル付きデータでサンプリングおよび/または生成され推論データセットのデータ分布に適したデータである。目標データセットが推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含む場合、AIプラットフォームは、ラベルなしデータのラベル付け結果を得るために、既存のAIモデルを使用して目標データセット内のラベルなしデータにラベルを付け、ラベルなしデータのラベル付け結果と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新することができる。
【0144】
本実施形態において、目標データセット内のデータがラベルなしデータである場合に、AIプラットフォームは、既存のAIモデルを使用して目標データセット内のラベルなしデータにラベルを付け、ラベルなしデータのラベル付け結果(ここでのラベル付け結果は、不正確なラベルであり得、「擬似ラベル」と呼ばれることがある)と対応する信頼度とを得る。そして、AIモデルは、更新済みのAIモデルを得るために、信頼度の高いラベル付け結果(例えば、信頼度が既定の閾値より高いラベル付け結果)と、目標データセット内のラベル付きデータとを使用して、既存のAIモデルを更新する。
【0145】
あるいは、AIモデルは、信頼度の高いラベル付け結果を使用して既存のAIモデルを訓練して、訓練されたAIモデルを得る。次いで、AIプラットフォームは、更新済みのAIモデルを得るために、目標データセット内のラベル付きデータ(ラベル付きデータの一部は、サンプリングおよび/または生成され推論データセットのデータ分布に適したラベル付きデータである)を使用して、訓練されたAIモデルをさらに更新することができる。このように、ユーザ参加がない場合でも、既存のAIモデルは更新できる。
【0146】
可能な一実装において、AIモデル更新プロセスで、ユーザ参加がある場合は、AIプラットフォームは、目標データセット内のラベル付きデータに基づいて、教師あり学習学習技術を使用して、既存のAIモデルを更新できる。具体的に述べると、タスクが変更されない場合は、更新済みのAIモデルを得るために、教師あり学習学習技術を直接使用して既存のAIモデルを更新する。タスクが変更される場合に(例えば、新しいカテゴリが出現するため、分類が必要)、新しいカテゴリが目標データセット内に少量のラベル付きデータを有するならば、AIプラットフォームは、少数ショット学習技術を用いて既存のAIモデルを更新できる。
【0147】
例えば、図9に示されているように、ユーザ参加がある場合は、AIプラットフォームは、推論データセットに対して推論を実行するときに推論結果と目標データを得、(図9の(a)に示されているように)推論結果と目標データをユーザに提供する。ユーザは、(図9の(b)に示されているように)推論結果のラベル確認および/または目標データのラベル付け結果(すなわち、ラベル付きデータ)をAIプラットフォームに提供できる。AIプラットフォームは、更新済みのAIモデルを得るために、ユーザによって提供されたラベル付きデータに基づいて既存のAIモデルを更新し、(図9の(c)に示されているように)更新済みのAIモデルをユーザに提供することができる。その後、AIプラットフォームは、更新済みのAIモデルを使用して推論を実行して推論結果と目標データを得、(図9の(d)に示されているように)推論結果と目標データをユーザに提供することができる。
【0148】
加えて、タスクが変更されない場合に、目標データセット内に少量のラベル付きデータがあるなら、AIプラットフォームは、現在のラベル付きデータにおいて、推論データセットのデータ分布に適したデータをさらにサンプリングおよび/または生成して、目標データセット内のラベル付きデータを拡張できる。
【0149】
加えて、少数ショット学習技術を用いて既存のAIモデルを更新する場合は、表現学習によって既存のAIモデル内の特徴抽出部分がさらに最適化され得る。
【0150】
可能な一実装において、AIプラットフォームが推論データセットのデータ分布と訓練データセットのデータ分布との差を決定するプロセスは以下の通りである。
【0151】
AIプラットフォームは、データ分布をモデリングするための確率モデルを得る。ここで、AIプラットフォームは、AIプラットフォームによるモデリングを通じて確率モデルを得ることができ、または別のプラットフォームから確率モデルを得ることもできる。AIプラットフォームは、ガウス混合分布を適合させるために、確率モデルを使用して訓練データセットの特徴を抽出できる。AIプラットフォームは、訓練データセットの特徴でガウス分布を適合させて、推論データセットの尤度を決定できる。この尤度は、訓練データセットのデータ分布と推論データセットのデータ分布との差を表す。尤度が大きいほど差が小さいことを意味し、尤度が小さいほど差が大きいことを意味する。
【0152】
ここで、確率モデリング中に使用される分布が、ガウス混合分布、またはパラメトリック分布フィッティング法などであってよいことに注意されたい。勿論、分布は、他の分布、ノンパラメトリック分布フィッティングアルゴリズム、または複雑な確率グラフィカルモデルなどであってよい。
【0153】
上記では、既存のAIモデルを1回更新する過程のみが説明されていることに注意されたい。運用過程では、既存のAIモデルが周期的に連続的に更新され得る。図10は、AIモデルを更新する概略的な循環図である。ステップ1001において、AIプラットフォームは推論データセットを得る。ステップ1002において、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定する。ステップ1003において、AIプラットフォームは、更新済みのAIモデルを得るために、推論データセットを使用して現在存在するAIモデルを更新する。ステップ1004において、AIプラットフォームは、更新済みのAIモデルを配備し、更新済みのAIモデルは、現在存在するAIモデルとなる。ステップ1005において、AIプラットフォームはステップ1002に戻る。
【0154】
図10では、周期的なプロセスのみが説明されており、そのプロセスは、AIモデルの更新が停止されない限り、実際に周期的である。具体的に述べると、AIプラットフォームは、推論データソースにアクセスし、推論データソースから推論データセット内のデータを絶えず得、推論データセットのデータ分布を決定し、次いで、推論データセットのデータ分布と訓練データセットのデータ分布とに差があるかどうかを決定する。差がある場合、AIプラットフォームは、既存のAIモデルを更新し、更新済みのAIモデルを配備し、次いでステップ1002に戻る。ステップ1001およびステップ1002は、ステップ1003およびステップ1004と非同期の関係にある。理由は次の通りである。推論データセット内のデータは絶えず更新され、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布とに差があるかどうかを絶えず決定する。しかしながら、ステップ1003およびステップ1004は、推論データセットのデータ分布と訓練データセットのデータ分布とに差がある場合にのみ実行される。
【0155】
ユーザは、AIプラットフォームに停止命令を入力して、既存のAIモデルを更新するようにAIプラットフォームを制御できる。あるいは、推論データセットのデータ分布と訓練データセットのデータ分布との差が小さく、更新済みのAIモデルの精度変化が既存のAIモデル(すなわち、更新前に存在するAIモデル)のそれより小さいとAIプラットフォームが決定した場合は、AIプラットフォームは、AIモデルの更新を能動的に停止できる。
【0156】
AIモデルの更新を停止した後に、推論データセットのデータ分布と訓練データセットのデータ分布との差が大きいと再決定した場合、AIプラットフォームは、ユーザに更新プロンプトメッセージを提供できる(例えば、SMSメッセージを使用してユーザの端末へ更新プロンプトメッセージを送信できる、または表示インターフェイスを使用して更新プロンプトメッセージを表示できる)。ユーザによって入力される更新確認命令を受信すると、AIプラットフォームはAIモデル更新手順を再開できる。勿論、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差が大きいと再決定した場合に、AIモデル更新手順を能動的に開始することもできる。
【0157】
本出願の本実施形態において、AIモデルを更新する方法は、画像内の動作が識別される適用シナリオに適用されてよく、例えば、物流シナリオにおける非標準的な仕分け動作の識別に適用されてよい。この適用シナリオでは、AIプラットフォームは、既存のAIモデルに基づいて推論を実行し、既存のAIモデルを更新できる。
【0158】
この適用シナリオでは、推論データセットはユーザの監視ビデオデータであり、既存のAIモデルは非標準的な仕分け動作を識別できるモデルである。この適用シナリオでは、訓練データセットもビデオデータである。図11にはシナリオの概略図が示されている。AIプラットフォームは、ビデオ推論モジュール(すなわち、前述の推論モジュール103)、保管サービスモジュール(すなわち、前述のデータ保管モジュール105)、モデル訓練モジュール(すなわち、前述のモデル訓練モジュール102は)、およびユーザI/Oモジュール(すなわち、前述のユーザI/Oモジュール101)などを含む。ビデオ推論モジュールは、カメラから得られる推論データセットに対して推論を実行するように構成される。保管サービスモジュールは、推論データセットなどを保管するように構成される。モデル訓練モジュールは、既存のAIモデルを更新するように構成される。ユーザI/Oモジュールは、ユーザとやり取りするように構成される。
【0159】
AIモデル更新手順は、推論データセットのデータ分布と訓練データセットのデータ分布との差を決定するプロセス、既存のAIモデルをオンラインで更新するプロセス、推論データセットに対して推論を実行するプロセス、ユーザに目標データを提供するプロセス、および既存のAIモデルをオフラインで更新するプロセスなどを含み得る。
【0160】
1.推論データセットのデータ分布と訓練データセットのデータ分布との差を決定するプロセス:
所与の入力推論データセットについて、AIプラットフォームは、推論データセット内のビデオフレームを抽出し、保管されたディープニューラルネットワークを使用してビデオフレームのディープ特徴を抽出し、および/または別のアルゴリズムを使用してノンディープ特徴を抽出することができる。例えば、ノンディープ特徴は、フレーム差またはオプティカルフローである。フレーム差は、隣接する2つの画像フレームに対して減算を行った結果であり、オプティカルフローは、隣接する2つの画像フレーム内の画素間の位置変化関係であり、画素移動の変位場である。
【0161】
ここで、推論データセット内のデータがビデオストリームまたは或る期間内の連続ビデオである場合に、AIプラットフォームが、ウィンドウをスライドさせることによって、またはビデオセグメント分割によって、適切な持続時間を有する短いビデオを入力として得ることができることに注意されたい。推論データセット内のビデオフレームを抽出する方式は、すべてのビデオフレームを抽出すること、均一サンプリング、不均一サンプリング、およびマルチスケールサンプリングを含むが、これらに限定されない。不均一サンプリングは、キーフレームやフレーム間類似度などに基づいてビデオフレームを選択することであってよく、具体的には、キーフレームとフレーム間類似度が所定の値未満であるビデオフレームを選択することなどであってよい。マルチスケールサンプリングは、様々なサンプリング間隔を使用して短いビデオの複数のセグメントを得、ディープ特徴を別々に抽出し、抽出されたディープ特徴を統合して前述のディープ特徴を得ることであってよい。ディープニューラルネットワークは、2次元/3次元畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、長短期記憶ネットワーク、2ストリーム畳み込みニューラルネットワーク、ならびにそれらの組み合わせおよび変種を含むが、これらに限定されない。
【0162】
AIプラットフォームは、ビデオ予測モデルを保管する。ビデオ予測モデルは、AIプラットフォームによって確立されてよく、または別のプラットフォームから得られてもよい。図12に示されているように、AIプラットフォームは、前述の抽出された特徴(特徴は、ディープ特徴および/またはノンディープ特徴を含む)を使用して将来のビデオフレームを予測できる。次いで、AIプラットフォームは、予測されたビデオフレームと推論データセット内の実際のビデオフレームとの予測誤差を計算し、1回の予測の予測誤差または複数回の予測の予測誤差の平均値を使用して、訓練データセットのデータ分布と推論データセットのデータ分布との差を表す。具体的に述べると、AIプラットフォームは、将来のビデオフレームを予測するときに、1つ以上のフレームを予測できる。前述のビデオ予測モデルは、2次元/3次元畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、敵対的生成ネットワーク、変分オートエンコーダ、ならびにそれらの組み合わせおよび変種を含むが、これらに限定されない。
【0163】
データ分布モデリング中には、別の方式が使用されてもよく、例えば、ビデオフレーム補間、ビデオ再構築、およびフレーム間類似度の計算が使用されてもよい。ビデオフレーム補間は、隣接していないビデオフレームを使用することによって、隣接していないビデオフレームが分離されるビデオフレームを予測する。ビデオ再構築は、現在のビデオフレームの特徴に基づいて現在のビデオフレームの再構築されたビデオフレームを再構築し、再構築されたビデオフレームを現在のビデオフレームと比較して再構築誤差を得、1つのビデオフレームの再構築誤差または複数のビデオフレームの再構築誤差の平均値を使用して、訓練データセットのデータ分布と推論データセットのデータ分布との差を表す。フレーム間類似度の計算は、2つの隣接するビデオフレームの類似度を計算し、2つの隣接するビデオフレームの1つの類似度または複数の隣接する2つのビデオフレームの類似度の平均値を使用して、訓練データセットのデータ分布と推論データセットのデータ分布との差を表すことを意味する。
【0164】
加えて、データ分布モデリング中には、空間次元において、各ビデオフレームの全体画像がモデリングに使用されてよく、各ビデオフレームの局所領域がモデリングに使用されてもよく、または2つの方式が組み合わされる。同様に、全体的な方式(ビデオのセグメント全体が考慮される)、局所的な方式(ビデオのセグメント全体内のビデオの一部が考慮される)、またはそれらの組み合わせと同様のモデリング方式も時間次元で使用されてよい。
【0165】
AIプラットフォームは、予測誤差を計算するときに、L1距離(2つの予測されたビデオフレームの差)、L2距離(2つの予測されたビデオフレームの差の2乗)、Wasserstein距離(アースムーバー距離(earth mover’s distance)と呼ばれることもある)、学習可能メトリック、ならびにそれらの組み合わせおよび変種を含むがこれらに限定されない、タスク要件を満たす任意のメトリックを使用できる。
【0166】
上記の説明では、推論データセットのデータ分布と訓練データセットのデータ分布との差が、予測誤差を使用して直接表現される。勿論、予測誤差に対して線形または非線形変換を行うことによって得られる結果が表現に使用されてもよい。
【0167】
データ分布の変化を決定する上記の手順は、図12に記載されている。
【0168】
2.既存のAIモデルをオンラインで更新するプロセス:
本実施形態において、推論データセットのデータ分布と訓練データセットのデータ分布との差が差分値未満である場合は、AIプラットフォームは、既存のAIモデルをオンラインで更新できる。具体的に述べると、図13に示されているように、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差をパラメータ生成器(パラメータ生成器は、パラメータ変化量とデータ分布差との対応関係をモデリングする)に入力でき、パラメータ生成器の出力は、上述した目標部分のパラメータ変化量である。AIプラットフォームは、既存のAIモデル内の目標部分の現在のパラメータの値とパラメータ変化量とを加算して、更新済みのAIモデル内の目標部分のパラメータの値を得る。
【0169】
ここで、目標部分のパラメータ変化量は、推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して決定される。勿論、目標部分のパラメータ変化量は、推論データセット内の一部または全部のデータおよび差を使用して決定されてもよい。これは、本出願の本実施形態で限定されない。
【0170】
3.推論データセットに対して推論を実行するプロセス:
本実施形態において、既存のAIモデル(または更新済みのAIモデル)は、推論データセット内のビデオフレームに対して推論を実行して、動作が識別された推論結果を出力し、AIプラットフォームは、表示インターフェイスを使用して推論結果を表示する。
【0171】
4.ユーザに目標データを提供するプロセス
AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、推論データセットからサンプル条件を満たす目標データを得ることができる。
【0172】
本実施形態において、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して、スクリーニングを通じて推論データからサンプル条件を満たす目標データを得ることができる。サンプル条件を満たす目標データは、既存のAIモデルを更新するのに適している。
【0173】
任意に選べることとして、AIプラットフォームは、不確実性を使用して目標データを決定でき、処理は以下の通りである。
【0174】
AIプラットフォームは、既存のAIモデルを使用して推論データセット内の各推論データの不確実性を出力でき、不確実性は、アクションクラス確率、情報エントロピ、相互情報量、および分散のいずれか1つを使用して表され得る。
【0175】
次いで、AIプラットフォームは、推論データセットのデータ分布と訓練データセットのデータ分布との差と、各推論データに対応する不確実性とを使用することによって、推論データセットからサンプル条件を満たす目標データを得る。
【0176】
具体的に述べると、アクションクラス確率を用いて不確実性が表され、予測誤差を用いて推論データセットのデータ分布と訓練データセットのデータ分布との差が表され、予測誤差を測定するためにL1距離が使用され、不確実性を測定するためにアクションクラス確率のエントロピが使用される場合、サンプル条件を満たす目標データは以下の通りである。
【数1】
【0177】
式(1)において、xは目標データ(サンプルと呼ばれることもある)を表す。第1の項目において、I(x)は実際のビデオフレームを表し、
【数2】
は予測されたビデオフレームを表し、第2の項目において、pi(x)は、xに対応するi番目のクラスの動作の確率を表し、λ1およびλ2は、ハイパーパラメータとして使用され、2つの項目を重み付けするための2つの項目の別々の重みであり、xは選択されたラベル付け対象目標データを表す。式(1)の意味は、
【数3】
が最大値を有するときに存在するxがxであるということである。このように、推論データセット内の典型的なデータが得られ得、既存のAIモデルを更新するのにより適しているため、更新済みのAIモデルはより良好な推論精度を有する。
【0178】
図14に示されているように、AIプラットフォームは、ユーザに目標データを提供し、ユーザはxにラベル付けしてラベル付け結果yを得る。AIプラットフォームは、{x*,y*}に基づいて既存のAIモデルを更新する。
【0179】
5.既存のAIモデルをオフラインで更新するプロセス:
AIプラットフォームは、教師あり技術を用いて既存のAIモデルを更新できる。AIプラットフォームは、目標データセットに基づいて既存のAIモデルを最適化してよく、または目標データセットに基づいてAIモデルを更新済みのAIモデルとして直接再訓練してもよい。既存のAIモデルが更新されるときに、パラメータを更新するために使用される最適化アルゴリズムは、ランダム勾配降下アルゴリズムおよび共役勾配降下アルゴリズムを含むが、これらに限定されない。
【0180】
更新済みのAIモデルを評価するプロセスと更新済みのAIモデルを配備するプロセスは、上記と同じであり、ここでは詳細を再度説明しない。
【0181】
このように、本出願の本実施形態の技術的解決策では、データ分布の変化を認識できる。ローカルパラメータは、AIモデルの適応能力を用いて調整される。加えて、新しいデータ分布に絶えず適応し、AIモデルの推論精度を保証するために、ユーザとやり取りして、AIモデルに対して全体的な更新をオフラインで実行することによって新しいラベル付きデータが得られる。加えて、AIプラットフォームは、AIモデルが絶え間なく自動的に更新されるように制御でき、ユーザはアルゴリズム関連の専門知識を有する必要がない。
【0182】
加えて、本出願の本実施形態において、AIモデルは、ユーザ参加がある場合とユーザ参加がない場合に更新され得る。さらに、AIモデルが更新されるときに、ラベル付きデータの量に制限はなく、タスクが変更されるかどうかに制限はなく、AIプラットフォームは、バッチデータ(100個の連続するピクチャ)やストリームデータ(徐々に生成されるビデオデータ)など、いかなる形態の推論データセットにも適し得る。
【0183】
図15は、本出願の一実施形態によるAIモデルを更新する装置の構造の図である。装置は、ソフトウェア、ハードウェア、またはそれらの組み合わせを使用して、装置の一部または全部として実装されてよい。いくつかの実施形態において、AIモデルを更新する装置は、前述のAIプラットフォーム100の一部または全部であってよい。
【0184】
本出願の本実施形態で提供される装置は、本出願の実施形態の図7の手順を実施できる。この装置は、取得モジュール1510と、決定モジュール1520と、更新モジュール1530とを含む。
【0185】
取得モジュール1510は、推論データセットを得、推論データセット内の推論データが、推論を実行するために既存のAIモデルに入力されるために使用される、ように構成され、取得モジュールは、具体的には、ステップ701の取得機能を実施し、かつステップ701に含まれる暗黙的なステップを実行するように構成されてよい。
【0186】
決定モジュール1520は、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定し、訓練データセットが、既存のAIモデルを訓練するために使用されるデータセットである、ように構成され、決定モジュールは、具体的には、ステップ702の決定機能を実施し、かつステップ702に含まれる暗黙的なステップを実行するように構成されてよい。
【0187】
更新モジュール1530は、更新済みのAIモデルを得るために、推論データセットを使用して既存のAIモデルを更新するように構成され、具体的には、ステップ703の更新機能を実施し、かつステップ703に含まれる暗黙的なステップを実行するように構成されてよい。
【0188】
可能な一実装において、既存のAIモデルは推論プラットフォームに配備され、決定モジュール1520は、更新済みのAIモデルが得られた後に、更新済みのAIモデルの推論精度を既存のAIモデルの推論精度と比較し、かつ更新済みのAIモデルの推論精度が既存のAIモデルの推論精度より良好であると決定するようにさらに構成される。
【0189】
更新モジュール1530は、更新済みのAIモデルを推論プラットフォームに配備するようにさらに構成され、その結果、更新済みのAIモデルは既存のAIモデルの代わりに推論を実行する。
【0190】
可能な一実装では、図16に示されているように、装置は、既存のAIモデルの代わりに推論を実行するために更新済みのAIモデルが推論プラットフォームに配備される前に、表示インターフェイスを使用して既存のAIモデルの推論精度と更新済みのAIモデルの推論精度とを表示するように構成された表示モジュール1540と、
既存のAIモデルに対するユーザの更新命令を受信するように構成された受信モジュール1550とをさらに含む。
【0191】
可能な一実装において、更新モジュール1530は、
差がオフライン更新条件を満たす場合に、推論データセットを使用して既存のAIモデルをオフラインで更新し、または
差がオフライン更新条件を満たさない場合に、推論データセットを使用して既存のAIモデルをオンラインで更新する
ように構成される。
【0192】
可能な一実装において、更新モジュール1530は、
推論データセットのデータ分布と訓練データセットのデータ分布との差を使用して、既存のAIモデル内の目標部分のパラメータ変化量を決定し、かつ
現在のパラメータと既存のAIモデル内の目標部分のパラメータ変化量とに基づいて、更新済みのAIモデル内の目標部分のパラメータを決定する
ように構成される。
【0193】
可能な一実装において、更新モジュール1530は、
推論データセットに基づいて目標データセットを構築し、かつ
目標データセットを使用して既存のAIモデルを更新する
ように構成される。
【0194】
可能な一実装において、更新モジュール1530は、
推論データセットからサンプル条件を満たす目標データを得、表示インターフェイスを使用して目標データを表示し、
ユーザによる目標データのラベル付けの結果を得、かつ
目標データと目標データのラベル付け結果とに基づいて、目標データセットを構築する
ように構成される。
【0195】
可能な一実装において、更新モジュール1530は、
推論データセットのデータ分布と訓練データセットのデータ分布との差に基づいて、推論データセットからサンプル条件を満たす目標データを得、目標データが既存のAIモデルを更新するのに適している、
ように構成される。
【0196】
可能な一実装において、目標データセットは、現在のラベル付きデータでサンプリングおよび/または生成され推論データセットのデータ分布に適したラベル付きデータをさらに含み、現在のラベル付きデータは訓練データセット内のデータを含む。
【0197】
可能な一実装において、目標データセットは、推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含む。
【0198】
更新モジュール1530は、
目標データセット内のラベルなしデータを使用して、既存のAIモデル内の特徴抽出部分を教師なし方式で最適化し、かつ
最適化された特徴抽出部分と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新する
ように構成される。
【0199】
可能な一実装において、目標データセットは、推論データセットのデータ分布に適したラベルなしデータおよびラベル付きデータを含む。
【0200】
更新モジュール1530は、
ラベルなしデータのラベル付け結果を得るために、既存のAIモデルを使用して目標データセット内のラベルなしデータにラベルを付け、かつ
ラベルなしデータのラベル付け結果と目標データセット内のラベル付きデータとに基づいて、既存のAIモデルを更新する
ように構成される。
【0201】
可能な一実装において、更新モジュール1530は、
目標データセット内のデータのデータ特性に基づいて、既存のAIモデルを更新するためのポリシーを得、かつ
ポリシーに基づいて既存のAIモデルを更新する
ように構成される。
【0202】
可能な一実装において、取得モジュール1510は、ユーザによって入力されるAIモデル更新期間を得るようにさらに構成される。
【0203】
決定モジュール1520は、
AIモデル更新期間に基づいて、推論データセットのデータ分布と訓練データセットのデータ分布とに差があると決定する
ように構成される。
【0204】
本出願の本実施形態におけるモジュールへの分割は一例であり、論理的な機能分割にすぎない。実際の実装時には別の分割方式が使用されてもよい。加えて、本出願の実施形態の機能モジュールは、1つのプロセッサに統合されてよく、または物理的に独立して存在してもよい。あるいは、2つ以上のモジュールが1つのモジュールに統合されてもよい。統合モジュールは、ハードウェアの形態で実装されてよく、またはソフトウェア機能モジュールの形態で実装されてもよい。
【0205】
本出願は、図4に示されている計算デバイス400をさらに提供する。計算デバイス400内のプロセッサ402は、前述のAIプラットフォームによって実行される方法を実行するために、メモリ401に保管されたプログラムおよび画像セットを読み取る。
【0206】
本出願で提供されるAIプラットフォーム100内のモジュールは、同じ環境または異なる環境内の複数のコンピュータ上に分散して配備されてよい。したがって、本出願は、図17に示されている計算デバイスをさらに提供する。計算デバイスは、複数のコンピュータ1700を含み、各コンピュータ1700は、メモリ1701と、プロセッサ1702と、通信インターフェイス1703と、バス1704とを含む。メモリ1701、プロセッサ1702、および通信インターフェイス1703は、バス1704を使用して互いに通信可能に接続される。
【0207】
メモリ1701は、読み取り専用メモリ、静的記憶装置、動的記憶装置、またはランダムアクセスメモリであってよい。メモリ1701は、プログラムを保管できる。メモリ1701に保管されたプログラムがプロセッサ1702によって実行されるときに、プロセッサ1702と通信インターフェイス1703は、AIプラットフォームによって実行されるAIモデルを更新するいくつかの方法を実行するように構成される。メモリは、画像セットをさらに保管できる。例えば、メモリ1701内の保管リソースの一部は、推論データセットを保管するように構成された推論データセット保管モジュールにグループ分けされ、メモリ1701内の保管リソースの一部は、AIモデルライブラリを保管するように構成されたAIモデル保管モジュールにグループ分けされる。
【0208】
プロセッサ1702は、汎用中央処理装置、マイクロプロセッサ、特定用途向け集積回路、グラフィックス処理装置、または1つ以上の集積回路を使用できる。
【0209】
通信インターフェイス1703は、コンピュータ1700と別のデバイスまたは通信ネットワークとの通信を実施するために、トランシーバなどのトランシーバモジュールを使用する。例えば、推論データセットは、通信インターフェイス1703を使用して得られてよい。
【0210】
バス504は、コンピュータ1700のコンポーネント(例えば、メモリ1701、プロセッサ1702、および通信インターフェイス1703)間で情報を転送するための経路を含み得る。
【0211】
通信ネットワークを使用して、前述のコンピュータ1700間に通信経路が確立される。それぞれのコンピュータ1700上では、ユーザI/Oモジュール101、モデル訓練モジュール102、推論モジュール103、AIモデル保管モジュール104、またはデータ保管モジュール105のうちのいずれか1つ以上が実行される。いずれかのコンピュータ1700は、クラウドデータセンター内のコンピュータ(サーバなど)、エッジデータセンター内のコンピュータ、または端末計算デバイスであってよい。
【0212】
前述の添付の図面に対応する手順の説明は、それぞれの焦点を有している。或る手順で詳しく説明されていない部分については、別の手順の関連する説明を参照されたい。
【0213】
前述の実施形態の全部または一部は、ソフトウェア、ハードウェア、またはそれらの組み合わせを使用して実装されてよい。ソフトウェアを使用して実施形態を実装する場合は、実施形態の全部または一部がコンピュータプログラム製品の形態で実装されてよい。AIプラットフォームを提供するコンピュータプログラム製品は、AIプラットフォームを起動するための1つ以上のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータに読み込まれて実行されると、本出願の実施形態の図5図11図14、または図15に記載されている手順または機能の全部または一部が生成される。
【0214】
コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に保管されてよく、または或るコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ送信されてもよい。例えば、コンピュータ命令は、或るウェブサイト、コンピュータ、サーバ、またはデータセンターから、別のウェブサイト、コンピュータ、サーバ、またはデータセンターへ、有線方式(例えば、同軸ケーブル、光ファイバ、ツイストペア)で、または無線方式(例えば、赤外線、電波、またはマイクロ波)で、送信されてよい。コンピュータ可読記憶媒体は、AIプラットフォームを提供するコンピュータプログラム命令を保管する。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の媒体、または1つ以上の使用可能な媒体を統合したサーバもしくはデータセンターなどのデータ記憶装置であってよい。媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、または磁気テープ)、光学媒体(例えば、光ディスク)、または半導体媒体(例えば、SSD)であってよい。
【符号の説明】
【0215】
100 AIプラットフォーム
101 ユーザ入力/出力モジュール、ユーザI/Oモジュール
102 モデル訓練モジュール
103 推論モジュール
104 AIモデル保管モジュール
105 データ保管モジュール
400 計算デバイス
401 メモリ
402 プロセッサ
403 通信インターフェイス
404 バス
504 バス
1510 取得モジュール
1520 決定モジュール
1530 更新モジュール
1540 表示モジュール
1550 受信モジュール
1700 コンピュータ
1701 メモリ
1702 プロセッサ
1703 通信インターフェイス
1704 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17