(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-05-24
(54)【発明の名称】データ処理方法と装置、コンピュータデバイス、記録媒体、及びコンピュータプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20220517BHJP
【FI】
G06F9/50 150Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021557139
(86)(22)【出願日】2020-12-03
(85)【翻訳文提出日】2021-09-24
(86)【国際出願番号】 CN2020133647
(87)【国際公開番号】W WO2021135810
(87)【国際公開日】2021-07-08
(31)【優先権主張番号】201911403669.4
(32)【優先日】2019-12-30
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520180323
【氏名又は名称】上▲海▼商▲湯▼智能科技有限公司
【氏名又は名称原語表記】SHANGHAI SENSETIME INTELLIGENT TECHNOLOGY CO., LTD.
【住所又は居所原語表記】Room 1605A, Building 3, 391 Guiping Road, Xuhui District, Shanghai 200233 China
(74)【代理人】
【識別番号】110000729
【氏名又は名称】特許業務法人 ユニアス国際特許事務所
(72)【発明者】
【氏名】▲張▼ 衡
(57)【要約】
本発明は、深層学習モデルのトレーニングに用いられる、データ処理方法と装置、コンピュータデバイス、記録媒体、及びコンピュータプログラムを提供し、当該方法は、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることと、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理方法であって、
前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることと、
前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することと、を含む
ことを特徴とするデータ処理方法。
【請求項2】
前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項1に記載のデータ処理方法。
【請求項3】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項2に記載のデータ処理方法。
【請求項4】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ること、および/または、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項2または3に記載のデータ処理方法。
【請求項5】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項4に記載のデータ処理方法。
【請求項6】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることをさらに含む
ことを特徴とする請求項5に記載のデータ処理方法。
【請求項7】
前記所定のデータスループット条件は、
前記データスループットの現在数値が履歴数値よりも大きいことと、
前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、
ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である
ことを特徴とする請求項5または6に記載のデータ処理方法。
【請求項8】
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることをさらに含み、
ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される
ことを特徴とする請求項1から7の中のいずれか1項に記載のデータ処理方法。
【請求項9】
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることは、
前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加すること、および/または、
前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少することを含む
ことを特徴とする請求項8に記載のデータ処理方法。
【請求項10】
1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理装置であって、
前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るための第1更新モジュールと、
前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納するための読取りモジュールと、を備える
ことを特徴とするデータ処理装置。
【請求項11】
前記第1更新モジュールは、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得る
ことを特徴とする請求項10に記載のデータ処理装置。
【請求項12】
前記第1更新モジュールは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得る
ことを特徴とする請求項11に記載のデータ処理装置。
【請求項13】
前記第1更新モジュールは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得るし、および/または、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得る
ことを特徴とする請求項11または12に記載のデータ処理装置。
【請求項14】
前記第1更新モジュールは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得る
ことを特徴とする請求項13に記載のデータ処理装置。
【請求項15】
前記第1更新モジュールは、さらに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得る
ことを特徴とする請求項14に記載のデータ処理装置。
【請求項16】
前記所定のデータスループット条件は、
前記データスループットの現在数値が履歴数値よりも大きいことと、
前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、
ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である
ことを特徴とする請求項14または15に記載のデータ処理装置。
【請求項17】
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得るための第2更新モジュールをさらに備え、
ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される
ことを特徴とする請求項10から16の中のいずれか1項に記載のデータ処理装置。
【請求項18】
前記第2更新モジュールは、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得るときに、
前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加し、および/または、
前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少する
ことを特徴とする請求項17に記載のデータ処理装置。
【請求項19】
コンピュータデバイスであって、
プロセッサと、記録媒体と、バスと、を備え、
前記記録媒体には、前記プロセッサによって実行可能な機械可読命令が記録されており、
コンピュータデバイスが運行されるときに、前記プロセッサと前記記録媒体との間はバスを介して通信し、前記機械可読命令は前記プロセッサによって実行されて請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータデバイス。
【請求項20】
コンピュータ可読記録媒体であって、
当該コンピュータ可読記録媒体には、コンピュータプログラムが記録されており、当該コンピュータプログラムがプロセッサによって運行されるときに、請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータ可読記録媒体。
【請求項21】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサによって実行されるときに、請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
<関連出願の相互引用>
本発明は、出願番号が201911403669.4であり、出願日が2019年12月30日である中国特許出願の優先権を主張し、当該中国特許出願の全ての内容が援用により本願に組み入れられる。
本発明は、機械学習技術分野に関し、具体的には、データ処理方法と装置、コンピュータデバイス、記録媒体、及びコンピュータプログラムに関する。
【背景技術】
【0002】
深層学習モデルは、大量のサンプルデータに基づく複数回の反復トレーニングを必要とする。機械学習モデルのトレーニング過程での収束速度を向上させるために、通常、マルチプロセス並列トレーニングの方法を採用して実現している。マルチプロセス並列トレーニングの方法を採用して深層学習モデルに対してトレーニングを実行するときに、今回のトレーニングの計算タスクを実行する同時に、各々の並列プロセスで次回のトレーニングに必要なトレーニングデータを事前に読み取ることになる。各々の並列プロセスは、当該回のトレーニングを実行した後に、すべてのプロセス間で通信およびデータ同期化を実行する必要があり、あるプロセスで次回のトレーニングに利用するトレーニングデータを読み取る速度が遅すぎると、トレーニングプロセス全体が遅延され、トレーニング効率の低下につながる。
【発明の概要】
【0003】
本発明の実施例は、データ処理方法および装置を少なくとも提供する。
【0004】
第1の態様によると、本発明の実施例は、1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理方法を提供し、当該方法は、前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることと、前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することと、を含む。
【0005】
このようにして、メインプロセスは、プリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、データキューに現在含まれているサンプルデータ量が目標プリフェッチ数量に達してないときに、サンプルデータプールから新たなサンプルデータを読み取るため、メインプロセスは、1回の反復トレーニングを実行した後に、次の1回の反復トレーニングに必要なサンプルデータの読み取りがすでに完了されることになる。実際のほとんどの場合、メインプロセスがデータを読み取るのにかかる時間は、1つの反復トレーニングを実行するのにかかる時間よりも短いことが多いため、データキュー中に十分な数量のサンプルデータが常に格納されて後続のいくつかの反復トレーニングの使用を満たすように確保することができ、メインプロセスが特定のサンプルデータの読み取るのにかかる時間が長すぎても、サンプル数量が時間内に読み取られなくて反復トレーニングに遅延が発生されることを回避することができ、トレーニング効率を向上させた。
【0006】
可能な1実施形態において、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることを含む。
【0007】
このようにして、プリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量を動的に更新することができ、プリフェッチサンプルデータの量を柔軟に割り当てることができて、トレーニングの要件を満たすことができる。
【0008】
可能な1実施形態において、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得ることを含む。
【0009】
このようにして、プリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記深層学習モデルをトレーニングするときのデータスループットに基づいて、プリフェッチ数量を動的に更新し、データスループットが増加されるときに、プリフェッチサンプルデータキュー中のデータ量がサンプルデータの消費に追いつくことができるようにし、データスループットが減少されるときに、プリフェッチサンプルデータキューによって占有されるメモリの量を可能な限り減少し、余剰のメモリを他の作業に使用することができ、調整がより柔軟になる。
【0010】
可能な1実施形態において、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ること、および/または、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることを含む。
【0011】
このようにして、プリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合には、可能な限りプリフェッチサンプルデータを増加し、プリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合には、サンプルデータのプリフェッチ数量を減少することによって、プリフェッチサンプルデータキューの長さを柔軟に調整することができる。
【0012】
可能な1実施形態において、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることは、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることを含む。
【0013】
可能な1実施形態において、前記方法は、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることをさらに含む。
【0014】
可能な1実施形態において、前記所定のデータスループット条件は、前記データスループットの現在数値が履歴数値よりも大きいことと、前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である。
【0015】
可能な1実施形態において、前記方法は、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることをさらに含み、ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される。
【0016】
可能な1実施形態において、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることは、前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加すること、および/または、前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少することを含む。
【0017】
このようにして、プリフェッチ数量を増加する必要があるときに、プリフェッチ数量をより速く増加することによって、プリフェッチサンプルデータキューに格納したサンプルデータがより多い数量により速く達するようにより速く保証し、後続のトレーニング反復サイクルの使用の要件を満たすことができ、プリフェッチ数量が少なすぎてモデルトレーニング過程が遅延されることを回避する同時に、プリフェッチ数量を減少する必要があるときに、プリフェッチ数量をより緩やかに減少して、プリフェッチサンプルデータキューの長さの変化がよりスムーズになるように保証することができ、プリフェッチサンプルデータの数量の急激な減少によるトレーニング過程のショックを回避することができる。
【0018】
第2の態様によると、本発明の実施例は、1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理装置をさらに提供し、当該装置は、前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るための第1更新モジュールと、前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納するための読取りモジュールと、を備える。
【0019】
第3の態様によると、本発明の実施例は、コンピュータデバイスをさらに提供し、当該コンピュータデバイスは、プロセッサと、記録媒体と、バスと、を備え、前記記録媒体には、前記プロセッサによって実行可能な機械可読命令が記録されており、コンピュータデバイスが運行されるときに、前記プロセッサと前記記録媒体との間はバスを介して通信し、前記機械可読命令が前記プロセッサによって実行されると、上述した第1の態様または第1の態様の任意の可能な1実施形態のステップが実行される。
【0020】
第4の態様によると、本発明の実施例は、コンピュータ可読記録媒体をさらに提供し、当該コンピュータ可読記録媒体には、コンピュータプログラムが記録されており、当該コンピュータプログラムがプロセッサによって運行されるときに、上述した第1の態様または第1の態様の任意の可能な1実施形態のステップが実行される。
【0021】
以下、本発明の上記の目的、特徴、および、利点をより明白かつ理解可能にするために、好ましい実施例を挙げて、図面を参照して詳細に説明する。
【図面の簡単な説明】
【0022】
以下、本発明の実施例の技術的解決策をより明確に説明するために、実施例に必要な図面を簡単に紹介する。ここでの図面は、明細書に組み込まれて本明細書の一部を構成し、これら図面は本発明に合致する実施例を示し、明細書と一緒に本発明の技術的解決策を説明する。以下の図面は、本発明のいくつかの実施例を示すだけであり、範囲を限定するものと見なされるべきではないと理解すべきである。当業者は、創造的な作業なしで、これら図面に基づいて他の関連する図面を得ることができる。
【
図1】本発明の実施例によって提供されるデータ処理方法を示すフローチャートである。
【
図2】本発明の実施例によって提供されるデータ処理装置を示す模式図である。
【
図3】本発明の実施例によって提供されるコンピュータデバイスを示す模式図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施例の目的、技術的解決策、および、利点をより明確にするために、本発明の実施例の図面を参照して、本発明の実施例の技術的解決策を明確かつ完全に説明する。勿論ながら、説明する実施例は、全部の実施例ではなく、本発明の一部の実施例に過ぎない。通常、ここでの図面で記載および表示する本発明の実施例のコンポーネントは、さまざまな異なる構成で配置および設計することができる。したがって、以下の図面に提供される本発明の実施例の詳細な説明は、請求された本開示の範囲を限定することを意図するものではなく、単に本開示の選択された実施形態を表す。本発明の実施例に基づいて、創造的な作業なしに当業者によって得られた他のすべての実施形態は、本開示の保護範囲に含まれるものとする。
【0024】
調査の結果、マルチプロセス並列トレーニングの方法を採用して深層学習モデルをトレーニングするときに、今回のトレーニングの計算を実行する同時に、各々のプロセスはいずれも次回のトレーニングに必要なトレーニングデータを事前に読み取ることになる。各々の並列プロセスは、今回のトレーニングを実行した後に、他のプロセスと通信およびデータ同期化を実行し、すべてのプロセスの通信およびデータ同期化が完了された後に、次回のトレーニングタスクを開始する必要がある。ここで任意のプロセスのトレーニングタスクに時間の遅延が発生されると、たとえば次回のトレーニングに使用するトレーニングデータを事前に読み取るときに、読み取る時間が今回のトレーニングタスクの実行時間を超えると、すべてのプロセスのトレーニングタスクにいずれも時間の遅延が発生されることになり、トレーニング効率の低下につながる。
【0025】
上述した調査に鑑みて、本発明は、深層学習モデルトレーニングに適用されるデータ処理方法および装置を提供する。当該データ処理方法は、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することによって、メインプロセスが1回の反復トレーニングを実行した後に、次の1回の反復トレーニングに必要なサンプルデータの読み取りがすでに完了されるようにすることができる。メインプロセスは、プリフェッチ数量を動的に更新して、目標プリフェッチ数量を得、データキューに現在含まれているサンプルデータ量が目標プリフェッチ数量に達してないときに、サンプルデータプールから新たなサンプルデータを読み取る。ほとんどの場合、メインプロセスが新たなサンプルデータを読み取るのみかかる時間が1つの反復トレーニングを実行するのにかかる時間よりも短いことが多いため、データキュー中に十分な数量のサンプルデータが常に格納されて後続のいくつかの反復トレーニングの使用を満たすように確保することができ、メインプロセスが特定のサンプルデータの読み取るのにかかる時間がながすぎても、サンプル数量が足りないで反復トレーニングに遅延が発生することがなく、トレーニング効率を向上させた。
【0026】
従来の解決策に存在する欠陥は、発明者の実践と注意深い研究後の結果であり、したがって、上記の問題の発見過程および本発明で提案された解決策は、すべて本開示のプロセス中の本開示への発明者の貢献であるべきである。
【0027】
以下、本発明の図面を参照して、本発明中の技術的解決策を明確かつ完全に説明する。勿論ながら、説明する実施例は、全部の実施例ではなく、本発明の一部の実施例に過ぎない。通常、ここでの図面で記載および表示する本発明の実施例のコンポーネントは、さまざまな異なる構成で配置および設計することができる。したがって、以下の図面に提供される本発明の実施例の詳細な説明は、請求された本開示の範囲を限定することを意図するものではなく、単に本開示の選択された実施形態を表す。本発明の実施例に基づいて、創造的な作業なしに当業者によって得られた他のすべての実施形態は、本開示の保護範囲に含まれるものとする。
【0028】
以下の図面では、類似の符号と文字が類似の項目を示していることに注意すべきである。したがって、1つの図面で項目を定義すると、後続の図面でさらに定義および解析する必要はない。
【0029】
本実施例に対する理解を容易にするために、まず、本発明の実施例によって開示されるデータ処理方法を詳細に説明する。本発明の実施例によって提供されるデータ処理方法は、深層学習モデルのトレーニングに適用される。その実行主体は、一般的に、深層学習モデルをトレーニングするメインプロセスまたはサブプロセスである。可能な一部の実現形態において、当該データ処理方法は、プロセッサによりメモリに格納されているコンピュータ可読命令を呼び出す方式によって実現され得る。
【0030】
以下、実行主体が少なくとも1つのメインプロセスの中の任意のメインプロセスである例をとって、本発明の実施例によって提供されるデータ処理方法を説明する。
【0031】
図1は、本発明の実施例によって提供されるデータ処理方法のフローチャートであり、当該方法は、ステップS101~S102を含み、ここで、
S101において、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
S102において、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った新たなサンプルデータをプリフェッチサンプルデータキュー中に格納する。
【0032】
以下、上述したS101~S102をそれぞれ詳細に説明する。
【0033】
I:上述したS101において、1つのメインプロセスがある場合、1つのメインプロセスは、深層学習モデルをトレーニングし、かつ、当該メインプロセスは、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることができる。
【0034】
複数のメインプロセスがある場合、複数のメインプロセスは、深層学習モデルに対して並列トレーニングを実行し、各々のメインプロセスは、それぞれサンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることができる。ここで、異なるメインプロセスに対応するプリフェッチ数量は、異なることができ、異なるメインプロセスに対応する目標プリフェッチ数量も、異なることができる。
【0035】
各メインプロセスは、1つのプリフェッチサンプルデータキューに対応し、任意のメインプロセスに対応するプリフェッチサンプルデータキューには、複数のサンプルデータが格納されており、かつ、各メインプロセスは、対応するプリフェッチサンプルデータキューに格納されているサンプルデータに基づいて深層学習モデルをトレーニングする。
【0036】
当該プリフェッチサンプルデータキューは、たとえば、先入れ先出しキューである。メインプロセスは、1つの新たな反復トレーニングを開始するときに、まず当該メインプロセスに対応するプリフェッチサンプルデータキューから1組のサンプルデータを読み取る。当該組のサンプルデータは、読み取られた後に、プリフェッチサンプルデータキューから削除されて、新たなサンプルデータのために格納位置を確保する。
【0037】
ここで、1つの反復トレーニングで、メインプロセスは1組のサンプルデータに基づいて深層学習モデルをトレーニングすることになり、1組のサンプルデータには少なくとも1つのサンプルデータが含まれることに注意すべきである。本発明の実施例において、プリフェッチ数量とは、サンプルデータ組の数量であり得る。
【0038】
事前に決定されたプリフェッチ数量更新条件に達してない場合、メインプロセスは、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が現在のプリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取る。
【0039】
事前に決定されたプリフェッチ数量更新条件に達した場合、メインプロセスは、サンプルデータの現在のプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、メインプロセスは、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取る。ここで、サンプルデータのプリフェッチ数量と目標プリフェッチ数量は、同じでも異なっていてもよい。
【0040】
具体的に、プリフェッチ数量更新条件は、たとえば以下のa1~a3の中の1つまたは複数を含む。
【0041】
a1は、所定の更新サイクルに達したことである
【0042】
ここで、更新サイクルは、プリフェッチ数量を更新するサイクルである。
【0043】
当該更新サイクルは、たとえば時間サイクルであり、たとえば、更新サイクルが1時間であると、1時間ごとに、1回のプリフェッチ数量に対する第1更新処理をトリガーすることができる。
【0044】
当該更新サイクルは、たとえば所定の数量の反復トレーニングであり、たとえば、メインプロセスは、深層学習モデルに対して5回の反復トレーニングを実行するたびに、1回のプリフェッチ数量に対する第1更新処理をトリガーすることができる。ここで、異なる回の反復トレーニングにかかる時間が互いに異なる可能性があるため、異なる更新サイクルの持続時間も異なることになる。
【0045】
a2は、サンプルデータに基づいて深層学習モデルに対してトレーニングするときのデータスループットが第1閾値よりも大きいことである。
【0046】
ここで、データスループットは、メインプロセスが深層学習モデルに対してトレーニングを実行するときのサンプルデータ処理速度を示すために使用される。メインプロセスが深層学習モデルに対してトレーニングを実行するときのデータスループットが第1閾値よりも大きいと、プリフェッチサンプルデータキューに格納されているサンプルデータに対する消費速度がより速いと見なされる。ここで、より小さいプリフェッチ数量を維持すると、プリフェッチサンプルデータキューに格納されているサンプルデータの数量が、時間内のトレーニングの消費に追いつかない可能性がある。したがって、プリフェッチサンプルデータキューにプリフェッチされたサンプルデータの数量を増加し、サンプルデータのプリフェッチ数量に対する第1更新処理をトリガーすることが考えられる。
【0047】
a2.1:ここで、たとえば、以下の方法を採用してデータスループットを得る。
プリフェッチ数量更新条件に達したことに応答して、プリフェッチ数量更新条件に達したときの深層学習モデルに対するトレーニング進行状況に基づいて、複数の履歴反復トレーニングから、少なくとも1つの目標反復トレーニングを確定し、また、各々の目標反復トレーニングに使用するサンプルデータ組に含まれているサンプルデータの数量、および、各々の目標反復トレーニングにかかる時間に基づいて、サンプルデータに基づいて深層学習モデルに対してトレーニングを実行するときのデータスループットを確定する。
【0048】
ここで、目標反復トレーニングは、たとえば、プリフェッチ数量更新条件に達したタイミングに一番近い少なくとも1つの反復トレーニングである。
【0049】
たとえば、あるメインプロセスは、すでに深層学習モデルに対して5回の反復トレーニングを実行し、かつ、プリフェッチ数量更新条件に達したときに、深層学習モデルに対して6回目の反復トレーニングを実行している。ここで、1つの目標反復トレーニングがある場合、5番目の反復トレーニングを目標反復トレーニングとして確定することができる。当該5番目の反復トレーニングにかかる時間が15分であると、使用するサンプルデータの数量は64個であり、データスループットはたとえば64÷15である。
【0050】
3つの目標反復トレーニングがある場合、3番目、4番目、及び5番目の反復トレーニングを目標反復トレーニングとして確定することができる。3番目、4番目、及び5番目の反復トレーニングにそれぞれかかる時間が12分、14分、及び15分であり、各反復トレーニングに使用するサンプルデータの数量がいずれも64個であると、データスループットはたとえば64×3÷(12+14+15)であり、単位は個/分である。
【0051】
a2.2:もう1実施例において、さらに、現在実行している反復トレーニングを目標反復トレーニングとして確定し、現在実行している反復トレーニング中のすでにトレーニングが完了したサンプルの数量および通じた持続時間に基づいて、データスループットを確定することができる。
【0052】
たとえば、あるメインプロセスがすでに深層学習モデルに対して5回の反復トレーニングを実行し、かつ、プリフェッチ数量更新条件に達したときに、深層学習モデルに対して6番目の反復トレーニングを実行している。6番目の反復トレーニングを目標反復トレーニングとして確定することができる。6番目の反復トレーニングで、1つのサンプルデータ組中の64個のサンプルを使用して深層学習モデルに対してトレーニングを実行する必要がある。現在すでにトレーニングが完了したサンプルデータの数量は30個であり、現在トレーニング反復が通じた持続時間は4分であると、データスループットはたとえば30÷4である。
【0053】
a3は、サンプルデータに基づいて深層学習モデルに対してトレーニングを実行するときのデータスループットが第2閾値未満であることである。
【0054】
ここで、第2閾値は、第1閾値未満である。
【0055】
メインプロセスが深層学習モデルに対して実行トレーニングときのデータスループットが第2閾値未満であると、プリフェッチサンプルデータキューに格納されているサンプルデータに対する消費速度が遅すぎると見なされる。ここで、より大きいプリフェッチ数量を維持すると、プリフェッチサンプルデータキューに格納されているサンプルデータが常に蓄積され、より大きなメモリを占有する可能性がある。したがって、プリフェッチサンプルデータキューにプリフェッチされたサンプルデータの数量を減少し、サンプルデータのプリフェッチ数量に対する第1更新処理をトリガーすることが考えられる。
【0056】
ここで、データスループットの確定方法は、上記のa2と類似であり、繰り返して説明しない。
【0057】
プリフェッチ数量更新条件を満たした後に、たとえば、以下の方法を採用してサンプルデータのプリフェッチ数量に対して第1更新処理を実行することができ、すなわち、
プリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得る。
【0058】
例示的に、たとえば、プリフェッチサンプルデータキューが占有している合計メモリスペースがメモリ使用上限閾値に達したか否かを検出し、検出結果に基づいてサンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることができる。
【0059】
ここで、プリフェッチサンプルデータキューが占有している合計メモリスペースとは、すべてのメインプロセスに対応するサンプルデータキューが占有している合計メモリスペースを表す。
【0060】
具体的に、プリフェッチサンプルデータキューが現在占有している合計メモリスペースがメモリ使用上限閾値に達してない場合、プリフェッチ数量を第1調節ステップサイズだけ増加して、目標プリフェッチ数量を得るし、および/または、
プリフェッチサンプルデータキューが現在占有している合計メモリスペースがメモリ使用上限閾値を達した場合、プリフェッチ数量を第2調節ステップサイズだけ減少して、目標プリフェッチ数量を得る。
【0061】
ここで、第1調節ステップサイズとは、サンプルデータのプリフェッチ数量を増加するときの調節ステップサイズを表し、第2調節ステップサイズとは、サンプルデータのプリフェッチ数量を減少するときの調節ステップサイズを表す。
【0062】
ここで、第1調節ステップサイズと第2調節ステップサイズは、同じサイズまたは異なるサイズを有し得る。
【0063】
例示的に、第1調節ステップサイズは、たとえば第2調節ステップサイズよりも大きいし、このような場合、プリフェッチ数量を増加する必要があるときに、プリフェッチ数量をより速く増加することによって、プリフェッチサンプルデータキューに格納したサンプルデータがより多い数量により速く達するようにより速く保証し、後続のトレーニング反復サイクルの使用の要件を満たすことができ、プリフェッチ数量が少なすぎてモデルトレーニング過程が遅延されることを回避することができる。同時に、プリフェッチ数量を減少する必要があるときに、プリフェッチ数量をより緩やかに減少して、プリフェッチサンプルデータキューの長さの変化がよりスムーズになるように保証することができ、プリフェッチサンプルデータの数量の急激な減少によるトレーニング過程のショックを回避することができる。
【0064】
さらに、もう1実施例において、さらに、プリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、深層学習モデルをトレーニングするためのデータスループットに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることができる。
【0065】
ここで、上記の実施例に基づいて、たとえば、プリフェッチサンプルデータキューが現在占有している合計メモリスペースがメモリ使用上限閾値に達してない場合、
深層学習モデルをトレーニングするためのデータスループットが所定のデータスループット条件を満たす場合、プリフェッチ数量を第1調節ステップサイズだけ増加して、目標プリフェッチ数量を得る。
【0066】
もう1実施例において、プリフェッチサンプルデータキューが現在占有している合計メモリスペースがメモリ使用上限閾値に達してないし、かつ、データスループット未が所定のデータスループット条件を満たす場合、プリフェッチ数量を第3調節ステップサイズだけ減少して目標プリフェッチ数量を得ることをさらに含む。
【0067】
具体的に、第1調節ステップサイズと第3調節ステップサイズは、同じサイズまたは異なるサイズを有し得る。類似に、第2調節ステップサイズと第3調節ステップサイズは、同じサイズまたは異なるサイズを有し得る。
【0068】
もう1実施例において、プリフェッチサンプルデータキューが現在占有している合計メモリスペースがメモリ使用上限閾値に達していると、深層学習モデルをトレーニングするためのデータスループットが所定のデータスループット条件を満たすか否かに関わらず、プリフェッチ数量を第2調節ステップサイズだけ減少して、目標プリフェッチ数量を得る。
【0069】
上記の所定のデータスループット条件は、以下のb1~b2の中の少なくとも1つを含む。
b1は、データスループットの現在数値が履歴数値よりも大きいことであり、ここで、履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングに対応するデータスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのデータスループットの数値である。
【0070】
具体的な確定方法は、たとえば、上記のa2.1を参照すればよく、ここでは繰り返して説明しない。
【0071】
b2は、データスループットの現在数値がデータスループット閾値よりも大きいことである。
【0072】
ここで、データスループットの現在数値は、たとえば、上記のa2.2を参照すればよく、ここでは繰り返して説明しない。
【0073】
また、本発明の実施例によって提供されるデータ処理方法は、上記の実施例に基づいて、
プリフェッチ数量に対する調節ステップサイズ第2更新処理を実行して目標調節ステップサイズを得ることをさらに含み、ここで、目標調節ステップサイズは、プリフェッチ数量の次の1回の更新処理に使用される。
【0074】
ここで、たとえば、第1更新処理でプリフェッチ数量を増加する場合、プリフェッチ数量の調節ステップサイズを増加して目標調節ステップサイズを得るし、および/または、
在第1更新処理中減少プリフェッチ数量の場合、減少プリフェッチ数量の調節ステップサイズ以目標調節ステップサイズを得る。
【0075】
具体的な例は、以下のとおりである。
【0076】
M1、M2、M3、M4、及びM5のような合計5個のプロセスが同一の深層学習モデルのトレーニングタスクを並列に実行している。
【0077】
ここで、M1、M2、M3、M4、及びM5は、それぞれ本発明の実施例によって提供されるデータ処理方法を実行する。
【0078】
M1が当該データ処理方法を実行する例をとる。
【0079】
例1:メモリ使用上限閾値に基づいてサンプルデータのプリフェッチ数量に対して第1更新処理を実行する。
【0080】
1.1:M1により、M1に対応するプリフェッチサンプルデータキューL1、M2に対応するプリフェッチサンプルデータキューL2、M3に対応するプリフェッチサンプルデータキューL3、M4に対応するプリフェッチサンプルデータキューL4、および、M5に対応するプリフェッチサンプルデータキューL5が占有している合計メモリスペースがメモリ使用上限閾値に達したか否かを検出し、達してない場合には、1.2(a)と1.2(b)に遷移し、達した場合またはM1が操作システムのメインプロセスにメモリを申し込むときに申し込み失敗になった場合には、1.3に遷移する。
【0081】
1.2(a):M1により、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量+第1調節ステップサイズ」であり、ここで、第1調節ステップサイズは、前の1回の調節ステップサイズに対して第2更新処理を実行して得た目標調節ステップサイズである。
【0082】
1.2(b):M1により、第1調節ステップサイズに対して第2更新処理を実行する。
「今回の第2更新処理の後に得られた目標調節ステップサイズ=第1調節ステップサイズ*2」であり、すなわち、次の1回の第1更新処理に使用する第1調節ステップサイズは、今回の第1更新処理に使用する調節ステップサイズの2倍である。
【0083】
1.3:M1により、第2調節ステップサイズが1よりも大きいか否かを検出し、第2調節ステップサイズが1よりも大きいと、1.4(a)と1.4(b)に遷移し、大きくないと、1.5に遷移する。
【0084】
1.4(a):M1により、第2調節ステップサイズに対して第2更新処理を実行し、
「調整後の第2調節ステップサイズ=調整前の第2調節ステップサイズ/2」である。
【0085】
1.4(b):M1により、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量-第2調節ステップサイズ」である。ここで、第2調節ステップサイズは、1.4(a)中の調整後の調節ステップサイズである。
【0086】
1.5:M1により、第2調節ステップサイズをそのまま維持し、そのまま維持された第2調節ステップサイズに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量-そのまま維持された第2調節ステップサイズ」である。
【0087】
例2:M1により、メモリ使用上限閾値、および、深層学習モデルをトレーニングするためのデータスループットに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行する。
【0088】
2.1:M1により、M1に対応するプリフェッチサンプルデータキューL1、M2に対応するプリフェッチサンプルデータキューL2、M3に対応するプリフェッチサンプルデータキューL3、M4に対応するプリフェッチサンプルデータキューL4、および、M5に対応するプリフェッチサンプルデータキューL5が占有している合計メモリスペースがメモリ使用上限閾値に達したか否かを検出し、達してない場合には、2.2に遷移し、達した場合またはM1が操作システムのメインプロセスにメモリを申し込むときに申し込み失敗になった場合には、2.7に遷移する。
【0089】
2.2:M1により、深層学習モデルをトレーニングするときのデータスループットが所定のデータスループット条件を満たすか否かを検出し、満たすと、2.3(a)と2.3(b)に遷移し、満たさないと、2.4(a)と2.4(b)に遷移する。
【0090】
2.3(a):M1により、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量+第1調節ステップサイズ」であり、ここで、第1調節ステップサイズは、前の1回の調節ステップサイズに対して第2更新処理を実行して得た目標調節ステップサイズである。
【0091】
2.3(b):M1により、第1調節ステップサイズに対して第2更新処理を実行し、
「今回の第2更新処理の後に得られた目標調節ステップサイズ=第1調節ステップサイズ*2」である。
【0092】
2.4(a):M1により、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量-第3調節ステップサイズ」である。
【0093】
2.4(b):M1により、第3調節ステップサイズが1よりも大きいか否かを検出し、第3調節ステップサイズが1よりも大きいと、2.5に遷移し、大きくないと、2.6に遷移する。
【0094】
2.5:M1により、第3調節ステップサイズに対して第2更新処理を実行し、
「調整後の第3調節ステップサイズ=調整前の第3調節ステップサイズ/2」である。
【0095】
2.6:M1により、第3調節ステップサイズをそのまま維持する。当該第3調節ステップサイズは、次の1回のプリフェッチ数量に対して第1更新処理を実行するときに使用される。
【0096】
2.7:M1により、第2調節ステップサイズが1よりも大きいか否かを検出し、第2調節ステップサイズが1よりも大きいと、2.8(a)と2.8(b)に遷移し、大きくないと、2.9に遷移する。
【0097】
2.8(a):M1により、第2調節ステップサイズに対して第2更新処理を実行し、
「調整後の第2調節ステップサイズ=調整前の第2調節ステップサイズ/2」である。
【0098】
2.8(b):M1により、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量-第2調節ステップサイズ」である。ここで、第2調節ステップサイズは、2.8(a)中の調整後の調節ステップサイズである。
【0099】
2.9:M1により、第2調節ステップサイズをそのまま維持し、そのまま維持された第2調節ステップサイズに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
「目標プリフェッチ数量=プリフェッチ数量- そのまま維持された第2調節ステップサイズ」である。
【0100】
上記の例中の各々のステップを通じて、サンプルデータのプリフェッチ数量に対する第1更新処理の実行を実行する。
【0101】
II:上記のS102において、メインプロセスは、プリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が目標プリフェッチ数量に達してないときに、直接サンプルデータベースから新たなサンプルデータを読み取ってもよいし、サブプロセスと通信してサブプロセスを制御することによってサンプルデータベースから新たなサンプルデータを読み取ってもよい。
【0102】
メインプロセスが直接サンプルデータベースから新たなサンプルデータを読み取る場合、メインプロセスは、プリフェッチサンプルデータキューから抽出したサンプルデータの数量、および、読み取ったプリフェッチサンプルデータキュー中のサンプルデータの数量に基づいて、プリフェッチサンプルデータキューに現在格納されているサンプルデータの数量を確定してから、当該数量と目標プリフェッチ数量とを比較し、当該数量が目標プリフェッチ数量未満である場合、直接サンプルデータベースから新たなサンプルデータを読み取って、プリフェッチサンプルデータキューに格納することができる。
【0103】
メインプロセスがサブプロセスを制御してサンプルデータベースから新たなサンプルデータを読み取る場合、メインプロセスは、サブプロセスとの通信によって、プリフェッチサンプルデータキューに現在格納されているサンプルデータの数量を確定してから、当該数量と目標プリフェッチ数量とを比較し、当該数量が目標プリフェッチ数量未満である場合、サブプロセスにサンプルデータ読み取り命令を送信し、ここで、当該サンプルデータ読み取る命令には、読み取る必要があるサンプルデータの数量情報が含まれている。サブプロセスは、メインプロセスが送信したサンプルデータ読み取り命令を受信した後、サンプルデータ読み取り命令に含まれている数量情報に基づいて、新たなサンプルデータを読み取ってプリフェッチサンプルデータキューに格納することができる。
【0104】
本発明の実施例において、メインプロセスは、プリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、データキューに現在含まれているサンプルデータ量が目標プリフェッチ数量に達してないときに、サンプルデータプールから新たなサンプルデータを読み取るため、メインプロセスは、1回の反復トレーニングを実行した後に、次の1回の反復トレーニングに必要なサンプルデータの読み取りがすでに完了されることになる。実際のほとんどの場合、メインプロセスがデータを読み取るのにかかる時間は、1つの反復トレーニングを実行するのにかかる時間よりも短いことが多いため、データキュー中に十分な数量のサンプルデータが常に格納されて後続のいくつかの反復トレーニングの使用を満たすように確保することができ、メインプロセスが特定のサンプルデータの読み取るのにかかる時間がながすぎても、サンプル数量が時間内に読み取られなくて反復トレーニングに遅延が発生されることを回避することができ、トレーニング効率を向上させた。
【0105】
当業者は、具体的な実施形態に説明した方法で、各ステップの書き込み順序は、厳密な実行順序を意味して実施過程に対する制限を構成するのではなく、各ステップの具体的な実行順序はその機能および可能の内部ロジックによって決定されることを理解すべきである。
【0106】
同じ発明概念に基づいて、本発明の実施例は、データ処理方法に対応するデータ処理装置をさらに提供し、本発明の実施例における装置が解決しようとする問題の原理は、本発明の実施例の上記のデータ処理方法と同様であるため、装置の実施が方法の実施を参照することができ、繰り返された部分は繰り返して説明しない。
【0107】
図2は、本発明の実施例によって提供されるデータ処理装置の模式図であり、前記装置は、1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに適用され、前記装置は、第1更新モジュール21と、読取りモジュール22と、を備え、ここで、
第1更新モジュール21は、前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、
読取りモジュール22は、前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納する。
【0108】
本発明の実施例において、メインプロセスは、プリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得、プリフェッチサンプルデータキューに現在含まれているサンプルデータ量が目標プリフェッチ数量に達してないときに、サンプルデータプールから新たなサンプルデータを読み取るため、メインプロセスは、1回の反復トレーニングを実行した後に、次の1回の反復トレーニングに必要なサンプルデータの読み取りがすでに完了されることになる。実際のほとんどの場合、メインプロセスがデータを読み取るのにかかる時間は、1つの反復トレーニングを実行するのにかかる時間よりも短いことが多いため、データキュー中に十分な数量のサンプルデータが常に格納されて後続のいくつかの反復トレーニングの使用を満たすように確保することができ、メインプロセスが特定のサンプルデータの読み取るのにかかる時間がながすぎても、サンプル数量が時間内に読み取られなくて反復トレーニングに遅延が発生されることを回避することができ、トレーニング効率を向上させた。
【0109】
可能な1実施形態において、前記第1更新モジュール21は、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得る。
【0110】
可能な1実施形態において、前記第1更新モジュール21は、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得る。
【0111】
可能な1実施形態において、前記第1更新モジュール21は、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得るし、および/または、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得る。
【0112】
可能な1実施形態において、前記第1更新モジュール21は、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得るときに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得る。
【0113】
可能な1実施形態において、前記第1更新モジュール21は、さらに、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得る。
【0114】
可能な1実施形態において、前記所定のデータスループット条件は、
前記データスループットの現在数値が履歴数値よりも大きいことと、
前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である。
【0115】
可能な1実施形態において、前記装置は、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得るための第2更新モジュール23をさらに備え、ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される。
【0116】
可能な1実施形態において、前記第2更新モジュール23は、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得るときに、
前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加し、および/または、
前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少する。
【0117】
装置の各モジュールの処理フローおよび各モジュール間の相互作用フローの記載は、上述した方法の実施例の関連する説明を参照することができ、ここでは繰り返して説明しない。
【0118】
本発明の実施例は、コンピュータデバイス30をさらに提供する。
図3は、本発明の実施例によって提供されるコンピュータデバイス30の構成を示す模式図であり、当該デバイスは、
プロセッサ31と、メモリ32と、バス33と、を備える。メモリ32は、命令を格納し、当該メモリ32は、内部メモリ321と外部メモリ322とを備え、ここでの内部メモリ321はメモリとも呼ばれ、プロセッサ31の演算データおよびハードディスクなどの外部メモリ322と交換するデータを一時的に格納する。プロセッサ31は、内部メモリ321を介して外部メモリ322とデータ交換を実行し、前記コンピュータデバイス300が運行されると、前記プロセッサ31と前記メモリ32との間はバス33を介して通信することによって、前記プロセッサ31が以下の命令を実行するようにし、当該命令は、
前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることと、
前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することと、を含む。
【0119】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることを含む。
【0120】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得ることを含む。
【0121】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ること、および/または、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることを含む。
【0122】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることを含む。
【0123】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記方法は、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることをさらに含む。
【0124】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記所定のデータスループット条件は、
前記データスループットの現在数値が履歴数値よりも大きいことと、
前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である。
【0125】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記方法は、
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることをさらに含み、ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される。
【0126】
可能な1実施形態において、プロセッサ31によって実行される命令の中で、前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることは、
前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加すること、および/または、
前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少することを含む。
【0127】
本発明の実施例は、コンピュータ可読記録媒体をさらに提供し、当該コンピュータ可読記録媒体には、コンピュータプログラムが記録されており、当該コンピュータプログラムがプロセッサによって運行されるときに、上述した方法の実施例に記載のデータ処理方法のステップが実行される。ここで、当該記録媒体は、揮発性または不揮発性のコンピュータ可読記録媒体であり得る。
【0128】
本発明の実施例によって提供されるデータ処理方法のコンピュータプログラム製品は、プログラムコードを格納したコンピュータ可読記録媒体を含み、前記プログラムコードに含まれている命令は、上述した方法の実施例に記載のデータ処理方法のステップを実行し、具体的には、上述した方法の実施例を参照することができ、ここでは繰り返して説明しない。
【0129】
本発明の実施例は、コンピュータプログラムをさらに提供し、当該コンピュータプログラムがプロセッサによって実行されるときに、前述した実施例の任意の方法が実現される。当該コンピュータプログラム製品は、具体的に、ハードウェア、ソフトウェア、または、その組み合わせの方式で実現され得る。オプションの1つの実施例において、前記コンピュータプログラム製品は、具体的に、コンピュータ記録媒体によって具体化される。オプションのもう1つの実施例において、コンピュータプログラム製品は、具体的に、ソフトウェア開発キット(Software Development Kit、SDK)などのソフトウェア製品によって具体化される。
【0130】
当業者は、説明の便宜および簡素化のために、上述に記載のシステムおよび装置の具体的な作業過程は、前述した方法の実施例の対応する過程を参照することができ、ここでは繰り返して説明しないことを明確に了解すべきである。本発明によって提供されるいくつかの実施例において、開示したシステム、装置、および、方法は、他の方式によって実現され得ることを理解すべきである。上記に記載の装置の実施例は、単に例示的なものである。たとえば、前記ユニットの分割は、論理機能分割のみであり、実際の実装において他の分割方法があり得る。また、たとえば、複数のユニットまたはコンポーネントを、組み合わせることができるか、または、もう1つのシステムに統合することができるか、または、一部の特徴を無視するかまたは実行しないでもよい。さらに、表示または議論された相互間の結合または直接結合または通信接続は、いくつかの通信インターフェース、デバイスまたはユニットの間接結合または通信接続を介することができ、電気的、機械的または他の形態であり得る。
【0131】
分離された部品として説明されたユニットは、物理的に分離されている場合とされていない場合があり、ユニットとして表示される部品物理ユニットである場合とそうでない場合がある。つまり、1つの場所に配置することも、複数のネットワークユニットに分散させることもできる。実際の必要に応じてここでの一部または全部のユニットを選択して本実施例の解決策の目的を達成することができる。
【0132】
また、本発明の各々の実施例における各機能ユニットは、1つの処理ユニットに統合され得るか、または各ユニットが物理的に単独で存在し得るか、2つまたは2つ以上のユニットが1つのユニットに統合され得る。
【0133】
前記機能がソフトウェア機能ユニットの形で実装され、独立した製品として販売または使用される場合、プロセッサによって実行可能な不揮発性のコンピュータ可読記憶媒体に格納することができる。このような理解に基づいて、本発明の技術的解決策の本質、または先行技術に寄与する部分または技術的解決策の一部は、ソフトウェア製品の形で具体化することができる。当該コンピュータソフトウェア製品は、1つの記録媒体に格納され、コンピュータデバイス(パーソナルコンピュータ、サーバ、または、ネットワークデバイスなど)が本発明の各々の実施例に記載の方法の全部または一部のステップを実行できるようにするためのいくつかの命令を含む。前述した記録媒体は、Uディスク、モバイルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク、または、光ディスクなどの、プログラムコードを格納できるさまざまな媒体を含み得る。
【0134】
最後に、上記の実施例は、本発明の具体的な実施形態に過ぎず、それらを限定するのではなく、本発明の技術的解決策を説明するために使用されるものであり、本発明の保護範囲はこれに限定されない。前述した実施例を参照して本発明を詳細に説明したが、当業者は、本発明に開示した技術範囲内で当業者は前述した実施例に記載の技術的解決策を修正するか、または容易に変更を思い付くことができ、またはここでの一部の技術特徴を同等に置き換えられることができることを理解すべきである。これら修正、変更、または、置き換えは、該当する技術的解決策の本質が本発明の実施例の技術的解決策の精神および範囲から逸脱することを引き起こさず、いずれも本発明の保護範囲内にカバーされるべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うべきである。
【手続補正書】
【提出日】2021-09-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理方法であって、
前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることと、
前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納することと、を含む
ことを特徴とするデータ処理方法。
【請求項2】
前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項1に記載のデータ処理方法。
【請求項3】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペース、メモリ使用上限閾値、および、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットに基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項2に記載のデータ処理方法。
【請求項4】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースおよびメモリ使用上限閾値に基づいて、前記サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ること、および/または、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達した場合、前記プリフェッチ数量を第2調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項2または3に記載のデータ処理方法。
【請求項5】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してない場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることは、
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記目標プロセスの前記深層学習モデルに対してトレーニングを実行するためのデータスループットが所定のデータスループット条件を満たす場合、前記プリフェッチ数量を第1調節ステップサイズだけ増加して前記目標プリフェッチ数量を得ることを含む
ことを特徴とする請求項4に記載のデータ処理方法。
【請求項6】
前記1つまたは複数のプロセスに対応するプリフェッチサンプルデータキューが現在占有している合計メモリスペースが前記メモリ使用上限閾値に達してないし、かつ、前記データスループットが前記所定のデータスループット条件を満たさない場合、前記プリフェッチ数量を第3調節ステップサイズだけ減少して前記目標プリフェッチ数量を得ることをさらに含む
ことを特徴とする請求項5に記載のデータ処理方法。
【請求項7】
前記所定のデータスループット条件は、
前記データスループットの現在数値が履歴数値よりも大きいことと、
前記データスループットの現在数値がデータスループット閾値よりも大きいことと、の中の少なくとも1つを含み、
ここで、前記履歴数値は、現在の反復トレーニングの前の複数の履歴反復トレーニングのときの前記データスループットの平均値、または、現在の反復トレーニングの前の1回の反復トレーニングのときの前記データスループットの数値である
ことを特徴とする請求項5または6に記載のデータ処理方法。
【請求項8】
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることをさらに含み、
ここで、前記目標調節ステップサイズは、前記プリフェッチ数量の次の1回の更新処理に使用される
ことを特徴とする請求項1から7の中のいずれか1項に記載のデータ処理方法。
【請求項9】
前記プリフェッチ数量の調節ステップサイズに対して第2更新処理を実行して目標調節ステップサイズを得ることは、
前記第1更新処理中に前記プリフェッチ数量を増加する場合、前記プリフェッチ数量の調節ステップサイズを増加すること、および/または、
前記第1更新処理中に前記プリフェッチ数量を減少する場合、前記プリフェッチ数量の調節ステップサイズを減少することを含む
ことを特徴とする請求項8に記載のデータ処理方法。
【請求項10】
1つまたは複数のプロセスを含む、深層学習モデルのトレーニングに、適用されるデータ処理装置であって、
前記1つまたは複数のプロセスの中の1つの目標プロセスに対して、サンプルデータのプリフェッチ数量に対して第1更新処理を実行して目標プリフェッチ数量を得るための第1更新モジュールと、
前記目標プロセスに対応するプリフェッチサンプルデータキューに現在含まれているサンプルデータの数量が前記目標プリフェッチ数量に達してないことに応答して、新たなサンプルデータを読み取って、読み取った前記新たなサンプルデータを前記プリフェッチサンプルデータキューン格納するための読取りモジュールと、を備える
ことを特徴とするデータ処理装置。
【請求項11】
コンピュータデバイスであって、
プロセッサと、記録媒体と、バスと、を備え、
前記記録媒体には、前記プロセッサによって実行可能な機械可読命令が記録されており、
コンピュータデバイスが運行されるときに、前記プロセッサと前記記録媒体との間はバスを介して通信し、前記機械可読命令は前記プロセッサによって実行されて請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータデバイス。
【請求項12】
コンピュータ可読記録媒体であって、
当該コンピュータ可読記録媒体には、コンピュータプログラムが記録されており、当該コンピュータプログラムがプロセッサによって運行されるときに、請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータ可読記録媒体。
【請求項13】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサによって実行されるときに、請求項1から9の中のいずれか1項に記載のデータ処理方法が実行される
ことを特徴とするコンピュータプログラム。
【国際調査報告】