(57)【要約】  コンピュータ実装技法は、クライアントコンピューティングデバイスによって、デジタルメディアアイテムと、デジタルアイテムに対する処理タスクについての要求とを取得することと、(i)クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて、動作パラメータのセットを決定することとを含むことができる。動作パラメータのセットに基づいて、クライアントコンピューティングデバイスまたはサーバコンピューティングデバイスは、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択することができ、各ANNは、処理タスクのどの部分が、クライアントコンピューティングデバイスによっておよびサーバコンピューティングデバイスによって実施されるべきであるかを定義する。クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスは、選択されたANNに従って処理タスクの処理を協調させることができる。クライアントコンピューティングデバイスはまた、処理タスクの最終評価に対応する最終処理結果を取得し、最終処理結果に基づいて出力を生成することができる。
2019510287.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサを有するクライアントコンピューティングデバイスによって、デジタルメディアアイテムと、前記デジタルメディアアイテムに対する処理タスクについての要求とを取得するステップと、
前記クライアントコンピューティングデバイスによって、(i)前記クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて動作パラメータのセットを決定するステップであって、前記クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスが、前記ネットワークを介した互いとの通信のために構成された、決定するステップと、
動作パラメータの前記セットに基づいて、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択するステップであって、各ANNは、前記処理タスクのどの部分が、前記クライアントコンピューティングデバイスによって実施されるべきであるかと、前記処理タスクのどの部分が、前記サーバコンピューティングデバイスによって実施されるべきであるかとを定義する、選択するステップと、
前記選択されたANNに従って、前記クライアントコンピューティングデバイスと前記サーバコンピューティングデバイスとの間で前記処理タスクの処理を協調させるステップと、
前記クライアントコンピューティングデバイスによって、前記処理タスクの最終評価に対応する最終処理結果を取得するステップと、
前記クライアントコンピューティングデバイスによって、前記最終処理結果に基づいて出力を生成するステップと
を含むコンピュータにより実行される方法。
【請求項２】
各ANNが、前記処理タスクの第1の部分および第2の部分を定義し、前記第1の部分が、(i)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの一方によって、(ii)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの他方に前記第2の部分を実施させる前記ネットワークを介した通信より前に実施されるべきである、請求項1に記載の方法。
【請求項３】
前記クライアントコンピューティングデバイスが、(i)前記選択されたANNを選択し、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施し、(iii)前記サーバコンピューティングデバイスに前記中間処理結果を送信し、(iv)前記ネットワークを介して前記サーバコンピューティングデバイスから前記最終処理結果を受信する、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記デジタルメディアアイテムが、オーディオファイルまたはビデオファイルであり、前記処理タスクが、音声認識または音声テキスト化である、請求項1、2または3に記載の方法。
【請求項５】
前記デジタルメディアアイテムが、画像ファイルまたはビデオファイルであり、前記処理タスクが、画像認識またはテキスト認識である、請求項1、2または3に記載の方法。
【請求項６】
前記処理タスクを協調させるステップは、
前記クライアントコンピューティングデバイスから、および前記サーバコンピューティングデバイスに、動作パラメータの前記セットを送信するステップであって、動作パラメータの前記セットの受信が、前記サーバコンピューティングデバイスに、(i)前記選択されたANNを選択することと、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施することとを行わせる、送信するステップと、
前記クライアントコンピューティングデバイスによって、および前記ネットワークを介して前記サーバコンピューティングデバイスから、前記中間処理結果を受信するステップと
を含む、請求項2に記載の方法。
【請求項７】
前記クライアントコンピューティングデバイスが、前記最終処理結果を取得するために、前記中間処理結果を使用して前記処理タスクの前記第2の部分を実施する、請求項6に記載の方法。
【請求項８】
前記デジタルメディアアイテムが、テキストのストリングまたはテキストファイルであり、前記処理タスクがテキスト音声化である、請求項6または7に記載の方法。
【請求項９】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルのうちの少なくとも1つを含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルの両方を含む、請求項1から8のいずれか一項に記載の方法。
【請求項１１】
1つまたは複数のプロセッサと、命令のセットを記憶した非一時的メモリとを含むコンピューティングシステムであって、命令の前記セットは、前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに、
クライアントコンピューティングデバイスによって、デジタルメディアアイテムと、前記デジタルメディアアイテムに対する処理タスクについての要求とを取得することと、
前記クライアントコンピューティングデバイスによって、(i)前記クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて動作パラメータのセットを決定することであって、前記クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスが、前記ネットワークを介した互いとの通信のために構成された、決定することと、
動作パラメータの前記セットに基づいて、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択することであって、各ANNは、前記処理タスクのどの部分が、前記クライアントコンピューティングデバイスによって実施されるべきであるかと、前記処理タスクのどの部分が、前記サーバコンピューティングデバイスによって実施されるべきであるかとを定義する、選択することと、
前記選択されたANNに従って、前記クライアントコンピューティングデバイスと前記サーバコンピューティングデバイスとの間で前記処理タスクの処理を協調させることと、
前記クライアントコンピューティングデバイスによって、前記処理タスクの最終評価に対応する最終処理結果を取得することと、
前記クライアントコンピューティングデバイスによって、前記最終処理結果に基づいて出力を生成することと
を含む動作を実施させる、コンピューティングシステム。
【請求項１２】
各ANNが、前記処理タスクの第1の部分および第2の部分を定義し、前記第1の部分が、(i)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの一方によって、(ii)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの他方に前記第2の部分を実施させる前記ネットワークを介した通信より前に実施されるべきである、請求項11に記載のコンピューティングシステム。
【請求項１３】
前記クライアントコンピューティングデバイスが、(i)前記選択されたANNを選択し、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施し、(iii)前記サーバコンピューティングデバイスに前記中間処理結果を送信し、(iv)前記ネットワークを介して前記サーバコンピューティングデバイスから前記最終処理結果を受信する、請求項12に記載のコンピューティングシステム。
【請求項１４】
前記デジタルメディアアイテムが、オーディオファイルまたはビデオファイルであり、前記処理タスクが、音声認識または音声テキスト化である、
請求項11、12または13に記載のコンピューティングシステム。
【請求項１５】
前記デジタルメディアアイテムが、画像ファイルまたはビデオファイルであり、前記処理タスクが、画像認識またはテキスト認識である、請求項11、12または13に記載のコンピューティングシステム。
【請求項１６】
前記処理タスクを協調させることは、
前記クライアントコンピューティングデバイスから、および前記サーバコンピューティングデバイスに、動作パラメータの前記セットを送信することであって、動作パラメータの前記セットの受信が、前記サーバコンピューティングデバイスに、(i)前記選択されたANNを選択することと、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施することとを行わせる、送信することと、
前記クライアントコンピューティングデバイスによって、および前記ネットワークを介して前記サーバコンピューティングデバイスから、前記中間処理結果を受信することと
を含む、請求項12に記載のコンピューティングシステム。
【請求項１７】
前記クライアントコンピューティングデバイスが、前記最終処理結果を取得するために、前記中間処理結果を使用して前記処理タスクの前記第2の部分を実施する、請求項16に記載のコンピューティングシステム。
【請求項１８】
前記デジタルメディアアイテムが、テキストのストリングまたはテキストファイルであり、前記処理タスクがテキスト音声化である、請求項16または17に記載のコンピューティングシステム。
【請求項１９】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルのうちの少なくとも1つを含む、請求項11から18のいずれか一項に記載のコンピューティングシステム。
【請求項２０】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルの両方を含む、請求項11から18のいずれか一項に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年3月28日に出願された米国出願第15/082,653号の優先権の利益を主張する。上記の出願の開示全体が、参照により本明細書に組み込まれる。
【０００２】
本開示は、分散型クライアントサーバ処理に関し、より詳細には、適応型人工ニューラルネットワーク(ANN)選択技法に関する。
【背景技術】
【０００３】
本明細書で与えられる背景技術の説明は、本開示のコンテキストを概括的に提示するためのものである。この背景技術のセクションで説明される範囲での、現在挙げられている発明者の研究、ならびに出願時に場合によっては従来技術と見なされないことがある説明の態様は、明示的にも暗示的にも本開示に対する従来技術として認められない。
【０００４】
クライアントコンピューティングデバイス(たとえば、モバイルフォン)は、処理タスクの少なくとも一部分を実施するように構成されたリモートサーバコンピューティングデバイスと通信することができる。サーバコンピューティングデバイスにおいて実施されるべき処理の程度は、様々な要因に左右され得る。1つの例示的な要因は、クライアントコンピューティングデバイスとサーバコンピューティングデバイスとの間のネットワーク接続の品質または強度である。ネットワーク接続が低品質/強度を有するとき、クライアントコンピューティングデバイスは、処理タスクのより大きい量を扱い得る。しかしながら、いくつかの集約的処理タスク(たとえば、機械学習モデル)の場合、サーバコンピューティングデバイスは、はるかに多くの能力があり、したがって、処理タスクのいくつかの部分を扱うのにはるかに好ましいことがある。これらの場合、低品質/強度ネットワーク接続にもかかわらず、処理がサーバコンピューティングデバイスにおいて行われることが望ましいことがある。したがって、低品質/強度ネットワーク接続上で、必要とされるデータを転送するために、クライアントコンピューティングデバイスは、サーバコンピューティングデバイスに転送されるべきデータに圧縮をかけ得る。しかしながら、この圧縮は、処理タスクの最終結果に悪影響を及ぼすことがある、データ損失を生じることがある。
【発明の概要】
【課題を解決するための手段】
【０００５】
コンピュータ実装技法、および1つまたは複数のプロセッサと、本技法のための実行可能命令のセットを記憶したコンピュータ可読メモリ(たとえば、非一時的コンピュータ可読メモリ)とを有するコンピューティングシステムが提示される。本技法は、1つまたは複数のプロセッサを有するクライアントコンピューティングデバイスによって、デジタルメディアアイテムと、デジタルアイテムに対する処理タスクについての要求とを取得することと、クライアントコンピューティングデバイスによって、(i)クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて動作パラメータのセットを決定することであって、クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスが、ネットワークを介した互いとの通信のために構成された、決定することと、動作パラメータのセットに基づいて、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択することであって、各ANNは、処理タスクのどの部分が、クライアントコンピューティングデバイスによっておよびサーバコンピューティングデバイスによって実施されるべきであるかを定義する、選択することと、クライアントコンピューティングデバイスとサーバコンピューティングデバイスとの間で、選択されたANNに従って処理タスクの処理を協調させることと、クライアントコンピューティングデバイスによって、処理タスクの最終評価に対応する最終処理結果を取得することと、クライアントコンピューティングデバイスによって、最終処理結果に基づいて出力を生成することとを含むことができる。
【０００６】
いくつかの実施形態では、各ANNは、処理タスクの第1の部分および第2の部分を定義し、第1の部分は、(i)クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスのうちの一方によって、(ii)クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスのうちの他方に第2の部分を実施させるネットワークを介した通信より前に実施されるべきである。いくつかの実施形態では、クライアントコンピューティングデバイスは、(i)選択されたANNを選択し、(ii)中間処理結果を取得するために、処理タスクの第1の部分を実施し、(iii)サーバコンピューティングデバイスに中間処理結果を送信し、(iv)ネットワークを介してサーバコンピューティングデバイスから最終処理結果を受信する。
【０００７】
いくつかの実施形態では、クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースは、(i)クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)クライアントコンピューティングデバイスの処理能力のレベルのうちの少なくとも1つを含む。いくつかの実施形態では、クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースは、(i)クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)クライアントコンピューティングデバイスの処理能力のレベルの両方を含む。いくつかの実施形態では、デジタルメディアアイテムは、オーディオファイルまたはビデオファイルであり、処理タスクは、音声認識または音声テキスト化である。他の実施形態では、デジタルメディアアイテムは、画像ファイルまたはビデオファイルであり、処理タスクは、画像認識またはテキスト認識である。他の実施形態では、デジタルメディアアイテムは、テキストのストリングまたはテキストファイルであり、処理タスクはテキスト音声化である。
【０００８】
いくつかの実施形態では、本技法は、クライアントコンピューティングデバイスから、およびサーバコンピューティングデバイスに、動作パラメータのセットを送信することであって、動作パラメータのセットの受信が、サーバコンピューティングデバイスに、(i)選択されたANNを選択することと、(ii)中間処理結果を取得するために、処理タスクの第1の部分を実施することとを行わせる、送信することと、クライアントコンピューティングデバイスによって、およびネットワークを介してサーバコンピューティングデバイスから、中間処理結果を受信することとをさらに含む。いくつかの実施形態では、クライアントコンピューティングデバイスは、最終処理結果を取得するために、中間処理結果を使用して処理タスクの第2の部分を実施する。
【０００９】
本明細書で説明される主題の他の態様は、プロセッサによって実行されたとき、プロセッサに、本明細書で説明されるいずれかの実装形態による方法を実施させる命令のセットを記憶したコンピュータ可読媒体を提供し、1つまたは複数のプロセッサと、命令のセットを記憶したコンピュータ可読メモリとを含むコンピューティングシステムであって、命令のセットは、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに、本明細書で説明されるいずれかの実装形態による方法を含む動作を実施させる、コンピューティングシステムを提供する。
【００１０】
本開示の適用可能性のさらなる領域が、以下で与えられる発明を実施するための形態から明らかになろう。発明を実施するための形態および特定の例は、説明のためのものにすぎず、本開示の範囲を限定するものではないことを理解されたい。態様および実装形態は組み合わせられ得ることと、ある態様または実装形態のコンテキストにおいて説明される特徴は、他の態様または実装形態のコンテキストにおいて実装され得ることとが諒解されよう。
【００１１】
本開示は、発明を実施するための形態および添付の図面からより十分に理解されよう。
【図面の簡単な説明】
【００１２】
【図１】本開示のいくつかの実装形態による、例示的なコンピューティングシステムの図である。
【図２】図1の例示的なコンピューティングデバイスの機能ブロック図である。
【図３Ａ】本開示のいくつかの実装形態による、サーバ側層、クライアント側層、およびボトルネック層の様々な人工ニューラルネットワーク(ANN)構成の図である。
【図３Ｂ】本開示のいくつかの実装形態による、サーバ側層、クライアント側層、およびボトルネック層の様々な人工ニューラルネットワーク(ANN)構成の図である。
【図３Ｃ】本開示のいくつかの実装形態による、サーバ側層、クライアント側層、およびボトルネック層の様々な人工ニューラルネットワーク(ANN)構成の図である。
【図４】本開示のいくつかの実装形態による、例示的な適応型ANN選択技法の流れ図である。
【発明を実施するための形態】
【００１３】
前述のように、クライアントコンピューティングデバイス(たとえば、モバイルフォン)は、処理タスクの少なくとも一部分のためにリモートサーバコンピューティングデバイスに送信さるべきであるデータに圧縮をかけ得る。高い圧縮レベルは、サーバコンピューティングデバイスによって実施される処理の結果に悪影響を及ぼすことがある、データ損失を生じることがある。たとえば、オープンエンド音声認識は、計算コストが高い処理タスクであり、サーバ側で認識を実施することによって、最良の精度が達成され得る。その結果、音声認識関係特徴の広範囲にわたる取り込みにおける1つの制限要因は、関連するネットワーク帯域幅およびレイテンシ要件である。
【００１４】
人工ニューラルネットワーク(ANN)は、一般にサーバコンピューティングデバイスにおいて実装される大規模機械学習モデルを取得するために、深層学習を伴う。ANNによって実施される処理タスクの例は、音声認識(たとえば、音声テキスト化または文字起こし)、画像認識、テキスト認識(たとえば、光学文字認識、またはOCR)、およびテキスト音声変換を含む。ANNは、モデルの多大な改善をもたらし、大きい品質改善につながったが、それは、(クライアントコンピューティングデバイスが、モバイルデバイスなどのバッテリー電源式デバイスである場合)ネットワーク上で送信されるデータによるラウンドトリップレイテンシおよびバッテリー影響を低減しなかった。しかしながら、これらの処理タスクの少なくともいくつかの部分は、クライアントコンピューティングデバイスによってローカルに実施され得る。
【００１５】
したがって、適応型ANN選択技法が提示される。本技法は、クライアントコンピューティングデバイスが、デジタルメディアアイテム(テキスト、オーディオ、画像、ビデオなど)と、デジタルメディアアイテムに対する処理タスクについての要求とを取得することを伴う。クライアントコンピューティングデバイスは、クライアントコンピューティングデバイスとサーバコンピューティングデバイスとの間の処理タスクの分散に影響を及ぼす、動作パラメータ(バッテリーレベル、処理能力、ネットワーク速度など)のセットを取得することができる。処理タスクに応じて、クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスのうちの一方は、各々が処理タスクの分散を定義する、複数のANNのうちの1つを選択することができる。選択されたANNに従って、クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスは、処理タスクの部分を実施することができ、最終評価が、クライアントコンピューティングデバイスにおいて出力され得る。
【００１６】
次に図1を参照すると、本開示のいくつかの実装形態による、例示的なコンピューティングシステム100の図が示されている。コンピューティングシステム100は、ユーザ108に関連するクライアントコンピューティングデバイス104を含むことができる。クライアントコンピューティングデバイス104は、任意の好適なコンピューティングデバイス(デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルフォンなど)であり得る。クライアントコンピューティングデバイス104は、ネットワーク116を介してサーバコンピューティングデバイス112と通信することができる。ネットワーク116は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえば、インターネット、またはそれらの組合せであり得る。本明細書で使用される「サーバコンピューティングデバイス」という用語は、単一のサーバコンピューティングデバイスと、並列または分散型アーキテクチャにおいて動作する2つまたはそれ以上のサーバコンピューティングデバイスの両方を指すことができる。たとえば、機械学習モデルは、複数のサーバコンピューティングデバイス上で分散され得る。
【００１７】
次に図2を参照すると、例示的なコンピューティングデバイス200が示されている。一実装形態では、コンピューティングデバイス200は、通信デバイス204と、プロセッサ208と、メモリ212と、入出力デバイス216と、マイクロフォン220と、カメラ224とを含むことができる。本開示では、コンピューティングデバイス200は、クライアントコンピューティングデバイス104および/またはサーバコンピューティングデバイス112を表すことができる。しかしながら、これらのデバイス104、112は、わずかに異なる構成を有し得ることが諒解されよう(たとえば、サーバコンピューティングデバイス112は、入出力デバイス216と、マイクロフォン220と、カメラ224とを含まないことがある)。通信デバイス204は、ネットワーク116を介した通信のために構成された任意の好適なデバイス(たとえば、トランシーバ)であり得る。メモリ212は、プロセッサ208が実行するための命令のセットなどの情報をコンピューティングデバイス200に記憶するように構成された、任意の好適な記憶媒体(フラッシュ、ハードディスクなど)であり得る。
【００１８】
本明細書で使用される「プロセッサ」という用語は、単一のプロセッサと、並列または分散型アーキテクチャにおいて動作する2つまたはそれ以上のプロセッサの両方を指すことができる。プロセッサ208によって実行されたとき、命令のセットは、コンピューティングデバイス200に、本開示の技法の少なくとも一部分を実施させることができる。入出力デバイス216は、タッチディスプレイ、物理キーボード/ボタン、スピーカー、またはそれらの何らかの組合せであり得る。マイクロフォン220は、オーディオデータ(たとえば、オーディオストリーム)をキャプチャするように構成された任意の好適なデバイスであり得る。カメラ224は、画像/ビデオデータ(たとえば、静止画像またはビデオストリーム)をキャプチャするように構成された任意の好適なデバイス(たとえば、電荷結合デバイス、またはCCD)であり得る。コンピューティングデバイス200は、それの動作に電力供給するための(たとえば、モバイルコンピューティングデバイスのための)バッテリー228をも含むことができる。上述のように、コンピューティングデバイス200は、次により詳細に説明される、本開示の技法の少なくとも一部分を実施するように構成され得る。
【００１９】
再び図1を参照し、引き続き図2を参照すると、クライアントコンピューティングデバイス104は、デジタルメディアアイテムと、処理タスクについての要求とを取得することができる。デジタルメディアアイテムは、ユーザ108がクライアントコンピューティングデバイス104を操作することによって取得され得る(マイクロフォン220によってキャプチャされたオーディオ、入出力デバイス216を介して取得されたテキスト、カメラ224によってキャプチャされた画像/ビデオなど)。デジタルメディアアイテムはまた、別のコンピューティングデバイスによってキャプチャされ、その後、クライアントコンピューティングデバイス104によって取得され得る。デジタルメディアアイテムの非限定的な例は、テキストのストリングまたはテキストファイル全体、画像ファイル、オーディオファイル、およびビデオファイルを含む。処理タスクの非限定的な例は、音声認識(たとえば、音声テキスト化または文字起こし)、テキスト認識(たとえば、OCR)、画像認識、およびテキスト音声変換を含む。
【００２０】
本明細書で使用される「人工ニューラルネットワーク」および「ANN」という用語は、クライアントコンピューティングデバイス104およびサーバコンピューティングデバイス112にわたって分割される、機械学習モデルまたはモデルのファミリーを指すことがある。各機械学習モデルは、たとえば、機械学習モデルを使用して実施される処理タスクと同様のデータを使用してトレーニングされ得る。たとえば、機械学習音響モデルをトレーニングする際に、音響データが利用され得る。各ANNは、異なる層に分割されるものとして説明され得る。各層は、クライアントコンピューティングデバイス104およびサーバコンピューティングデバイス112のうちの1つによって実施されるべきである、タスクまたはタスクのセットを表すことができる。次いで、各タスクまたはタスクの各セットの結果が、後続の層等々にパスされ得る。次いで、最終層が、最終処理結果と呼ばれることもある最終評価を出力することができる。ボトルネック層は、一方のデバイスから他方のデバイスへの(たとえば、クライアントコンピューティングデバイス104からサーバコンピューティングデバイス112への)情報(たとえば、アクティブ化(Activation))の送信を引き起こす層を表すことができる。言い換えれば、ボトルネック層は、デバイスの割り当てられた層の結論を表すことができ、アクティブ化は、初期デバイスによって完了された処理タスクの部分の結果、ならびに他のデバイスにおいて処理タスクを完了するための追加情報を含むことができる。
【００２１】
タスクは、ANNが、品質観点と、他の目的のバランスをもとることとの両方から最適に動作するようにANNをトレーニングすることとして説明され得る。たとえば、1つの他の目的は、クライアント側計算をデバイス上で実現可能であることに制限することであり得る。これは、たとえば、計算コストの増加に対応する、いくつのボトルネックより前の層があるかと、各層のサイズとによって決定され得る。別の例示的な目的は、通信の量/ネットワークコストおよびレイテンシを制限することであり得る。これは、たとえば、ノードの数と、ボトルネック層における情報の量(忠実度のレベル)とによって決定され得る。他方のデバイス(たとえば、サーバコンピューティングデバイス112)は、デバイスに、層の残余を実施することと、したがって、最終評価を取得することとを行わせるアクティブ化を含むことができるボトルネック層を受信することができる。次いで、最終評価は、出力を生成するために、初期デバイス(たとえば、クライアントコンピューティングデバイス104)に返され得る。ANNおよびそれらのそれぞれの層の例が、以下でさらに詳細に説明され、図3A〜図3Cに示されている。
【００２２】
クライアントコンピューティングデバイス104は、処理タスクを実施するための複数のANNのうちの1つの選択において使用され得る、動作パラメータのセットを決定することができる。各動作パラメータは、クライアントコンピューティングデバイス104とサーバコンピューティングデバイス112との間の処理タスクの所望の分散に影響を及ぼすことがあり、したがって、所望の分散を示し得る。前に説明されたように、サーバコンピューティングデバイス112は、広範な処理を扱うためのより良い能力を備え得るが、ネットワーク状態は、たとえば、入力の高次元数により、サーバコンピューティングデバイス112が、処理タスクのすべてまたは大部分を扱うことが可能であることの実現可能性に影響を及ぼすことがある。動作パラメータの非限定的な例は、(i)クライアントコンピューティングデバイス104における利用可能なコンピューティングリソース(バッテリー228の充電のレベル、処理能力のレベル(たとえば、プロセッサ208のタイプ)など)と、(ii)クライアントコンピューティングデバイス104とサーバコンピューティングデバイス112との間のネットワーク116を介した接続(以下、「ネットワーク接続」)の状態とを含む。
【００２３】
たとえば、バッテリー228の充電のより低いレベルは、クライアントコンピューティングデバイス104において処理タスクのより小さい部分を実施することが望まれることを示し得る。同様に、クライアントコンピューティングデバイス104の処理能力のより低いレベルは、クライアントコンピューティングデバイス104において処理タスクのより小さい部分を実施することが望まれることを示し得る。一方、ネットワーク状態の状態は、処理タスクの所望の分散に関するより重要な要因であり得る。より詳細には、より速いネットワーク接続は、サーバコンピューティングデバイス112が、実現可能なだけ多くの処理タスクを実施することが望まれることを示し得る。同様に、より遅いネットワーク接続は、クライアントコンピューティングデバイス104が、処理タスクの少なくとも一部を扱うことが望まれることを示し得る。ネットワーク速度が説明されたが、他のネットワーク接続状態(帯域幅、データコストなど)も所望の分散に影響を及ぼし得る。別の例示的な要因は、たとえば、サーバコンピューティングデバイス112上の負荷(たとえば、重いネットワークトラフィック)であり、これらの場合、クライアントコンピューティングデバイス104は、処理タスクのより大きい部分を扱うことがある。
【００２４】
前述のように、動作パラメータのセットに基づいて、複数のANNのうちの1つが選択され得る。各ANNは、処理タスクのどの部分が、クライアントコンピューティングデバイス104によっておよびサーバコンピューティングデバイス112によって実施されるべきであるかを定義することができる。複数の異なるANNをトレーニングすることによって、およびクライアントおよびサーバのための関連する層を両方の側(クライアントおよびサーバ)で利用可能にすることによって、本明細書で開示される技法は、圧縮レベル、レイテンシ、および計算コストの動的選択を与えることができる。処理タスクに応じて、クライアントコンピューティングデバイス104またはサーバコンピューティングデバイス112のいずれかが、処理タスクの分散型処理において利用される選択されたANNを取得するために、ANNを選択することができる。ボトルネック層アクティブ化を圧縮表現として使用することによって、データは、認識タスクのために最も効果的であるやり方で圧縮され得る。さらに、クエリペイロードをさらに低減するために、可逆圧縮または不可逆圧縮が係数自体に対してかけられ得る。
【００２５】
例示的な一実装形態では、図3A〜図3Cに示されており、以下で説明される3つの異なるANNがあり得る。3つのANNが本明細書で図示および説明されるが、任意の複数のANN(2つのANN、4つまたはそれ以上のANNなど)がトレーニングおよび選択されることがあることが諒解されよう。各ANNは、2つの自由度、すなわち、(1)ボトルネックより前のクライアント側層の数、および(2)ボトルネックの幅を示すことができる。これは、2次元パラメータ面としても説明され得る。図3Aでは、たとえば、ネットワーク接続速度/帯域幅が高い/良好である(たとえば、しきい値を上回る)ときに使用され得る第1の例示的なANN300が示されている。いくつかの実装形態では、このANN300は、クライアントコンピューティングデバイス104の処理能力にかかわらず(すなわち、ネットワーク接続が非常に良好であるので)使用され得る。処理タスクは、少数のクライアント側層304と、多数のサーバ側層308とに分割され、ボトルネック層312がそれらの間にある。クライアントコンピューティングデバイス104において実行されるクライアント側層304は、入力316の受信から始まり、ボトルネック層312で終了することができ、これは、サーバコンピューティングデバイス112へのアクティブ化の送信を引き起こすことができる。層高さインジケータ320は、少数のクライアント側層304を示し、ボトルネック幅インジケータ324は、高品質ネットワーク接続に対応する広いボトルネックを示す。
【００２６】
図3Bでは、別の例示的なANN330が示されている。再び、処理タスクは、ボトルネック層342によって分割されたクライアント側層334とサーバ側層338とに分割される。このANN330は、たとえば、ネットワーク状態速度/帯域幅が低く/不十分であり(たとえば、しきい値を下回り)、クライアントコンピューティングデバイス104の処理能力も低い/不十分である(たとえば、しきい値を下回る)ときに利用され得る。低品質ネットワーク接続は、図3Aと比較してより狭いボトルネック幅インジケータ346によって示される。クライアントコンピューティングデバイス104は、入力350に応答して、図3Aと比較して(層高さインジケータ354によって示されるように)より多くのクライアント側層334を実行するが、クライアントコンピューティングデバイス104の限られた処理能力により、比較的多数のサーバ側層338が依然としてある。図3Bとは対照的に、図3Cは、(ボトルネック幅インジケータ364によって示されている)低品質ネットワーク接続をもつ別の例示的なANN360を示すが、クライアントコンピューティングデバイス104は、はるかにより大きい(たとえば、しきい値よりも大きい)処理能力を有する。したがって、入力368に応答して、クライアントコンピューティングデバイス104は、図3Aおよび図3Bと比較して(層高さインジケータ376によって示されているように)はるかにより多数のクライアント側層372を実行することができる。したがって、ボトルネック層380の後に、サーバコンピューティングデバイス112は、少数のサーバ側層384を実行するにすぎない。
【００２７】
選択されたANNを取得した後に、クライアントコンピューティングデバイス104およびサーバコンピューティングデバイス112は、選択されたANNに従って処理タスクの処理を協調させることができる。これは、たとえば、ネットワーク116を介して送信されるデータにかけられるべきレベル/タイプの圧縮を含むことができる。クライアント処理能力およびネットワーク品質が上記の焦点であるが、ANNの選択は、本明細書で前に説明されたように他の要因にさらに基づき得る。たとえば、限られたバッテリーのシナリオでは、選択は、ネットワークトラフィックのエネルギーコスト(バッテリー充電)と、追加のクライアント側計算のエネルギーコストとのバランスをとることができる。同様に、クライアントコンピューティングデバイス104がローミングしているかまたは高いデータコストを払っていることの自動検出が行われ得る場合、ANNの選択は、小さいボトルネックアーキテクチャのほうへさらにバイアスされ得る。
【００２８】
たいていの処理タスクの場合、クライアントコンピューティングデバイス104は、選択されたANNを選択することができ、中間処理結果を取得するために、処理タスクの第1の部分(たとえば、第1の数の層)を実施することができる。クライアントコンピューティングデバイス104は、次いで、(たとえば、中間処理結果など、アクティブ化と、選択されたANNの一意の識別子(ID)など、処理タスクを完了するための追加情報とを送信することによって)ネットワーク116を介してサーバコンピューティングデバイス112と通信することができ、これは、サーバコンピューティングデバイス112に、最終処理結果を取得するために、処理タスクの第2の部分(たとえば、層の残余)を実施させることができ、最終処理結果は、次いで、出力を生成するためにクライアントコンピューティングデバイス104に返される。特定のANNによって定義されるスタックのすべての層の絶え間ない改善を可能にするために、入力のサンプル、または未加工初期データ(すなわち、圧縮前)のすべてのロギングが、ネットワーク116が制限的である場合などについて実施され得る。次いで、そのようなシナリオにおけるこの非同期ロギングは、ネットワーク116の状態が改善すると、以後の改善を可能にする。
【００２９】
しかしながら、いくつかの処理タスク(たとえば、テキスト音声変換)の場合、サーバコンピューティングデバイス112は、選択されたANNを選択し、中間処理結果を取得するために処理タスクの第1の部分を実施し、アクティブ化(たとえば、中間処理結果、および処理タスクを完了するための追加情報)をクライアントコンピューティングデバイス104に送信することができる。次いで、クライアントコンピューティングデバイス104は、最終処理結果を取得するために、処理タスクの第2の部分を実施することができる。言い換えれば、いくつかの処理タスク(たとえば、テキスト音声変換)のためのプロセスは、他の処理タスクのためのプロセスの逆と考えられ得る。クライアントコンピューティングデバイス104は、最終処理結果に基づいて出力を生成することができる。
【００３０】
クライアントコンピューティングデバイス104によって生成される出力の非限定的な例は、テキスト、画像、および音を含むことができる。この出力は、クライアントコンピューティングデバイス104の様々な構成要素(タッチディスプレイ、スピーカー220など、入出力デバイス216)を使用して生成され得る。たとえば、処理タスクが音声テキスト化であるとき、出力は、元のデジタルメディアアイテム(オーディオまたはビデオファイル)を表すテキストであり得る。別の例として、処理タスクが画像またはテキスト認識であるとき、出力は、元のデジタルメディアアイテム(画像またはビデオファイル)を表すテキストまたは別の画像であり得る。また別の例として、処理タスクがテキスト音声変換であるとき、出力は、元のデジタルメディアアイテム(テキストのストリングまたはテキストファイル)を表す音またはオーディオストリームであり得る。音楽/歌認識など、同じまたは同様の認識処理タスクのために、他の可能な出力も生成されることがあることが諒解されよう。
【００３１】
次に図4を参照すると、例示的な適応型ANN選択技法400の流れ図が示されている。404において、クライアントコンピューティングデバイス104は、デジタルメディアアイテム(テキストのストリングまたはテキストファイル、オーディオファイル、画像ファイル、ビデオファイルなど)と、デジタルアイテムに対する処理タスクについての要求とを取得することができる。408において、クライアントコンピューティングデバイス104は、処理タスクの所望の分散に影響を及ぼす動作パラメータのセットを決定することができる。412において、クライアントコンピューティングデバイス104は、処理タスクが、テキスト音声(「TTS」)変換であるのか、サーバコンピューティングデバイス112がANNを選択することを伴う別の同様の処理タスクであるのかを決定することができる。タスクがテキスト音声変換でない場合、技法400は416に進むことができる。しかしながら、タスクがテキスト音声変換である場合、技法400は432に進むことができる。
【００３２】
416において、クライアントコンピューティングデバイス104は、動作パラメータのセットに基づいて、複数のANNのうちの1つを選択することができる。420において、クライアントコンピューティングデバイス104は、中間処理結果を取得するために、選択されたANNによって指定されている(たとえば、ボトルネック層までの)処理タスクの第1の部分を実施することができる。424において、クライアントコンピューティングデバイス104は、サーバコンピューティングデバイス112にアクティブ化(たとえば、中間処理結果、および処理タスクを完了するための追加情報)を送信することができる。アクティブ化の受信は、サーバコンピューティングデバイス112に、最終処理結果を取得するために、受信されたアクティブ化を使用して、選択されたANNによって指定されている処理タスクの第2の部分を完了させることができる。428において、クライアントコンピューティングデバイス104は、サーバコンピューティングデバイス112から最終処理結果を受信することができる。次いで、技法400は444に進むことができる。
【００３３】
432において、クライアントコンピューティングデバイス104は、サーバコンピューティングデバイス112に動作パラメータのセット(および潜在的に他の情報)を送信することができる。動作パラメータのセットの受信は、サーバコンピューティングデバイス112に、(i)複数のANNのうちの1つを選択することと、(ii)中間処理結果を取得するために、選択されたANNによって指定されている(たとえば、ボトルネック層までの)テキスト音声変換の第1の部分を実施することと、(iii)アクティブ化(たとえば、中間処理結果、および処理タスクを完了するための追加情報)をクライアントコンピューティングデバイス104に送信することとを行わせることができる。中間処理結果は、436においてクライアントコンピューティングデバイス104によって受信され得る。440において、クライアントコンピューティングデバイス104は、最終処理結果を取得するために、受信されたアクティブ化を使用して、選択されたANNによって指定されている処理タスクの第2の部分(すなわち、残余)を完了する。444において、クライアントコンピューティングデバイス104は、最終処理結果に基づいて、出力(テキスト、オーディオストリーム、画像など)を生成することができる。次いで、技法400は、終了するかまたは404に戻ることができる。
【００３４】
上記の説明に加えて、ユーザは、本明細書で説明されるシステム、プログラムまたは特徴が、ユーザ情報(ユーザの現在ロケーションに関する情報、ユーザのセルラー課金プランに関する情報など)の収集を可能にし得るかどうかおよびいつそれを可能にし得るかと、ユーザがサーバからコンテンツまたは通信を送られるかどうかとの両方に関する選択をユーザが行うことを可能にする制御を与えられ得る。さらに、あるデータは、それが記憶または使用される前に、個人識別可能情報(Personally Identifiable Information)が削除されるように1つまたは複数のやり方で取り扱われ得る。たとえば、ユーザの識別情報は、個人識別可能情報がユーザについて決定され得ないように取り扱われ得るか、または、ロケーション情報が(都市、郵便番号、または国家レベルなどまで)取得されるユーザの地理的ロケーションは、ユーザの特定のロケーションが決定され得ないように一般化され得る。したがって、ユーザは、どんな情報がユーザについて収集されるかと、その情報がどのように使用されるかと、どんな情報がユーザに与えられるかとに関する制御を有し得る。
【００３５】
例示的な実施形態は、本開示が完全なものとなり、その範囲を当業者に十分に伝えることになるように与えられている。本開示の実施形態の完全な理解を与えるために、具体的な構成要素、デバイス、および方法の例など、多数の具体的な詳細が記載される。具体的な詳細が採用される必要がないこと、例示的な実施形態が多くの異なる形態で実施され得ること、およびいずれも本開示の範囲を限定すると解釈されるべきでないことが当業者には明らかであろう。いくつかの例示的な実施形態では、よく知られているプロシージャ、よく知られているデバイス構造、およびよく知られている技術は詳細に説明されない。
【００３６】
本明細書で使用される用語は、特定の例示的な実施形態について説明するためのものにすぎず、限定するためのものではない。本明細書で使用される単数形「a」、「an」、および「the」は、コンテキストが別段明確に示さない限り、複数形も含むものとすることがある。「および/または」という用語は、関連する列挙される項目のうちの1つまたは複数のあらゆる組合せを含む。「含む(comprises)」、「含む(comprising)」、「含む(including)」、および「有する(having)」という用語は、包含的であり、したがって、言及される特徴、完全体、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではない。本明細書で説明される方法ステップ、プロセス、および動作は、実施の順序として具体的に特定されない限り、説明されるまたは示される特定の順序でのそれらの実施を必ず必要とすると解釈されるべきでない。また、追加または代替のステップが採用され得ることを理解されたい。
【００３７】
第1の、第2の、第3のなどという用語は、様々な要素、構成要素、領域、層および/またはセクションについて説明するために本明細書で使用され得るが、これらの要素、構成要素、領域、層および/またはセクションは、これらの用語によって限定されるべきでない。これらの用語は、ある要素、構成要素、領域、層またはセクションを、別の領域、層またはセクションと区別するためにのみ使用され得る。「第1の」、「第2の」などという用語および他の数の用語は、本明細書で使用されるとき、コンテキストによって明確に示されない限り、シーケンスまたは順序を暗示しない。したがって、以下で説明される第1の要素、構成要素、領域、層またはセクションは、例示的な実施形態の教示から逸脱することなく、第2の要素、構成要素、領域、層またはセクションと呼ばれることがある。
【００３８】
本明細書で使用されるモジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、組合せ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードまたはプロセスを実行する、ネットワーク化されたクラスタまたはデータセンターにおける、プロセッサ、または(共有、専用、またはグループ化)プロセッサの分散型ネットワーク、およびストレージ、説明される機能を与える他の好適な構成要素、あるいはシステムオンチップなどにおける上記の一部または全部の組合せを指すか、それの一部であるか、またはそれを含み得る。モジュールという用語は、1つまたは複数のプロセッサによって実行されるコードを記憶する(共有、専用、またはグループ化)メモリをも含み得る。
【００３９】
上記で使用されたコードという用語は、ソフトウェア、ファームウェア、バイトコードおよび/またはマイクロコードを含み得、プログラム、ルーチン、機能、クラス、および/またはオブジェクトを指し得る。上記で使用された共有という用語は、複数のモジュールからの一部または全部のコードが、単一の(共有)プロセッサを使用して実行され得ることを意味する。さらに、複数のモジュールからの一部または全部のコードは、単一の(共有)メモリによって記憶され得る。上記で使用されたグループという用語は、単一のモジュールからの一部または全部のコードが、プロセッサのグループを使用して実行され得ることを意味する。さらに、単一のモジュールからの一部または全部のコードは、メモリのグループを使用して記憶され得る。
【００４０】
本明細書で説明される技法は、1つまたは複数のプロセッサによって実行される1つまたは複数のコンピュータプログラムによって実装され得る。コンピュータプログラムは、たとえば、非一時的有形コンピュータ可読媒体であり得るコンピュータ可読媒体に記憶されたプロセッサ実行可能命令を含む。コンピュータプログラムは、記憶されたデータをも含み得る。非一時的有形コンピュータ可読媒体の非限定的な例は、不揮発性メモリ、磁気ストレージ、および光ストレージである。
【００４１】
上記の説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して本明細書で説明される技法を提示する。これらのアルゴリズムの説明および表現は、データ処理技術分野の当業者によって、彼らの研究の内容を他の当業者に最も効果的に伝達するために使用される手段である。これらの動作は、機能的にまたは論理的に説明されるが、コンピュータプログラムによって実装されることが理解される。さらに、モジュールとしてまたは機能名によって動作のこれらの構成を指すことが、一般性の喪失なしに、時々好都合であることも判明している。
【００４２】
別段に明記されていない限り、上記の説明から明らかなように、説明全体にわたって、「処理すること」または「計算すること(computing)」または「計算すること(calculating)」または「決定すること」または「表示すること」などの用語を利用する説明は、コンピュータシステムメモリもしくはレジスタまたは他のそのような情報ストレージ、送信もしくは表示デバイス内の物理(電子)量として表されるデータを操作および転送する、コンピュータシステム、または類似の電子コンピューティングデバイスの動作およびプロセスを指すことを諒解されたい。
【００４３】
説明される技法のいくつかの態様は、アルゴリズムの形態で本明細書で説明されるプロセスステップおよび命令を含む。説明されるプロセスステップおよび命令は、ソフトウェア、ファームウェアまたはハードウェアで実施され得、ソフトウェアで実施されるとき、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォーム上に存在し、それらから動作させられるようにダウンロードされ得ることに留意されたい。
【００４４】
本開示は、本明細書の動作を実施するための装置にも関する。この装置は、必要とされる目的のために特別に構成され得るか、あるいは、それは、汎用コンピュータによってアクセスされ得るコンピュータ可読媒体に記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成されるコンピュータを含み得る。そのようなコンピュータプログラムは、限定はしないが、各々がコンピュータシステムバスに結合された、フロッピーディスク、光ディスク、CD-ROM、磁気光ディスクを含む任意のタイプのディスク、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気または光カード、特定用途向け集積回路(ASIC)、または電子命令を記憶するのに好適な任意のタイプのメディアなど、有形コンピュータ可読記憶媒体に記憶され得る。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを含み得るか、または計算能力の増加のためのマルチプルプロセッサ設計を採用するアーキテクチャであり得る。
【００４５】
本明細書で提示されるアルゴリズムおよび動作は、本質的に、特定のコンピュータまたは他の装置に関係する。本明細書の教示によるプログラムをもつ様々な汎用システムも使用され得るか、または必要とされる方法ステップを実施するための一層特殊化された装置を構成することが好都合であることが判明し得る。様々なこれらのシステムのための必要とされる構造が、等価変形形態とともに、当業者に明らかであろう。さらに、本開示は、特定のプログラミング言語に関して説明されない。本明細書で説明される本開示の教示を実装するために、様々なプログラミング言語が使用され得、特定の言語に対するいかなる言及も、本発明の使用可能化および最良の形態の開示のために与えられることを諒解されたい。
【００４６】
本開示は、多数のトポロジーを介した多種多様なコンピュータネットワークシステムに好適である。本分野内で、大規模ネットワークの構成および管理は、インターネットなど、ネットワークを介して類似しないコンピュータおよびストレージデバイスに通信可能に結合されたストレージデバイスとコンピュータとを含む。
【００４７】
実施形態の上記の説明は、例示および説明の目的で与えられた。実施形態の上記の説明は、網羅的なものでも、本開示を限定するものでもない。特定の実施形態の個々の要素または特徴は、概して、その特定の実施形態に限定されないが、適用可能な場合に、明確に図示または説明されない場合でも、互換性があり、選択された実施形態において使用され得る。特定の実施形態の個々の要素または特徴はまた、様々に変化し得る。そのような変形形態は、本開示からの逸脱と見なされず、すべてのそのような変更は、本開示の範囲内に含まれるものとする。
【符号の説明】
【００４８】
100  コンピューティングシステム
104  クライアントコンピューティングデバイス
108  ユーザ
112  サーバコンピューティングデバイス
116  ネットワーク
200  コンピューティングデバイス
204  通信デバイス
208  プロセッサ
212  メモリ
216  入出力デバイス
220  マイクロフォン
224  カメラ
228  バッテリー
300  ANN
304  クライアント側層
308  サーバ側層
312  ボトルネック層
316  入力
320  層高さインジケータ
324  ボトルネック幅インジケータ
330  ANN
334  クライアント側層
338  サーバ側層
342  ボトルネック層
346  ボトルネック幅インジケータ
350  入力
354  層高さインジケータ
360  ANN
364  ボトルネック幅インジケータ
368  入力
372  クライアント側層
376  層高さインジケータ
380  ボトルネック層
384  サーバ側層
【図１】
2019510287.tif 000003
【図２】
2019510287.tif 000004
【図３Ａ】
2019510287.tif 000005
【図３Ｂ】
2019510287.tif 000006
【図３Ｃ】
2019510287.tif 000007
【図４】
2019510287.tif 000008
【手続補正書】
【提出日】平成30年7月31日(2018.7.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサを有するクライアントコンピューティングデバイスによって、デジタルメディアアイテムと、前記デジタルメディアアイテムに対する処理タスクについての要求とを取得するステップと、
前記クライアントコンピューティングデバイスによって、(i)前記クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて動作パラメータのセットを決定するステップであって、前記クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスが、前記ネットワークを介した互いとの通信のために構成された、決定するステップと、
動作パラメータの前記セットに基づいて、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択するステップであって、各ANNは、前記処理タスクのどの部分が、前記クライアントコンピューティングデバイスによって実施されるべきであるかと、前記処理タスクのどの部分が、前記サーバコンピューティングデバイスによって実施されるべきであるかとを定義し、
各ANNが、前記処理タスクの第1の部分および第2の部分を定義し、前記第1の部分が、(i)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの一方によって、(ii)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの他方に前記第2の部分を実施させる前記ネットワークを介した通信より前に実施されるべきであり、前記第1の部分が、前記それぞれのANNの第1の数の層を含み、前記第2の部分が、前記それぞれのANNの第2の数の層を含む、選択するステップと、
前記選択されたANNに従って、前記クライアントコンピューティングデバイスと前記サーバコンピューティングデバイスとの間で前記処理タスクの処理を協調させるステップと、
前記クライアントコンピューティングデバイスによって、前記処理タスクの最終評価に対応する最終処理結果を取得するステップと、
前記クライアントコンピューティングデバイスによって、前記最終処理結果に基づいて出力を生成するステップと
を含む、コンピュータにより実行される方法。
【請求項２】
前記クライアントコンピューティングデバイスが、(i)前記選択されたANNを選択し、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施し、(iii)前記サーバコンピューティングデバイスに前記中間処理結果を送信し、(iv)前記ネットワークを介して前記サーバコンピューティングデバイスから前記最終処理結果を受信する、請求項1に記載の方法。
【請求項３】
前記デジタルメディアアイテムが、オーディオファイルまたはビデオファイルであり、前記処理タスクが、音声認識または音声テキスト化である、請求項1または2に記載の方法。
【請求項４】
前記デジタルメディアアイテムが、画像ファイルまたはビデオファイルであり、前記処理タスクが、画像認識またはテキスト認識である、請求項1または2に記載の方法。
【請求項５】
前記処理タスクを協調させるステップは、
前記クライアントコンピューティングデバイスから、および前記サーバコンピューティングデバイスに、動作パラメータの前記セットを送信するステップであって、動作パラメータの前記セットの受信が、前記サーバコンピューティングデバイスに、(i)前記選択されたANNを選択することと、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施することとを行わせる、送信するステップと、
前記クライアントコンピューティングデバイスによって、および前記ネットワークを介して前記サーバコンピューティングデバイスから、前記中間処理結果を受信するステップと
を含む、請求項1に記載の方法。
【請求項６】
前記クライアントコンピューティングデバイスが、前記最終処理結果を取得するために、前記中間処理結果を使用して前記処理タスクの前記第2の部分を実施する、請求項5に記載の方法。
【請求項７】
前記デジタルメディアアイテムが、テキストのストリングまたはテキストファイルであり、前記処理タスクがテキスト音声化である、請求項5または6に記載の方法。
【請求項８】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルのうちの少なくとも1つを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルの両方を含む、請求項1から7のいずれか一項に記載の方法。
【請求項１０】
1つまたは複数のプロセッサと、命令のセットを記憶した非一時的メモリとを含むコンピューティングシステムであって、命令の前記セットは、前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに、
クライアントコンピューティングデバイスによって、デジタルメディアアイテムと、前記デジタルメディアアイテムに対する処理タスクについての要求とを取得することと、
前記クライアントコンピューティングデバイスによって、(i)前記クライアントコンピューティングデバイスにおける利用可能なコンピューティングリソースと、(ii)ネットワークの状態とに基づいて動作パラメータのセットを決定することであって、前記クライアントコンピューティングデバイスおよびサーバコンピューティングデバイスが、前記ネットワークを介した互いとの通信のために構成された、決定することと、
動作パラメータの前記セットに基づいて、複数の人工ニューラルネットワーク(ANN)のうちの1つを選択することであって、各ANNは、前記処理タスクのどの部分が、前記クライアントコンピューティングデバイスによって実施されるべきであるかと、前記処理タスクのどの部分が、前記サーバコンピューティングデバイスによって実施されるべきであるかとを定義し、
各ANNが、前記処理タスクの第1の部分および第2の部分を定義し、前記第1の部分が、(i)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの一方によって、(ii)前記クライアントコンピューティングデバイスおよび前記サーバコンピューティングデバイスのうちの他方に前記第2の部分を実施させる前記ネットワークを介した通信より前に実施されるべきであり、前記第1の部分が、前記それぞれのANNの第1の数の層を含み、前記第2の部分が、前記それぞれのANNの第2の数の層を含む、選択することと、
前記選択されたANNに従って、前記クライアントコンピューティングデバイスと前記サーバコンピューティングデバイスとの間で前記処理タスクの処理を協調させることと、
前記クライアントコンピューティングデバイスによって、前記処理タスクの最終評価に対応する最終処理結果を取得することと、
前記クライアントコンピューティングデバイスによって、前記最終処理結果に基づいて出力を生成することと
を含む動作を実施させる、コンピューティングシステム。
【請求項１１】
前記クライアントコンピューティングデバイスが、(i)前記選択されたANNを選択し、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施し、(iii)前記サーバコンピューティングデバイスに前記中間処理結果を送信し、(iv)前記ネットワークを介して前記サーバコンピューティングデバイスから前記最終処理結果を受信する、請求項10に記載のコンピューティングシステム。
【請求項１２】
前記デジタルメディアアイテムが、オーディオファイルまたはビデオファイルであり、前記処理タスクが、音声認識または音声テキスト化である、請求項10または11に記載のコンピューティングシステム。
【請求項１３】
前記デジタルメディアアイテムが、画像ファイルまたはビデオファイルであり、前記処理タスクが、画像認識またはテキスト認識である、請求項10または11に記載のコンピューティングシステム。
【請求項１４】
前記処理タスクを協調させることは、
前記クライアントコンピューティングデバイスから、および前記サーバコンピューティングデバイスに、動作パラメータの前記セットを送信することであって、動作パラメータの前記セットの受信が、前記サーバコンピューティングデバイスに、(i)前記選択されたANNを選択することと、(ii)中間処理結果を取得するために、前記処理タスクの前記第1の部分を実施することとを行わせる、送信することと、
前記クライアントコンピューティングデバイスによって、および前記ネットワークを介して前記サーバコンピューティングデバイスから、前記中間処理結果を受信することと
を含む、請求項10に記載のコンピューティングシステム。
【請求項１５】
前記クライアントコンピューティングデバイスが、前記最終処理結果を取得するために、前記中間処理結果を使用して前記処理タスクの前記第2の部分を実施する、請求項14に記載のコンピューティングシステム。
【請求項１６】
前記デジタルメディアアイテムが、テキストのストリングまたはテキストファイルであり、前記処理タスクがテキスト音声化である、請求項14または15に記載のコンピューティングシステム。
【請求項１７】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルのうちの少なくとも1つを含む、請求項10から16のいずれか一項に記載のコンピューティングシステム。
【請求項１８】
前記クライアントコンピューティングデバイスにおける前記利用可能なコンピューティングリソースが、(i)前記クライアントコンピューティングデバイスのバッテリーの充電のレベル、(ii)前記クライアントコンピューティングデバイスの処理能力のレベルの両方を含む、請求項10から16のいずれか一項に記載のコンピューティングシステム。
【国際調査報告】
2019510287.tif 000009
2019510287.tif 000010
2019510287.tif 000011