(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044549
(43)【公開日】2024-04-02
(54)【発明の名称】送信するパケットを事前廃棄する送信装置
(51)【国際特許分類】
H04L 47/263 20220101AFI20240326BHJP
【FI】
H04L47/263
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022150132
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ワン ツェン
(72)【発明者】
【氏名】吉兼 昇
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA13
5K030HA08
5K030LC11
5K030MB06
(57)【要約】 (修正有)
【課題】輻輳を回避するために送信するパケットを事前廃棄するために、受信装置における処理結果を劣化させず、かつ、受信装置において処理結果を得るまでの時間が長くなることを抑える送信装置及びプログラムを提供する。
【解決手段】送信装置1は、受信装置2に送信すべき情報に基づき複数の第1パケットを生成するソース部10と、廃棄率Rを設定する制御部13と、廃棄率Rに従い前記複数の第1パケットの一部を廃棄して残りの複数の第2パケットを受信装置に送信するパケット廃棄部11と、を備える。制御部は、前記複数の第2パケットの受信装置2による受信期間に対応する第1情報(遅延L)と、受信装置2が前記複数の第2パケットに基づき行う処理の結果の性能を示す第2情報(評価値P)と、を受信装置2から取得し、遅延L及び評価値Pに基づき廃棄率Rを更新して記憶部12に格納し、前記第1情報及び前記第2情報に基づき前記廃棄率を制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
受信装置に送信すべき情報に基づき複数の第1パケットを生成する生成手段と、
廃棄率を設定する制御手段と、
前記廃棄率に従い前記複数の第1パケットの一部を廃棄して残りの複数の第2パケットを前記受信装置に送信する送信手段と、
前記複数の第2パケットの前記受信装置による受信期間に対応する第1情報と、前記受信装置が前記複数の第2パケットに基づき行う処理の結果の性能を示す第2情報と、を前記受信装置から取得する取得手段と、
を備え、
前記制御手段は、前記第1情報及び前記第2情報に基づき前記廃棄率を制御する、送信装置。
【請求項2】
前記送信装置は、複数のステージを繰り返し実行し、
前記複数のステージそれぞれは、前記廃棄率に従い前記複数の第1パケットの一部を廃棄して残りの前記複数の第2パケットを前記受信装置に送信し、前記受信装置から前記第1情報及び前記第2情報を取得することを含み、
前記制御手段は、第1ステージで取得した前記第2情報が、前記第1ステージの1つ前の第2ステージで取得した前記第2情報が示す性能に対して第1閾値より大きく劣化していることを示している場合、前記第1ステージの次に行う第3ステージでの前記廃棄率を前記第1ステージでの前記廃棄率より第1所定値だけ減少させる、請求項1に記載の送信装置。
【請求項3】
前記制御手段は、前記第1ステージで取得した前記第2情報が、前記第2ステージで取得した前記第2情報が示す性能に対して前記第1閾値より大きく劣化していないことを示している場合において、前記第1ステージで取得した前記第1情報が、前記第2ステージで取得した前記第1情報が示す受信期間に対して第2閾値より大きく増大していることを示している場合、前記第3ステージでの前記廃棄率を前記第1ステージでの前記廃棄率より第2所定値だけ増加させる、請求項2に記載の送信装置。
【請求項4】
前記制御手段は、前記第1ステージで取得した前記第2情報が、前記第2ステージで取得した前記第2情報が示す性能に対して前記第1閾値より大きく劣化していないことを示している場合において、前記第1ステージで取得した前記第1情報が、前記第1ステージの前に実行した複数回のステージそれぞれで取得した複数の前記第1情報の内の少なくとも1つの前記第1情報が示す受信期間に対して第2閾値より大きく増大していることを示している場合、前記第3ステージでの前記廃棄率を前記第1ステージでの前記廃棄率より第2所定値だけ増加させる、請求項2に記載の送信装置。
【請求項5】
前記制御手段は、前記第1ステージで取得した前記第2情報が、前記第2ステージで取得した前記第2情報が示す性能に対して前記第1閾値より大きく劣化していないことを示している場合において、前記第1ステージで取得した前記第1情報が、前記第2ステージで取得した前記第1情報が示す受信期間に対して第2閾値より大きく増大していないことを示している場合、前記第3ステージでの前記廃棄率を前記第1ステージでの前記廃棄率と同じにする、請求項2に記載の送信装置。
【請求項6】
前記制御手段は、前記第1ステージで取得した前記第2情報が、前記第2ステージで取得した前記第2情報が示す性能に対して前記第1閾値より大きく劣化していないことを示している場合において、前記第1ステージで取得した前記第1情報が、前記第1ステージの前に実行した複数回のステージそれぞれで取得した複数の前記第1情報が示す総ての受信期間に対して第2閾値より大きく増大していないことを示している場合、前記第3ステージでの前記廃棄率を前記第1ステージでの前記廃棄率と同じにする、請求項2に記載の送信装置。
【請求項7】
1つ以上のプロセッサを有する装置の前記1つ以上のプロセッサで実行されると前記装置を請求項1から6のいずれか1項に記載の送信装置として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、輻輳を回避するために送信するパケットを事前廃棄する技術に関する。
【背景技術】
【0002】
非特許文献1は、ニューラルネットワーク(NN)の分散深層学習(DDL)を行うための構成を開示している。DDLでは、1つのNNの学習のために行う処理を分割して複数の処理装置に実行させる。DDLにおいて、処理装置は、自装置に割り当てられた処理を実行するために、他の処理装置が行った処理により得られた情報を一般的に必要とする。このため、DDLでは、処理装置間でパケットの送受信が行われる。以下の説明において、パケットを他の処理装置に送信する処理装置を"送信装置"と表記し、他の処理装置からパケットを受信する処理装置を"受信装置"と表記する。なお、複数の処理装置は、それぞれ、"送信装置"と"受信装置"の両方として機能し得る。
【0003】
例えば、NNの学習における順方向伝搬時に送信装置から送信されるパケットには、当該NNの複数のレイヤ(層)の内の当該送信装置が処理を担当するレイヤの出力値を示す情報が含められる。また、逆方向伝搬時、送信装置から送信されるパケットには、当該送信装置が処理を担当するレイヤの誤差を示す情報が含められる。非特許文献1は、処理装置間を光パスで接続する構成を開示している。また、非特許文献2は、DDLにおいて輻輳を回避するため、送信装置において、受信装置に送信するパケットの一部を廃棄する構成を開示している。DDLにおいては、送信装置が受信装置に送信する情報の一部が欠落しても学習に大きな影響を与えないことが知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】C. Wang,et.al.,“Acceleration and Efficiency Warranty for Distributed Machine Learning Jobs over Data Center Network with Optical Circuit Switching”,2021 Optical Fiber Communications Conference and Exhibition(OFC),2021,pp.1-3
【非特許文献2】Jiacheng Xia,et.al.,2019.Rethinking Transport Layer Design for Distributed Machine Learning. In Proceedings of the 3rd Asia-Pacific Workshop on Networking 2019(APNet´19),Association for Computing Machinery,New York,USA,22-28
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかながら、輻輳を回避するために送信装置が多数のパケットを廃棄すると、受信装置では多くの情報が欠落し、当該受信装置における処理結果のパフォーマンス(性能)が劣化し得る。一方、送信装置におけるパケットの廃棄が十分ではないと輻輳が回避されず、当該パケットを受信する受信装置において処理結果を得るまでの時間が長くなる。
【0006】
本開示は、送信するパケットを事前廃棄する送信装置において、受信装置における処理結果を劣化させず、かつ、受信装置において処理結果を得るまでの時間が長くなることを抑える技術を提供するものである。
【課題を解決するための手段】
【0007】
本開示の一態様によると、送信装置は、受信装置に送信すべき情報に基づき複数の第1パケットを生成する生成手段と、廃棄率を設定する制御手段と、前記廃棄率に従い前記複数の第1パケットの一部を廃棄して残りの複数の第2パケットを前記受信装置に送信する送信手段と、前記複数の第2パケットの前記受信装置による受信期間に対応する第1情報と、前記受信装置が前記複数の第2パケットに基づき行う処理の結果の性能を示す第2情報と、を前記受信装置から取得する取得手段と、を備え、前記制御手段は、前記第1情報及び前記第2情報に基づき前記廃棄率を制御する。
【発明の効果】
【0008】
本開示によると、送信するパケットを事前廃棄する送信装置において、受信装置における処理結果を劣化させず、かつ、受信装置において処理結果を得るまでの時間が長くなることを抑えることができる。
【図面の簡単な説明】
【0009】
【
図1】一実施形態による送信装置及び受信装置の構成図。
【
図2】一実施形態による送信装置が行う処理のフローチャート。
【
図3】一実施形態による制御部が行う処理のフローチャート。
【
図4】一実施形態による制御部が行う処理のフローチャート。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうちの二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0011】
以下では、複数の処理装置によりDDLを行う場合を例として実施形態の説明を行う。上述した様に、DDLにおいては複数の処理装置間でパケットの送受信を行う。本実施形態において、パケットを送信する処理装置は送信装置として参照され、パケットを受信する処理装置は受信装置として参照される。なお、各処理装置は、送信装置及び受信装置の両方として機能し得る。送信装置と受信装置のペアは複数あるが、送信装置が受信装置にパケットを送信するために行う処理は、総てのペアにおいて同様である。したがって、以下では、
図1に示す送信装置1と受信装置2の1つのペアについてのみ説明する。
【0012】
まず、本実施形態で使用する用語について説明する。NNの深層学習は、教師データによる各レイヤ(層)の出力値の順方向伝搬と、順方向伝搬の結果に基づく誤差の逆方向伝搬により実行される。以下では、順方向伝搬と、当該順方向伝搬の結果に基づく誤差の逆方向伝搬とを実行して、NNの各重みを更新するまでの処理を1つの"ステージ"と表記する。深層学習においては、このステージが繰り返し行われる。
【0013】
各ステージにおいて、送信装置1は受信装置2に複数のパケットを送信する。当該複数のパケットは、例えば、NNの複数のレイヤの内の送信装置1が処理を担当するレイヤの出力値や、誤差といった送信装置1での処理結果を含む。当該処理結果は、受信装置2での処理に使用される。本実施形態において、"遅延"とは、1つのステージにおいて、受信装置2が送信装置1からの最初のパケットの受信を開始したタイミングから最後のパケットの受信を完了したタイミングまでの期間とする。つまり、本実施形態における"遅延"とは、受信装置2が送信装置1からのパケットを受信している受信期間に対応する。なお、各ステージにおいて、送信装置1が受信装置2に送信するデータ量は一定であるものとする。各ステージにおいて、送信装置1が受信装置2に送信するデータ量が一定であるため、送信装置1から受信装置2に至るネットワークの経路に輻輳が生じていない場合、各ステージにおいて遅延は略一定である。一方、送信装置1から受信装置2に至るネットワークの経路に輻輳が生じると、輻輳が生じていない場合と比較して遅延は大きくなる。なお、一般的に、輻輳の程度が高くなる程、遅延は大きくなる。
【0014】
各ステージにおいて、送信装置1から受信装置2へのパケットの送信が完了すると受信装置2は所定の処理を行う。受信装置2は所定の処理が完了すると、処理結果のパフォーマンスを評価して評価値を判定する。パフォーマンスの評価方法は任意である。例えば、DDLにおいて各受信装置2は、ステージ毎に誤差を受け取る。誤差は、ステージの繰り返し回数が多くなる程、一般的には小さくなるが、受信装置2が処理に必要な情報を十分に受信していない場合には、前回のステージからの誤差の減少度合いが小さくなる、或いは、場合によっては増加し得る。したがって、連続する2つのステージの誤差の差に基づき各ステージのパフォーマンスを評価して評価値を判定することができる。
【0015】
以下、
図1を使用して、1つのステージにおける送信装置1及び受信装置2の動作について説明する。送信装置1のソース部10は、あるステージにおいて送信装置1が行った処理結果で得られた情報の内、受信装置2に送信する必要がある情報をパケット化してパケット廃棄部11に出力する。記憶部12には、パケットの廃棄率Rが格納されている。パケット廃棄部11は、廃棄率Rに基づきソース部10からの複数のパケットの内の一部を廃棄し、残りの複数のパケットを受信装置2に送信する。例えば、パケットの廃棄率Rの値が1%であり、ソース部10から100個のパケットを受信した場合、パケット廃棄部11は、その内の1つを廃棄して残りの99個のパケットを受信装置2に送信する。
【0016】
受信装置2の受信部20は、送信装置1からのパケットを受信して処理部21に出力する。処理部21は、送信装置1からのパケットを使用して受信装置2に与えられた所定の処理を実行する。また、受信部20は、受信したパケットに基づき上述した遅延Lを測定して送信装置1に通知する。さらに、処理部21は、所定の処理の結果に基づき、上述したパフォーマンスの評価値Pを判定して送信装置1に通知する。送信装置1の制御部13は、受信装置2から取得する遅延L及び評価値Pに基づき廃棄率Rを更新して記憶部12に格納する。この廃棄率Rは、次のステージにおいて使用される。なお、制御部13は、送信装置1が行う動作の全体を制御する。
【0017】
図2は、送信装置1が実行する処理のフローチャートである。
図2のフローチャートにおいては、各ステージを順に第sステージと表記する。なお、sは0以上の整数とする。また、第sステージで使用する廃棄率RをR
sと表記し、第sステージで受信装置2から通知される遅延L及び評価値Pを遅延L
s及び評価値P
sと表記する。なお、最初のステージ、つまり、第0ステージにおける廃棄率R
0を0とする。
【0018】
S10において、制御部13は、ステージの繰り返し回数を示すインデクスsを0に初期化する。S11において、パケット廃棄部11は、廃棄率Rsでソース部10からのパケットを廃棄しながら受信装置2に残りのパケットを送信する。第0ステージの場合、廃棄率Rsは0であるためパケット廃棄部11は、ソース部10からの総てのパケットを受信装置2に送信する。S12において、制御部13は、第sステージでの遅延Ls及び評価値Psを受信装置2から取得する。
【0019】
制御部13は、S13においてs=0であるか否か、つまり、第0ステージであるか否かを判定する。第0ステージである場合、制御部13は、S14で、次のステージ、つまり、第1ステージにおける廃棄率R
1を所定値R
pに設定する。一方、第0ステージではない場合、制御部13は、S15において、1つ前のステージにおける遅延L
s-1及び評価値P
s-1と、現在のステージにおける遅延L
s及び評価値P
sと、に基づき次のステージ、つまり、第(s+1)ステージにおける廃棄率R
s+1を求める。制御部13は、S16で、現在のステージが最終ステージであるか否かを判定する。現在のステージが最終ステージではない場合、制御部13は、S17でインデクスsを1だけ増加させてS11から処理を繰り返す。一方、現在のステージが最終ステージである場合、制御部13は、
図2の処理を終了する。
【0020】
図3は、
図2のS15における処理のフローチャートである。制御部13は、S20において、第sステージでの評価値P
sと第(s-1)ステージでの評価値P
s-1とを比較し、評価値P
sが評価値P
s-1より劣化し、かつ、その劣化度合いが第1閾値より大きいかを判定する。つまり、第(s-1)ステージでのパフォーマンスと比較して、第sステージでのパフォーマンスが、第1閾値より大きく劣化しているかを判定する。第sステージでのパフォーマンスが、1つ前のステージに対して第1閾値より大きく劣化している場合、制御部13は、廃棄率R
sが大きすぎると判定する。よって、制御部13は、S22で、次の第(s+1)ステージでの廃棄率R
s+1を、現在の第sステージでの廃棄率R
sより所定値R
p2だけ減少させる。
【0021】
一方、第sステージでのパフォーマンスが、1つ前のステージに対して第1閾値より大きく劣化していない場合、制御部13は、S21において、第sステージでの遅延Lsと第(s-1)ステージでの遅延Ls-1とを比較し、遅延Lsが遅延Ls-1より増加し、かつ、その増加度合いが第2閾値より大きいかを判定する。つまり、第(s-1)ステージでの遅延と比較して、第sステージでの遅延が、第2閾値より大きく増加しているかを判定する。第sステージでの遅延が、1つ前のステージに対して第2閾値より大きく増加している場合、制御部13は、廃棄率Rsが小さすぎると判定する。よって、制御部13は、S23で、次の第(s+1)ステージでの廃棄率Rs+1を、現在の第sステージでの廃棄率Rsより所定値Rp1だけ増加させる。一方、第sステージでの遅延が、1つ前のステージに対して第2閾値より大きく増加していない場合、制御部13は、現在の廃棄率Rsが適切であると判定する。この場合、制御部13は、S24で、現在の廃棄率Rsを変更せずに第(s+1)ステージでも使用すると判定する。
【0022】
以上の様に廃棄率Rを制御することで、遅延を抑え、かつ、パフォーマンスの低下を抑える様に廃棄率Rを制御することができる。遅延を抑えることで、つまり、受信装置2での送信装置1からの情報の受信期間が長くなることを抑えることで、受信装置において処理結果を得るまでの時間が長くなることを抑えることができる。また、パフォーマンスの低下を抑えることで、受信装置2における処理結果の劣化を抑えることができる。
【0023】
なお、廃棄率Rは負の値をとり得ないため、S22において廃棄率Rs+1が負の値になる場合、制御部13は、廃棄率Rs+1を0に設定する。また、廃棄率Rの上限値を定め、S23において廃棄率Rs+1が上限値を超える場合、制御部13は、廃棄率Rs+1を上限値に設定する構成とし得る。また、所定値Rp、Rp+1及びRp+2は、同じ値であっても異なる値であっても良い。
【0024】
<変形例>
図3において、制御部13は、S21で、第sステージでの遅延が1つ前のステージに対して第2閾値より大きく増加している場合、S23で、次のステージでの廃棄率Rを所定値だけ増加させ、そうでない場合、S24で、廃棄率Rを変更せずに次のステージでそのまま使用すると決定していた。本変形例では、第kステージ(kは2以上の整数)になると、現在の第sステージでの遅延L
sと、過去k回のステージでの遅延との比較により、次の第(s+1)ステージでの廃棄率R
s+1を決定する。なお、第kステージとなるまでの処理は
図3と同様である。
【0025】
図4は、本変形例において制御部13が
図2のS15で行う処理のフローチャートを示している。なお、本変形例において
図2のS15は、"L
s~L
s-kとP
s及びP
s-1とに基づきR
s+1を判定"となる。
図4では、
図3のフローチャートと同じ処理ステップについては同じステップ番号を付与している。
図3のフローチャートとの相違点は、
図3のS21がS30となることである。S30において、制御部13は、遅延L
sと、過去k回のステージでの遅延L
s-1、L
s-2、・・・、L
s-kとを比較する。そして、遅延L
s-1、L
s-2、・・・、L
s-kの内の少なくとも1つに対する遅延L
sの増加量が第2閾値より大きい場合、制御部13は、S23において、次のステージでの廃棄率Rを所定値だけ増加させる。一方、遅延L
s-1、L
s-2、・・・、L
s-kの総てに対する遅延L
sの増加量が第2閾値より大きくない場合、制御部13は、S24において、廃棄率Rを変更せずに次のステージでそのまま使用すると決定する。
【0026】
本変形例では、1つの前のステージのみならず、過去複数回のステージでの遅延Lとの比較結果に基づき廃棄率Rを制御するため、パフォーマンスの劣化を抑えつつ、遅延をより最適化する様に廃棄率Rを制御することができる。
【0027】
なお、DDLを行う場合を例にして実施形態の説明を行ったが、本開示は、一部の情報が欠落しても問題が無いアプリケーションに対して適用できる。その様なアプリケーションの例は、例えば、動画や音楽等のコンテンツの配信である。コンテンツの配信においては一部の少量の情報が欠落しても、コンテンツの視聴が不可能となることはない。コンテンツ配信においては、コンテンツを所定データ量のブロックに分割し、1つのブロックの送信を1つのステージとし得る。
【0028】
なお、本開示による送信装置1は、1つ以上のプロセッサを有する装置の当該1つ以上のプロセッサで実行されると、当該装置を上記送信装置1として機能させるコンピュータプログラムにより実現され得る。コンピュータプログラムは、1つ以上のプロセッサが実行可能なプログラム命令を含み得る。コンピュータプログラムは、コンピュータが読み取り可能な非一時的な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【0029】
以上の構成により、送信するパケットを事前廃棄する送信装置において、受信装置における処理結果を劣化させず、かつ、受信装置において処理結果を得るまでの時間が長くなることを抑えることができる。したがって、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0030】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0031】
10:ソース部、11:パケット廃棄部、13:制御部