(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-03
(45)【発行日】2024-07-11
(54)【発明の名称】情報処理装置、システム、プログラム、及び方法
(51)【国際特許分類】
G06F 8/656 20180101AFI20240704BHJP
G06N 5/04 20230101ALI20240704BHJP
G06N 3/08 20230101ALI20240704BHJP
【FI】
G06F8/656
G06N5/04
G06N3/08
(21)【出願番号】P 2020125454
(22)【出願日】2020-07-22
【審査請求日】2023-04-11
(73)【特許権者】
【識別番号】518127510
【氏名又は名称】カラクリ株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】吉田 雄紀
【審査官】武田 広太郎
(56)【参考文献】
【文献】国際公開第2020/095545(WO,A1)
【文献】特開2020-068016(JP,A)
【文献】特開2019-215603(JP,A)
【文献】米国特許出願公開第2020/0134508(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/656
G06N 5/04
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
学習済みモデルの重みに関するデータを段階的に受信するステップと、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行させるプログラム。
【請求項2】
前記重みに関するデータを受信するステップの前に、前記学習済みモデルの計算グラフに関するデータを受信するステップを前記プロセッサに実行させる、請求項1記載のプログラム。
【請求項3】
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの全ての層に対して偏りが抑えられ、かつ、所定の容量毎に段階的に送信された重みに関するデータを受信する、請求項1又は2に記載のプログラム。
【請求項4】
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列の重み係数をランダムな順序で受信し、
前記推論を実施するステップにおいて、受信した重み係数を前記計算グラフに適用し、未受信の重み係数については所定の値を適用したモデルを利用して推論を実施する、請求項3記載のプログラム。
【請求項5】
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列の全ての重み係数を所定容量ずつ段階的に受信し、
前記推論を実施するステップにおいて、受信した重み係数を前記計算グラフに適用したモデルを利用して推論を実施する、請求項3記載のプログラム。
【請求項6】
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列が低ランク近似された値を低次モードから段階的に受信し、
前記推論を実施するステップにおいて、受信した低次モードの値を前記計算グラフに適用したモデルを利用して推論を実施する、請求項3記載のプログラム。
【請求項7】
前記推論を実施するステップにおいて、新たに受信した重みに関するデータを前記計算グラフに適用したモデルを利用して推論を実施し、
新たな推論結果をユーザに提示するステップを、前記プロセッサに実行させる請求項1乃至6のいずれかに記載のプログラム。
【請求項8】
プロセッサと、メモリとを備えるコンピュータにより実行される方法であって、
学習済みモデルの重みに関するデータを段階的に受信するステップと、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行する方法。
【請求項9】
プロセッサと、メモリとを備える情報処理装置であって、前記プロセッサが、
学習済みモデルの重みに関するデータを段階的に受信するステップと、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行する情報処理装置。
【請求項10】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
学習済みモデルの重みに関するデータを
、前記学習済みモデルの全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に送信するステップと
を実行させるプログラム。
【請求項11】
前記重みに関するデータを送信するステップの前に、前記学習済みモデルの計算グラフに関するデータを送信するステップを前記プロセッサに実行させる、請求項10記載のプログラム。
【請求項12】
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列の重み係数をランダムな順序で送信する、請求項1
0記載のプログラム。
【請求項13】
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列の全ての重み係数を所定容量ずつ段階的に送信する、請求項1
0記載のプログラム。
【請求項14】
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列が低ランク近似された値を低次モードから段階的に送信する、請求項1
0記載のプログラム。
【請求項15】
前記重みに関するデータは所定の形式で記憶されており、
前記重みに関するデータを送信するステップにおいて、前記重みに関するデータを読み出して順次送信する、請求項10乃至1
4のいずれかに記載のプログラム。
【請求項16】
プロセッサと、メモリとを備えるコンピュータにより実行される方法であって、
学習済みモデルの重みに関するデータを
、前記学習済みモデルの全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に送信するステップと
を実行する方法。
【請求項17】
プロセッサと、メモリとを備える情報処理装置であって、前記プロセッサが、
学習済みモデルの重みに関するデータを
、前記学習済みモデルの全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に送信するステップと
を実行する情報処理装置。
【請求項18】
学習済みモデルの重みに関するデータを段階的に送信するステップと、
前記送信された重みに関するデータを受信するステップと、
前記重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行するシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、システム、プログラム、及び方法に関する。
【背景技術】
【0002】
近年、様々な分野における分析で、機械学習モデルが利用されている(特許文献1参照)。機械学習モデルを用いた推論の多くは、サーバ装置で行われている。しかしながら、サーバ装置で行われる機械学習モデルを用いた推論は、リアルタイム推論したい場合にレスポンスが遅く、また、プライバシーの観点からサーバ装置へのデータのアップロードに抵抗のあるユーザが存在していた。
【0003】
なお、クライアント側のブラウザで実行可能な機械学習モデルについては、例えば、Tensorflow.js 等がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般的に深層学習により生成される機械学習モデルの容量は重いことが多い。そのため、推論をクライアント側で実施させるために機械学習モデルをクライアント端末にダウンロードさせようとした場合、機械学習モデルのダウンロードに時間がかかる。そのため、ユーザは、サービスをすぐに使い始めることができず、フラストレーションが溜まることになる。
【0006】
本開示では、機械学習モデルを用いたクライアント端末での推論を、ユーザのフラストレーションを溜めずに開始することを目的とする。
【課題を解決するための手段】
【0007】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、学習済みモデルの重みに関するデータを段階的に受信するステップと、学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップとを実行させる。
【発明の効果】
【0008】
本開示の情報処理装置、システム、プログラム、及び方法によれば、機械学習モデルを用いたクライアント端末での推論を、ユーザのフラストレーションを溜めずに開始することができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係るシステムの構成例を表すブロック図である。
【
図2】
図1に示されるサーバ装置、及びユーザ端末の機能構成の例を示すブロック図である。
【
図3】本実施形態に係る学習済みモデルの例を表す模式図である。
【
図4】
図1に示されるユーザ端末がサーバ装置に記憶されているアプリケーションをダウンロードする際のサーバ装置とユーザ端末との動作の例を説明する図である。
【
図5】学習済みモデルの重み行列を説明するための図である。
【
図6】重み行列の重み係数をランダムに送信する場合のサーバ装置の動作を説明するための図である。
【
図7】学習済みモデルをローディングする場合のユーザ端末の動作を説明するための図である。
【
図8】重み行列の重み係数を所定容量ずつ送信する場合のサーバ装置の動作を説明するための図である。
【
図9】学習済みモデルをローディングする場合のユーザ端末の動作を説明するための図である。
【
図10】重み行列を低ランク近似して低次モードから送信する場合のサーバ装置10の動作を説明するための図である。
【
図11】学習済みモデルをローディングする場合のユーザ端末の動作を説明するための図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、実施の形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本開示の必須構成要件であるとは限らない。
【0011】
<システム構成>
まず、
図1を用いて本開示に係るシステムの構成について説明する。
図1は、本実施形態に係るシステム1の構成例を表すブロック図である。
図1に示されるシステム1は、サーバ装置10に記憶されている複数のアプリケーションのうち、ユーザが所望するアプリケーションを、ユーザ端末20へ提供するためのシステムである。システム1は、サーバ装置10、ユーザ端末20を備える。サーバ装置10、及びユーザ端末20は、例えば、インターネット、及び/又は通信事業者が提供する通信網等のネットワークを介して接続されている。
【0012】
サーバ装置10は、所定のアプリケーションを記憶し、ユーザ端末20を介して入力されるユーザからの要求に応じ、ユーザが所望するアプリケーションをユーザ端末20へ送信する装置である。サーバ装置10は、情報処理装置の一例である。サーバ装置10が記憶するアプリケーションは、どのようなアプリケーションであっても構わない。
【0013】
なお、サーバ装置10は、1台のコンピュータにより実現されてもよいし、複数台のコンピュータが組み合わされて実現されてもよい。
【0014】
ユーザ端末20は、システム1を用いたサービスを利用するユーザが使用する端末であり、情報処理装置の一例である。ユーザは、ユーザ端末20を介してサーバ装置10へ所望のアプリケーションを要求する。ユーザ端末20は、ユーザが所望するアプリケーションをサーバ装置10からダウンロードする。ユーザ端末20は、例えば、移動体通信システムに対応したスマートフォン、タブレット等の携帯端末などにより実現される。この他に、ユーザ端末20は、例えば据え置き型のPC(Personal Computer)、ラップトップPC、ゲーム専用機であるとしてもよい。また、ユーザ端末20は、ヘッドマウントディスプレイとして機能してもよく、例えば、透過型、非透過型、又はシースルー型ヘッドマウントディスプレイとして機能してもよい。ヘッドマウントディスプレイとして機能しない場合、ユーザ端末20は、携帯端末として機能し、ゴーグル型のデバイスに装着されることでヘッドマウントディスプレイとして機能することとしてもよい。この場合、ユーザ端末20は、携帯端末として機能するモードと、ヘッドマウントディスプレイとして機能するモードとを切り替えることができる。ヘッドマウントディスプレイとして機能するモードの場合、ユーザ端末20は、ユーザ端末20に内蔵されるモーションセンサによりユーザの頭部の動きを検出し、ユーザの頭部の動きに連動して、ディスプレイの表示画像を更新する。
【0015】
ユーザ端末20は、例えば、サーバ装置10、又は別途サーバ(不図示)が提供する動作環境(API(Application Programing Interface)、プラットフォーム等)を利用してサーバ装置10にアクセスする。また、ユーザ端末20は、インストールされた専用のアプリケーションソフトウェアによってサーバ装置10にアクセスしてもよい。ユーザ端末20とサーバ装置10との間の接続は、有線でもよいし無線でもよい。
【0016】
<サーバ装置及びユーザ端末の構成>
次に、サーバ装置10、及びユーザ端末20の構成について説明する。
図2は、
図1に示されるサーバ装置10、及びユーザ端末20の機能構成の例を示すブロック図である。
図2に示されるサーバ装置10は、例えば、処理部11、記憶部12、及び通信インタフェース13を備える。処理部11、記憶部12、及び通信インタフェース13は、例えば、バスを介して互いに通信可能に接続されている。
【0017】
処理部11は、例えば、プロセッサであり、CPU(Central Processing Unit)、CPUが処理を実行する際に用いるメモリを備える。メモリは、いわゆる主記憶装置であり、例えば、DRAM(Dynamic Random Access Memory)等により構成される。CPUは、例えば、記憶部12に記憶されているプログラムをメモリに読み込む。CPUは、メモリに読み込まれたプログラムを実行する。これにより、処理部11は、プログラムに対応する種々の機能を実現する。
【0018】
記憶部12は、種々の情報を記憶するHDD(hard disk drive)、又はSSD(solid state drive)等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部12は、CD-ROM、DVD、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。また、記憶部12は、必ずしも単独の回路により実現されなくてもよい。記憶部12は、例えば、複数の記憶回路により実現されてもよい。
【0019】
記憶部12は、ユーザ端末20へダウンロードするためのアプリケーション121を記憶している。本実施形態においてアプリケーション121は、学習済みモデル1211に関するデータ、及びアプリケーション121の機能を実現するためのプログラムに関するデータを含む。
【0020】
学習済みモデル1211は、例えば、機械学習により生成される。本実施形態において、学習済みモデル1211とは、モデル学習プログラムに従って機械学習モデルに機械学習を行わせることで生成されるモデルを表す。
【0021】
本実施形態に係る学習済みモデル1211は、例えば、ユーザから入力される信号に基づき、所定の推論を実施する、複数の関数が合成されたパラメータ付き合成関数である。パラメータ付き合成関数は、複数の調整可能な関数及びパラメータの組合せにより定義される。本実施形態に係る学習済みモデル1211は、上記の要請を満たす如何なるパラメータ付き合成関数であってもよい。
【0022】
例えば、学習済みモデル1211は、順伝播型の多層化ネットワークを用いて生成される。本実施形態において順伝播型の多層化ネットワークは、例えば
図3に示されるように、層状に並べた隣接層間のみ結合した構造を持ち、情報が入力層側から出力層側に一方向に伝播するネットワークである。
図3に示される多層化ネットワークは、入力層、少なくとも1層の中間層(隠れ層)、及び出力層の複数の層から構成されている。
【0023】
学習済みモデル1211が順伝播型の多層化ネットワークを用いて生成される場合、パラメータ付き合成関数は、例えば、重み行列を用いた各層間の線形関係、各層における活性化関数を用いた非線形関係(又は線形関係)、及びバイアスの組み合わせとして定義される。活性化関数は、ロジスティックシグモイド関数(ロジスティック関数)、双曲線正接関数、正規化線形関数(ReLU:Rectified Liner Unit)、線形写像、恒等写像、マックスアウト関数等、目的に応じて種々の関数を選択することができる。
【0024】
重み付行列、及びバイアスは、多層化ネットワークのパラメータと呼ばれる。パラメータ付き合成関数は、パラメータをどのように選ぶかで、関数としての形を変える。多層化ネットワークでは、構成するパラメータを適切に設定することで、出力層から好ましい結果を出力することが可能な関数を定義することができる。
【0025】
パラメータは、学習データと誤差関数とを用いた学習を実行することで設定される。学習データは、例えば、所定の入力xn、この入力に対する望ましい結果(正解出力)dnを出力とした学習サンプル(xn,dn)の集合D(n=1,・・・,S)である。誤差関数は、xnを入力した多層化ネットワークからの出力と正解出力dnとの近さを表す関数である。誤差関数の代表例としては、二乗誤差関数、最尤度推定関数、交差エントロピー関数等が挙げられる。誤差関数として選択する関数は、多層化ネットワークが取り扱う問題(例えば、回帰問題、二値問題、多クラス分類問題等)に依存する。パラメータは、学習サンプル毎に、例えば、誤差関数を極小にする値が決定される。なお、パラメータを決定する際の計算量を抑制するため、誤差逆伝播法が用いられてもよい。
【0026】
本実施形態に係る多層化ネットワークとしては、例えば、深層学習(Deep Learning)の対象となる多層ニューラルネットワークである深層ニューラルネットワーク(Deep Neural Network:DNN)が用いられ得る。DNNとしては、例えば、画像を対象とする畳み込みニューラルネットワーク(Convolution Neural Network:CNN)を用いてもよい。
【0027】
アプリケーション121は、アプリケーション121の機能を実現するためのプログラムとして、例えば、推論プログラム1212を含む。推論プログラム1212は、アプリケーション121をダウンロードしたユーザ端末20により実行される。推論プログラム1212は、学習済みモデル1211を用いた推論をユーザ端末20においてローカルで実施可能にするためのプログラムである。
【0028】
記憶部12は、本実施形態に係るプログラム、例えば、送信プログラム122を記憶している。送信プログラム122は、ユーザ端末20へアプリケーション121をダウンロードするためのプログラムである。送信プログラム122は、例えば、記憶部12に予め記憶されていてもよい。また、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部12にインストールされてもよい。
【0029】
通信インタフェース13は、例えば、ネットワークと接続する回路により実現される。通信インタフェース13は、ネットワークを介し、ユーザ端末20のうち少なくともいずれかと通信する。
【0030】
図2に示される処理部11は、例えば、送信プログラム122を実行することで、例えば、送信制御部111の機能を実現する。
【0031】
送信制御部111は、ユーザ端末20へのアプリケーション121の送信を制御する。学習済みモデル1211がDNNを用いて生成されている場合、学習済みモデル1211の容量は大きく、場合によっては数百MBにも及ぶ。送信制御部111は、アプリケーション121に含まれるプログラムに関するデータを送信した後、学習済みモデル1211に関するデータを段階的にユーザ端末20へ送信する。
【0032】
具体的には、送信制御部111は、学習済みモデル1211における計算グラフに関するデータをまずユーザ端末20へ送信する。計算グラフは、例えば、学習済みモデル1211における計算の過程を表すデータである。計算グラフは、学習済みモデル1211の関数の骨格を表すデータと換言可能である。計算グラフは、例えば、各層間の線形関係、各層における活性化関数を用いた非線形関係(又は線形関係)、及びバイアスの組み合わせに関する情報を含む。
【0033】
送信制御部111は、計算グラフに関するデータを送信すると、学習済みモデル1211の重みに関するデータを段階的にユーザ端末20へ送信する。なお、送信制御部111は、計算グラフに関するデータを、重みに関する1段階目のデータと共にユーザ端末20へ送信してもよい。
【0034】
送信制御部111は、例えば、重みに関するデータを、全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に、ユーザ端末20へ送信する。重みに関するデータを、全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的にユーザ端末20へ送信する手法についての詳細は後述する。
【0035】
なお、サーバ装置10は、入力インタフェースを有していてもよい。入力インタフェースは、例えば、マウス、キーボード、及び、操作面へ触れることで指示が入力されるタッチパネル等により実現される。入力インタフェースは、操作者からの入力指示を電気信号へ変換し、電気信号を処理部11へ出力する。なお、入力インタフェースは、マウス、及びキーボード等の物理的な操作デバイスに限定されない。入力インタフェースには、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
【0036】
また、サーバ装置10は、出力インタフェースを有していてもよい。出力インタフェースは、例えば、表示機器、及び印刷機器等により実現される。表示機器としては、例えば、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイ、プラズマディスプレイ、及びCRTディスプレイ等、任意のディスプレイが利用可能である。表示機器は、画像データに基づく画像等を表示する。印刷機器は、例えば、プリンタである。印刷機器は、通信に関する所定の情報を所定用紙に印刷する。なお、出力インタフェースは、表示機器、及び印刷機器等の物理的な出力装置に限定されない。出力インタフェースには、例えば、外部の出力装置へ画像データを送信する送信ポートが含まれてもよい。
【0037】
図2に示されるユーザ端末20は、例えば、処理部21、記憶部22、入力インタフェース23、出力インタフェース24、及び通信インタフェース25を備える。なお、
図1で示されるユーザ端末20の構成はそれぞれ同様である。
【0038】
処理部21は、ユーザ端末20の中枢として機能するプロセッサである。処理部21は、例えば、CPU、CPUが処理を実行する際に用いるメモリを備える。CPUは、例えば、記憶部22に記憶されているプログラムをメモリに読み込む。CPUは、メモリに読み込まれたプログラムを実行する。これにより、処理部21は、プログラムに対応する種々の機能を実現する。
【0039】
記憶部22は、種々の情報を記憶するHDD、又はSSD等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部22は、CD-ROM、DVD、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。
【0040】
記憶部22は、本実施形態に係るプログラムを記憶している。また、記憶部22は、サーバ装置10からダウンロードされたアプリケーション121を記憶する。
【0041】
入力インタフェース23は、例えば、マウス、キーボード、操作面へ触れることで指示が入力されるタッチパネル、又は音声を入力するマイク等により実現される。入力インタフェース23は、ユーザからの入力指示を電気信号へ変換し、電気信号を処理部21へ出力する。
【0042】
出力インタフェース24は、例えば、表示機器、印刷機器、又はスピーカにより実現される。表示機器としては、例えば、液晶ディスプレイ、及び有機ELディスプレイ等である。
【0043】
通信インタフェース25は、例えば、ネットワークと接続する回路により実現される。通信インタフェース25は、ネットワークを介し、サーバ装置10と通信する。
【0044】
図2に示される処理部21は、記憶部22に記憶されるプログラム、及びサーバ装置10からダウンロードされたアプリケーション121を実行することで、実行したプログラムに対応する機能を実現する。例えば、処理部21は、記憶部22に記憶されるプログラムを実行することで、受信制御部211、及び記憶制御部212の機能を実現する。また、処理部21は、アプリケーション121に含まれる推論プログラム1212を実行することで、推論部213、及び提示部214の機能を実現する。
【0045】
受信制御部211は、サーバ装置10から送信されるアプリケーション121の受信を制御する。
【0046】
具体的には、受信制御部211は、サーバ装置10から送信される、アプリケーション121に含まれるプログラムに関するデータを受信した後、学習済みモデル1211に関するデータを段階的に受信する。より具体的には、例えば、受信制御部211は、学習済みモデル1211の計算グラフに関するデータを受信し、段階的に送信される、学習済みモデル1211の重みに関するデータを受信する。
【0047】
記憶制御部212は、受信したアプリケーション121の記憶部22への記憶を制御する。
【0048】
具体的には、記憶制御部212は、アプリケーション121に含まれるプログラムを記憶する。また、記憶制御部212は、段階的に受信される学習済みモデル1211に関するデータをマージして記憶部22に記憶する。より具体的には、例えば、記憶制御部212は、学習済みモデル1211の計算グラフに関するデータを記憶部22に記憶する。記憶制御部212は、先に受信した計算グラフの対応する領域に、段階的に受信する、学習済みモデル1211の重みに関するデータを適用する。
【0049】
推論部213は、記憶部22に記憶されている学習済みモデル1211を利用して入力に対する出力を推論する。
【0050】
具体的には、推論部213は、推論指示に応じ、段階的にローディングされる学習済みモデル1211を利用し、推論を実行する。さらに具体的には、学習済みモデル1211のローディング中においては、推論部213は、学習済みモデル1211の重みのうち、ローディング済みの重みを計算グラフに適用した学習済みモデルを利用して推論を実行する。以下では、ローディング済みの重みを計算グラフに適用してなる学習済みモデルを近似学習済みモデルと称する。学習済みモデル1211のローディングが完了した後においては、推論部213は、学習済みモデル1211を利用して推論を実行する。なお、推論指示は、ユーザからの指示に応じて発生してもよいし、アプリケーション121が実行されるとユーザの意思に関わらず自動的に発生してもよい。
【0051】
提示部214は、近似学習済みモデル、又は学習済みモデル1211を利用して推論された結果をユーザに提示する。
【0052】
<動作>
サーバ装置10がアプリケーション121を、ユーザ端末20へダウンロードする際の動作を説明する。
図4は、
図1に示されるユーザ端末20がサーバ装置10に記憶されているアプリケーション121をダウンロードする際のサーバ装置10とユーザ端末20との動作の例を説明する図である。
【0053】
まず、ユーザ端末20を所持するユーザは、サーバ装置10にアクセスし、サーバ装置10に記憶されているアプリケーションのうち、所望のアプリケーション121を選択する。ユーザは、ユーザ端末20を介し、選択したアプリケーション121のダウンロードをサーバ装置10に要求する。
【0054】
サーバ装置10は、ユーザ端末20からアプリケーション121のダウンロード要求を受けると、記憶部22からアプリケーション121を読み出し、読み出したアプリケーション121をユーザ端末20へ送信する(ステップS11)。
【0055】
具体的には、サーバ装置10は、例えば、アプリケーション121のプログラムに関するデータと、学習済みモデル1211の計算グラフに関するデータとをユーザ端末20へ送信する。
【0056】
ユーザ端末20は、サーバ装置10から送信されたデータを受信し(ステップS21)、受信したデータを記憶部22に記憶する(ステップS22)。
【0057】
具体的には、ユーザ端末20は、アプリケーション121のプログラムに関するデータと、学習済みモデル1211の計算グラフに関するデータとを受信し、記憶部22に記憶する。
【0058】
サーバ装置10は、アプリケーション121のプログラムに関するデータと、学習済みモデル1211の計算グラフに関するデータとをユーザ端末20へ送信すると、学習済みモデル1211の重みに関するデータのうち、所定の容量のデータをユーザ端末20へ送信する(ステップS12)。
【0059】
ユーザ端末20は、サーバ装置10から送信されたデータを受信し(ステップS23)、受信したデータを記憶部22に記憶する(ステップS24)。
【0060】
このとき、記憶制御部212は、記憶部22に記憶されている計算グラフの対応する領域に、受信した重みに関するデータを適用する。計算グラフに、重みに関するデータが適用されることで、重みが一部設定された学習済みモデルが生成される。
【0061】
サーバ装置10は、学習済みモデル1211の重みに関するデータのうち、最初の容量のデータを送信すると、次の容量のデータをユーザ端末20へ送信する(ステップS13)。
【0062】
ユーザ端末20は、サーバ装置10から送信されたデータを受信し(ステップS25)、受信したデータを記憶部22に記憶する(ステップS26)。
【0063】
このとき、記憶制御部212は、記憶部22に記憶されている、ローディング途中の学習済みモデルの所定の領域に、受信した重みに関するデータを適用する。これにより、学習済みモデルのローディングが進む。
【0064】
サーバ装置10は、ステップS12、及びステップS13の処理を、重みに関するデータの送信が完了するまで繰り返し、重みに関するデータを段階的にユーザ端末20へ送信する。
【0065】
ユーザ端末20は、重みに関するデータを段階的に受信し、受信した重みに関するデータを、ローディング途中の学習済みモデルの所定の領域に適用する。これにより、重みに関するデータを受信する度に学習済みモデルのローディングが進む。
【0066】
<アプリケーション121をダウンロードして実行するまでの具体的な処理>
次に、アプリケーション121をダウンロードし、実行するまでの具体的な処理について詳細に説明する。サーバ装置10は、重みに関するデータを、全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的にユーザ端末20へ送信する。本実施形態では、サーバ装置10は、以下に示す3つの手法のいずれかにより、学習済みモデル1211の重み行列における重み係数をユーザ端末20へ送信する。
・ランダムな順序で送信
・所定容量ずつ送信
・低ランク近似し、低次のモードから送信
【0067】
図5は、学習済みモデル1211の重み行列を説明するための図である。
図5に示される多層化ネットワークは、入力層、少なくとも1層の中間層(隠れ層)、及び出力層の複数の層から構成されている。学習済みモデル1211は、重み行列31~33を用いた各層間の線形関係を含んで定義される。なお、
図5では、層毎に1つの重み行列が設定されている場合を示しているが、1つの層に設定される重み行列の数は1つに限定されない。
【0068】
以下では、送信手法毎にサーバ装置10と、ユーザ端末20との処理を説明する。
【0069】
(ア)ランダムな順序で送信
図6は、重み行列の重み係数をランダムに送信する場合のサーバ装置10の動作を説明するための図である。
図6に示される図では、下方向に時間の経過方向が設定されている。送信制御部111は、重み行列31~33に含まれる重み係数を、ランダムな順番でユーザ端末20へ送信する。具体的には、例えば、送信制御部111は、t1、t2、t3…で、重み行列31~33に含まれるそれぞれ異なる重み係数をユーザ端末20へ送信する。
【0070】
より具体的には、例えば、重み行列31~33全体の重み係数を約10回程度でユーザ端末20へ送信できるように、1回に送信される重み係数の数は、予め設定されている。このとき、層毎に偏りが出ないように、送信される重み係数の数は、層毎に略同数に設定されている。送信制御部111は、設定された数の重み係数を重み行列31~33から抽出し、抽出した重み係数をユーザ端末20へ送信する。送信制御部111は、重み行列31~33の重み係数の送信が完了するまで抽出、送信の動作を繰り返す。
【0071】
図7は、学習済みモデルをローディングする場合のユーザ端末20の動作を説明するための図である。記憶制御部212は、サーバ装置10から計算グラフを受信すると、受信した計算グラフを記憶部22に記憶する。記憶制御部212は、計算グラフを受信した後、サーバ装置10から重み係数を受信すると、受信した重み係数を計算グラフの対応する領域に適用させる。
【0072】
ユーザ端末20は、重み係数を少なくとも1回以上受信するとアプリケーション121を実行可能となる。このことは、例えば、重み係数を全体の所定割合以上受信すると、アプリケーション121を実行可能となると換言可能である。
【0073】
推論部213は、重み係数の受信が完了する前に、ユーザ指示に基づいてアプリケーション121が実行された場合、記憶部22に記憶されているローディング中の学習済みモデルを用いて推論を実行する。
【0074】
具体的には、学習済みモデルのローディング中にアプリケーション121が実行されると、推論部213は、重み係数が適用されていない行列の要素に所定の値を代入して近似学習済みモデルを生成する。
【0075】
より具体的には、例えば、推論部213は、重み係数が適用されていない重み行列の要素に0を代入する。そして、推論部213は、ローディングの程度に応じたスカラー倍のリスケールを適用済みの重み係数にかける。例えば、サーバ装置10から送信される重み係数の回数が10回であり、重み係数の1回目の送信の後に推論の実行指示がユーザから与えられたとする。推論部213は、ローディングが済んでいない要素に0を代入し、ローディングされた重み係数を10倍に補正して近似学習済みモデルを生成する。推論部213は、生成した近似学習済みモデルを用いて推論を実行する。
【0076】
ローディングされていない要素へ代入される値は0に限定されない。行列毎の平均値に基づいて推定された重み係数が代入されてもよい。例えば、サーバ装置10から計算グラフが送信される際、又は重み係数が最初に送信される際、行列毎の平均値がユーザ端末20へ送信される。記憶制御部212は、受信した平均値を記憶部22へ記憶する。推論部213は、近似学習済みモデルを生成する際、例えば、平均値と、ローディング済みの重み係数から、ローディングされていない要素の重み係数を推定する。推論部213は、重み係数が適用されていない重み行列の要素に、推定した重み係数を代入する。
【0077】
なお、サーバ装置10から送信されるのは行列毎の平均値に限定されず、行列毎の分散であっても構わない。このとき、ガウス分布からランダムに取得した値をローディングされていない要素の重み係数としてもよい。
【0078】
(イ)所定容量ずつ送信
図8は、重み行列の重み係数を所定容量ずつ送信する場合のサーバ装置10の動作を説明するための図である。
図8に示される図では、下方向に時間の経過方向が設定されている。送信制御部111は、重み行列31~33に含まれる全ての重み係数を所定の容量ずつユーザ端末20へ送信する。具体的には、例えば、送信制御部111は、t1、t2、t3…で、重み行列31~33に含まれる重み係数の第1容量、第2容量、第3容量をユーザ端末20へ送信する。このとき、第1容量、第2容量、第3容量は、例えば、重み係数を規定する複数ビットのデータのうち、所定の桁数分の容量を表す。また、第1容量、第2容量、第3容量に相当する桁は、例えば、連続している。
【0079】
より具体的には、例えば、重み行列31~33の重み係数はそれぞれ32ビットの浮動小数点形式で保存されている。送信制御部111は、重み係数を左から1ビットずつ読み出し、読み出した容量のデータをユーザ端末20へ送信する。送信制御部111は、重み係数の全容量のデータの送信が完了するまで読み出し、送信の動作を繰り返す。
【0080】
図9は、学習済みモデルをローディングする場合のユーザ端末20の動作を説明するための図である。記憶制御部212は、サーバ装置10から計算グラフを受信すると、受信した計算グラフを記憶部22に記憶する。記憶制御部212は、計算グラフを受信した後、サーバ装置10から所定容量のデータを受信すると、受信したデータを計算グラフの対応する領域に適用させる。
【0081】
ユーザ端末20は、所定容量のデータを少なくとも1回以上受信するとアプリケーション121を実行可能となる。このことは、例えば、重み係数を全体の所定割合以上受信すると、アプリケーション121を実行可能となると換言可能である。
【0082】
推論部213は、重み係数の受信が完了する前に、ユーザ指示に基づいてアプリケーション121が実行された場合、記憶部22に記憶されているローディング中の学習済みモデルを用いて推論を実行する。
【0083】
具体的には、学習済みモデルのローディング中にアプリケーション121が実行されると、推論部213は、ローディング中の学習済みモデルを近似学習済みモデルとし、近似学習済みモデルを用いて推論を実行する。
【0084】
(ウ)低ランク近似して低次モードから送信
図10は、重み行列を低ランク近似して低次モードから送信する場合のサーバ装置10の動作を説明するための図である。
図10に示される図では、下方向に時間の経過方向が設定されている。送信制御部111は、例えば、重み行列31~33をそれぞれ特異値分解することで、低ランク近似する。送信制御部111は、低ランク近似して得られた値を低次モードの値から順にユーザ端末20へ送信する。具体的には、例えば、送信制御部111は、重み行列31~33をそれぞれ低ランク近似して得られた値を、t1、t2、t3…に、低次モードから順にユーザ端末20へ送信する。送信制御部111は、重み行列31~33を低ランク近似して得られた全ての値の送信が完了するまで送信動作を繰り返す。
【0085】
図11は、学習済みモデルをローディングする場合のユーザ端末20の動作を説明するための図である。記憶制御部212は、サーバ装置10から計算グラフを受信すると、受信した計算グラフを記憶部22に記憶する。記憶制御部212は、計算グラフを受信した後、低ランク近似して得られる所定モードの値をサーバ装置10から受信すると、受信した値を計算グラフの対応する領域に適用させる。
【0086】
ユーザ端末20は、少なくとも1モード以上の値を受信するとアプリケーション121を実行可能となる。このことは、例えば、重み係数を全体の所定割合以上受信すると、アプリケーション121を実行可能となると換言可能である。
【0087】
推論部213は、低ランク近似して得られる全ての値の受信が完了する前に、ユーザ指示に基づいてアプリケーション121が実行された場合、記憶部22に記憶されているローディング中の学習済みモデルを用いて推論を実行する。
【0088】
具体的には、学習済みモデルのローディング中にアプリケーション121が実行されると、推論部213は、ローディング中の学習済みモデルを近似学習済みモデルとし、近似学習済みモデルを用いて推論を実行する。
【0089】
以上のように、本実施形態では、サーバ装置10は、学習済みモデル1211の計算グラフに関するデータをユーザ端末20へ送信する。そして、サーバ装置10は、学習済みモデル1211の重みに関するデータをユーザ端末20へ段階的に送信するようにしている。一般的に深層学習により生成される学習済みモデルの容量は重く、例えば、数百MBの容量がある。そのため、学習済みモデルを含むアプリケーションを全てダウンロードした後に実施可能となる仕様とすると、アプリケーションが実施可能となるまでに数分程度かかってしまい、ユーザの使い勝手が悪い。本実施形態によれば、学習済みモデル1211の全てがユーザ端末20へ送信される前でも、学習済みモデル1211を近似したモデルを用い、クライアント端末側で推論を実施させることが可能となる。
【0090】
また、本実施形態では、サーバ装置10は、重みに関するデータを、学習済みモデルの全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に送信するようにしている。これにより、ローディングの途中であっても、所定の精度を維持したまま学習済みモデルを用いた推論が実施可能となる。
【0091】
また、本実施形態では、サーバ装置10は、学習済みモデル1211の重み行列の重み係数をランダムな順序で送信するようにしている。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0092】
また、本実施形態では、サーバ装置10は、重みに関するデータを送信するステップにおいて、学習済みモデルの重み行列の全ての重み係数を所定容量(例えば、1ビット)ずつ段階的に送信するようにしている。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0093】
また、本実施形態では、サーバ装置10は、重みに関するデータを送信するステップにおいて、学習済みモデルの重み行列が低ランク近似された値を低次モードから段階的に送信するようにしている。ニューラルネットワークの行列は、大きな特異値の個数が少ない。そのため、低ランク近似の精度が高く、低ランク近似された値の低次モードからの段階的な送信により、学習済みモデル1211の重み行列へ早く近づく。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0094】
また、本実施形態では、ユーザ端末20は、学習済みモデル1211の計算グラフに関するデータを受信し、学習済みモデル1211の重みに関するデータを段階的に受信する。そして、ユーザ端末20は、学習済みモデル1211の重みに関するデータを段階的に受信している途中で推論指示が発せられると、受信した計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するようにしている。これにより、学習済みモデル1211の全てがユーザ端末20へ送信される前でも、ユーザ端末20は、学習済みモデル1211を近似したモデルを用い、クライアント端末側で推論を実施することが可能となる。
【0095】
また、本実施形態では、ユーザ端末20は、学習済みモデル1211の全ての層に対して偏りが抑えられ、かつ、所定の容量毎に段階的に送信された重みに関するデータを受信するようにしている。これにより、ローディングの途中であっても、所定の精度を維持したまま学習済みモデルを用いた推論が実施可能となる。
【0096】
また、本実施形態では、ユーザ端末20は、学習済みモデル1211の重み行列の重み係数をランダムな順序で受信する。そして、ユーザ端末20は、受信した重み係数を計算グラフに適用し、未受信の重み係数については所定の値を適用したモデルを利用して推論を実施するようにしている。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0097】
また、本実施形態では、ユーザ端末20は、学習済みモデル1211の重み行列の全ての重み係数を所定容量ずつ段階的に受信する。そして、ユーザ端末20は、受信した重み係数を計算グラフに適用したモデルを利用して推論を実施するようにしている。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0098】
また、本実施形態では、ユーザ端末20は、学習済みモデル1211の重み行列が低ランク近似された値を低次モードから段階的に受信する。そして、ユーザ端末20は、受信した低次モードの値を計算グラフに適用したモデルを利用して推論を実施するようにしている。これにより、学習済みモデルのローディングが進むにつれ、推論の精度が向上することになる。
【0099】
近似学習済みモデルを用いた推論の精度は、学習済みモデル1211を用いた推論の精度よりも低い。しかしながら、近似学習済みモデルを用いた推論の精度は、重みに関するデータが送信される毎に、学習済みモデル1211を用いた推論の精度に近づいていく。ユーザへ提示される推論の結果は、重みに関するデータのローディングの程度に応じて更新されてもよい。
【0100】
例えば、ユーザが、重みに関するデータの初回の受信直後にアプリケーション121を実行したとする。推論部213は、受信したデータを利用して生成される近似学習済みモデルを用い、入力に対する推論を実施する。提示部214は、推論結果をユーザに提示する。このとき提示される推論結果の精度は、学習済みモデル1211を用いた推論よりも若干劣る可能性がある。しかしながら、推論が実施されている間、及び推論結果がユーザに提示されている間においても、重みに関するデータのローディングは継続されている。
【0101】
推論部213は、重みに関するデータの2回目の受信がなされると、受信したデータを用いて近似学習済みモデルを更新する。推論部213は、ユーザからの先の入力に対する推論を、更新した近似学習済みモデルを用いてバックグラウンドで実施する。提示部214は、先に提示した推論結果に代えて、新たな推論結果をユーザに提示する。このとき、提示部214は、例えば、「こちらの方が正しい可能性があります」等、新たな推論結果の方が優れたものである可能性を示唆してもよい。
【0102】
なお、近似学習済みモデルの更新は、データを受信する度でなくても構わない。データを所定回数受信する度に更新されるようにしてもよい。
【0103】
このように、推論結果が学習済みモデル1211のローディングの程度に応じて更新されることで、ユーザは、学習済みモデル1211のダウンロード直後であっても気軽に推論を実施することが可能となる。
【0104】
したがって、本開示によれば、機械学習モデルを用いたクライアント端末での推論を、ユーザのフラストレーションを溜めずに開始することができる。
【0105】
<変形例>
本実施形態では、送信制御部111が重み係数を抽出する場合を例に説明した。例えば、「(ア)ランダムな順序で送信」では、送信制御部111は、設定された数の重み係数を重み行列31~33から抽出し、抽出した重み係数をユーザ端末20へ送信する。また、「(イ)所定容量ずつ送信」では、送信制御部111は、重み係数を1ビットずつ読み出し、読み出した容量のデータをユーザ端末20へ送信する。また、「(ウ)低ランク近似して低次モードから送信」では、送信制御部111は、低ランク近似して得られた値を低次モードの値から順にユーザ端末20へ送信する。しかしながら、本実施形態は、アプリケーション121において、学習済みモデル1211の重み行列の重み係数が送信手法に応じた形式で記憶されていてもよい。
【0106】
具体的には、「(ア)ランダムな順序で送信」の場合、例えば、アプリケーション121において、1回の送信分の複数の重み係数が予め抽出されており、抽出された1回の送信分の重み係数が各送信で読み出しやすい形式で記憶されている。読み出しやすい形式とは、例えば、1回の送信分の重み係数が一群となって記憶されていることを表す。送信制御部111は、計算グラフが送信されると、1回の送信分の重み係数を読み出し、ユーザ端末20へ送信する。
【0107】
また、「(イ)所定容量ずつ送信」の場合、例えば、アプリケーション121において、1回の送信分のビットの値が全ての重み係数から予め抽出されており、抽出された複数の値が各送信で読み出しやすい形式で記憶されている。読み出しやすい形式とは、例えば、1回の送信分の情報ビットが一群となって記憶されていることを表す。送信制御部111は、計算グラフが送信されると、1回の送信分のビット値を読み出し、ユーザ端末20へ送信する。
【0108】
また、「(ウ)低ランク近似して低次モードから送信」の場合、例えば、アプリケーション121において、1回の送信分の所定モードの値が全ての重み行列の低ランク近似から予め抽出されており、抽出された複数の値が各送信で読み出しやすい形式で記憶されている。読み出しやすい形式とは、例えば、1回の送信分の値が一群となって記憶されていることを表す。送信制御部111は、計算グラフが送信されると、1回の送信分の所定モードの値を読み出し、ユーザ端末20へ送信する。
【0109】
また、本実施形態では、「(ア)ランダムな順序で送信」、「(イ)所定容量ずつ送信」、「(ウ)低ランク近似して低次モードから送信」の送信手法が独立して実施される場合を例に説明したが、これらの送信手法は、組み合わされて実施されてもよい。
【0110】
また、本実施形態では、計算グラフに関するデータが、計算グラフそのものについてのデータを表す場合を例に説明した。しかしながら、計算グラフに関するデータは、計算グラフそのものについてのデータに限定されず、計算グラフを識別するためのデータであっても構わない。具体的には、例えば、ユーザ端末20に所定の計算グラフが予め埋め込まれている場合、サーバ装置10は、ユーザ端末20に埋め込まれている計算グラフを識別するためのデータを、計算グラフに関するデータとして送信する。ユーザ端末20の記憶制御部212は、識別された計算グラフの対応する領域に、段階的に受信する、学習済みモデルの重みに関するデータを適用する。
【0111】
また、本実施形態では、計算グラフに関するデータが、サーバ装置10からユーザ端末20へ送信される場合を例に説明した。しかしながら、サーバ装置10からユーザ端末20へ計算グラフに関するデータが必ずしも送信されなくても構わない。例えば、計算グラフが1つだけしか想定されておらず、その計算グラフがユーザ端末20に予め埋め込まれている場合には、計算グラフに関するデータがサーバ装置10からユーザ端末20へ送信される必要はない。ユーザ端末20の記憶制御部212は、サーバ装置10から段階的に送信される重みに関するデータを、予め埋め込まれている計算グラフの対応する領域に適用する。
【0112】
以上、本開示のいくつかの実施形態を説明したが、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0113】
<付記>
実施形態で説明した事項を、以下に付記する。
【0114】
(付記1)
プロセッサ(処理部21)と、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
学習済みモデルの重みに関するデータを段階的に受信するステップ(ステップS23、S25)と、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップ(推論部213)と
を実行させるプログラム。
【0115】
(付記2)
前記重みに関するデータを受信するステップの前に、前記学習済みモデルの計算グラフに関するデータを受信するステップ(ステップS21)を前記プロセッサに実行させる、(付記1)記載のプログラム。
【0116】
(付記3)
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの全ての層に対して偏りが抑えられ、かつ、所定の容量毎に段階的に送信された重みに関するデータを受信する、(付記1)又は(付記2)に記載のプログラム。
【0117】
(付記4)
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列の重み係数をランダムな順序で受信し、
前記推論を実施するステップにおいて、受信した重み係数を前記計算グラフに適用し、未受信の重み係数については所定の値を適用したモデルを利用して推論を実施する、(付記3)に記載のプログラム。
【0118】
(付記5)
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列の全ての重み係数を所定容量ずつ段階的に受信し、
前記推論を実施するステップにおいて、受信した重み係数を前記計算グラフに適用したモデルを利用して推論を実施する、(付記3)に記載のプログラム。
【0119】
(付記6)
前記重みに関するデータを受信するステップにおいて、前記学習済みモデルの重み行列が低ランク近似された値を低次モードから段階的に受信し、
前記推論を実施するステップにおいて、受信した低次モードの値を前記計算グラフに適用したモデルを利用して推論を実施する、(付記3)に記載のプログラム。
【0120】
(付記7)
前記推論を実施するステップにおいて、新たに受信した重みに関するデータを前記計算グラフに適用したモデルを利用して推論を実施し、
新たな推論結果をユーザに提示するステップを、前記プロセッサに実行させる(付記1)乃至(付記6)のいずれかに記載のプログラム。
【0121】
(付記8)
プロセッサと、メモリとを備えるコンピュータにより実行される方法であって、
学習済みモデルの重みに関するデータを段階的に受信するステップと、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行する方法。
【0122】
(付記9)
プロセッサと、メモリとを備える情報処理装置20であって、前記プロセッサが、
学習済みモデルの重みに関するデータを段階的に受信するステップと、
前記学習済みモデルの重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行する情報処理装置。
【0123】
(付記10)
プロセッサ(処理部11)と、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
学習済みモデルの重みに関するデータを段階的に送信するステップ(ステップS12、S13)と
を実行させるプログラム。
【0124】
(付記11)
前記重みに関するデータを送信するステップの前に、前記学習済みモデルの計算グラフに関するデータを送信するステップ(ステップS11)を前記プロセッサに実行させる、(付記10)記載のプログラム。
【0125】
(付記12)
前記重みに関するデータを送信するステップにおいて、前記重みに関するデータを、前記学習済みモデルの全ての層に対して偏りを抑え、かつ、所定の容量毎に段階的に送信する、(付記10)又は(付記11)に記載のプログラム。
【0126】
(付記13)
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列の重み係数をランダムな順序で送信する、(付記12)に記載のプログラム。
【0127】
(付記14)
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列の全ての重み係数を所定容量ずつ段階的に送信する、(付記12)に記載のプログラム。
【0128】
(付記15)
前記重みに関するデータを送信するステップにおいて、前記学習済みモデルの重み行列が低ランク近似された値を低次モードから段階的に送信する、(付記12)に記載のプログラム。
【0129】
(付記16)
前記重みに関するデータは所定の形式で記憶されており、
前記重みに関するデータを送信するステップにおいて、前記重みに関するデータを読み出して順次送信する、(付記10)乃至(付記15)のいずれかに記載のプログラム。
【0130】
(付記17)
プロセッサと、メモリとを備えるコンピュータにより実行される方法であって、
学習済みモデルの重みに関するデータを段階的に送信するステップと
を実行する方法。
【0131】
(付記18)
プロセッサと、メモリとを備える情報処理装置であって、前記プロセッサが、
学習済みモデルの重みに関するデータを段階的に送信するステップと
を実行する情報処理装置。
【0132】
(付記19)
学習済みモデルの重みに関するデータを段階的に送信するステップと、
前記送信された重みに関するデータを受信するステップと、
前記重みに関するデータを段階的に受信している途中で推論指示が発せられると、前記学習済みモデルの計算グラフに受信途中の重みに関するデータを適用したモデルを利用して推論を実施するステップと
を実行するシステム。
【符号の説明】
【0133】
1…システム
10…サーバ装置
11…処理部
111…送信制御部
12…記憶部
121…アプリケーション
1211…学習済みモデル
1212…推論プログラム
122…送信プログラム
13…通信インタフェース
20…ユーザ端末
21…処理部
211…受信制御部
212…記憶制御部
213…推論部
214…提示部
22…記憶部
23…入力インタフェース
24…出力インタフェース
25…通信インタフェース