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

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

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特表2024-534647ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム
<>
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図1
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図2
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図3
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図4
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図5
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図6
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図7
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図8
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図9
  • 特表-ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-20
(54)【発明の名称】ディープラーニングモデルのトレーニング方法、装置、システム、機器、媒体及びコンピュータプログラム
(51)【国際特許分類】
   G06N 3/08 20230101AFI20240912BHJP
【FI】
G06N3/08
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519091
(86)(22)【出願日】2022-09-27
(85)【翻訳文提出日】2024-03-27
(86)【国際出願番号】 CN2022121697
(87)【国際公開番号】W WO2023221360
(87)【国際公開日】2023-11-23
(31)【優先権主張番号】202210559489.0
(32)【優先日】2022-05-19
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】張 敏 旭
(72)【発明者】
【氏名】王 海 峰
(72)【発明者】
【氏名】張 帆
(72)【発明者】
【氏名】呉 ▲シン▼ ▲シュエン▼
(72)【発明者】
【氏名】姚 雪 峰
(72)【発明者】
【氏名】馮 丹 蕾
(72)【発明者】
【氏名】呉 志 華
(72)【発明者】
【氏名】譚 志 鵬
(72)【発明者】
【氏名】丁 杰
(72)【発明者】
【氏名】于 佃 海
(57)【要約】
本開示は、ディープラーニングモデルのトレーニング方法を提供し、人工知能分野に関し、具体的にはディープラーニング及びインテリジェント推薦分野に関する。ディープラーニングモデルのトレーニング方法の具体的な実現解決手段は、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定することと、ターゲットプロセッサに含まれる計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答して、第一ターゲットパラメータをターゲットメモリに書き込むことと、を含む。
【特許請求の範囲】
【請求項1】
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
前記ターゲットプロセッサに含まれる計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように、前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答して、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことと、を含む
ディープラーニングモデルのトレーニング方法。
【請求項2】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答して、前記第一ターゲットパラメータに前記残りの記憶スロットにおける記憶スロットを割り当てることと、
前記第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と前記第一ターゲットパラメータの識別子情報に基づいて、前記第一マッピング関係を更新することと、をさらに含み、
ここで、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、前記第一ターゲットパラメータを前記第一ターゲットパラメータに割り当てられた記憶スロットに書き込むことを含む
請求項1に記載の方法。
【請求項3】
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することは、
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定することと、
前記第一ネットワークパラメータに重複排除処理を行い、重複排除後のネットワークパラメータを取得することと、
前記第一マッピング関係及び前記重複排除後のネットワークパラメータの識別子情報に基づいて、前記重複排除後のネットワークパラメータにおける前記ターゲットメモリに記憶されていないネットワークパラメータを決定し、前記第一ターゲットパラメータとすることと、を含む
請求項1に記載の方法。
【請求項4】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たさないことに応答して、前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定することと、
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送することと、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答して、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことと、をさらに含む
請求項1に記載の方法。
【請求項5】
前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定することは、
前記ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが前記転送可能なネットワークパラメータであることを決定することを含み、
前記パラメータ状態は、引用状態、使用回数の少なくとも一つを含み、
前記ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいことの少なくとも一つを含み、
前記方法は、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答して、前記第一ターゲットパラメータに前記ターゲットメモリにおける残りの記憶スロットを割り当てることと、
前記第一ターゲットパラメータに割り当てられた記憶スロットと前記第一ネットワークパラメータにおける前記第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータのパラメータ状態を更新することと、をさらに含む
請求項4に記載の方法。
【請求項6】
前記計算コアによる前記第一ネットワークパラメータに対する調整を完了することに応答し、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータの引用状態を更新することをさらに含む
請求項5に記載の方法。
【請求項7】
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送することは、
前記メモリの残りの記憶空間が空間閾値より小さいことに応答して、前記転送可能なネットワークパラメータを前記メモリを介してハードディスクメモリに書き込むことを含む
請求項4に記載の方法。
【請求項8】
前記計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、前記第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定することと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
前記残りの記憶スロットが前記第二ターゲットパラメータの記憶要求を満たすことに応答して、前記第二ターゲットパラメータを前記ターゲットメモリに書き込むことと、をさらに含む
請求項1に記載の方法。
【請求項9】
前記ターゲットプロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要な指定パラメータを決定することと、
所定のパラメータ値を用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得することと、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記指定パラメータをトレーニングするように、前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込むことと、を含む
請求項1に記載の方法。
【請求項10】
前記マルチバッチのデータにおける各バッチのデータに対して、前記各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は、前記各バッチのデータに対応するプロセッサにおけるターゲットメモリの記憶容量に関連する
請求項9に記載の方法。
【請求項11】
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記第三ネットワークパラメータを調整するように、前記マルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを前記各プロセッサにおけるターゲットメモリに書き込むことをさらに含む
請求項9に記載の方法。
【請求項12】
第一プロセッサが現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、第二プロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、
第一プロセッサが前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
第一プロセッサが前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込み、前記第二プロセッサに前記第一トレーニングデータに基づくトレーニングタスク情報を送信することと、
前記第二プロセッサの計算コアが前記トレーニングタスク情報を受信したことに応答し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整することと、を含む
ディープラーニングモデルのトレーニング方法。
【請求項13】
前記第二プロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける、前記各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定することと、
所定のパラメータを用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得することと、
前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込むことと、を含む
請求項12に記載の方法。
【請求項14】
前記複数のプロセッサは、キャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整することは、
前記複数のプロセッサにおける各プロセッサの計算コアが前記各プロセッサに対応する一つのバッチのデータ及び前記指定パラメータに基づいて順方向計算及び逆方向計算を行い、前記第一ネットワークパラメータに対する勾配データを取得することと、
前記各プロセッサが前記第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して前記第一ネットワークパラメータに対する勾配データと前記複数のプロセッサにおける他のプロセッサにより取得された勾配データに基づいて、前記第一ネットワークパラメータを調整することと、を含む
請求項13に記載の方法。
【請求項15】
前記第二プロセッサは人工知能チップを含み、前記人工知能チップはコンロンコア二世代チップを含む
請求項12~14のいずれか一項に記載の方法。
【請求項16】
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するターゲットパラメータ決定モジュールと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定する残りのスロット決定モジュールと、
前記ターゲットプロセッサに含まれる計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように、前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むパラメータ書き込みモジュールと、を含む
ディープラーニングモデルのトレーニング装置。
【請求項17】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータに前記残りの記憶スロットにおける記憶スロットを割り当てるスロット割当モジュールと、
前記第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と前記第一ターゲットパラメータの識別子情報に基づいて、前記第一マッピング関係を更新する第一関係更新モジュールと、をさらに含み、
前記パラメータ書き込みモジュールは、前記第一ターゲットパラメータを前記第一ターゲットパラメータに割り当てられた記憶スロットに書き込む
請求項16に記載の装置。
【請求項18】
前記ターゲットパラメータ決定モジュールは、
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定する必要パラメータ決定サブモジュールと、
前記第一ネットワークパラメータに重複排除処理を行い、重複排除後のネットワークパラメータを取得する重複排除サブモジュールと、
前記第一マッピング関係及び前記重複排除後のネットワークパラメータの識別子情報に基づいて、前記重複排除後のネットワークパラメータにける前記ターゲットメモリに記憶されていないネットワークパラメータを決定し、前記第一ターゲットパラメータとするターゲットパラメータ決定サブモジュールと、を含む
請求項16に記載の装置。
【請求項19】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たさないことに応答して、前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定する転送パラメータ決定モジュールと、
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送するパラメータ転送モジュールと、をさらに含み、
前記パラメータ書き込みモジュールは、さらに、前記転送可能なネットワークパラメータが前記メモリに転送されることに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込む
請求項16に記載の装置。
【請求項20】
前記転送パラメータ決定モジュールは、
前記ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが前記転送可能なネットワークパラメータであることを決定し、
前記パラメータ状態は、引用状態、使用回数の少なくとも一つを含み、
前記ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいことの少なくとも一つを含み、
前記装置は、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答し、前記第一ターゲットパラメータに前記ターゲットメモリにおける残りの記憶スロットを割り当てるスロット割当モジュールと、
前記第一ターゲットパラメータに割り当てられた記憶スロットと前記第一ネットワークパラメータにおける前記第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータのパラメータ状態を更新する第二関係更新モジュールと、をさらに含む
請求項19に記載の装置。
【請求項21】
前記第二関係更新モジュールは、さらに、
前記計算コアによる前記第一ネットワークパラメータに対する調整を完了することに応答し、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータの引用状態を更新する
請求項20に記載の装置。
【請求項22】
前記パラメータ転送モジュールは、
前記メモリの残りの記憶空間が空間閾値より小さいことに応答して、前記転送可能なネットワークパラメータを前記メモリを介してハードディスクメモリに書き込む
請求項19に記載の装置。
【請求項23】
前記ターゲットパラメータ決定モジュールは、さらに、前記計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、前記第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定し、
前記残りのスロット決定モジュールは、さらに、前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定し、
前記パラメータ書き込みモジュールは、さらに、前記残りの記憶スロットが前記第二ターゲットパラメータの記憶要求を満たすことに応答し、前記第二ターゲットパラメータを前記ターゲットメモリに書き込む
請求項16に記載の装置。
【請求項24】
前記ターゲットプロセッサは複数のプロセッサを含み、前記第一トレーニングデータは、前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記パラメータ書き込みモジュールは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要な指定パラメータを決定する指定パラメータ決定サブモジュールと、
所定のパラメータ値を用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得するパラメータ置換サブモジュールと、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記指定パラメータをトレーニングするように、前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込む書き込みサブモジュールと、を含む
請求項16に記載の装置。
【請求項25】
前記マルチバッチのデータにおける各バッチのデータに対して、前記各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は前記各バッチのデータに対応するプロセッサにおけるターゲットメモリの記憶容量に関連する
請求項24に記載の装置。
【請求項26】
前記パラメータ書き込みモジュールは、さらに、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記第三ネットワークパラメータを調整するように、前記マルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを前記各プロセッサにおけるターゲットメモリに書き込む
請求項24に記載の装置。
【請求項27】
第一プロセッサ及び第二プロセッサを含み、前記第二プロセッサはターゲットメモリ及び計算コアを含み、
前記第一プロセッサは、
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける前記ターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定し、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定し、
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込み、前記第二プロセッサに前記第一トレーニングデータに基づくトレーニングタスク情報を送信するように構成され、
前記第二プロセッサは、前記計算コアが前記トレーニングタスク情報を受信したことに応答し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように構成される
ディープラーニングモデルのトレーニングシステム。
【請求項28】
前記第二プロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一プロセッサは、以下の方式で前記第一ターゲットパラメータを前記ターゲットメモリに書き込むように構成され、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定し、
所定のパラメータを用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得し、
前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込む
請求項27に記載のシステム。
【請求項29】
前記複数のプロセッサはキャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成し、前記各プロセッサは、以下の方式で前記第一ネットワークパラメータを調整するように構成され、
計算コアが前記各プロセッサに対応する一つのバッチのデータ及び前記指定パラメータに基づいて順方向計算及び逆方向計算を行い、前記第一ネットワークパラメータに対する勾配データを取得し、
前記第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して前記第一ネットワークパラメータに対する勾配データと前記複数のプロセッサにおける他のプロセッサにより取得された勾配データに基づいて、前記第一ネットワークパラメータを調整する
請求項28に記載のシステム。
【請求項30】
前記第二プロセッサは、人工知能チップを含み、前記人工知能チップは、コンロンコア二世代チップを含む
請求項27~29のいずれか一項に記載のシステム。
【請求項31】
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、
前記メモリは、前記少なくとも一つのプロセッサにより実行可能な命令を記憶し、前記少なくとも一つのプロセッサが請求項1~15のいずれか一項に記載の方法を実行することができるように前記命令は前記少なくとも一つのプロセッサにより実行される、
電子機器。
【請求項32】
コンピュータ命令を記憶した非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、前記コンピュータに請求項1~15のいずれか一項に記載の方法を実行させる
非一時的なコンピュータ可読記憶媒体。
【請求項33】
プロセッサにより実行される時に請求項1~15のいずれか一項に記載の方法のステップを実現するコンピュータプログラム/命令を含む
コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2022年5月19日に提出され、出願番号が202210559489.0である中国特許出願の優先権を要求し、その全ての内容は参照により本開示に組み込まれる。
【0002】
本開示は、人工知能分野に関し、具体的にはディープラーニング及びインテリジェント推薦分野に関し、特にディープラーニングモデルのトレーニング方法、装置、システム、電子機器及び記憶媒体に関する。
【背景技術】
【0003】
コンピュータ技術、ネットワーク技術及び通信技術の発展に伴い、ディープラーニング等の技術はインテリジェント推薦等の分野での応用がますます普及している。ビックデータのプッシュとディープラーニング技術の発展に伴い、ディープラーニング技術のデータ規模及びモデル規模がいずれも顕著に増加している。それに応じて、モデルトレーニングにおいてハードウェア環境に高い要求を提出し、かつ通常トレーニングの時間コストも非常に高い。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明、ハードウェア要求を低減し大規模なモデルトレーニングを実現することに役立つディープラーニングモデルのトレーニング方法、装置、システム、電子機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
本開示の一態様によれば、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定することと、ターゲットプロセッサに含まれる計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答して、第一ターゲットパラメータをターゲットメモリに書き込むことと、を含むディープラーニングモデルのトレーニング方法を提供している。
【0006】
本開示の別の態様によれば、第一プロセッサが現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、第二プロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、第一プロセッサがターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定することと、第一プロセッサが残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することと、第二プロセッサの計算コアがトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整することと、を含むディープラーニングモデルのトレーニング方法を提供している。
【0007】
本開示の別の態様によれば、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するターゲットパラメータ決定モジュールと、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定する残りのスロット決定モジュールと、ターゲットプロセッサに含まれる計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込むパラメータ書き込みモジュールと、を含むディープラーニングモデルのトレーニング装置を提供している。
【0008】
本開示の別の態様によれば、第一プロセッサ及び第二プロセッサを含み、第二プロセッサはターゲットメモリ及び計算コアを含み、第一プロセッサは、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定し、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定し、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信するように構成され、第二プロセッサは、計算コアがトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように構成される、ディープラーニングモデルのトレーニングシステムを提供している。
【0009】
本開示の別の態様によれば、少なくとも一つのプロセッサと、少なくとも一つのプロセッサと通信接続されるメモリを含み、メモリは、少なくとも一つのプロセッサにより実行可能な命令が記憶され、少なくとも一つのプロセッサが本開示の提供するディープラーニングモデルのトレーニング方法を実行することができるように命令は少なくとも一つのプロセッサにより実行される、電子機器を提供している。
【0010】
本開示の別の態様によれば、コンピュータ命令を記憶した非一時的なコンピュータ可読記憶媒体を提供している。ここで、コンピュータ命令はコンピュータに本開示の提供するディープラーニングモデルのトレーニング方法を実行させる。
【0011】
本開示の別の態様によれば、コンピュータプログラム/命令を含み、前記コンピュータプログラム/命令はプロセッサにより実行される時に本開示の提供するディープラーニングモデルのトレーニング方法を実現する、コンピュータプログラム製品を提供している。
【0012】
理解すべきこととして、本部分に記載された内容は本開示の実施例のキー又は重要な特徴を示すことを意図するものではなく、本開示の範囲を限定するものではない。本開示の他の特徴は、以下の説明により容易に理解される。
【0013】
図面は、本解決手段をよりよく理解するために用いられ、本開示を限定するものではない。
【図面の簡単な説明】
【0014】
図1図1は、本開示の実施例に係るディープラーニングモデルのトレーニング方法、装置及びシステムの応用シーンアーキテクチャ図である。
図2図2は、本開示の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
図3図3は、本開示の別の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
図4図4は、本開示の実施例に係るプロセッサキャッシュの構造概略図である。
図5図5は、本開示の実施例に係るディープラーニングモデルのトレーニング方法の全体フローチャートである。
図6図6は、本開示の実施例に係るプロセッサのスタンドアマルチカードの通信トポロジー構造図である。
図7図7は、本開示の実施例に係る非同期パイプライン形式でモデルをトレーニングする原理概略図である。
図8図8は、本開示の実施例に係るディープラーニングモデルのトレーニング装置の構造ブロック図である。
図9図9は、本開示の実施例に係るディープラーニングモデルのトレーニングシステムの構造ブロック図である。
図10図10は、本開示の実施例に係るディープラーニングモデルのトレーニング方法を実施するための電子機器のブロック図である。
【発明を実施するための形態】
【0015】
以下に図面を参照して本開示の例示的な実施例を説明し、ここで本開示の実施例の様々な詳細を含み理解することに役立ち、それらを例示的なものと考えるべきである。したがって、当業者であれば分かるように、ここで説明した実施例に対して様々な変更及び修正を行うことができ、本開示の範囲及び精神から逸脱することはない。同様に、明確かつ簡単に説明するために、以下の説明において公知の機能及び構造に対する説明を省略する。
【0016】
ビックデータのプッシュとディープラーニング技術の発展に伴い、工業推薦シーンにおいて、データ規模及びモデル規模はいずれも顕著に増加する。例えば、推薦モデルの精度を向上させるために、一般的には億レベルのクリックデータに基づいてトレーニングサンプルを生成して、該推薦モデルをトレーニングする必要がある。推薦モデルにおいて、一般的には埋め込み(Embedding)技術を用いてオブジェクト(ユーザ及び物品等)の高次元スパース特徴ベクトルを低次元緻密特徴ベクトルに変換する。このように、embedding技術に係るパラメータは常に千億さらに万億のレベルに達し、かつ関連するパラメータはスパースな特性を有する。
【0017】
大規模なスパースパラメータへのトレーニングを実現するために、CPU又はGPUに基づくパラメータサーバアーキテクチャを使用し、大規模なスパースパラメータに対して分散トレーニングを行うことにより、トレーニング効率を向上させる。
【0018】
パラメータサーバアーキテクチャは、例えば、HugeCTR、Paddle-GPUPS、Persiaなどを含んでもよい。
【0019】
例えば、HugeCTRは、GPUを用いて推薦モデルトレーニングを加速するフレームであり、該フレームは、マルチマシンマルチカードの加速をサポートし、該フレームは、パラメータスパース分布の埋め込み層に対してモデル並列トレーニングを行いかつパラメータ緻密分布のネットワークに対してデータ並列トレーニングを行う混合トレーニング方式をサポートする。HugeCTRは、埋め込み層を複数部に分割し、かつそれぞれマルチマシンマルチカードに割り当て、各GPUにグローバル埋め込み層の一部を保存し、同時に各GPUに完全なパラメータ緻密分布のネットワークがある。推薦モデルをトレーニングする時に、グローバルサンプルデータをランダムに乱して(shuffle)分割することができ、各GPUに異なるサンプルデータを割り当ててデータ並列方式のトレーニングを行う。
【0020】
HugeCTRに対して、二つの方式の埋め込み層の記憶をサポートし、一つは、同じスロット(slot)に属するスパースパラメータを同じGPUのビデオカードメモリにキャッシュすることである。一つは、全量のスパースパラメータを分散した後に異なるGPUのビデオカードメモリに記憶することである。これらの方式はいずれもいくつかのスパースパラメータが繰り返してキャッシュされる状況が存在し、ビデオカードメモリにある程度の浪費をもたらす。かつHugeCTRは、複数のCPUがモデルのトレーニングに参加する必要があり、トレーニングコストが高いという問題が存在する。
【0021】
例えば、Paddle-GPUPSの出現により、上百台CPUサーバのトレーニングコストが高いという問題を解決する。該アーキテクチャは、各GPUに高帯域メモリ(High Bandwidth Memory、HBM)ハッシュテーブルを構築する。トレーニングを開始する前に、該アーキテクチャはまず、現在取得された一つのpass中のデータの特徴に埋め込み処理を行う時に必要なスパースパラメータをCPUメモリからビデオカードメモリにロードする。ロードする時、同じ特徴群に必要なスパースパラメータを分散した後に異なるビデオカードメモリに記憶する。このように、一つのpassから抽出された一つのbatchのデータに基づいてモデルをトレーニングする場合、各GPUは特徴識別子に基づいて他のビデオカードメモリから必要なスパースパラメータをコピーする必要がある。該アーキテクチャはトレーニング過程において、GPUの間の通信オーバーヘッドが大きく、かつ各GPUにHBMハッシュテーブルが構築記憶されるため、ビデオカードメモリの大きさに対する要求が高い。
【0022】
例えば、Persiaは、大規模異種クラスタトレーニングのための推薦モデルトレーニングフレームである。該フレームは、トレーニングアルゴリズム及びトレーニングシステムの二つの次元で協調して最適化することにより、最大のトレーニング可能なモデルパラメータの数は百万億レベルである。該フレームは、埋め込み層に対して非同期更新を行い、パラメータ緻密分布のネットワークに同期更新を行い、かつシステムの最適化により、一部の通信過程と計算過程を時間的に重ねることができる。該フレームは従来のフレームにEmbedding Workerの役割を導入し、埋め込み層のトレーニング更新タスクを全体モデルのトレーニングタスクから分割してEmbedding Workerにより実行される。該フレームは、Embedding Workerを導入するために、多くのCPUを必要とし、これにより、モデルのトレーニングコストを増加させる。
【0023】
また、モデルのトレーニング効率を向上させるために、ニューラルネットワーク演算能力を加速するための人工知能(Artificial Intelligence、AI)チップ、例えば、ディープラーニングプロセッサ(Deep learning Processing Unit、DPU)、ニューラルネットワークプロセッサ(Neural Network Processing Unit、NPU)及びテンソルプロセッサ(Tensor Processing Unit、TPU)などは、産生する。
【0024】
例えば、コンロンの二世代チップは、GDDR6ビデオメモリを用いた汎用AIチップである。該チップはXPU-Rアーキテクチャに基づいて動作し、計算のコア計算力を明らかに向上させ、チップの汎用計算能力を向上させることができる。
【0025】
以下に図1を参照して本開示の提供する方法及び装置の応用シーンを説明する。
図1は、本開示の実施例に係るディープラーニングモデルのトレーニング方法、装置及びシステムの応用シーン図である。
【0026】
図1に示すように、該応用シーン100は、電子機器を含み、該電子機器は、ノートパソコン、デスクトップコンピュータ又はサーバなどであってもよい。この電子機器には、プロセッサCPU110と、人工知能チップ120と、メモリ130と、ハードディスクメモリ140とが設けられている。
【0027】
メモリ130は、内部メモリであり、CPU110が直接的にアドレッシングして記憶するための空間である。該メモリは、CPU内の動作データ、及びハードディスク等の外部メモリと交換されたデータを一時的に記憶することができる。コンピュータが動作中であれば、CPUは演算する必要があるデータをメモリに呼び出して演算し、演算が完了した後にCPUは結果を送信する。メモリ130は、例えばランダムメモリであってもよく、このようにCPUはその中からデータを読み出してもよく、データを書き込んでもよい。
【0028】
ハードディスクプロセッサ140は、例えばNVMeインタフェース付きのソリッドステートディスク(Solid State Disk、SSD)などであってもよく、本開示はこれを限定しない。
【0029】
人工知能チップは、データ処理能力を有し、CPUの動作を支援し、全体の動作速度を向上させることができる。人工知能チップとしては、例えば、上述したDPU、NPU、TPU等を含む。該人工知能チップ120は、計算コア、ビデオメモリ及びその関連回路を含むことができる。ビデオメモリは、表示メモリ150、すなわち人工知能チップの専用メモリであり、その作用は、計算コアが処理されたか又は抽出しようとするレンダリングデータを記憶することであり、メモリ130と類似し、表示メモリ150は、処理しようとするモデルパラメータ、トレーニングサンプルなどの情報を記憶する。
【0030】
人工知能チップ120における計算コアは、メモリ130のデータを直接読み取ることができず、計算コアは表示メモリ150からデータを読み取ることしかできない。CPUは、計算コアに計算タスクを割り当てることができ、計算コアが計算タスクを実行する過程において、CPU110の制御下で、メモリ130と表示メモリ150との間にデータ交換を行うことができ、これにより、計算コアが計算タスクを実行する時に必要なデータをメモリ130から表示メモリ150にコピーし、又はメモリ130内のデータを表示メモリ150に直接的に転送する。
【0031】
ディープラーニング技術に基づいて構築されたモデルをトレーニングする場合、CPU110は例えばトレーニングタスクを人工知能チップ120に割り当て、かつモデルをメモリ130から表示メモリ150に転送することができる。一実施例において、モデルをハードディスクメモリ140の提供するハードディスク記憶空間に記憶することができる。表示メモリ150、メモリ130及びハードディスクメモリ140で構成された三次バッファ空間を確立する。このように、モデルをハードディスクメモリ140に記憶する時、モデルトレーニング過程において、トレーニングの必要に応じて、CPU110はハードディスクメモリ140からデータを読み取ってメモリにキャッシュし、かつCPU110が人工知能チップ120にトレーニングタスクを割り当てる時、計算コアが現在の計算タスクを実行する時に係るモデルパラメータをメモリ130から表示メモリ150に転送し、かつ表示メモリ150に記憶された計算コアが処理したデータを表示メモリ150からメモリ130に転送することにより、表示メモリの記憶空間が不足することを回避する。
【0032】
一実施例において、電子機器は、例えば複数の人工知能チップを設置することができ、該複数の人工知能チップは、異なるトレーニングサンプルに基づいてモデルトレーニングタスクを並行して実行することができ、それによりモデルのトレーニング効率を向上させる。
【0033】
理解されるように、本開示の提供するディープラーニングモデルのトレーニング方法は、電子機器により実行することができ、具体的にはCPU又は人工知能チップにより対応するプログラムコードを呼び出して実現することができる。それに応じて、本開示の提供するディープラーニングモデルのトレーニング装置、ディープラーニングモデルのトレーニングシステムは電子機器に設置することができる。
【0034】
以下に図2図7を参照して本開示の提供するディープラーニングモデルのトレーニング方法を詳細に説明する。
【0035】
図2は、本開示の実施例に係るディープラーニングモデルのトレーニング方法のフローチャートである。
【0036】
図2に示すように、該実施例のディープラーニングモデルのトレーニング方法200は、操作S210~操作S230を含むことができる。この方法200は、例えば、上述した電子機器におけるCPUにより実行されることができる。
【0037】
操作S210において、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。
【0038】
操作S220において、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定する。
【0039】
操作S230において、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、それによりターゲットプロセッサに含まれる計算コアは第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整する。
【0040】
本開示の実施例によれば、ターゲットメモリは例えばターゲットプロセッサに含まれるメモリであってもよい。ターゲットプロセッサは例えば上記した人工知能チップであってもよく、グラフィックスプロセッサGPUなどであってもよい。該ターゲットプロセッサは、CPUで割り当てられた計算タスクを受信し、かつターゲットメモリに記憶されたデータに基づいて割り当てられた計算タスクを実行することができる。該計算タスクは例えばモデルトレーニングタスクを含むことができ、それによりディープラーニングモデルをトレーニングする。ディープラーニングモデルは、例えば、画像処理モデル、音声処理モデル又はテキスト処理モデル等を含むことができる。具体的なシーンにおいて、ディープラーニングモデルは、推薦モデルであってもよく、該実施例は大量のユーザの推薦対象に対する対話行為情報に基づいて、勾配降下などの方法により推薦モデルをトレーニングすることができる。推薦モデルのモデルパラメータが集約した後、ユーザに個性化推薦を行うことができる。
【0041】
一実施例において、ディープラーニングモデルは例えば埋め込み層及び予測ネットワークを含むことができる。埋め込み層は、ディープラーニングモデルに入力されたデータに埋め込み処理を行うことにより、入力されたデータを高次元スパースな空間から低次元緻密の特徴空間に投射するために用いられる。本開示の実施例における第一トレーニングデータに埋め込む処理を行うために必要な第一ネットワークパラメータは、該埋め込み層におけるネットワークパラメータである。この第一ネットワークパラメータは、例えば、コア関数を呼び出すことにより決定することができる。
【0042】
一実施例において、決定された第一ネットワークパラメータをターゲットメモリに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、ターゲットメモリに書き込む必要がある第一ターゲットパラメータとすることができる。又は、該実施例において、さらに第一ネットワークパラメータをメモリ及び/又はハードディスクプロセッサに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータにおけるメモリ及び/又はハードディスクプロセッサに記憶されたネットワークパラメータを第一ターゲットパラメータとすることができる。理解できるように、ネットワークパラメータを比較する場合、ネットワークパラメータに基づいて埋め込み処理を行うデータの特徴識別子Feature sign(Feasignと略称する)に基づいて比較を行うことができる。
【0043】
例えば、一つのトレーニングサンプルは複数のオブジェクトの特徴データを含むことができ、各オブジェクトは複数の特徴データを含み、一つの特徴データは一つの特徴識別子に対応する。各特徴データに対して、一定のネットワークパラメータを採用して埋め込み処理を行う必要がある。例えば、本開示の実施例はネットワークパラメータと特徴データとの間の対応関係に基づいて埋め込み層のネットワークパラメータを記憶し、かつネットワークパラメータに対応する特徴データの特徴識別子を添加することができる。
【0044】
一実施例において、CPUは、キャッシュ又はメモリに特徴データの特徴識別子とターゲットメモリに記憶されたネットワークパラメータとの間のマッピング関係テーブルをメンテナンスすることができ、該マッピング関係テーブルは、特徴識別子をKeyとし、マッピング関係を有するネットワークパラメータの識別子情報をValueとする。該実施例は、第一トレーニングデータに含まれる特徴データの特徴識別子に基づいてマッピング関係テーブルを照会し、かつマッピング関係テーブルに存在しない特徴識別子を決定し、第一ネットワークパラメータにおける該存在しない特徴識別子により識別された特徴データに埋め込み処理を行うためのネットワークパラメータを、第一ターゲットパラメータとする。
【0045】
理解できるように、ターゲットメモリに記憶されたネットワークパラメータは例えばスロット(Slot)に応じて記憶することができ、各スロットに記憶されたネットワークパラメータは一つの特徴データに対応する全てのネットワークパラメータである。すなわち、ネットワークパラメータは、グループごとに記憶することができ、一つの特徴データに対応する全てのネットワークパラメータは、一つのネットワークパラメータグループを構成する。このように、ターゲットメモリを複数の記憶スロットに分割することができ、各記憶スロットは一つのネットワークパラメータグループを記憶する。
【0046】
第一ターゲットパラメータを決定した後、該実施例はまずターゲットメモリにおける記憶空間が十分であるか否かを決定し、記憶空間が十分である場合にのみ、第一ターゲットパラメータをターゲットメモリに書き込むことができる。
【0047】
例えば、該実施例はCPUのキャッシュ又はメモリに記憶スロットとネットワークパラメータとの間の第一マッピング関係をメンテナンスすることができる。該第一マッピング関係は、マッピングテーブルの形式で記憶することができ、ネットワークパラメータが特徴データと一対一に対応するため、該実施例は、特徴データの特徴識別子を採用してネットワークパラメータを表示し、かつターゲットメモリ内の記憶スロットをナンバー化することができる。このように、第一マッピング関係は、特徴データの特徴識別子をKeyとし、記憶スロットのシリアルナンバー(FIdに設定される)をValueとして、FeasignとFIdとの間のマッピングテーブルとして示すことができる。このように、該実施例は該第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定することができる。
【0048】
例えば、ターゲットメモリの記憶空間の合計が100個の記憶スロットに分割され、かつ該100個の記憶スロットのシリアルナンバーが0~99の整数であるように設定し、第一マッピング関係にシリアルナンバーが0~49であるマッピング情報のみを含むと、残りの記憶スロットが50個であると決定することができる。
【0049】
残りの記憶スロットを決定した後、該実施例は、該残りの記憶スロットを第一ターゲットパラメータにおけるネットワークパラメータのグループ数と比較し、第一ターゲットパラメータにおけるネットワークパラメータのグループ数が残りの記憶スロットより小さい場合、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすと決定し、CPUは、第一ターゲットパラメータをメモリからターゲットメモリに転送することができる。一実施例において、ターゲットメモリにネットワークパラメータを書き込む場合、以上に説明したグループごとに書き込む方式を採用することができる。
【0050】
本開示の実施例は、CPUにおいて第一マッピング関係をメンテナンスし、かつ第一マッピング関係に基づいてターゲットメモリの残りの記憶空間を決定し、かつこれに基づいてネットワークパラメータの書き込みを制御することにより、ビデオカードメモリの記憶空間に対する管理を実現することができ、モデルトレーニング過程において埋め込み処理に必要なネットワークパラメータが多すぎることによりビデオカードメモリにもたらした巨大な圧力を回避し、大規模なモデルトレーニングのハードウェア条件に対する高い要求を低減することに役立ち、かつ大規模モデルのトレーニングを実現することに役立つ。さらに、該実施例における第一マッピング関係はCPUがアクセス可能なメモリ又はキャッシュにメンテナンスされるため、関連技術においてマッピング関係を示すハッシュテーブルをビデオカードメモリに記憶する技術的解決手段と比較して、ビデオカードメモリを十分に利用してモデルトレーニングを行うことができ、さらにビデオカードメモリに対する圧力を低下させ、CPUとターゲットプロセッサとの間の通信オーバーヘッドを低減することに役立つ。
【0051】
理解されるように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすと決定する場合、該実施例はさらにまず第一ターゲットパラメータに残りの記憶スロットにおける記憶スロットを割り当て、かつ第一ターゲットパラメータを割り当てられた記憶スロットに書き込むことができる。例えば、第一ターゲットパラメータが10個の特徴データに対応するネットワークパラメータを含み、かつターゲットメモリにおけるシリアルナンバーが0~49である記憶スロットが既にネットワークパラメータを記憶した場合、第一ターゲットパラメータにシリアルナンバーが50~49である記憶スロットを割り当てることができる。
【0052】
第一ターゲットパラメータに記憶スロットを割り当てる後、割り当てられた記憶スロットのシリアルナンバー(すなわち記憶スロットの識別子情報とする)及び第一ターゲットパラメータの識別子情報(すなわち第一ターゲットパラメータに対応する特徴データの識別子情報)に基づいて第一マッピング関係を更新することができる。このようにして、第一マッピング関係における記憶スロットとネットワークパラメータとの間の対応関係をメンテナンスすることができる。
【0053】
理解されるように、各ラウンドのトレーニングにおいて、該実施例はさらにトレーニングデータに予測処理を行うために必要な第三ネットワークパラメータもターゲットメモリに書き込み、ターゲットプロセッサの計算コアが呼び出すことができ、かつ呼び出し結果に基づいて該第三ネットワークパラメータを調整することができる。これは一般的な予測処理に必要なネットワークパラメータが緻密分布のパラメータであり、かつパラメータが少なく、予測処理に必要な全量のネットワークパラメータをターゲットメモリに書き込み、一般的に明らかな圧力を与えないためである。推薦モデルにおいて、該第三ネットワークパラメータは例えば予測ネットワークに含まれるネットワークパラメータであってもよく、予測ネットワークは例えば多層パーセプトロン(Multilayer Perceptron、MLP)を含むことができる。
【0054】
理解できるように、ディープラーニングモデルのトレーニング過程は一般的に三つの部分を含む。第一部分は、順方向計算の過程に計算でディープラーニングモデルの損失を取得することであり、第二部分は、逆方向計算の過程に計算で勾配を取得することであり、第三部分は、勾配に基づいてディープラーニングモデルのネットワークパラメータを更新する過程である。計算コアは具体的には逆方向計算により得られた勾配に基づいて第一ネットワークパラメータ及び第三ネットワークパラメータを調整することにより、ディープラーニングモデルのネットワークパラメータが徐々に集約する。
【0055】
一実施例において、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たさない場合、CPUは例えばターゲットメモリにおける一時的に不要なネットワークパラメータを転送することができ、それにより第一ターゲットパラメータに十分な空間を残し、ディープラーニングモデルの後続のトレーニングに条件を提供する。該実施例により、ターゲットメモリ内のキャッシュス空間の大きさを動的に調整することができ、メモリにおける第一マッピング関係などのメンテナンスを結合し、CPUとターゲットプロセッサとの間の通信オーバーヘッドを効果的に低減することができる。
【0056】
例示的には、CPUはさらにキャッシュ又はメモリに記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係をメンテナンスすることにより、転送可能なネットワークパラメータを決定する根拠とする。
【0057】
例えば、ネットワークパラメータのパラメータ状態は引用状態を含むことができる。ネットワークパラメータが現在のトレーニングラウンドに必要なネットワークパラメータである場合、該引用状態を引用された状態に設定し、現在のトレーニングラウンドが該ネットワークパラメータを必要としないと、該引用状態を引用されていない状態に設定する。例えば、引用状態は、引用カウント(Reference Count、Countと略称される)で表すことができ、引用カウントの値が1であれば、引用された状態を表し、引用技術の値が0であれば、引用されていない状態を表す。
【0058】
該実施例において、第二マッピング関係は、上記したFId、FeaSignとCountとの間の対応関係で構成されたマッピングテーブルで表され、各FeaSignはそれぞれのRefCountに対応し、FeaSign識別子の特徴データに埋め込み処理を行う時に必要なネットワークパラメータが引用されるか否かを示すために用いられる。該実施例は第二マッピング関係におけるRefCountの値が0であるFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0059】
例えば、ネットワークパラメータのパラメータ状態は、使用回数を含むことができる。ネットワークパラメータが一つのトレーニングラウンドにおいて呼び出される場合、該使用回数に1を加算し、該使用回数の初期値は0であってもよい。例えば、使用回数は頻度(Frequency Count、FreqCountと略称する)で表すことができる。
【0060】
該実施例において、第二マッピング関係は、上記したFId、FeaSignとFreqCountとの間の対応関係で構成されたマッピングテーブルで示され、各FeaSignはそれぞれのFreqCountに対応し、FeaSign識別子の特徴データに埋め込み処理を行う時に必要なネットワークパラメータの使用回数を示すために用いられる。該実施例は第二マッピング関係におけるFreqCountの値が閾値より小さいFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0061】
例えば、ネットワークパラメータのパラメータ状態は引用状態だけでなく、使用回数を含む。第二マッピング関係は、上記したFId、FeaSign、RefCountとFreqCountとの間の対応関係で構成されたマッピングテーブルで表され、各FeaSignはそれぞれのRefCount及びFreqCountに対応する。該実施例は引用状態が引用されておらずかつ使用回数が閾値より小さいFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0062】
上記実施例の方法により、需要に応じて必要なネットワークパラメータをタイムリーに送信することができ、ディープラーニングモデルのトレーニングに十分な記憶スロットを残し、ディープラーニングモデルのトレーニング効率を向上させることに役立つ。
【0063】
例示的に、該実施例はさらに第一ネットワークパラメータをターゲットメモリに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータに属しなくかつ引用状態が引用されていないネットワークパラメータを転送可能なネットワークパラメータとすることができる。例えば、転送可能なネットワークパラメータを決定する場合、例えば第一ターゲットパラメータに対応する特徴データの個数に基づいて、転送する必要があるネットワークパラメータのグループ数を決定し、ターゲットグループ数とする。次に引用されていない状態にありかつ使用頻度が低いターゲットグループ数のネットワークパラメータを転送可能なネットワークパラメータとする。
【0064】
転送可能なネットワークパラメータを決定した後、転送可能なネットワークパラメータをターゲットメモリからメモリに転送することができる。かつ転送可能なネットワークパラメータが転送された後、第一ターゲットパラメータをターゲットメモリに書き込む。理解されるように、上記と同様に、第一ターゲットパラメータをターゲットメモリに書き込む時に、第一ターゲットパラメータにターゲットメモリ内の残りの記憶スロットを割り当てることができる。理解されるように、ここでの残りの記憶スロットは転送可能なネットワークパラメータが位置する記憶スロットを含む。次に第一ターゲットパラメータを割り当てられた記憶スロットに書き込む。記憶スロットを割り当てた後、該実施例はさらに第一ターゲットパラメータに対応する特徴データの識別子情報と第一ターゲットパラメータに割り当てられた記憶スロットのシリアルナンバーに基づいて、上記第一マッピング関係と第二マッピング関係を更新することができる。
【0065】
例えば、第二マッピング関係を更新する場合、FIdとFeaSignとの間のマッピング関係を更新する必要がある以外に、さらに第一ネットワークパラメータのパラメータ状態を更新する必要がある。例えば、第一ネットワークパラメータの引用状態を被引用状態に変更し、すなわち第一ネットワークパラメータに対応するFeaSignのRefCountを0から1に変更することができる。例えば、第一ネットワークパラメータの使用回数に1を加算し、すなわち第一ネットワークパラメータに対応するFeaSignのFreqCountに1を加算することができる。
【0066】
一実施例において、計算コアが第一ネットワークパラメータに対する調整を完了した後、該実施例はさらに第二マッピング関係を更新することにより、第一ネットワークパラメータの引用状態を更新することができる。具体的には第一ネットワークパラメータに対応するFeaSignのRefCountを1から0に変更することができる。
【0067】
一実施例において、ターゲットメモリ、メモリ及びハードディスクプロセッサで構成された三次バッファ構造を採用することにより、メモリ及びターゲットメモリの記憶圧力を低減することができる。前述の第一ターゲットパラメータをターゲットメモリに書き込む場合、メモリ又はハードディスクメモリから該第一ターゲットパラメータを読み取ることができる。メモリはハードディスクメモリのキャッシュであってもよく、メモリの占用率が高い場合、CPUはメモリにキャッシュされたデータをハードディスクメモリに書き込むことができる。該三次バッファ構造の設定により、モデルトレーニング過程におけるネットワークパラメータの検索及び引き取りを加速することができ、大規模なディープラーニングモデルのトレーニングを実現することに役立ち、例えば、サポートするディープラーニングモデルのモデルパラメータはTレベルに達することができる。
【0068】
例えば、CPUは転送可能なネットワークパラメータをターゲットメモリからメモリに転送する時、まずメモリの残りの記憶空間が空間閾値より小さいか否かを決定することができる。空間閾値より小さければ、メモリをキャッシュとし、転送可能なネットワークパラメータをメモリを介してハードディスクメモリに書き込む。すなわち、転送可能なネットワークパラメータをメモリにキャッシュし、かつメモリにキャッシュされた転送可能なネットワークパラメータをハードディスクメモリに書き込む。
【0069】
一実施例において、第一ネットワークパラメータにおける第一ターゲットパラメータを決定する場合に、例えば先に説明した方式を採用して第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定することができる。具体的にはまず第一トレーニングデータに含まれる特徴データを決定し、特徴データに対応する全てのネットワークパラメータを第一ネットワークパラメータとすることができる。その後に第一ネットワークパラメータに対して重複排除処理を行い、重複排除後のネットワークパラメータを取得する。例えば、特徴データの識別子情報に基づいて第一ネットワークパラメータに重複排除を行うことができる。その後に第一マッピング関係及び重複排除後のネットワークパラメータの識別子情報に基づいて、重複排除後のネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、決定されたネットワークパラメータを第一ターゲットパラメータとする。
【0070】
例えば、まず特徴データの識別子情報に基づいて、第一トレーニングデータに含まれる特徴データに重複排除を行うことができる。その後、重複排除後の特徴データに埋め込み処理を行う場合に必要なネットワークパラメータを重複排除後のネットワークパラメータとする。
【0071】
第一トレーニングデータは一般的に複数のトレーニングデータを含み、異なるトレーニングデータに同じ特徴データが含まれる可能性がある。決定された全ての第一ネットワークパラメータを全てターゲットメモリに書き込むと、同じネットワークパラメータがターゲットメモリの複数のスロットに書き込まれる状況が存在する。本開示の実施例は第一ネットワークパラメータに重複排除を行うことにより、上記状況を回避することができ、したがってターゲットメモリの記憶空間の浪費を減少させることができ、ターゲットメモリの記憶空間の利用率を向上させ、大規模なモデルトレーニング時にターゲットメモリに与える圧力を低下させ、大規模なモデルのトレーニングを実現することに役立つ。
【0072】
理解できるように、CPUが第一ターゲットパラメータをターゲットメモリに書き込んだ後、例えばターゲットプロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することにより、ターゲットプロセッサの計算コアがターゲットメモリに記憶された第一ネットワークパラメータに基づいて第一トレーニングデータを処理し、かつ処理結果に基づいて第一ネットワークパラメータを調整することができる。これに基づいて、本開示はさらに別のモデル処理方法を提供する。以下に図3を参照して該別のモデルトレーニング方法を詳細に説明する。
【0073】
図3は、本開示の別の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
【0074】
図3に示すように、該実施例のディープラーニングモデルのトレーニング方法300は操作S310~操作S340を含むことができる。このモデルトレーニング方法300は、上述した電子機器により実行することができる。
【0075】
操作S310において、第一プロセッサは、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。
【0076】
本開示の実施例によれば、第一プロセッサは上記したCPUであってもよく、ターゲットメモリは第二プロセッサに含まれるメモリである。第二プロセッサは上記したターゲットプロセッサと類似し、該操作S310の実現方式は上記操作S210と類似し、ここで説明を省略する。
【0077】
操作S320において、第一プロセッサはターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。該操作S320は上記操作S220と類似し、ここでは説明を省略する。
【0078】
操作S330において、第一プロセッサは残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、かつ第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信する。
【0079】
操作S340において、第二プロセッサの計算コアはトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。
【0080】
本開示の実施例によれば、第一ターゲットパラメータをターゲットメモリに書き込む実現方式は前述の操作S230の実現方式と類似し、ここでは説明を省略する。
【0081】
本開示の実施例によれば、第一プロセッサは、第一ターゲットパラメータをターゲットメモリに書き込んだ後、さらに第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することができる。このように、第二プロセッサの計算コアは該トレーニングタスク情報を受信した後、ターゲットメモリに記憶された第一ネットワークパラメータを直接呼び出して第一トレーニングデータを処理し、かつ処理結果に基づいて逆方向計算して第一トレーニングデータに対する勾配データを取得し、勾配データに基づいて第一ネットワークパラメータを調整することができる。
【0082】
本開示の実施例によれば、第一プロセッサはさらに第一ターゲットパラメータをターゲットメモリに書き込む過程において、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することができる。このように、第二プロセッサの計算コアは該トレーニングタスク情報を受信した後、ターゲットメモリに記憶されたネットワークパラメータを段階的に呼び出し、必要なネットワークパラメータがまだターゲットメモリに書き込まれていない場合、まずターゲットメモリから必要なネットワークパラメータを読み取るまで、トレーニングタスクの実行を暫定的に実行することができる。
【0083】
本開示の実施例によれば、第一ターゲットパラメータをターゲットメモリに書き込むと同時に、第一プロセッサはさらに第一トレーニングデータを第二プロセッサのキャッシュに書き込むことができる。トレーニングタスク情報には、例えば、順方向計算のタスク情報、逆方向計算のタスク情報、及びパラメータ更新のタスク情報などが含まれ得る。順方向計算のタスク情報は、例えば、第一トレーニングデータの呼出情報、ネットワークパラメータの呼出情報、及び、損失lossの算出情報等を含んでもよい。ネットワークパラメータの呼び出し情報は呼び出しを必要とするネットワークパラメータの識別子情報及びネットワークパラメータの呼び出し順序情報などを含むことができる。逆方向計算のタスク情報は、例えば学習率などの情報を含むことができ、パラメータ更新のタスク情報は、例えばステップサイズなどを調整することを含むことができる。
【0084】
本開示の実施例はCPUにおいて第一マッピング関係をメンテナンスし、かつ第一マッピング関係に基づいてターゲットメモリの残りの記憶空間を決定し、かつこれに基づいてネットワークパラメータの書き込みを制御することにより、ビデオカードメモリの記憶空間に対する管理を実現することができ、モデルトレーニング過程において埋め込み処理に必要なネットワークパラメータが多すぎることによりビデオカードメモリにもたらした巨大な圧力を回避し、大規模なディープラーニングモデルトレーニングのハードウェア条件に対する高い要求を低減することに役立ち、かつ大規模なディープラーニングモデルのトレーニングを実現することに役立つ。さらに、該実施例における第一マッピング関係はCPUがアクセス可能なメモリ又はキャッシュにメンテナンスされるため、関連技術においてマッピング関係を示すハッシュテーブルをビデオカードメモリに記憶する技術的解決手段と比較して、ビデオカードメモリを十分に利用してモデルトレーニングを行うことができ、さらにビデオカードメモリに対する圧力を低下させ、CPUとターゲットプロセッサとの間の通信オーバーヘッドを節約することに役立つ。
【0085】
理解できるように、上記説明したように、各ラウンドのトレーニングにおいて、該実施例はさらにトレーニングデータに予測処理を行うために必要な第三ネットワークパラメータもターゲットメモリに書き込み、ターゲットプロセッサの計算コアにより呼び出し、かつ呼び出し結果に基づいて該第三ネットワークパラメータを調整することができる。
【0086】
本開示をよりよく理解するために、以下に図4を参照して本開示の提供するモデルトレーニング方法を実現するためのプロセッサキャッシュの構造を詳細に説明する。
【0087】
図4は本開示の実施例に係るプロセッサキャッシュの構造概略図である。
図4に示すように、実施例400において、本開示の提供するディープラーニングモデルのトレーニング方法を実現するために、プロセッサキャッシュの構造はメモリ410及びターゲットメモリ420を含むことができる。該実施例はターゲットメモリ420がビデオカードメモリであることを例として説明する。理解できるように、ターゲットメモリ420は任意の高帯域幅メモリ(High Bandwidth Memory、HBM)であってもよい。
【0088】
メモリ410には第一ハッシュテーブル411と第二ハッシュテーブル412がメンテナンスされてもよい。第一ハッシュテーブル411は上記第一マッピング関係を示すために用いられ、第二ハッシュテーブル412は上記第二マッピング関係を示すために用いられる。具体的には、第一ハッシュテーブルにおけるKeyは特徴データの識別子情報FeaSignであり、第一ハッシュテーブルにおけるValueはビデオカードメモリ420に記憶されたスロットのシリアルナンバーである。第二ハッシュテーブルにおけるKeyはビデオカードメモリ420に記憶されたスロットのシリアルナンバーであり、Valueは特徴データのタグ情報(Feature Meta、FeaMetaと略称される)であり、該タグ情報は特徴データの識別子情報FeaSignを含み、特徴データに埋め込み処理を行う時に必要なネットワークパラメータの引用状態RefCount及び使用回数FreqCountである。
【0089】
例えば、該実施例におけるビデオカードメモリ420が最大で100個の特徴データに埋め込み処理を行う100組のネットワークパラメータを記憶することを許可するように設定すれば、ビデオカードメモリ420内の記憶スロットは100個を含み、該100個の記憶スロットの番号はそれぞれ0、1、2、……、98、99である。各記憶スロットにキャッシュされたデータは一組の埋め込み層のネットワークパラメータ及び該一組の埋め込み層のネットワークパラメータを調整する時に必要なハイパーパラメータを含むことができる。
【0090】
プロセッサCPU430は上記のようなディープラーニングモデルのトレーニング方法の対応する操作を実行する時、第一マッピングテーブルを検索することによりビデオカードメモリ420に利用可能な記憶スロットの数を決定し、かつトレーニングデータに埋め込み処理を行う時に必要なビデオカードメモリ420に書き込むべきターゲットパラメータに記憶スロットを割り当て、かつ需要に応じてメモリ410に記憶された第一ハッシュテーブル411及び第二ハッシュテーブル412における情報に対して照会、追加、削除等の操作を行うことができる。
【0091】
CPU430はさらにディープラーニングモデルのトレーニング方法における対応する操作を実行する時に、ビデオカードメモリ420にキャッシュする必要があるデータを割り当てられた記憶スロットにコピーし、かつGPU等のターゲットプロセッサがネットワークパラメータに対する調整を完了しかつ記憶スロットを解放する必要がある場合、ビデオカードメモリ420から関連するネットワークパラメータをコピーする。モデルトレーニング過程において、CPU430は実質的にキャッシュ管理者の役割を果たす。
【0092】
一実施例において、ビデオカードメモリ420は人工知能チップ内のメモリであってもよい。具体的にはコンロン二世代チップ内のメモリであってもよい。このように、該実施例はディープラーニングモデルのトレーニング方法を実行する時、コンロン二世代チップの計算能力を十分に利用することができ、大規模な推薦モデルのトレーニングを実現することに役立つ。
【0093】
一実施例において、一つの電子機器に複数のターゲットプロセッサを設置することにより、ターゲットプロセッサは異なるトレーニングデータに基づいてディープラーニングモデルに並列トレーニングを行うことにより、モデルトレーニング効率を向上させる。
【0094】
例えば、上記ターゲットプロセッサは複数のプロセッサを含み、一つのラウンドのトレーニングにおいて、マルチバッチ(batch)データを取得することができ、該マルチbatchのデータは第一トレーニングデータを構成する。該実施例は各batchのデータに埋め込む処理を行うために必要なネットワークパラメータのみを該各batchに対応するプロセッサのターゲットメモリに書き込み、これによりターゲットプロセッサ中のターゲットメモリのバッファ圧力を減少させることができる。
【0095】
例えば、該実施例はさらに第一ターゲットパラメータをターゲットメモリに書き込む場合、まず第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要なパラメータを決定し、該各プロセッサに対する指定パラメータとすることができる。次に所定のパラメータを用いて第一ターゲットパラメータにおける指定パラメータ以外の他のパラメータを置換し、それにより該各プロセッサに対する書き込むべきパラメータを取得する。該書き込むべきパラメータにおけるパラメータの数は第一ターゲットパラメータのパラメータの数と同じである。次に第一ターゲットパラメータに割り当てられた記憶スロットに基づいて、書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込む。該方式により、複数のターゲットプロセッサに含まれる複数のターゲットメモリに記憶されたネットワークパラメータの個数及びネットワークパラメータの分布を同じにすることができる。所定のパラメータは、ヌル値であってもよい。このように、ターゲットプロセッサ中のターゲットメモリのバッファ圧力を減少させる以外に、複数のターゲットプロセッサ同士の間の通信を介してネットワークパラメータを同期させることに役立つ。
【0096】
例えば、複数のターゲットプロセッサはそのターゲットメモリに記憶されたネットワークパラメータ及びネットワークパラメータが位置するスロットに基づいて、計算されたネットワークパラメータの勾配データを同期することができる。このようにして、ターゲットプロセッサとCPUとの間の通信オーバーヘッドを減少させることができる。
【0097】
具体的には、各プロセッサの計算コアは該各プロセッサに対応する一つのbatchのトレーニングデータ及びネットワークパラメータに基づいて順方向計算及び逆方向計算を行うことができ、第一ネットワークパラメータに対する勾配データを取得する。例えば、計算コアは対応する一つのbatchのトレーニングデータ中の特徴データに基づいて、ターゲットメモリから特徴データに埋め込み処理及び予測処理を行うネットワークパラメータを取得し、かつネットワークパラメータに基づいて特徴データを処理し、処理結果を取得する。続いて処理結果に基づいてディープラーニングモデルの該一つのbatchのデータに対する損失lossを決定し、それにより順方向計算のタスクを完了する。その後、該損失及び特徴データに埋め込み処理及び予測処理を行うネットワークパラメータに基づいて、逆方向伝播アルゴリズムを採用して第一ネットワークパラメータに対する勾配データを計算して得て、それにより逆方向計算のタスクを完了する。最後に、第一ネットワークパラメータが位置する記憶スロットと他のターゲットプロセッサとの通信に基づいて、他のターゲットプロセッサにより得られた第一ネットワークパラメータに対する勾配データを取得する。同時に、他のターゲットプロセッサとの通信により、他のターゲットプロセッサにより得られた予測処理に用いられる第三ネットワークパラメータに対する勾配データを取得することができる。最後に全ての勾配データをまとめ、集計結果に基づいて第一ネットワークパラメータ及び第三ネットワークパラメータを調整し、それによりパラメータ更新のタスクを完了する。
【0098】
以下、図5を参照して、ディープラーニングモデルのトレーニング方法の全体的な流れについて詳述する。
【0099】
図5は本開示の実施例に係るディープラーニングモデルのトレーニング方法の全体フローチャートである。
【0100】
図5に示すように、該実施例のディープラーニングモデルのトレーニング方法500は操作S501~操作S518を含むことができる。操作S509~操作S512は上記ターゲットプロセッサにより実行される以外、他の操作はいずれもCPUにより実行される。
【0101】
操作S501において、バッチのデータを取得する。具体的にはハードディスクメモリ又は外付けのデータベースから所定数のサンプルデータを取得することにより、ディープラーニングモデルをトレーニングすることができる。
【0102】
操作S502において、データ全体を乱し、バッチごとに得られたトレーニングデータのランダム性を向上させる。
【0103】
操作S503において、現在のトレーニングラウンドのデータを取得する。例えば、バッチのデータからbatch_size*カード数のトレーニングデータをランダムに取得し、上記第一トレーニングデータとすることができる。カード数とは、電子機器に設けられたターゲットプロセッサの個数である。batch_sizeは実際の需要に応じて設定することができる。例えば、該batch_sizeはターゲットプロセッサ中のターゲットメモリの記憶容量に基づいて決定することができる。例えば、batch_size個のトレーニングデータに埋め込み処理を行うために必要なネットワークパラメータの個数はターゲットメモリの記憶容量に関連することができる。具体的には、ターゲットメモリに記憶されたスロットの数は埋め込み処理に必要なネットワークパラメータのグループ数の二倍であってもよい。
【0104】
操作S504において、ターゲットメモリの残りの記憶スロットが十分であるか否かを決定する。十分であれば、操作S505~操作S513を実行し、そうでなければ操作S514~操作S516を実行する。理解できるように、複数のターゲットプロセッサが同じタイプのプロセッサであり、複数のターゲットプロセッサに含まれる複数のターゲットメモリの記憶容量の大きさが等しいことを設定することができる。
【0105】
操作S505において、第一トレーニングデータに含まれる特徴データのFeaSignに基づいて、第一トレーニングデータの埋め込み処理に必要なネットワークパラメータに対して重複排除処理を行い、上記重複排除後のネットワークパラメータを取得する。
【0106】
操作S506において、ターゲットメモリにおけるキャッシュパラメータに対する増分を決定する。すなわち第一マッピング関係に基づいて重複排除後のネットワークパラメータをターゲット記憶装置に記憶されたネットワークパラメータと比較し、ターゲットメモリに書き込む必要があるネットワークパラメータを決定し、上記第一ターゲットパラメータを取得する。
【0107】
操作S507において、ターゲットメモリに書き込む必要があるネットワークパラメータに記憶スロットを割り当て、かつ割り当て結果に基づいて第一マッピング関係及び第二マッピング関係を更新し、具体的には第一マッピング関係にFIdとFeaSignのマッピング関係を添加し、第二マッピング関係にFIdとFeaMetaとのマッピング関係を添加し、かつ第一ネットワークパラメータにおける各組のネットワークパラメータに対応する特徴データのFeaMetaデータを更新し、具体的にはRefCount及びFreqCountをいずれも1に加算する。
【0108】
操作S508において、ターゲットメモリに追加されたネットワークパラメータをコピー(Pull)し、具体的には上記のように所定のパラメータに基づいて各ターゲットメモリに対する書き込むべきパラメータを決定し、かつ書き込むべきパラメータを割り当てられた記憶スロットに書き込むことができる。このように、各ターゲットプロセッサはターゲットメモリ内のネットワークパラメータを呼び出し、一つのbatchのトレーニングサンプルに基づいて、操作S509~操作S512を実行することができる。理解されるように、さらに予測ネットワークの第三ネットワークパラメータを複数のターゲットプロセッサ中の各ターゲットプロセッサに含まれるターゲットメモリにコピーすることができる。
【0109】
操作S509において、順方向計算タスクを実行することにより、ディープラーニングモデルの該一つのbatchに対するトレーニングサンプルの損失lossを取得する。
【0110】
操作S510において、逆方向計算タスクを実行することにより、損失lossに基づいて計算して一つのbatchのトレーニングサンプルに対する勾配データを取得する。該勾配データは第一ネットワークパラメータの勾配データ及び第三ネットワークパラメータの勾配データを含むべきである。
【0111】
操作S511において、 All reduceアルゴリズム(All Reduce algorithm)を採用して複数のターゲットプロセッサから得られた勾配データを集約する。理解されるように、第一ネットワークパラメータの勾配データを集約する時、第一ネットワークパラメータが位置する記憶スロットを参照とすべきであり、これは異なるターゲットメモリに記憶された第一ネットワークパラメータの値に差異が存在するためである。
【0112】
操作S512において、集約結果に基づいてターゲットメモリに記憶されたネットワークパラメータの値を更新する。集約結果は例えば各ネットワークパラメータに対する全ての勾配データに対して平均値を計算し、最終的な勾配を得て、かつ最終的な勾配に基づいて各ネットワークパラメータの値を更新することを含むことができる。
【0113】
操作S513において、現在のbatchの使用したネットワークパラメータに対応する特徴データのRefCount値を1減算する。ここまで、ターゲットプロセッサは第一トレーニングデータに基づくネットワークパラメータの調整を完了する。
【0114】
操作S514において、RefCountが0でかつFreqCountが低い転送可能なネットワークパラメータをフィルタリングする。転送可能なネットワークパラメータに対応する特徴データのRefCountは0であり、FreqCountの値は回数閾値より低い。
【0115】
操作S515において、ターゲットメモリから該転送可能なネットワークパラメータをコピーし、かつコピーされた転送可能なネットワークパラメータをメモリにキャッシュする。
【0116】
操作S516において、第一マッピング関係における転送可能なネットワークパラメータに対応する特徴データのFeaSignとFIdとのマッピング関係を削除する。操作S516を実行した後、操作S504を戻って実行することにより、残りの記憶スロットが十分であるか否かを改めて決定することができる。
【0117】
本開示の実施例によれば、ターゲットプロセッサが第一トレーニングデータに基づくネットワークパラメータに対する調整を完了した後、CPUは例えば操作S517を実行し、取得されたバッチデータがいずれもトレーニング済みであるか否かを決定することができる。すなわち、取得されたバッチデータがいずれもトレーニングデータとしてディープラーニングモデルのトレーニングを行ったか否かを判定する。そうであれば、操作S518を実行し、ターゲットメモリ(例えばHMB)に記憶された更新後のネットワークパラメータをメモリ又はハードディスクメモリにコピーして書き込む。そうでなければ、操作S503に戻って実行することにより、次のトレーニングラウンドのトレーニングを開始する。
【0118】
本開示の提供するディープラーニングモデルのトレーニング方法をよりよく理解するために、以下に図6を参照してプロセッサのスタンドアマルチカードの通信トポロジを詳細に説明する。
【0119】
図6は本開示の実施例に係るプロセッサのスタンドアマルチカードの通信トポロジー構造図である。
【0120】
図6に示すように、実施例600において、スタンドアマルチカード構造の電子機器は一つのCPU及び四つのXPUを含むことができ、例えばXPU#0~XPU#3を含むことができる。CPUは、例えば、PCIe(Peripheral Component Interconnect Express)インタフェースを介して、四つのXPUと通信接続されていてもよい。ネットワークインタフェースコントローラ(Network Interface Controller、NIC)は電子機器をローカルエリアネットワークに接続するために用いられる。NICは例えばイーサネットによりアクセススイッチ(TOR Switch)に接続され、それにより電子機器がローカルエリアネットワークにアクセスする。ここで、XPUはコンロンチップを指し、具体的には例えばコンロン二世代チップを指すことができる。
【0121】
四つのXPUにおいて、XPU#0とXPU#1との間、XPU#0とXPU#3との間、XPU#1とXPU#2との間及びXPU#2とXPU#3との間はキャッシュコヒーレンス相互接続プロトコル(CCIX)を介して接続されてプロセッサリングを形成することができる。CCIXは二つ又は二つ以上のデバイスをキャッシュコヒーレンスの方式でデータのシート間相互接続を共有することができる。該シート間相互接続の構造は All reduceアルゴリズムの使用に基礎を提供する。理解されるように、図6に示すトポロジー構造はコンロン二世代チップの通信トポロジーであってもよく、該トポロジー構造により、部分的なスパースパラメータ(埋め込み処理を行うネットワークパラメータ)をサポートするAllReduce通信を達成することができる。理解できるように、該実施例は、各XPUを用いて全ての勾配データを他のXPUにブロードキャストし、かつ他のXPUの全ての勾配データを受信する方式を採用してネットワークパラメータの調整を行うことができる。この方式において、XPU#0ブロードキャストの勾配データは例えばXPU#3、XPU#1又はCPU#1を介してXPU#2に転送することができる。
【0122】
一実施例において、図6に示すように、ディープラーニングモデルをトレーニングする時に、さらに2つの電子機器又はより多くの電子機器を採用することができ、該複数の電子機器の間はローカルエリアネットワークを介して接続されてもよく、複数の電子機器におけるCPUは共通システムインタフェース(Common System Interface、QPI)を介して通信接続されてもよく、QPIはチップ間の相互接続を実現するアーキテクチャである。
【0123】
本開示の提供するネットワークアーキテクチャに基づいて、SparseパラメータのAllReduce通信を実現することができるため、複数のターゲットプロセッサのディープラーニングモデルに対する同期トレーニングを実現することができ、さらに大規模なディープラーニングモデルに対するトレーニングを実現することができ、したがって通信オーバーヘッドを低減することができる。
【0124】
本開示の実施例によれば、さらに非同期パイプライン方式を採用してディープラーニングモデルをトレーニングすることができ、これによりモデルトレーニング効率を向上させる。
【0125】
図7は本開示の実施例に係る非同期パイプライン形式でモデルをトレーニングする原理概略図である。
【0126】
図7に示すように、実施例700において、ディープラーニングモデルをトレーニングする時、非同期化のパイプライン(Pipeline)設計を行うことができる。例えば、ターゲットプロセッサの計算コアが現在のトレーニングラウンドのトレーニングタスク730を実行する場合、CPUは次のトレーニングラウンドのトレーニングデータに前処理710を行い、かつ前処理を完了した後、ターゲットメモリに書き込む必要があるターゲットパラメータにスロットを割り当て、かつターゲットパラメータをターゲットメモリにコピーし、即ちスロットを割り当てかつデータをコピーするタスク720を実行する。このように、計算コアが現在のトレーニングラウンドのトレーニングタスク730を実行した後、次のトレーニングラウンドのトレーニングタスクを直接的に実行することができる。該方式により、モデルトレーニング効率を効果的に向上させ、隣接する二つのラウンドの反復トレーニングの間の間隔を減少させて、ターゲットプロセッサの利用率を向上させる。
【0127】
具体的には、該実施例700において、CPUは計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定することができる。その後にターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。その後に残りの記憶スロットが第二ターゲットパラメータの記憶要求を満たす場合、第二ターゲットパラメータに記憶スロットを割り当てかつ第二ターゲットパラメータをターゲットメモリに書き込む。
【0128】
本開示の提供するディープラーニングモデルのトレーニング方法に基づいて、本開示はさらにディープラーニングモデルのトレーニング装置を提供し、以下に図8を参照して該装置を詳細に説明する。
【0129】
図8は本開示の実施例に係るディープラーニングモデルのトレーニング装置の構造ブロック図である。
【0130】
図8に示すように、該実施例のディープラーニングモデルのトレーニング装置800はターゲットパラメータ決定モジュール810、残りのスロット決定モジュール820及びパラメータ書き込みモジュール830を含むことができる。
【0131】
ターゲットパラメータ決定モジュール810は、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するために用いられる。ターゲットメモリは、ターゲットプロセッサに含まれるメモリである。一実施例において、ターゲットパラメータ決定モジュール810は上記操作S210を実行するために用いられ、ここで説明を省略する。
【0132】
残りのスロット決定モジュール820は、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。一実施例において、残りのスロット決定モジュール820は、上記操作S220を実行し、ここで説明を省略する。
【0133】
パラメータ書き込みモジュール830は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、それによりターゲットプロセッサに含まれる計算コアは第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。一実施例において、パラメータ書き込みモジュール830は上記操作S230を実行し、ここで説明を省略する。
【0134】
本開示の実施例によれば、上記装置800は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータに残りの記憶スロットにおける記憶スロットを割り当てるスロット割当モジュールと、第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と第一ターゲットパラメータの識別子情報に基づいて、第一マッピング関係を更新する第一関係更新モジュールと、をさらに含むことができる。パラメータ書き込みモジュール830は、第一ターゲットパラメータを第一ターゲットパラメータに割り当てられる記憶スロットに書き込む。
【0135】
本開示の実施例によれば、上記ターゲットパラメータ決定モジュール810は、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定する必要パラメータ決定サブモジュールと、第一ネットワークパラメータに対して重複排除処理を行い、重複排除後のネットワークパラメータを取得する重複排除サブモジュールと、第一マッピング関係及び重複排除後のネットワークパラメータの識別子情報に基づいて、重複排除後のネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、第一ターゲットパラメータとするターゲットパラメータ決定サブモジュールと、を含むことができる
本開示の実施例によれば、上記装置800は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たさないことに応答し、ターゲット記憶装置に記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定する転送パラメータ決定モジュールと、転送可能なネットワークパラメータをターゲットメモリからメモリに転送するパラメータ転送モジュールと、をさらに含むことができる。パラメータ書き込みモジュール830はさらに転送可能なネットワークパラメータがメモリに転送されることに応答し、第一ターゲットパラメータをターゲットメモリに書き込む。
【0136】
本開示の実施例によれば、転送パラメータ決定モジュールは、ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが転送可能なネットワークパラメータであることを決定する。パラメータ状態は、引用状態、使用回数の少なくとも一つを含む。ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいこと、の少なくとも一つを含む。上記装置800は、転送可能なネットワークパラメータがメモリに転送されることに応答し、第一ターゲットパラメータにターゲットメモリにおける残りの記憶スロットを割り当てるスロット割当モジュールと、第一ターゲットパラメータに割り当てられた記憶スロットと第一ネットワークパラメータにおける第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、第二マッピング関係を更新することにより、第一ネットワークパラメータのパラメータ状態を更新する第二関係更新モジュールと、をさらに含むことができる。
【0137】
本開示の実施例によれば、第二関係更新モジュールはさらに計算コアが第一ネットワークパラメータに対する調整を完了することに応答し、第二マッピング関係を更新することにより、第一ネットワークパラメータの引用状態を更新する。
【0138】
本開示の実施例によれば、上記パラメータ転送モジュールは具体的にはメモリの残りの記憶空間が空間閾値より小さいことに応答し、転送可能なネットワークパラメータをメモリを介してハードディスクメモリに書き込む。
【0139】
本開示の実施例によれば、上記ターゲットパラメータ決定モジュール810はさらに、計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定する。上記残りのスロット決定モジュール820はさらに、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。上記パラメータ書き込みモジュール830はさらに、残りの記憶スロットが第二ターゲットパラメータの記憶要求を満たすことに応答し、第二ターゲットパラメータをターゲットメモリに書き込む。
【0140】
本開示の実施例によれば、ターゲットプロセッサは複数のプロセッサを含み、第一トレーニングデータは複数のプロセッサにそれぞれ対応するマルチバッチのデータを含む。上記パラメータ書き込みモジュール830は、複数のプロセッサ中の各プロセッサに対して、第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定する指定パラメータ決定サブモジュールと、所定のパラメータ値を用いて第一ターゲットパラメータ中の指定パラメータ以外の他のパラメータを置換し、各プロセッサに対する書き込むべきパラメータを取得するパラメータ置換サブモジュールと、書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込み、それにより各プロセッサに含まれる計算コアが各プロセッサに対応する一つのバッチのデータに基づいて指定パラメータをトレーニングする書き込みサブモジュールと、を含むことができる。
【0141】
本開示の実施例によれば、マルチバッチのデータにおける各バッチのデータに対して、各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は各バッチのデータに対応するプロセッサ中のターゲットメモリの記憶容量に関連する。
【0142】
本開示の実施例によれば、上記パラメータ書き込みモジュール830はさらにマルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを各プロセッサ中のターゲットメモリに書き込み、それにより各プロセッサに含まれる計算コアは各プロセッサに対応する一つのバッチのデータに基づいて第三ネットワークパラメータを調整する。
【0143】
本開示の別の実施例が提供するディープラーニングモデルのトレーニング方法に基づいて、本開示はさらにディープラーニングモデルのトレーニングシステムを提供し、以下に図9を参照して該システムを詳細に説明する。
【0144】
図9は本開示の実施例に係るディープラーニングモデルのトレーニングシステムの構造ブロック図である。
【0145】
図9に示すように、該実施例のディープラーニングモデルのトレーニングシステム900は第一プロセッサ910及び第二及びプロセッサ920を含み、第二プロセッサはターゲットメモリ及び計算コアを含む。
【0146】
第一プロセッサ910は以下のように構成される:現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、かつ第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信する。理解できるように、第一プロセッサは上記操作S310~操作S330を実行するように構成されてもよく、ここでは説明を省略する。
【0147】
第二プロセッサ920は以下のように構成される:計算コアはトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。
【0148】
本開示の実施例によれば、第二プロセッサは複数のプロセッサを含み、第一トレーニングデータは複数のプロセッサにそれぞれ対応するマルチバッチのデータを含む。上記第一プロセッサ910は以下の方式で第一ターゲットパラメータをターゲットメモリに書き込むように構成される:複数のプロセッサ中の各プロセッサに対して、第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定する。所定のパラメータを用いて第一ターゲットパラメータにおける指定パラメータ以外の他のパラメータを置換し、各プロセッサに対する書き込むべきパラメータを取得する。及び書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込む。
【0149】
本開示の実施例によれば、複数のプロセッサはキャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成する。複数のプロセッサ中の各プロセッサは以下の方式で第一ネットワークパラメータを調整するように構成される:計算コアは各プロセッサに対応する一つのバッチのデータ及び指定パラメータに基づいて順方向計算及び逆方向計算を行い、第一ネットワークパラメータに対する勾配データを取得する。及び第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して第一ネットワークパラメータに対する勾配データと複数のプロセッサ中の他のプロセッサにより得られた勾配データに基づいて、第一ネットワークパラメータを調整する。
【0150】
本開示の実施例によれば、第二プロセッサは人工知能チップを含み、人工知能チップはコンロンコア二世代チップを含む。
【0151】
説明すべきものとして、本開示の技術的解決手段において、関するユーザ個人情報の収集、記憶、使用、加工、伝送、提供、開示及び応用等の処理は、いずれも相関法規則の規定に適合し、必要なセキュリティ対策を採用し、かつ公序良俗に反するものではない。本開示の技術的解決手段において、ユーザの個人情報を取得するか又は収集する前に、いずれもユーザの許可又は同意を取得する。
【0152】
本開示の実施例によれば、本開示はさらに電子機器、可読記憶媒体及びコンピュータプログラム製品を提供する。
【0153】
図10は本開示の実施例に係るディープラーニングモデルのトレーニング方法の例示電子機器1000の例示的なブロック図を示す。電子機器は、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータという様々な形式のデジタルコンピュータを表示することを意図する。電子機器は、さらに、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス及び他の類似の計算装置という様々な形式の移動装置を表示してもよい。本明細書に示された部材、それらの接続及び関係、及びそれらの機能は例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定するものではない。
【0154】
図10に示すように、機器1000は、計算ユニット1001を含み、それはリードオンリーメモリ(ROM)1002に記憶されたコンピュータプログラム又は記憶ユニット1008からランダムアクセスメモリ(RAM)1003にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM 1003には、さらに機器1000の操作に必要な様々なプログラム及びデータを記憶することができる。計算ユニット1001、ROM 1002、およびRAM 1003は、バス1004を介して相互に接続されている。バス1004には、入出力(I/O)インタフェース1005も接続されている。
【0155】
電子機器1000における複数の部品は、I/Oインタフェース1005に接続され、例えばキーボード、マウス等の入力ユニット1006と、例えば様々な種別のディスプレイ、スピーカ等の出力ユニット1007と、例えば磁気ディスク、光ディスク等の記憶ユニット1008と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信ユニット1009とを含む。通信ユニット1009は、電子機器1000がインターネット等のコンピュータネットワーク及び/又は各種の電気通信網を介して他のデバイスと情報/データをやり取りすることを可能にする。
【0156】
計算ユニット1001は、処理及び計算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算ユニット1001の幾つかの例としては、中央処理装置(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムの計算ユニット、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。計算ユニット1001は、例えばディープラーニングモデルのトレーニング方法ような前記記載された各方法と処理を実行する。例えば、いくつかの実施例において、ディープラーニングモデルのトレーニング方法は、例えば記憶ユニット1008のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1002及び/又は通信ユニット1009を介してデバイス1000にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算ユニット1001により実行される場合、前記記載されたディープラーニングモデルのトレーニング方法の1つ又は複数のステップを実行してもよい。代替的に、別の実施例において、計算ユニット1001は、他の任意の適切な形態(例えば、ファームウェアを介する)によりディープラーニングモデルのトレーニング方法を実行するように構成されてもよい。
【0157】
本明細書で説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムブルプロセッサを含むプログラムブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムブルプロセッサは、専用又は汎用のプログラムブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0158】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラムブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能/操作が実施される。プログラムコードは、機器に完全に実行されてもよく、部分的に機器で実行されてるかもよく、独立したソフトウェアパッケージとして部分的に機器で実行され、かつ部分的に遠隔機器で実行されるか又は完全に遠隔機器又はサーバで実行されてもよい。
【0159】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子機器に使用され、又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子機器、又は前記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前記内容の任意の適切な組み合わせを含む。
【0160】
ユーザとのインタラクションを提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種別の装置は、さらにユーザとのインタラクションを提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0161】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、局所エリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0162】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。サーバは、クラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストと呼ばれ、クラウドコンピューティングサービスシステムのうちの一つのホスト製品であり、それにより従来の物理ホストとVPSサービス(「Virtual Private Server」、又は「VPS」と略称する)において、存在する管理難度が大きく、サービス拡張性が弱いという欠陥を解決する。サーバは、配布式システムのサーバであってもよく、又はブロックチェーンを結合したサーバであってもよい。
【0163】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、ステップを改めてソーティングしたり、付加したり又は削除してもよい。例えば、本発明に記載の各ステップは、並列的に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示の技術案の所望の結果を実現することができれば、本明細書はここで限定されない。
【0164】
前記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われた任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2024-03-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
前記ターゲットプロセッサに含まれる計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように、前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答して、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことと、を含む
ディープラーニングモデルのトレーニング方法。
【請求項2】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答して、前記第一ターゲットパラメータに前記残りの記憶スロットにおける記憶スロットを割り当てることと、
前記第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と前記第一ターゲットパラメータの識別子情報に基づいて、前記第一マッピング関係を更新することと、をさらに含み、
ここで、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、前記第一ターゲットパラメータを前記第一ターゲットパラメータに割り当てられた記憶スロットに書き込むことを含む
請求項1に記載の方法。
【請求項3】
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することは、
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定することと、
前記第一ネットワークパラメータに重複排除処理を行い、重複排除後のネットワークパラメータを取得することと、
前記第一マッピング関係及び前記重複排除後のネットワークパラメータの識別子情報に基づいて、前記重複排除後のネットワークパラメータにおける前記ターゲットメモリに記憶されていないネットワークパラメータを決定し、前記第一ターゲットパラメータとすることと、を含む
請求項1に記載の方法。
【請求項4】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たさないことに応答して、前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定することと、
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送することと、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答して、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことと、をさらに含む
請求項1に記載の方法。
【請求項5】
前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定することは、
前記ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが前記転送可能なネットワークパラメータであることを決定することを含み、
前記パラメータ状態は、引用状態、使用回数の少なくとも一つを含み、
前記ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいことの少なくとも一つを含み、
前記方法は、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答して、前記第一ターゲットパラメータに前記ターゲットメモリにおける残りの記憶スロットを割り当てることと、
前記第一ターゲットパラメータに割り当てられた記憶スロットと前記第一ネットワークパラメータにおける前記第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータのパラメータ状態を更新することと、をさらに含む
請求項4に記載の方法。
【請求項6】
前記計算コアによる前記第一ネットワークパラメータに対する調整を完了することに応答し、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータの引用状態を更新することをさらに含む
請求項5に記載の方法。
【請求項7】
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送することは、
前記メモリの残りの記憶空間が空間閾値より小さいことに応答して、前記転送可能なネットワークパラメータを前記メモリを介してハードディスクメモリに書き込むことを含む
請求項4に記載の方法。
【請求項8】
前記計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、前記第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定することと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
前記残りの記憶スロットが前記第二ターゲットパラメータの記憶要求を満たすことに応答して、前記第二ターゲットパラメータを前記ターゲットメモリに書き込むことと、をさらに含む
請求項1に記載の方法。
【請求項9】
前記ターゲットプロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要な指定パラメータを決定することと、
所定のパラメータ値を用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得することと、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記指定パラメータをトレーニングするように、前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込むことと、を含む
請求項1に記載の方法。
【請求項10】
前記マルチバッチのデータにおける各バッチのデータに対して、前記各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は、前記各バッチのデータに対応するプロセッサにおけるターゲットメモリの記憶容量に関連する
請求項9に記載の方法。
【請求項11】
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記第三ネットワークパラメータを調整するように、前記マルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを前記各プロセッサにおけるターゲットメモリに書き込むことをさらに含む
請求項9に記載の方法。
【請求項12】
第一プロセッサが現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、第二プロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、
第一プロセッサが前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定することと、
第一プロセッサが前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込み、前記第二プロセッサに前記第一トレーニングデータに基づくトレーニングタスク情報を送信することと、
前記第二プロセッサの計算コアが前記トレーニングタスク情報を受信したことに応答し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整することと、を含む
ディープラーニングモデルのトレーニング方法。
【請求項13】
前記第二プロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むことは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける、前記各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定することと、
所定のパラメータを用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得することと、
前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込むことと、を含む
請求項12に記載の方法。
【請求項14】
前記複数のプロセッサは、キャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整することは、
前記複数のプロセッサにおける各プロセッサの計算コアが前記各プロセッサに対応する一つのバッチのデータ及び前記指定パラメータに基づいて順方向計算及び逆方向計算を行い、前記第一ネットワークパラメータに対する勾配データを取得することと、
前記各プロセッサが前記第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して前記第一ネットワークパラメータに対する勾配データと前記複数のプロセッサにおける他のプロセッサにより取得された勾配データに基づいて、前記第一ネットワークパラメータを調整することと、を含む
請求項13に記載の方法。
【請求項15】
前記第二プロセッサは人工知能チップを含み、前記人工知能チップはコンロンコア二世代チップを含む
請求項12~14のいずれか一項に記載の方法。
【請求項16】
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するターゲットパラメータ決定モジュールと、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定する残りのスロット決定モジュールと、
前記ターゲットプロセッサに含まれる計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように、前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込むパラメータ書き込みモジュールと、を含む
ディープラーニングモデルのトレーニング装置。
【請求項17】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータに前記残りの記憶スロットにおける記憶スロットを割り当てるスロット割当モジュールと、
前記第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と前記第一ターゲットパラメータの識別子情報に基づいて、前記第一マッピング関係を更新する第一関係更新モジュールと、をさらに含み、
前記パラメータ書き込みモジュールは、前記第一ターゲットパラメータを前記第一ターゲットパラメータに割り当てられた記憶スロットに書き込む
請求項16に記載の装置。
【請求項18】
前記ターゲットパラメータ決定モジュールは、
前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定する必要パラメータ決定サブモジュールと、
前記第一ネットワークパラメータに重複排除処理を行い、重複排除後のネットワークパラメータを取得する重複排除サブモジュールと、
前記第一マッピング関係及び前記重複排除後のネットワークパラメータの識別子情報に基づいて、前記重複排除後のネットワークパラメータにける前記ターゲットメモリに記憶されていないネットワークパラメータを決定し、前記第一ターゲットパラメータとするターゲットパラメータ決定サブモジュールと、を含む
請求項16に記載の装置。
【請求項19】
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たさないことに応答して、前記ターゲットメモリに記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定する転送パラメータ決定モジュールと、
前記転送可能なネットワークパラメータを前記ターゲットメモリからメモリに転送するパラメータ転送モジュールと、をさらに含み、
前記パラメータ書き込みモジュールは、さらに、前記転送可能なネットワークパラメータが前記メモリに転送されることに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込む
請求項16に記載の装置。
【請求項20】
前記転送パラメータ決定モジュールは、
前記ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが前記転送可能なネットワークパラメータであることを決定し、
前記パラメータ状態は、引用状態、使用回数の少なくとも一つを含み、
前記ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいことの少なくとも一つを含み、
前記装置は、
前記転送可能なネットワークパラメータが前記メモリに転送されることに応答し、前記第一ターゲットパラメータに前記ターゲットメモリにおける残りの記憶スロットを割り当てるスロット割当モジュールと、
前記第一ターゲットパラメータに割り当てられた記憶スロットと前記第一ネットワークパラメータにおける前記第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータのパラメータ状態を更新する第二関係更新モジュールと、をさらに含む
請求項19に記載の装置。
【請求項21】
前記第二関係更新モジュールは、さらに、
前記計算コアによる前記第一ネットワークパラメータに対する調整を完了することに応答し、前記第二マッピング関係を更新することにより、前記第一ネットワークパラメータの引用状態を更新する
請求項20に記載の装置。
【請求項22】
前記パラメータ転送モジュールは、
前記メモリの残りの記憶空間が空間閾値より小さいことに応答して、前記転送可能なネットワークパラメータを前記メモリを介してハードディスクメモリに書き込む
請求項19に記載の装置。
【請求項23】
前記ターゲットパラメータ決定モジュールは、さらに、前記計算コアが前記第一トレーニングデータに基づいて前記第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、前記第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定し、
前記残りのスロット決定モジュールは、さらに、前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定し、
前記パラメータ書き込みモジュールは、さらに、前記残りの記憶スロットが前記第二ターゲットパラメータの記憶要求を満たすことに応答し、前記第二ターゲットパラメータを前記ターゲットメモリに書き込む
請求項16に記載の装置。
【請求項24】
前記ターゲットプロセッサは複数のプロセッサを含み、前記第一トレーニングデータは、前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記パラメータ書き込みモジュールは、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要な指定パラメータを決定する指定パラメータ決定サブモジュールと、
所定のパラメータ値を用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得するパラメータ置換サブモジュールと、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記指定パラメータをトレーニングするように、前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込む書き込みサブモジュールと、を含む
請求項16に記載の装置。
【請求項25】
前記マルチバッチのデータにおける各バッチのデータに対して、前記各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は前記各バッチのデータに対応するプロセッサにおけるターゲットメモリの記憶容量に関連する
請求項24に記載の装置。
【請求項26】
前記パラメータ書き込みモジュールは、さらに、
前記各プロセッサに含まれる計算コアが前記各プロセッサに対応する一つのバッチのデータに基づいて前記第三ネットワークパラメータを調整するように、前記マルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを前記各プロセッサにおけるターゲットメモリに書き込む
請求項24に記載の装置。
【請求項27】
第一プロセッサ及び第二プロセッサを含み、前記第二プロセッサはターゲットメモリ及び計算コアを含み、
前記第一プロセッサは、
現在のトレーニングラウンドの第一トレーニングデータに基づいて、前記第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける前記ターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定し、
前記ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、前記ターゲットメモリにおける残りの記憶スロットを決定し、
前記残りの記憶スロットが前記第一ターゲットパラメータの記憶要求を満たすことに応答し、前記第一ターゲットパラメータを前記ターゲットメモリに書き込み、前記第二プロセッサに前記第一トレーニングデータに基づくトレーニングタスク情報を送信するように構成され、
前記第二プロセッサは、前記計算コアが前記トレーニングタスク情報を受信したことに応答し、前記第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整するように構成される
ディープラーニングモデルのトレーニングシステム。
【請求項28】
前記第二プロセッサは複数のプロセッサを含み、前記第一トレーニングデータは前記複数のプロセッサにそれぞれ対応するマルチバッチのデータを含み、前記第一プロセッサは、以下の方式で前記第一ターゲットパラメータを前記ターゲットメモリに書き込むように構成され、
前記複数のプロセッサにおける各プロセッサに対して、前記第一ターゲットパラメータにおける前記各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定し、
所定のパラメータを用いて前記第一ターゲットパラメータにおける前記指定パラメータ以外の他のパラメータを置換し、前記各プロセッサに対する書き込むべきパラメータを取得し、
前記書き込むべきパラメータを前記各プロセッサに含まれるターゲットメモリに書き込む
請求項27に記載のシステム。
【請求項29】
前記複数のプロセッサはキャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成し、前記各プロセッサは、以下の方式で前記第一ネットワークパラメータを調整するように構成され、
計算コアが前記各プロセッサに対応する一つのバッチのデータ及び前記指定パラメータに基づいて順方向計算及び逆方向計算を行い、前記第一ネットワークパラメータに対する勾配データを取得し、
前記第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して前記第一ネットワークパラメータに対する勾配データと前記複数のプロセッサにおける他のプロセッサにより取得された勾配データに基づいて、前記第一ネットワークパラメータを調整する
請求項28に記載のシステム。
【請求項30】
前記第二プロセッサは、人工知能チップを含み、前記人工知能チップは、コンロンコア二世代チップを含む
請求項27~29のいずれか一項に記載のシステム。
【請求項31】
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、
前記メモリは、前記少なくとも一つのプロセッサにより実行可能な命令を記憶し、前記少なくとも一つのプロセッサが請求項1~11のいずれか一項に記載の方法を実行することができるように前記命令は前記少なくとも一つのプロセッサにより実行される、
電子機器。
【請求項32】
コンピュータ命令を記憶した非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、前記コンピュータに請求項1~11のいずれか一項に記載の方法を実行させる
非一時的なコンピュータ可読記憶媒体。
【請求項33】
プロセッサにより実行される時に請求項1~11のいずれか一項に記載の方法のステップを実現す
コンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2022年5月19日に提出され、出願番号が202210559489.0である中国特許出願の優先権を要求し、その全ての内容は参照により本開示に組み込まれる。
【0002】
本開示は、人工知能分野に関し、具体的にはディープラーニング及びインテリジェント推薦分野に関し、特にディープラーニングモデルのトレーニング方法、装置、システム、電子機器、記憶媒体及びコンピュータプログラムに関する。
【背景技術】
【0003】
コンピュータ技術、ネットワーク技術及び通信技術の発展に伴い、ディープラーニング等の技術はインテリジェント推薦等の分野での応用がますます普及している。ビックデータのプッシュとディープラーニング技術の発展に伴い、ディープラーニング技術のデータ規模及びモデル規模がいずれも顕著に増加している。それに応じて、モデルトレーニングにおいてハードウェア環境に高い要求を提出し、かつ通常トレーニングの時間コストも非常に高い。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明、ハードウェア要求を低減し大規模なモデルトレーニングを実現することに役立つディープラーニングモデルのトレーニング方法、装置、システム、電子機器、記憶媒体及びコンピュータプログラムを提供する。
【課題を解決するための手段】
【0005】
本開示の一態様によれば、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定することと、ターゲットプロセッサに含まれる計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答して、第一ターゲットパラメータをターゲットメモリに書き込むことと、を含むディープラーニングモデルのトレーニング方法を提供している。
【0006】
本開示の別の態様によれば、第一プロセッサが現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、第二プロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定することと、第一プロセッサがターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定することと、第一プロセッサが残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することと、第二プロセッサの計算コアがトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整することと、を含むディープラーニングモデルのトレーニング方法を提供している。
【0007】
本開示の別の態様によれば、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおける、ターゲットプロセッサに含まれるメモリであるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するターゲットパラメータ決定モジュールと、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定する残りのスロット決定モジュールと、ターゲットプロセッサに含まれる計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込むパラメータ書き込みモジュールと、を含むディープラーニングモデルのトレーニング装置を提供している。
【0008】
本開示の別の態様によれば、第一プロセッサ及び第二プロセッサを含み、第二プロセッサはターゲットメモリ及び計算コアを含み、第一プロセッサは、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定し、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定し、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信するように構成され、第二プロセッサは、計算コアがトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整するように構成される、ディープラーニングモデルのトレーニングシステムを提供している。
【0009】
本開示の別の態様によれば、少なくとも一つのプロセッサと、少なくとも一つのプロセッサと通信接続されるメモリを含み、メモリは、少なくとも一つのプロセッサにより実行可能な命令が記憶され、少なくとも一つのプロセッサが本開示の提供するディープラーニングモデルのトレーニング方法を実行することができるように命令は少なくとも一つのプロセッサにより実行される、電子機器を提供している。
【0010】
本開示の別の態様によれば、コンピュータ命令を記憶した非一時的なコンピュータ可読記憶媒体を提供している。ここで、コンピュータ命令はコンピュータに本開示の提供するディープラーニングモデルのトレーニング方法を実行させる。
【0011】
本開示の別の態様によれば、プロセッサにより実行される時に本開示の提供するディープラーニングモデルのトレーニング方法を実現する、コンピュータプログラムを提供している。
【0012】
理解すべきこととして、本部分に記載された内容は本開示の実施例のキー又は重要な特徴を示すことを意図するものではなく、本開示の範囲を限定するものではない。本開示の他の特徴は、以下の説明により容易に理解される。
【0013】
図面は、本解決手段をよりよく理解するために用いられ、本開示を限定するものではない。
【図面の簡単な説明】
【0014】
図1図1は、本開示の実施例に係るディープラーニングモデルのトレーニング方法、装置及びシステムの応用シーンアーキテクチャ図である。
図2図2は、本開示の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
図3図3は、本開示の別の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
図4図4は、本開示の実施例に係るプロセッサキャッシュの構造概略図である。
図5図5は、本開示の実施例に係るディープラーニングモデルのトレーニング方法の全体フローチャートである。
図6図6は、本開示の実施例に係るプロセッサのスタンドアマルチカードの通信トポロジー構造図である。
図7図7は、本開示の実施例に係る非同期パイプライン形式でモデルをトレーニングする原理概略図である。
図8図8は、本開示の実施例に係るディープラーニングモデルのトレーニング装置の構造ブロック図である。
図9図9は、本開示の実施例に係るディープラーニングモデルのトレーニングシステムの構造ブロック図である。
図10図10は、本開示の実施例に係るディープラーニングモデルのトレーニング方法を実施するための電子機器のブロック図である。
【発明を実施するための形態】
【0015】
以下に図面を参照して本開示の例示的な実施例を説明し、ここで本開示の実施例の様々な詳細を含み理解することに役立ち、それらを例示的なものと考えるべきである。したがって、当業者であれば分かるように、ここで説明した実施例に対して様々な変更及び修正を行うことができ、本開示の範囲及び精神から逸脱することはない。同様に、明確かつ簡単に説明するために、以下の説明において公知の機能及び構造に対する説明を省略する。
【0016】
ビックデータのプッシュとディープラーニング技術の発展に伴い、工業推薦シーンにおいて、データ規模及びモデル規模はいずれも顕著に増加する。例えば、推薦モデルの精度を向上させるために、一般的には億レベルのクリックデータに基づいてトレーニングサンプルを生成して、該推薦モデルをトレーニングする必要がある。推薦モデルにおいて、一般的には埋め込み(Embedding)技術を用いてオブジェクト(ユーザ及び物品等)の高次元スパース特徴ベクトルを低次元緻密特徴ベクトルに変換する。このように、embedding技術に係るパラメータは常に千億さらに万億のレベルに達し、かつ関連するパラメータはスパースな特性を有する。
【0017】
大規模なスパースパラメータへのトレーニングを実現するために、CPU又はGPUに基づくパラメータサーバアーキテクチャを使用し、大規模なスパースパラメータに対して分散トレーニングを行うことにより、トレーニング効率を向上させる。
【0018】
パラメータサーバアーキテクチャは、例えば、HugeCTR、Paddle-GPUPS、Persiaなどを含んでもよい。
【0019】
例えば、HugeCTRは、GPUを用いて推薦モデルトレーニングを加速するフレームであり、該フレームは、マルチマシンマルチカードの加速をサポートし、該フレームは、パラメータスパース分布の埋め込み層に対してモデル並列トレーニングを行いかつパラメータ緻密分布のネットワークに対してデータ並列トレーニングを行う混合トレーニング方式をサポートする。HugeCTRは、埋め込み層を複数部に分割し、かつそれぞれマルチマシンマルチカードに割り当て、各GPUにグローバル埋め込み層の一部を保存し、同時に各GPUに完全なパラメータ緻密分布のネットワークがある。推薦モデルをトレーニングする時に、グローバルサンプルデータをランダムに乱して(shuffle)分割することができ、各GPUに異なるサンプルデータを割り当ててデータ並列方式のトレーニングを行う。
【0020】
HugeCTRに対して、二つの方式の埋め込み層の記憶をサポートし、一つは、同じスロット(slot)に属するスパースパラメータを同じGPUのビデオカードメモリにキャッシュすることである。一つは、全量のスパースパラメータを分散した後に異なるGPUのビデオカードメモリに記憶することである。これらの方式はいずれもいくつかのスパースパラメータが繰り返してキャッシュされる状況が存在し、ビデオカードメモリにある程度の浪費をもたらす。かつHugeCTRは、複数のCPUがモデルのトレーニングに参加する必要があり、トレーニングコストが高いという問題が存在する。
【0021】
例えば、Paddle-GPUPSの出現により、上百台CPUサーバのトレーニングコストが高いという問題を解決する。該アーキテクチャは、各GPUに高帯域メモリ(High Bandwidth Memory、HBM)ハッシュテーブルを構築する。トレーニングを開始する前に、該アーキテクチャはまず、現在取得された一つのpass中のデータの特徴に埋め込み処理を行う時に必要なスパースパラメータをCPUメモリからビデオカードメモリにロードする。ロードする時、同じ特徴群に必要なスパースパラメータを分散した後に異なるビデオカードメモリに記憶する。このように、一つのpassから抽出された一つのbatchのデータに基づいてモデルをトレーニングする場合、各GPUは特徴識別子に基づいて他のビデオカードメモリから必要なスパースパラメータをコピーする必要がある。該アーキテクチャはトレーニング過程において、GPUの間の通信オーバーヘッドが大きく、かつ各GPUにHBMハッシュテーブルが構築記憶されるため、ビデオカードメモリの大きさに対する要求が高い。
【0022】
例えば、Persiaは、大規模異種クラスタトレーニングのための推薦モデルトレーニングフレームである。該フレームは、トレーニングアルゴリズム及びトレーニングシステムの二つの次元で協調して最適化することにより、最大のトレーニング可能なモデルパラメータの数は百万億レベルである。該フレームは、埋め込み層に対して非同期更新を行い、パラメータ緻密分布のネットワークに同期更新を行い、かつシステムの最適化により、一部の通信過程と計算過程を時間的に重ねることができる。該フレームは従来のフレームにEmbedding Workerの役割を導入し、埋め込み層のトレーニング更新タスクを全体モデルのトレーニングタスクから分割してEmbedding Workerにより実行される。該フレームは、Embedding Workerを導入するために、多くのCPUを必要とし、これにより、モデルのトレーニングコストを増加させる。
【0023】
また、モデルのトレーニング効率を向上させるために、ニューラルネットワーク演算能力を加速するための人工知能(Artificial Intelligence、AI)チップ、例えば、ディープラーニングプロセッサ(Deep learning Processing Unit、DPU)、ニューラルネットワークプロセッサ(Neural Network Processing Unit、NPU)及びテンソルプロセッサ(Tensor Processing Unit、TPU)などは、産生する。
【0024】
例えば、コンロンの二世代チップは、GDDR6ビデオメモリを用いた汎用AIチップである。該チップはXPU-Rアーキテクチャに基づいて動作し、計算のコア計算力を明らかに向上させ、チップの汎用計算能力を向上させることができる。
【0025】
以下に図1を参照して本開示の提供する方法及び装置の応用シーンを説明する。
図1は、本開示の実施例に係るディープラーニングモデルのトレーニング方法、装置及びシステムの応用シーン図である。
【0026】
図1に示すように、該応用シーン100は、電子機器を含み、該電子機器は、ノートパソコン、デスクトップコンピュータ又はサーバなどであってもよい。この電子機器には、プロセッサCPU110と、人工知能チップ120と、メモリ130と、ハードディスクメモリ140とが設けられている。
【0027】
メモリ130は、内部メモリであり、CPU110が直接的にアドレッシングして記憶するための空間である。該メモリは、CPU内の動作データ、及びハードディスク等の外部メモリと交換されたデータを一時的に記憶することができる。コンピュータが動作中であれば、CPUは演算する必要があるデータをメモリに呼び出して演算し、演算が完了した後にCPUは結果を送信する。メモリ130は、例えばランダムメモリであってもよく、このようにCPUはその中からデータを読み出してもよく、データを書き込んでもよい。
【0028】
ハードディスクプロセッサ140は、例えばNVMeインタフェース付きのソリッドステートディスク(Solid State Disk、SSD)などであってもよく、本開示はこれを限定しない。
【0029】
人工知能チップは、データ処理能力を有し、CPUの動作を支援し、全体の動作速度を向上させることができる。人工知能チップとしては、例えば、上述したDPU、NPU、TPU等を含む。該人工知能チップ120は、計算コア、ビデオメモリ及びその関連回路を含むことができる。ビデオメモリは、表示メモリ150、すなわち人工知能チップの専用メモリであり、その作用は、計算コアが処理されたか又は抽出しようとするレンダリングデータを記憶することであり、メモリ130と類似し、表示メモリ150は、処理しようとするモデルパラメータ、トレーニングサンプルなどの情報を記憶する。
【0030】
人工知能チップ120における計算コアは、メモリ130のデータを直接読み取ることができず、計算コアは表示メモリ150からデータを読み取ることしかできない。CPUは、計算コアに計算タスクを割り当てることができ、計算コアが計算タスクを実行する過程において、CPU110の制御下で、メモリ130と表示メモリ150との間にデータ交換を行うことができ、これにより、計算コアが計算タスクを実行する時に必要なデータをメモリ130から表示メモリ150にコピーし、又はメモリ130内のデータを表示メモリ150に直接的に転送する。
【0031】
ディープラーニング技術に基づいて構築されたモデルをトレーニングする場合、CPU110は例えばトレーニングタスクを人工知能チップ120に割り当て、かつモデルをメモリ130から表示メモリ150に転送することができる。一実施例において、モデルをハードディスクメモリ140の提供するハードディスク記憶空間に記憶することができる。表示メモリ150、メモリ130及びハードディスクメモリ140で構成された三次バッファ空間を確立する。このように、モデルをハードディスクメモリ140に記憶する時、モデルトレーニング過程において、トレーニングの必要に応じて、CPU110はハードディスクメモリ140からデータを読み取ってメモリにキャッシュし、かつCPU110が人工知能チップ120にトレーニングタスクを割り当てる時、計算コアが現在の計算タスクを実行する時に係るモデルパラメータをメモリ130から表示メモリ150に転送し、かつ表示メモリ150に記憶された計算コアが処理したデータを表示メモリ150からメモリ130に転送することにより、表示メモリの記憶空間が不足することを回避する。
【0032】
一実施例において、電子機器は、例えば複数の人工知能チップを設置することができ、該複数の人工知能チップは、異なるトレーニングサンプルに基づいてモデルトレーニングタスクを並行して実行することができ、それによりモデルのトレーニング効率を向上させる。
【0033】
理解されるように、本開示の提供するディープラーニングモデルのトレーニング方法は、電子機器により実行することができ、具体的にはCPU又は人工知能チップにより対応するプログラムコードを呼び出して実現することができる。それに応じて、本開示の提供するディープラーニングモデルのトレーニング装置、ディープラーニングモデルのトレーニングシステムは電子機器に設置することができる。
【0034】
以下に図2図7を参照して本開示の提供するディープラーニングモデルのトレーニング方法を詳細に説明する。
【0035】
図2は、本開示の実施例に係るディープラーニングモデルのトレーニング方法のフローチャートである。
【0036】
図2に示すように、該実施例のディープラーニングモデルのトレーニング方法200は、操作S210~操作S230を含むことができる。この方法200は、例えば、上述した電子機器におけるCPUにより実行されることができる。
【0037】
操作S210において、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。
【0038】
操作S220において、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリにおける残りの記憶スロットを決定する。
【0039】
操作S230において、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、それによりターゲットプロセッサに含まれる計算コアは第一トレーニングデータに基づいて前記第一ネットワークパラメータを調整する。
【0040】
本開示の実施例によれば、ターゲットメモリは例えばターゲットプロセッサに含まれるメモリであってもよい。ターゲットプロセッサは例えば上記した人工知能チップであってもよく、グラフィックスプロセッサGPUなどであってもよい。該ターゲットプロセッサは、CPUで割り当てられた計算タスクを受信し、かつターゲットメモリに記憶されたデータに基づいて割り当てられた計算タスクを実行することができる。該計算タスクは例えばモデルトレーニングタスクを含むことができ、それによりディープラーニングモデルをトレーニングする。ディープラーニングモデルは、例えば、画像処理モデル、音声処理モデル又はテキスト処理モデル等を含むことができる。具体的なシーンにおいて、ディープラーニングモデルは、推薦モデルであってもよく、該実施例は大量のユーザの推薦対象に対する対話行為情報に基づいて、勾配降下などの方法により推薦モデルをトレーニングすることができる。推薦モデルのモデルパラメータが集約した後、ユーザに個性化推薦を行うことができる。
【0041】
一実施例において、ディープラーニングモデルは例えば埋め込み層及び予測ネットワークを含むことができる。埋め込み層は、ディープラーニングモデルに入力されたデータに埋め込み処理を行うことにより、入力されたデータを高次元スパースな空間から低次元緻密の特徴空間に投射するために用いられる。本開示の実施例における第一トレーニングデータに埋め込む処理を行うために必要な第一ネットワークパラメータは、該埋め込み層におけるネットワークパラメータである。この第一ネットワークパラメータは、例えば、コア関数を呼び出すことにより決定することができる。
【0042】
一実施例において、決定された第一ネットワークパラメータをターゲットメモリに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、ターゲットメモリに書き込む必要がある第一ターゲットパラメータとすることができる。又は、該実施例において、さらに第一ネットワークパラメータをメモリ及び/又はハードディスクプロセッサに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータにおけるメモリ及び/又はハードディスクプロセッサに記憶されたネットワークパラメータを第一ターゲットパラメータとすることができる。理解できるように、ネットワークパラメータを比較する場合、ネットワークパラメータに基づいて埋め込み処理を行うデータの特徴識別子Feature sign(Feasignと略称する)に基づいて比較を行うことができる。
【0043】
例えば、一つのトレーニングサンプルは複数のオブジェクトの特徴データを含むことができ、各オブジェクトは複数の特徴データを含み、一つの特徴データは一つの特徴識別子に対応する。各特徴データに対して、一定のネットワークパラメータを採用して埋め込み処理を行う必要がある。例えば、本開示の実施例はネットワークパラメータと特徴データとの間の対応関係に基づいて埋め込み層のネットワークパラメータを記憶し、かつネットワークパラメータに対応する特徴データの特徴識別子を添加することができる。
【0044】
一実施例において、CPUは、キャッシュ又はメモリに特徴データの特徴識別子とターゲットメモリに記憶されたネットワークパラメータとの間のマッピング関係テーブルをメンテナンスすることができ、該マッピング関係テーブルは、特徴識別子をKeyとし、マッピング関係を有するネットワークパラメータの識別子情報をValueとする。該実施例は、第一トレーニングデータに含まれる特徴データの特徴識別子に基づいてマッピング関係テーブルを照会し、かつマッピング関係テーブルに存在しない特徴識別子を決定し、第一ネットワークパラメータにおける該存在しない特徴識別子により識別された特徴データに埋め込み処理を行うためのネットワークパラメータを、第一ターゲットパラメータとする。
【0045】
理解できるように、ターゲットメモリに記憶されたネットワークパラメータは例えばスロット(Slot)に応じて記憶することができ、各スロットに記憶されたネットワークパラメータは一つの特徴データに対応する全てのネットワークパラメータである。すなわち、ネットワークパラメータは、グループごとに記憶することができ、一つの特徴データに対応する全てのネットワークパラメータは、一つのネットワークパラメータグループを構成する。このように、ターゲットメモリを複数の記憶スロットに分割することができ、各記憶スロットは一つのネットワークパラメータグループを記憶する。
【0046】
第一ターゲットパラメータを決定した後、該実施例はまずターゲットメモリにおける記憶空間が十分であるか否かを決定し、記憶空間が十分である場合にのみ、第一ターゲットパラメータをターゲットメモリに書き込むことができる。
【0047】
例えば、該実施例はCPUのキャッシュ又はメモリに記憶スロットとネットワークパラメータとの間の第一マッピング関係をメンテナンスすることができる。該第一マッピング関係は、マッピングテーブルの形式で記憶することができ、ネットワークパラメータが特徴データと一対一に対応するため、該実施例は、特徴データの特徴識別子を採用してネットワークパラメータを表示し、かつターゲットメモリ内の記憶スロットをナンバー化することができる。このように、第一マッピング関係は、特徴データの特徴識別子をKeyとし、記憶スロットのシリアルナンバー(FIdに設定される)をValueとして、FeasignとFIdとの間のマッピングテーブルとして示すことができる。このように、該実施例は該第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定することができる。
【0048】
例えば、ターゲットメモリの記憶空間の合計が100個の記憶スロットに分割され、かつ該100個の記憶スロットのシリアルナンバーが0~99の整数であるように設定し、第一マッピング関係にシリアルナンバーが0~49であるマッピング情報のみを含むと、残りの記憶スロットが50個であると決定することができる。
【0049】
残りの記憶スロットを決定した後、該実施例は、該残りの記憶スロットを第一ターゲットパラメータにおけるネットワークパラメータのグループ数と比較し、第一ターゲットパラメータにおけるネットワークパラメータのグループ数が残りの記憶スロットより小さい場合、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすと決定し、CPUは、第一ターゲットパラメータをメモリからターゲットメモリに転送することができる。一実施例において、ターゲットメモリにネットワークパラメータを書き込む場合、以上に説明したグループごとに書き込む方式を採用することができる。
【0050】
本開示の実施例は、CPUにおいて第一マッピング関係をメンテナンスし、かつ第一マッピング関係に基づいてターゲットメモリの残りの記憶空間を決定し、かつこれに基づいてネットワークパラメータの書き込みを制御することにより、ビデオカードメモリの記憶空間に対する管理を実現することができ、モデルトレーニング過程において埋め込み処理に必要なネットワークパラメータが多すぎることによりビデオカードメモリにもたらした巨大な圧力を回避し、大規模なモデルトレーニングのハードウェア条件に対する高い要求を低減することに役立ち、かつ大規模モデルのトレーニングを実現することに役立つ。さらに、該実施例における第一マッピング関係はCPUがアクセス可能なメモリ又はキャッシュにメンテナンスされるため、関連技術においてマッピング関係を示すハッシュテーブルをビデオカードメモリに記憶する技術的解決手段と比較して、ビデオカードメモリを十分に利用してモデルトレーニングを行うことができ、さらにビデオカードメモリに対する圧力を低下させ、CPUとターゲットプロセッサとの間の通信オーバーヘッドを低減することに役立つ。
【0051】
理解されるように、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすと決定する場合、該実施例はさらにまず第一ターゲットパラメータに残りの記憶スロットにおける記憶スロットを割り当て、かつ第一ターゲットパラメータを割り当てられた記憶スロットに書き込むことができる。例えば、第一ターゲットパラメータが10個の特徴データに対応するネットワークパラメータを含み、かつターゲットメモリにおけるシリアルナンバーが0~49である記憶スロットが既にネットワークパラメータを記憶した場合、第一ターゲットパラメータにシリアルナンバーが50~49である記憶スロットを割り当てることができる。
【0052】
第一ターゲットパラメータに記憶スロットを割り当てる後、割り当てられた記憶スロットのシリアルナンバー(すなわち記憶スロットの識別子情報とする)及び第一ターゲットパラメータの識別子情報(すなわち第一ターゲットパラメータに対応する特徴データの識別子情報)に基づいて第一マッピング関係を更新することができる。このようにして、第一マッピング関係における記憶スロットとネットワークパラメータとの間の対応関係をメンテナンスすることができる。
【0053】
理解されるように、各ラウンドのトレーニングにおいて、該実施例はさらにトレーニングデータに予測処理を行うために必要な第三ネットワークパラメータもターゲットメモリに書き込み、ターゲットプロセッサの計算コアが呼び出すことができ、かつ呼び出し結果に基づいて該第三ネットワークパラメータを調整することができる。これは一般的な予測処理に必要なネットワークパラメータが緻密分布のパラメータであり、かつパラメータが少なく、予測処理に必要な全量のネットワークパラメータをターゲットメモリに書き込み、一般的に明らかな圧力を与えないためである。推薦モデルにおいて、該第三ネットワークパラメータは例えば予測ネットワークに含まれるネットワークパラメータであってもよく、予測ネットワークは例えば多層パーセプトロン(Multilayer Perceptron、MLP)を含むことができる。
【0054】
理解できるように、ディープラーニングモデルのトレーニング過程は一般的に三つの部分を含む。第一部分は、順方向計算の過程に計算でディープラーニングモデルの損失を取得することであり、第二部分は、逆方向計算の過程に計算で勾配を取得することであり、第三部分は、勾配に基づいてディープラーニングモデルのネットワークパラメータを更新する過程である。計算コアは具体的には逆方向計算により得られた勾配に基づいて第一ネットワークパラメータ及び第三ネットワークパラメータを調整することにより、ディープラーニングモデルのネットワークパラメータが徐々に集約する。
【0055】
一実施例において、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たさない場合、CPUは例えばターゲットメモリにおける一時的に不要なネットワークパラメータを転送することができ、それにより第一ターゲットパラメータに十分な空間を残し、ディープラーニングモデルの後続のトレーニングに条件を提供する。該実施例により、ターゲットメモリ内のキャッシュス空間の大きさを動的に調整することができ、メモリにおける第一マッピング関係などのメンテナンスを結合し、CPUとターゲットプロセッサとの間の通信オーバーヘッドを効果的に低減することができる。
【0056】
例示的には、CPUはさらにキャッシュ又はメモリに記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係をメンテナンスすることにより、転送可能なネットワークパラメータを決定する根拠とする。
【0057】
例えば、ネットワークパラメータのパラメータ状態は引用状態を含むことができる。ネットワークパラメータが現在のトレーニングラウンドに必要なネットワークパラメータである場合、該引用状態を引用された状態に設定し、現在のトレーニングラウンドが該ネットワークパラメータを必要としないと、該引用状態を引用されていない状態に設定する。例えば、引用状態は、引用カウント(Reference Count、Countと略称される)で表すことができ、引用カウントの値が1であれば、引用された状態を表し、引用技術の値が0であれば、引用されていない状態を表す。
【0058】
該実施例において、第二マッピング関係は、上記したFId、FeaSignとCountとの間の対応関係で構成されたマッピングテーブルで表され、各FeaSignはそれぞれのRefCountに対応し、FeaSign識別子の特徴データに埋め込み処理を行う時に必要なネットワークパラメータが引用されるか否かを示すために用いられる。該実施例は第二マッピング関係におけるRefCountの値が0であるFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0059】
例えば、ネットワークパラメータのパラメータ状態は、使用回数を含むことができる。ネットワークパラメータが一つのトレーニングラウンドにおいて呼び出される場合、該使用回数に1を加算し、該使用回数の初期値は0であってもよい。例えば、使用回数は頻度(Frequency Count、FreqCountと略称する)で表すことができる。
【0060】
該実施例において、第二マッピング関係は、上記したFId、FeaSignとFreqCountとの間の対応関係で構成されたマッピングテーブルで示され、各FeaSignはそれぞれのFreqCountに対応し、FeaSign識別子の特徴データに埋め込み処理を行う時に必要なネットワークパラメータの使用回数を示すために用いられる。該実施例は第二マッピング関係におけるFreqCountの値が閾値より小さいFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0061】
例えば、ネットワークパラメータのパラメータ状態は引用状態だけでなく、使用回数を含む。第二マッピング関係は、上記したFId、FeaSign、RefCountとFreqCountとの間の対応関係で構成されたマッピングテーブルで表され、各FeaSignはそれぞれのRefCount及びFreqCountに対応する。該実施例は引用状態が引用されておらずかつ使用回数が閾値より小さいFeaSignに対応するネットワークパラメータを転送可能なネットワークパラメータとすることができる。
【0062】
上記実施例の方法により、需要に応じて必要なネットワークパラメータをタイムリーに送信することができ、ディープラーニングモデルのトレーニングに十分な記憶スロットを残し、ディープラーニングモデルのトレーニング効率を向上させることに役立つ。
【0063】
例示的に、該実施例はさらに第一ネットワークパラメータをターゲットメモリに記憶されたネットワークパラメータと比較し、第一ネットワークパラメータに属しなくかつ引用状態が引用されていないネットワークパラメータを転送可能なネットワークパラメータとすることができる。例えば、転送可能なネットワークパラメータを決定する場合、例えば第一ターゲットパラメータに対応する特徴データの個数に基づいて、転送する必要があるネットワークパラメータのグループ数を決定し、ターゲットグループ数とする。次に引用されていない状態にありかつ使用頻度が低いターゲットグループ数のネットワークパラメータを転送可能なネットワークパラメータとする。
【0064】
転送可能なネットワークパラメータを決定した後、転送可能なネットワークパラメータをターゲットメモリからメモリに転送することができる。かつ転送可能なネットワークパラメータが転送された後、第一ターゲットパラメータをターゲットメモリに書き込む。理解されるように、上記と同様に、第一ターゲットパラメータをターゲットメモリに書き込む時に、第一ターゲットパラメータにターゲットメモリ内の残りの記憶スロットを割り当てることができる。理解されるように、ここでの残りの記憶スロットは転送可能なネットワークパラメータが位置する記憶スロットを含む。次に第一ターゲットパラメータを割り当てられた記憶スロットに書き込む。記憶スロットを割り当てた後、該実施例はさらに第一ターゲットパラメータに対応する特徴データの識別子情報と第一ターゲットパラメータに割り当てられた記憶スロットのシリアルナンバーに基づいて、上記第一マッピング関係と第二マッピング関係を更新することができる。
【0065】
例えば、第二マッピング関係を更新する場合、FIdとFeaSignとの間のマッピング関係を更新する必要がある以外に、さらに第一ネットワークパラメータのパラメータ状態を更新する必要がある。例えば、第一ネットワークパラメータの引用状態を被引用状態に変更し、すなわち第一ネットワークパラメータに対応するFeaSignのRefCountを0から1に変更することができる。例えば、第一ネットワークパラメータの使用回数に1を加算し、すなわち第一ネットワークパラメータに対応するFeaSignのFreqCountに1を加算することができる。
【0066】
一実施例において、計算コアが第一ネットワークパラメータに対する調整を完了した後、該実施例はさらに第二マッピング関係を更新することにより、第一ネットワークパラメータの引用状態を更新することができる。具体的には第一ネットワークパラメータに対応するFeaSignのRefCountを1から0に変更することができる。
【0067】
一実施例において、ターゲットメモリ、メモリ及びハードディスクプロセッサで構成された三次バッファ構造を採用することにより、メモリ及びターゲットメモリの記憶圧力を低減することができる。前述の第一ターゲットパラメータをターゲットメモリに書き込む場合、メモリ又はハードディスクメモリから該第一ターゲットパラメータを読み取ることができる。メモリはハードディスクメモリのキャッシュであってもよく、メモリの占用率が高い場合、CPUはメモリにキャッシュされたデータをハードディスクメモリに書き込むことができる。該三次バッファ構造の設定により、モデルトレーニング過程におけるネットワークパラメータの検索及び引き取りを加速することができ、大規模なディープラーニングモデルのトレーニングを実現することに役立ち、例えば、サポートするディープラーニングモデルのモデルパラメータはTレベルに達することができる。
【0068】
例えば、CPUは転送可能なネットワークパラメータをターゲットメモリからメモリに転送する時、まずメモリの残りの記憶空間が空間閾値より小さいか否かを決定することができる。空間閾値より小さければ、メモリをキャッシュとし、転送可能なネットワークパラメータをメモリを介してハードディスクメモリに書き込む。すなわち、転送可能なネットワークパラメータをメモリにキャッシュし、かつメモリにキャッシュされた転送可能なネットワークパラメータをハードディスクメモリに書き込む。
【0069】
一実施例において、第一ネットワークパラメータにおける第一ターゲットパラメータを決定する場合に、例えば先に説明した方式を採用して第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定することができる。具体的にはまず第一トレーニングデータに含まれる特徴データを決定し、特徴データに対応する全てのネットワークパラメータを第一ネットワークパラメータとすることができる。その後に第一ネットワークパラメータに対して重複排除処理を行い、重複排除後のネットワークパラメータを取得する。例えば、特徴データの識別子情報に基づいて第一ネットワークパラメータに重複排除を行うことができる。その後に第一マッピング関係及び重複排除後のネットワークパラメータの識別子情報に基づいて、重複排除後のネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、決定されたネットワークパラメータを第一ターゲットパラメータとする。
【0070】
例えば、まず特徴データの識別子情報に基づいて、第一トレーニングデータに含まれる特徴データに重複排除を行うことができる。その後、重複排除後の特徴データに埋め込み処理を行う場合に必要なネットワークパラメータを重複排除後のネットワークパラメータとする。
【0071】
第一トレーニングデータは一般的に複数のトレーニングデータを含み、異なるトレーニングデータに同じ特徴データが含まれる可能性がある。決定された全ての第一ネットワークパラメータを全てターゲットメモリに書き込むと、同じネットワークパラメータがターゲットメモリの複数のスロットに書き込まれる状況が存在する。本開示の実施例は第一ネットワークパラメータに重複排除を行うことにより、上記状況を回避することができ、したがってターゲットメモリの記憶空間の浪費を減少させることができ、ターゲットメモリの記憶空間の利用率を向上させ、大規模なモデルトレーニング時にターゲットメモリに与える圧力を低下させ、大規模なモデルのトレーニングを実現することに役立つ。
【0072】
理解できるように、CPUが第一ターゲットパラメータをターゲットメモリに書き込んだ後、例えばターゲットプロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することにより、ターゲットプロセッサの計算コアがターゲットメモリに記憶された第一ネットワークパラメータに基づいて第一トレーニングデータを処理し、かつ処理結果に基づいて第一ネットワークパラメータを調整することができる。これに基づいて、本開示はさらに別のモデル処理方法を提供する。以下に図3を参照して該別のモデルトレーニング方法を詳細に説明する。
【0073】
図3は、本開示の別の実施例に係るディープラーニングモデルのトレーニング方法のフローチャート概略図である。
【0074】
図3に示すように、該実施例のディープラーニングモデルのトレーニング方法300は操作S310~操作S340を含むことができる。このモデルトレーニング方法300は、上述した電子機器により実行することができる。
【0075】
操作S310において、第一プロセッサは、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。
【0076】
本開示の実施例によれば、第一プロセッサは上記したCPUであってもよく、ターゲットメモリは第二プロセッサに含まれるメモリである。第二プロセッサは上記したターゲットプロセッサと類似し、該操作S310の実現方式は上記操作S210と類似し、ここで説明を省略する。
【0077】
操作S320において、第一プロセッサはターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。該操作S320は上記操作S220と類似し、ここでは説明を省略する。
【0078】
操作S330において、第一プロセッサは残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、かつ第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信する。
【0079】
操作S340において、第二プロセッサの計算コアはトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。
【0080】
本開示の実施例によれば、第一ターゲットパラメータをターゲットメモリに書き込む実現方式は前述の操作S230の実現方式と類似し、ここでは説明を省略する。
【0081】
本開示の実施例によれば、第一プロセッサは、第一ターゲットパラメータをターゲットメモリに書き込んだ後、さらに第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することができる。このように、第二プロセッサの計算コアは該トレーニングタスク情報を受信した後、ターゲットメモリに記憶された第一ネットワークパラメータを直接呼び出して第一トレーニングデータを処理し、かつ処理結果に基づいて逆方向計算して第一トレーニングデータに対する勾配データを取得し、勾配データに基づいて第一ネットワークパラメータを調整することができる。
【0082】
本開示の実施例によれば、第一プロセッサはさらに第一ターゲットパラメータをターゲットメモリに書き込む過程において、第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信することができる。このように、第二プロセッサの計算コアは該トレーニングタスク情報を受信した後、ターゲットメモリに記憶されたネットワークパラメータを段階的に呼び出し、必要なネットワークパラメータがまだターゲットメモリに書き込まれていない場合、まずターゲットメモリから必要なネットワークパラメータを読み取るまで、トレーニングタスクの実行を暫定的に実行することができる。
【0083】
本開示の実施例によれば、第一ターゲットパラメータをターゲットメモリに書き込むと同時に、第一プロセッサはさらに第一トレーニングデータを第二プロセッサのキャッシュに書き込むことができる。トレーニングタスク情報には、例えば、順方向計算のタスク情報、逆方向計算のタスク情報、及びパラメータ更新のタスク情報などが含まれ得る。順方向計算のタスク情報は、例えば、第一トレーニングデータの呼出情報、ネットワークパラメータの呼出情報、及び、損失lossの算出情報等を含んでもよい。ネットワークパラメータの呼び出し情報は呼び出しを必要とするネットワークパラメータの識別子情報及びネットワークパラメータの呼び出し順序情報などを含むことができる。逆方向計算のタスク情報は、例えば学習率などの情報を含むことができ、パラメータ更新のタスク情報は、例えばステップサイズなどを調整することを含むことができる。
【0084】
本開示の実施例はCPUにおいて第一マッピング関係をメンテナンスし、かつ第一マッピング関係に基づいてターゲットメモリの残りの記憶空間を決定し、かつこれに基づいてネットワークパラメータの書き込みを制御することにより、ビデオカードメモリの記憶空間に対する管理を実現することができ、モデルトレーニング過程において埋め込み処理に必要なネットワークパラメータが多すぎることによりビデオカードメモリにもたらした巨大な圧力を回避し、大規模なディープラーニングモデルトレーニングのハードウェア条件に対する高い要求を低減することに役立ち、かつ大規模なディープラーニングモデルのトレーニングを実現することに役立つ。さらに、該実施例における第一マッピング関係はCPUがアクセス可能なメモリ又はキャッシュにメンテナンスされるため、関連技術においてマッピング関係を示すハッシュテーブルをビデオカードメモリに記憶する技術的解決手段と比較して、ビデオカードメモリを十分に利用してモデルトレーニングを行うことができ、さらにビデオカードメモリに対する圧力を低下させ、CPUとターゲットプロセッサとの間の通信オーバーヘッドを節約することに役立つ。
【0085】
理解できるように、上記説明したように、各ラウンドのトレーニングにおいて、該実施例はさらにトレーニングデータに予測処理を行うために必要な第三ネットワークパラメータもターゲットメモリに書き込み、ターゲットプロセッサの計算コアにより呼び出し、かつ呼び出し結果に基づいて該第三ネットワークパラメータを調整することができる。
【0086】
本開示をよりよく理解するために、以下に図4を参照して本開示の提供するモデルトレーニング方法を実現するためのプロセッサキャッシュの構造を詳細に説明する。
【0087】
図4は本開示の実施例に係るプロセッサキャッシュの構造概略図である。
図4に示すように、実施例400において、本開示の提供するディープラーニングモデルのトレーニング方法を実現するために、プロセッサキャッシュの構造はメモリ410及びターゲットメモリ420を含むことができる。該実施例はターゲットメモリ420がビデオカードメモリであることを例として説明する。理解できるように、ターゲットメモリ420は任意の高帯域幅メモリ(High Bandwidth Memory、HBM)であってもよい。
【0088】
メモリ410には第一ハッシュテーブル411と第二ハッシュテーブル412がメンテナンスされてもよい。第一ハッシュテーブル411は上記第一マッピング関係を示すために用いられ、第二ハッシュテーブル412は上記第二マッピング関係を示すために用いられる。具体的には、第一ハッシュテーブルにおけるKeyは特徴データの識別子情報FeaSignであり、第一ハッシュテーブルにおけるValueはビデオカードメモリ420に記憶されたスロットのシリアルナンバーである。第二ハッシュテーブルにおけるKeyはビデオカードメモリ420に記憶されたスロットのシリアルナンバーであり、Valueは特徴データのタグ情報(Feature Meta、FeaMetaと略称される)であり、該タグ情報は特徴データの識別子情報FeaSignを含み、特徴データに埋め込み処理を行う時に必要なネットワークパラメータの引用状態RefCount及び使用回数FreqCountである。
【0089】
例えば、該実施例におけるビデオカードメモリ420が最大で100個の特徴データに埋め込み処理を行う100組のネットワークパラメータを記憶することを許可するように設定すれば、ビデオカードメモリ420内の記憶スロットは100個を含み、該100個の記憶スロットの番号はそれぞれ0、1、2、……、98、99である。各記憶スロットにキャッシュされたデータは一組の埋め込み層のネットワークパラメータ及び該一組の埋め込み層のネットワークパラメータを調整する時に必要なハイパーパラメータを含むことができる。
【0090】
プロセッサCPU430は上記のようなディープラーニングモデルのトレーニング方法の対応する操作を実行する時、第一マッピングテーブルを検索することによりビデオカードメモリ420に利用可能な記憶スロットの数を決定し、かつトレーニングデータに埋め込み処理を行う時に必要なビデオカードメモリ420に書き込むべきターゲットパラメータに記憶スロットを割り当て、かつ需要に応じてメモリ410に記憶された第一ハッシュテーブル411及び第二ハッシュテーブル412における情報に対して照会、追加、削除等の操作を行うことができる。
【0091】
CPU430はさらにディープラーニングモデルのトレーニング方法における対応する操作を実行する時に、ビデオカードメモリ420にキャッシュする必要があるデータを割り当てられた記憶スロットにコピーし、かつGPU等のターゲットプロセッサがネットワークパラメータに対する調整を完了しかつ記憶スロットを解放する必要がある場合、ビデオカードメモリ420から関連するネットワークパラメータをコピーする。モデルトレーニング過程において、CPU430は実質的にキャッシュ管理者の役割を果たす。
【0092】
一実施例において、ビデオカードメモリ420は人工知能チップ内のメモリであってもよい。具体的にはコンロン二世代チップ内のメモリであってもよい。このように、該実施例はディープラーニングモデルのトレーニング方法を実行する時、コンロン二世代チップの計算能力を十分に利用することができ、大規模な推薦モデルのトレーニングを実現することに役立つ。
【0093】
一実施例において、一つの電子機器に複数のターゲットプロセッサを設置することにより、ターゲットプロセッサは異なるトレーニングデータに基づいてディープラーニングモデルに並列トレーニングを行うことにより、モデルトレーニング効率を向上させる。
【0094】
例えば、上記ターゲットプロセッサは複数のプロセッサを含み、一つのラウンドのトレーニングにおいて、マルチバッチ(batch)データを取得することができ、該マルチbatchのデータは第一トレーニングデータを構成する。該実施例は各batchのデータに埋め込む処理を行うために必要なネットワークパラメータのみを該各batchに対応するプロセッサのターゲットメモリに書き込み、これによりターゲットプロセッサ中のターゲットメモリのバッファ圧力を減少させることができる。
【0095】
例えば、該実施例はさらに第一ターゲットパラメータをターゲットメモリに書き込む場合、まず第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに埋め込み処理を行うために必要なパラメータを決定し、該各プロセッサに対する指定パラメータとすることができる。次に所定のパラメータを用いて第一ターゲットパラメータにおける指定パラメータ以外の他のパラメータを置換し、それにより該各プロセッサに対する書き込むべきパラメータを取得する。該書き込むべきパラメータにおけるパラメータの数は第一ターゲットパラメータのパラメータの数と同じである。次に第一ターゲットパラメータに割り当てられた記憶スロットに基づいて、書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込む。該方式により、複数のターゲットプロセッサに含まれる複数のターゲットメモリに記憶されたネットワークパラメータの個数及びネットワークパラメータの分布を同じにすることができる。所定のパラメータは、ヌル値であってもよい。このように、ターゲットプロセッサ中のターゲットメモリのバッファ圧力を減少させる以外に、複数のターゲットプロセッサ同士の間の通信を介してネットワークパラメータを同期させることに役立つ。
【0096】
例えば、複数のターゲットプロセッサはそのターゲットメモリに記憶されたネットワークパラメータ及びネットワークパラメータが位置するスロットに基づいて、計算されたネットワークパラメータの勾配データを同期することができる。このようにして、ターゲットプロセッサとCPUとの間の通信オーバーヘッドを減少させることができる。
【0097】
具体的には、各プロセッサの計算コアは該各プロセッサに対応する一つのbatchのトレーニングデータ及びネットワークパラメータに基づいて順方向計算及び逆方向計算を行うことができ、第一ネットワークパラメータに対する勾配データを取得する。例えば、計算コアは対応する一つのbatchのトレーニングデータ中の特徴データに基づいて、ターゲットメモリから特徴データに埋め込み処理及び予測処理を行うネットワークパラメータを取得し、かつネットワークパラメータに基づいて特徴データを処理し、処理結果を取得する。続いて処理結果に基づいてディープラーニングモデルの該一つのbatchのデータに対する損失lossを決定し、それにより順方向計算のタスクを完了する。その後、該損失及び特徴データに埋め込み処理及び予測処理を行うネットワークパラメータに基づいて、逆方向伝播アルゴリズムを採用して第一ネットワークパラメータに対する勾配データを計算して得て、それにより逆方向計算のタスクを完了する。最後に、第一ネットワークパラメータが位置する記憶スロットと他のターゲットプロセッサとの通信に基づいて、他のターゲットプロセッサにより得られた第一ネットワークパラメータに対する勾配データを取得する。同時に、他のターゲットプロセッサとの通信により、他のターゲットプロセッサにより得られた予測処理に用いられる第三ネットワークパラメータに対する勾配データを取得することができる。最後に全ての勾配データをまとめ、集計結果に基づいて第一ネットワークパラメータ及び第三ネットワークパラメータを調整し、それによりパラメータ更新のタスクを完了する。
【0098】
以下、図5を参照して、ディープラーニングモデルのトレーニング方法の全体的な流れについて詳述する。
【0099】
図5は本開示の実施例に係るディープラーニングモデルのトレーニング方法の全体フローチャートである。
【0100】
図5に示すように、該実施例のディープラーニングモデルのトレーニング方法500は操作S501~操作S518を含むことができる。操作S509~操作S512は上記ターゲットプロセッサにより実行される以外、他の操作はいずれもCPUにより実行される。
【0101】
操作S501において、バッチのデータを取得する。具体的にはハードディスクメモリ又は外付けのデータベースから所定数のサンプルデータを取得することにより、ディープラーニングモデルをトレーニングすることができる。
【0102】
操作S502において、データ全体を乱し、バッチごとに得られたトレーニングデータのランダム性を向上させる。
【0103】
操作S503において、現在のトレーニングラウンドのデータを取得する。例えば、バッチのデータからbatch_size*カード数のトレーニングデータをランダムに取得し、上記第一トレーニングデータとすることができる。カード数とは、電子機器に設けられたターゲットプロセッサの個数である。batch_sizeは実際の需要に応じて設定することができる。例えば、該batch_sizeはターゲットプロセッサ中のターゲットメモリの記憶容量に基づいて決定することができる。例えば、batch_size個のトレーニングデータに埋め込み処理を行うために必要なネットワークパラメータの個数はターゲットメモリの記憶容量に関連することができる。具体的には、ターゲットメモリに記憶されたスロットの数は埋め込み処理に必要なネットワークパラメータのグループ数の二倍であってもよい。
【0104】
操作S504において、ターゲットメモリの残りの記憶スロットが十分であるか否かを決定する。十分であれば、操作S505~操作S513を実行し、そうでなければ操作S514~操作S516を実行する。理解できるように、複数のターゲットプロセッサが同じタイプのプロセッサであり、複数のターゲットプロセッサに含まれる複数のターゲットメモリの記憶容量の大きさが等しいことを設定することができる。
【0105】
操作S505において、第一トレーニングデータに含まれる特徴データのFeaSignに基づいて、第一トレーニングデータの埋め込み処理に必要なネットワークパラメータに対して重複排除処理を行い、上記重複排除後のネットワークパラメータを取得する。
【0106】
操作S506において、ターゲットメモリにおけるキャッシュパラメータに対する増分を決定する。すなわち第一マッピング関係に基づいて重複排除後のネットワークパラメータをターゲット記憶装置に記憶されたネットワークパラメータと比較し、ターゲットメモリに書き込む必要があるネットワークパラメータを決定し、上記第一ターゲットパラメータを取得する。
【0107】
操作S507において、ターゲットメモリに書き込む必要があるネットワークパラメータに記憶スロットを割り当て、かつ割り当て結果に基づいて第一マッピング関係及び第二マッピング関係を更新し、具体的には第一マッピング関係にFIdとFeaSignのマッピング関係を添加し、第二マッピング関係にFIdとFeaMetaとのマッピング関係を添加し、かつ第一ネットワークパラメータにおける各組のネットワークパラメータに対応する特徴データのFeaMetaデータを更新し、具体的にはRefCount及びFreqCountをいずれも1に加算する。
【0108】
操作S508において、ターゲットメモリに追加されたネットワークパラメータをコピー(Pull)し、具体的には上記のように所定のパラメータに基づいて各ターゲットメモリに対する書き込むべきパラメータを決定し、かつ書き込むべきパラメータを割り当てられた記憶スロットに書き込むことができる。このように、各ターゲットプロセッサはターゲットメモリ内のネットワークパラメータを呼び出し、一つのbatchのトレーニングサンプルに基づいて、操作S509~操作S512を実行することができる。理解されるように、さらに予測ネットワークの第三ネットワークパラメータを複数のターゲットプロセッサ中の各ターゲットプロセッサに含まれるターゲットメモリにコピーすることができる。
【0109】
操作S509において、順方向計算タスクを実行することにより、ディープラーニングモデルの該一つのbatchに対するトレーニングサンプルの損失lossを取得する。
【0110】
操作S510において、逆方向計算タスクを実行することにより、損失lossに基づいて計算して一つのbatchのトレーニングサンプルに対する勾配データを取得する。該勾配データは第一ネットワークパラメータの勾配データ及び第三ネットワークパラメータの勾配データを含むべきである。
【0111】
操作S511において、 All reduceアルゴリズム(All Reduce algorithm)を採用して複数のターゲットプロセッサから得られた勾配データを集約する。理解されるように、第一ネットワークパラメータの勾配データを集約する時、第一ネットワークパラメータが位置する記憶スロットを参照とすべきであり、これは異なるターゲットメモリに記憶された第一ネットワークパラメータの値に差異が存在するためである。
【0112】
操作S512において、集約結果に基づいてターゲットメモリに記憶されたネットワークパラメータの値を更新する。集約結果は例えば各ネットワークパラメータに対する全ての勾配データに対して平均値を計算し、最終的な勾配を得て、かつ最終的な勾配に基づいて各ネットワークパラメータの値を更新することを含むことができる。
【0113】
操作S513において、現在のbatchの使用したネットワークパラメータに対応する特徴データのRefCount値を1減算する。ここまで、ターゲットプロセッサは第一トレーニングデータに基づくネットワークパラメータの調整を完了する。
【0114】
操作S514において、RefCountが0でかつFreqCountが低い転送可能なネットワークパラメータをフィルタリングする。転送可能なネットワークパラメータに対応する特徴データのRefCountは0であり、FreqCountの値は回数閾値より低い。
【0115】
操作S515において、ターゲットメモリから該転送可能なネットワークパラメータをコピーし、かつコピーされた転送可能なネットワークパラメータをメモリにキャッシュする。
【0116】
操作S516において、第一マッピング関係における転送可能なネットワークパラメータに対応する特徴データのFeaSignとFIdとのマッピング関係を削除する。操作S516を実行した後、操作S504を戻って実行することにより、残りの記憶スロットが十分であるか否かを改めて決定することができる。
【0117】
本開示の実施例によれば、ターゲットプロセッサが第一トレーニングデータに基づくネットワークパラメータに対する調整を完了した後、CPUは例えば操作S517を実行し、取得されたバッチデータがいずれもトレーニング済みであるか否かを決定することができる。すなわち、取得されたバッチデータがいずれもトレーニングデータとしてディープラーニングモデルのトレーニングを行ったか否かを判定する。そうであれば、操作S518を実行し、ターゲットメモリ(例えばHMB)に記憶された更新後のネットワークパラメータをメモリ又はハードディスクメモリにコピーして書き込む。そうでなければ、操作S503に戻って実行することにより、次のトレーニングラウンドのトレーニングを開始する。
【0118】
本開示の提供するディープラーニングモデルのトレーニング方法をよりよく理解するために、以下に図6を参照してプロセッサのスタンドアマルチカードの通信トポロジを詳細に説明する。
【0119】
図6は本開示の実施例に係るプロセッサのスタンドアマルチカードの通信トポロジー構造図である。
【0120】
図6に示すように、実施例600において、スタンドアマルチカード構造の電子機器は一つのCPU及び四つのXPUを含むことができ、例えばXPU#0~XPU#3を含むことができる。CPUは、例えば、PCIe(Peripheral Component Interconnect Express)インタフェースを介して、四つのXPUと通信接続されていてもよい。ネットワークインタフェースコントローラ(Network Interface Controller、NIC)は電子機器をローカルエリアネットワークに接続するために用いられる。NICは例えばイーサネットによりアクセススイッチ(TOR Switch)に接続され、それにより電子機器がローカルエリアネットワークにアクセスする。ここで、XPUはコンロンチップを指し、具体的には例えばコンロン二世代チップを指すことができる。
【0121】
四つのXPUにおいて、XPU#0とXPU#1との間、XPU#0とXPU#3との間、XPU#1とXPU#2との間及びXPU#2とXPU#3との間はキャッシュコヒーレンス相互接続プロトコル(CCIX)を介して接続されてプロセッサリングを形成することができる。CCIXは二つ又は二つ以上のデバイスをキャッシュコヒーレンスの方式でデータのシート間相互接続を共有することができる。該シート間相互接続の構造は All reduceアルゴリズムの使用に基礎を提供する。理解されるように、図6に示すトポロジー構造はコンロン二世代チップの通信トポロジーであってもよく、該トポロジー構造により、部分的なスパースパラメータ(埋め込み処理を行うネットワークパラメータ)をサポートするAllReduce通信を達成することができる。理解できるように、該実施例は、各XPUを用いて全ての勾配データを他のXPUにブロードキャストし、かつ他のXPUの全ての勾配データを受信する方式を採用してネットワークパラメータの調整を行うことができる。この方式において、XPU#0ブロードキャストの勾配データは例えばXPU#3、XPU#1又はCPU#1を介してXPU#2に転送することができる。
【0122】
一実施例において、図6に示すように、ディープラーニングモデルをトレーニングする時に、さらに2つの電子機器又はより多くの電子機器を採用することができ、該複数の電子機器の間はローカルエリアネットワークを介して接続されてもよく、複数の電子機器におけるCPUは共通システムインタフェース(Common System Interface、QPI)を介して通信接続されてもよく、QPIはチップ間の相互接続を実現するアーキテクチャである。
【0123】
本開示の提供するネットワークアーキテクチャに基づいて、SparseパラメータのAllReduce通信を実現することができるため、複数のターゲットプロセッサのディープラーニングモデルに対する同期トレーニングを実現することができ、さらに大規模なディープラーニングモデルに対するトレーニングを実現することができ、したがって通信オーバーヘッドを低減することができる。
【0124】
本開示の実施例によれば、さらに非同期パイプライン方式を採用してディープラーニングモデルをトレーニングすることができ、これによりモデルトレーニング効率を向上させる。
【0125】
図7は本開示の実施例に係る非同期パイプライン形式でモデルをトレーニングする原理概略図である。
【0126】
図7に示すように、実施例700において、ディープラーニングモデルをトレーニングする時、非同期化のパイプライン(Pipeline)設計を行うことができる。例えば、ターゲットプロセッサの計算コアが現在のトレーニングラウンドのトレーニングタスク730を実行する場合、CPUは次のトレーニングラウンドのトレーニングデータに前処理710を行い、かつ前処理を完了した後、ターゲットメモリに書き込む必要があるターゲットパラメータにスロットを割り当て、かつターゲットパラメータをターゲットメモリにコピーし、即ちスロットを割り当てかつデータをコピーするタスク720を実行する。このように、計算コアが現在のトレーニングラウンドのトレーニングタスク730を実行した後、次のトレーニングラウンドのトレーニングタスクを直接的に実行することができる。該方式により、モデルトレーニング効率を効果的に向上させ、隣接する二つのラウンドの反復トレーニングの間の間隔を減少させて、ターゲットプロセッサの利用率を向上させる。
【0127】
具体的には、該実施例700において、CPUは計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定することができる。その後にターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。その後に残りの記憶スロットが第二ターゲットパラメータの記憶要求を満たす場合、第二ターゲットパラメータに記憶スロットを割り当てかつ第二ターゲットパラメータをターゲットメモリに書き込む。
【0128】
本開示の提供するディープラーニングモデルのトレーニング方法に基づいて、本開示はさらにディープラーニングモデルのトレーニング装置を提供し、以下に図8を参照して該装置を詳細に説明する。
【0129】
図8は本開示の実施例に係るディープラーニングモデルのトレーニング装置の構造ブロック図である。
【0130】
図8に示すように、該実施例のディープラーニングモデルのトレーニング装置800はターゲットパラメータ決定モジュール810、残りのスロット決定モジュール820及びパラメータ書き込みモジュール830を含むことができる。
【0131】
ターゲットパラメータ決定モジュール810は、現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定するために用いられる。ターゲットメモリは、ターゲットプロセッサに含まれるメモリである。一実施例において、ターゲットパラメータ決定モジュール810は上記操作S210を実行するために用いられ、ここで説明を省略する。
【0132】
残りのスロット決定モジュール820は、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。一実施例において、残りのスロット決定モジュール820は、上記操作S220を実行し、ここで説明を省略する。
【0133】
パラメータ書き込みモジュール830は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、それによりターゲットプロセッサに含まれる計算コアは第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。一実施例において、パラメータ書き込みモジュール830は上記操作S230を実行し、ここで説明を省略する。
【0134】
本開示の実施例によれば、上記装置800は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータに残りの記憶スロットにおける記憶スロットを割り当てるスロット割当モジュールと、第一ターゲットパラメータに割り当てられた記憶スロットの識別子情報と第一ターゲットパラメータの識別子情報に基づいて、第一マッピング関係を更新する第一関係更新モジュールと、をさらに含むことができる。パラメータ書き込みモジュール830は、第一ターゲットパラメータを第一ターゲットパラメータに割り当てられる記憶スロットに書き込む。
【0135】
本開示の実施例によれば、上記ターゲットパラメータ決定モジュール810は、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータを決定する必要パラメータ決定サブモジュールと、第一ネットワークパラメータに対して重複排除処理を行い、重複排除後のネットワークパラメータを取得する重複排除サブモジュールと、第一マッピング関係及び重複排除後のネットワークパラメータの識別子情報に基づいて、重複排除後のネットワークパラメータにおけるターゲットメモリに記憶されていないネットワークパラメータを決定し、第一ターゲットパラメータとするターゲットパラメータ決定サブモジュールと、を含むことができる
本開示の実施例によれば、上記装置800は、残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たさないことに応答し、ターゲット記憶装置に記憶されたネットワークパラメータにおける転送可能なネットワークパラメータを決定する転送パラメータ決定モジュールと、転送可能なネットワークパラメータをターゲットメモリからメモリに転送するパラメータ転送モジュールと、をさらに含むことができる。パラメータ書き込みモジュール830はさらに転送可能なネットワークパラメータがメモリに転送されることに応答し、第一ターゲットパラメータをターゲットメモリに書き込む。
【0136】
本開示の実施例によれば、転送パラメータ決定モジュールは、ターゲットメモリの記憶スロットと記憶スロットに記憶されたネットワークパラメータのパラメータ状態との間の第二マッピング関係に基づいて、パラメータ状態がターゲット状態であるネットワークパラメータが転送可能なネットワークパラメータであることを決定する。パラメータ状態は、引用状態、使用回数の少なくとも一つを含む。ターゲット状態は、引用状態が引用されていない状態であること、使用回数が回数閾値より小さいこと、の少なくとも一つを含む。上記装置800は、転送可能なネットワークパラメータがメモリに転送されることに応答し、第一ターゲットパラメータにターゲットメモリにおける残りの記憶スロットを割り当てるスロット割当モジュールと、第一ターゲットパラメータに割り当てられた記憶スロットと第一ネットワークパラメータにおける第一ターゲットパラメータ以外の他のパラメータが位置する記憶スロットとに基づいて、第二マッピング関係を更新することにより、第一ネットワークパラメータのパラメータ状態を更新する第二関係更新モジュールと、をさらに含むことができる。
【0137】
本開示の実施例によれば、第二関係更新モジュールはさらに計算コアが第一ネットワークパラメータに対する調整を完了することに応答し、第二マッピング関係を更新することにより、第一ネットワークパラメータの引用状態を更新する。
【0138】
本開示の実施例によれば、上記パラメータ転送モジュールは具体的にはメモリの残りの記憶空間が空間閾値より小さいことに応答し、転送可能なネットワークパラメータをメモリを介してハードディスクメモリに書き込む。
【0139】
本開示の実施例によれば、上記ターゲットパラメータ決定モジュール810はさらに、計算コアが第一トレーニングデータに基づいて第一ネットワークパラメータをトレーニングすることに応答し、次のトレーニングラウンドの第二トレーニングデータに基づいて、第二トレーニングデータに埋め込み処理を行うために必要な第二ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第二ターゲットパラメータを決定する。上記残りのスロット決定モジュール820はさらに、ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。上記パラメータ書き込みモジュール830はさらに、残りの記憶スロットが第二ターゲットパラメータの記憶要求を満たすことに応答し、第二ターゲットパラメータをターゲットメモリに書き込む。
【0140】
本開示の実施例によれば、ターゲットプロセッサは複数のプロセッサを含み、第一トレーニングデータは複数のプロセッサにそれぞれ対応するマルチバッチのデータを含む。上記パラメータ書き込みモジュール830は、複数のプロセッサ中の各プロセッサに対して、第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定する指定パラメータ決定サブモジュールと、所定のパラメータ値を用いて第一ターゲットパラメータ中の指定パラメータ以外の他のパラメータを置換し、各プロセッサに対する書き込むべきパラメータを取得するパラメータ置換サブモジュールと、書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込み、それにより各プロセッサに含まれる計算コアが各プロセッサに対応する一つのバッチのデータに基づいて指定パラメータをトレーニングする書き込みサブモジュールと、を含むことができる。
【0141】
本開示の実施例によれば、マルチバッチのデータにおける各バッチのデータに対して、各バッチのデータに埋め込み処理を行うために必要なネットワークパラメータの数は各バッチのデータに対応するプロセッサ中のターゲットメモリの記憶容量に関連する。
【0142】
本開示の実施例によれば、上記パラメータ書き込みモジュール830はさらにマルチバッチのデータに対して予測処理を行うために必要な第三ネットワークパラメータを各プロセッサ中のターゲットメモリに書き込み、それにより各プロセッサに含まれる計算コアは各プロセッサに対応する一つのバッチのデータに基づいて第三ネットワークパラメータを調整する。
【0143】
本開示の別の実施例が提供するディープラーニングモデルのトレーニング方法に基づいて、本開示はさらにディープラーニングモデルのトレーニングシステムを提供し、以下に図9を参照して該システムを詳細に説明する。
【0144】
図9は本開示の実施例に係るディープラーニングモデルのトレーニングシステムの構造ブロック図である。
【0145】
図9に示すように、該実施例のディープラーニングモデルのトレーニングシステム900は第一プロセッサ910及び第二及びプロセッサ920を含み、第二プロセッサはターゲットメモリ及び計算コアを含む。
【0146】
第一プロセッサ910は以下のように構成される:現在のトレーニングラウンドの第一トレーニングデータに基づいて、第一トレーニングデータに埋め込み処理を行うために必要な第一ネットワークパラメータにおけるターゲットメモリに書き込む必要がある第一ターゲットパラメータを決定する。ターゲットメモリの記憶スロットとネットワークパラメータとの間の第一マッピング関係に基づいて、ターゲットメモリ内の残りの記憶スロットを決定する。残りの記憶スロットが第一ターゲットパラメータの記憶要求を満たすことに応答し、第一ターゲットパラメータをターゲットメモリに書き込み、かつ第二プロセッサに第一トレーニングデータに基づくトレーニングタスク情報を送信する。理解できるように、第一プロセッサは上記操作S310~操作S330を実行するように構成されてもよく、ここでは説明を省略する。
【0147】
第二プロセッサ920は以下のように構成される:計算コアはトレーニングタスク情報を受信したことに応答し、第一トレーニングデータに基づいて第一ネットワークパラメータを調整する。
【0148】
本開示の実施例によれば、第二プロセッサは複数のプロセッサを含み、第一トレーニングデータは複数のプロセッサにそれぞれ対応するマルチバッチのデータを含む。上記第一プロセッサ910は以下の方式で第一ターゲットパラメータをターゲットメモリに書き込むように構成される:複数のプロセッサ中の各プロセッサに対して、第一ターゲットパラメータにおける各プロセッサに対応する一つのバッチのデータに対して埋め込み処理を行うために必要な指定パラメータを決定する。所定のパラメータを用いて第一ターゲットパラメータにおける指定パラメータ以外の他のパラメータを置換し、各プロセッサに対する書き込むべきパラメータを取得する。及び書き込むべきパラメータを各プロセッサに含まれるターゲットメモリに書き込む。
【0149】
本開示の実施例によれば、複数のプロセッサはキャッシュコヒーレンス相互接続プロトコルを介してプロセッサリングを接続して形成する。複数のプロセッサ中の各プロセッサは以下の方式で第一ネットワークパラメータを調整するように構成される:計算コアは各プロセッサに対応する一つのバッチのデータ及び指定パラメータに基づいて順方向計算及び逆方向計算を行い、第一ネットワークパラメータに対する勾配データを取得する。及び第一ネットワークパラメータが位置する記憶スロットに基づいて、 All reduceアルゴリズムを採用して第一ネットワークパラメータに対する勾配データと複数のプロセッサ中の他のプロセッサにより得られた勾配データに基づいて、第一ネットワークパラメータを調整する。
【0150】
本開示の実施例によれば、第二プロセッサは人工知能チップを含み、人工知能チップはコンロンコア二世代チップを含む。
【0151】
説明すべきものとして、本開示の技術的解決手段において、関するユーザ個人情報の収集、記憶、使用、加工、伝送、提供、開示及び応用等の処理は、いずれも相関法規則の規定に適合し、必要なセキュリティ対策を採用し、かつ公序良俗に反するものではない。本開示の技術的解決手段において、ユーザの個人情報を取得するか又は収集する前に、いずれもユーザの許可又は同意を取得する。
【0152】
本開示の実施例によれば、本開示はさらに電子機器、可読記憶媒体及びコンピュータプログラムを提供する。
【0153】
図10は本開示の実施例に係るディープラーニングモデルのトレーニング方法の例示電子機器1000の例示的なブロック図を示す。電子機器は、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータという様々な形式のデジタルコンピュータを表示することを意図する。電子機器は、さらに、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス及び他の類似の計算装置という様々な形式の移動装置を表示してもよい。本明細書に示された部材、それらの接続及び関係、及びそれらの機能は例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定するものではない。
【0154】
図10に示すように、機器1000は、計算ユニット1001を含み、それはリードオンリーメモリ(ROM)1002に記憶されたコンピュータプログラム又は記憶ユニット1008からランダムアクセスメモリ(RAM)1003にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM 1003には、さらに機器1000の操作に必要な様々なプログラム及びデータを記憶することができる。計算ユニット1001、ROM 1002、およびRAM 1003は、バス1004を介して相互に接続されている。バス1004には、入出力(I/O)インタフェース1005も接続されている。
【0155】
電子機器1000における複数の部品は、I/Oインタフェース1005に接続され、例えばキーボード、マウス等の入力ユニット1006と、例えば様々な種別のディスプレイ、スピーカ等の出力ユニット1007と、例えば磁気ディスク、光ディスク等の記憶ユニット1008と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信ユニット1009とを含む。通信ユニット1009は、電子機器1000がインターネット等のコンピュータネットワーク及び/又は各種の電気通信網を介して他のデバイスと情報/データをやり取りすることを可能にする。
【0156】
計算ユニット1001は、処理及び計算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算ユニット1001の幾つかの例としては、中央処理装置(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムの計算ユニット、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。計算ユニット1001は、例えばディープラーニングモデルのトレーニング方法ような前記記載された各方法と処理を実行する。例えば、いくつかの実施例において、ディープラーニングモデルのトレーニング方法は、例えば記憶ユニット1008のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1002及び/又は通信ユニット1009を介してデバイス1000にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算ユニット1001により実行される場合、前記記載されたディープラーニングモデルのトレーニング方法の1つ又は複数のステップを実行してもよい。代替的に、別の実施例において、計算ユニット1001は、他の任意の適切な形態(例えば、ファームウェアを介する)によりディープラーニングモデルのトレーニング方法を実行するように構成されてもよい。
【0157】
本明細書で説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムブルプロセッサを含むプログラムブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムブルプロセッサは、専用又は汎用のプログラムブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0158】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラムブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能/操作が実施される。プログラムコードは、機器に完全に実行されてもよく、部分的に機器で実行されてるかもよく、独立したソフトウェアパッケージとして部分的に機器で実行され、かつ部分的に遠隔機器で実行されるか又は完全に遠隔機器又はサーバで実行されてもよい。
【0159】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子機器に使用され、又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子機器、又は前記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前記内容の任意の適切な組み合わせを含む。
【0160】
ユーザとのインタラクションを提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種別の装置は、さらにユーザとのインタラクションを提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0161】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、局所エリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0162】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。サーバは、クラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストと呼ばれ、クラウドコンピューティングサービスシステムのうちの一つのホスト製品であり、それにより従来の物理ホストとVPSサービス(「Virtual Private Server」、又は「VPS」と略称する)において、存在する管理難度が大きく、サービス拡張性が弱いという欠陥を解決する。サーバは、配布式システムのサーバであってもよく、又はブロックチェーンを結合したサーバであってもよい。
【0163】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、ステップを改めてソーティングしたり、付加したり又は削除してもよい。例えば、本発明に記載の各ステップは、並列的に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示の技術案の所望の結果を実現することができれば、本明細書はここで限定されない。
【0164】
前記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われた任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。
【国際調査報告】