JP2023110317A - 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置 - Google Patents

機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置 Download PDF

Info

Publication number
JP2023110317A
JP2023110317A JP2022011684A JP2022011684A JP2023110317A JP 2023110317 A JP2023110317 A JP 2023110317A JP 2022011684 A JP2022011684 A JP 2022011684A JP 2022011684 A JP2022011684 A JP 2022011684A JP 2023110317 A JP2023110317 A JP 2023110317A
Authority
JP
Japan
Prior art keywords
subset
cross
subsets
steps
validation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022011684A
Other languages
English (en)
Inventor
智史 今村
Satoshi Imamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2022011684A priority Critical patent/JP2023110317A/ja
Priority to US17/959,344 priority patent/US20230244608A1/en
Publication of JP2023110317A publication Critical patent/JP2023110317A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】互いにアクセス速度が異なる複数のメモリを備えるコンピュータによる、機械学習モデルの交差検証処理を高速化する。【解決手段】コンピュータは、機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する。【選択図】図11

Description

本発明は、機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置に関する。
機械学習モデルの交差検証(Cross Validation)は、データセット全体を複数のサブセットに分割し、複数のサブセットから選択した訓練サブセット及び検証サブセットの複数の組み合わせを用いて、機械学習モデルの訓練及び精度評価を繰り返す手法である。
交差検証には、シャッフル分割交差検証のような、訓練及び精度評価の各繰り返し(「分割」又は「ステップ」と称されてもよい)において、組み合わせに含めるサブセットを全サブセットのうちのランダムな一部のサブセットに制限する交差検証が存在する。換言すれば、シャッフル分割交差検証等の交差検証では、各分割において未使用のサブセットが存在し、交差検証全体でのサブセットごとの使用回数が異なる。
ところで、コンピュータ(情報処理装置)のメモリシステムとして、階層型メモリシステムが知られている。階層型メモリシステムは、CPU(Central Processing Unit)等のプロセッサが、小容量な高速メモリ(例えばDRAM等)、及び、大容量な低速メモリ(例えばNVDIMM又はSSD等)の双方にアクセス可能なメモリシステムである。DRAMはDynamic Random Access Memoryの略称であり、NVDIMMはNon-Volatile Dual In-line Memory Moduleの略称であり、SSDはSolid State Driveの略称である。
階層型メモリシステムでは、高速メモリの容量が限られていることから、高速メモリを低速メモリのキャッシュとして活用するデータ配置技術が利用されることがある。例えば、コンピュータのOS(Operating System)又はハードウェア(HW;Hardware)は、LRU(Least-Recently Used)アルゴリズムによるキャッシュ制御を行なう。当該キャッシュ制御は、直近のアクセスデータを高速メモリにキャッシングし、直近で最もアクセスされていない(LRU)データを低速メモリに追い出すことで、同じデータへの繰り返しのアクセスを高速化する手法である。
特開2021-43593号公報
上述した交差検証を実行するコンピュータが階層型メモリシステムを採用する場合を想定する。なお、前提として、高速メモリの容量は全てのサブセットの合計データサイズよりも小さい、換言すれば、高速メモリに全てのサブセットを格納できないものとする。
交差検証では、各繰り返しにおいて、複数の訓練サブセット、1以上の検証サブセットの順でアクセスが行なわれる。このため、或る繰り返し(分割)で高速メモリにキャッシュされたサブセットは、後続の繰り返し(分割)における処理で再度アクセスされる前に、低速メモリに追い出されることがある。
このように、コンピュータが高速メモリを備えるにも関わらず、交差検証において低速メモリへのアクセスが発生(例えば頻発)し、性能が律速される、例えばプロセッサの処理速度が低下し、交差検証の処理時間が増加する場合がある。
1つの側面では、本発明は、互いにアクセス速度が異なる複数のメモリを備える情報処理装置による、機械学習モデルの交差検証処理を高速化することを目的とする。
1つの側面では、交差検証プログラムは、コンピュータに、以下の処理を実行させてよい。前記処理は、機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出する処理を含んでよい。また、前記処理は、前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定する処理を含んでよい。さらに、前記処理は、決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する処理を含んでよい。
1つの側面では、互いにアクセス速度が異なる複数のメモリを備える情報処理装置による、機械学習モデルの交差検証処理を高速化することができる。
一実施形態に係る交差検証装置の機能を実現するコンピュータのHW構成例を示すブロック図である。 一実施形態に係る階層型メモリシステムの一例を示すブロック図である。 一実施形態に係る交差検証装置のソフトウェア構成例を示すブロック図である。 複数のサブセットを使用した交差検証処理の一例を説明するための図である。 サブセット使用リストの一例を示す図である。 実行順序ごとの連続使用回数及びサブセットIDの取得例を説明するための図である。 初期配置IDリスト及び分割実行順序リストの一例を示す図である。 入替タイミングの決定処理の一例を説明するための図である。 入替IDリストの取得例を説明するための図である。 サブセット配置処理の一例を説明するための図である。 一実施形態に係る交差検証装置によるサブセット配置ポリシの決定処理の動作例を説明するためのフローチャートである。 一実施形態に係る交差検証装置によるサブセットの配置処理の動作例を説明するためのフローチャートである。 比較例に係る交差検証処理の一例を説明するための図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔A〕構成例
以下、一実施形態に係る交差検証装置1(図3参照)の構成例を説明する。
〔A-1〕ハードウェア構成例
一実施形態に係る交差検証装置1を実現する装置は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、交差検証装置1の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、交差検証装置1の機能のうちの少なくとも一部は、クラウド環境により提供されるHWリソース及びネットワーク(NW)リソースを用いて実現されてもよい。
図1は、一実施形態に係る交差検証装置1の機能を実現するコンピュータ10のHW構成例を示すブロック図である。交差検証装置1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図1に例示するHW構成を備えてよい。
図1に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fを備えてよい。
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
例えば、プロセッサ10aは、交差検証の種々の制御を実行するCPU等の処理装置と、交差検証における機械学習処理を実行するアクセラレータとの組み合わせであってもよい。アクセラレータとしては、例えば、上述したGPU、APU、DSP、ASIC又はFPGA等が挙げられる。
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM等の揮発性メモリ、並びに、NVDIMM、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(交差検証プログラム)を格納してよい。例えば、プロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、後述する交差検証装置1(例えば制御部16)としての機能を実現できる。
IF部10dは、ネットワークの一方又は双方との間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、交差検証装置1は、IF部10d及び図示しないネットワークを介して、他の装置、例えば交差検証装置1にデータセットを提供する装置、交差検証装置1から交差検証の処理結果を受信する装置等と相互に通信可能に接続されてよい。また、例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
I/O部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、I/O部10e及び読取部10fの少なくとも一方は、省略されてもよい。
図2は、一実施形態に係る階層型メモリシステム20の一例を示すブロック図である。コンピュータ10は、階層型メモリシステム20を採用してよい。階層型メモリシステム20は、例示的に、プロセッサ10a、高速メモリ21、及び、低速メモリ22を備えてよい。プロセッサ10aは、高速メモリ21及び低速メモリ22の双方にアクセス可能である。
高速メモリ21は、低速メモリ22よりも高速且つ小容量のメモリの一例であり、例えば、DRAM等の揮発性メモリであってよい。高速メモリ21は、例えば、図1に示すメモリ10b(揮発性メモリ)により実現されてよい。
低速メモリ22は、高速メモリ21よりも低速且つ大容量のメモリの一例であり、例えば、NVDIMM、PM等の不揮発性メモリ、又は、SSD等のストレージであってよい。低速メモリ22は、例えば、図1に示すメモリ10b(不揮発性メモリ)又は記憶部10cにより実現されてよい。
高速メモリ21及び低速メモリ22の組み合わせは、上述した揮発性メモリと不揮発性メモリ又はストレージとの組み合わせに限定されるものではなく、アクセス速度が高速メモリ21>低速メモリ22且つ容量が高速メモリ21<低速メモリ22となる種々の組み合わせであってよい。
なお、階層型メモリシステム20においては、HW又はプロセッサ10aが実行するOSにより、高速メモリ21及び低速メモリ22間のデータ配置制御が行なわれる。データ配置制御には、LRUアルゴリズムによるキャッシュ制御が含まれる。
例えば、高速メモリ21がDRAMであり、低速メモリ22がSSDである場合、LRUアルゴリズムによるキャッシュ制御は、OSのスワップ機能により実現される。また、高速メモリ21がDRAMであり、低速メモリ22がNVDIMMである場合、LRUアルゴリズムによるキャッシュ制御は、HW又によるキャッシュ制御により実現される。
〔A-2〕ソフトウェア構成例
図3は、一実施形態に係る交差検証装置1のソフトウェア構成例を示すブロック図である。交差検証装置1は、情報処理装置の一例であり、データセットを分割して得られる複数のデータセットを用いて機械学習モデルの交差検証処理を実行する。
図3に示すように、交差検証装置1は、ソフトウェア(機能)構成として、例示的に、高速メモリ部11、低速メモリ部12、交差検証処理部13、サブセット配置ポリシ決定部14、及び、サブセット配置部15を備えてよい。
高速メモリ部11及び低速メモリ部12のそれぞれは、記憶領域の一例であり、交差検証装置1が利用する種々のデータを記憶する。高速メモリ部11は、低速メモリ部12よりも高速なアクセスが可能である第2メモリの一例であり、例えば、図2に示す高速メモリ21が有する記憶領域により実現されてよい。低速メモリ部12は、複数のサブセット120が格納される第1メモリの一例であり、例えば、図2に示す低速メモリ22が有する記憶領域により実現されてよい。
図3に示すように、高速メモリ部11は、例示的に、複数のサブセット11a、サブセット使用リスト11b、初期配置IDリスト11c、分割実行順序リスト11d、入替IDリスト11e及び入替タイミング11fを記憶可能であってよい。低速メモリ部12は、例示的に、複数のサブセット12aを記憶可能であってよい。以下の説明において、各リスト11b~11eをテーブル形式で表記するが、これに限定されるものではなく、これらのリスト11b~11eは、DB(Database)又は配列等の種々の形式であってもよい。
交差検証処理部13は、交差検証用ライブラリ(関数)を利用して、機械学習モデルの交差検証処理を実行する。交差検証処理部13は、例えば、データセットを複数のサブセット120に分割する。
図4は、複数のサブセット120を使用した交差検証処理の一例を説明するための図である。図4には、データセットが、0~9のサブセットID(Identifier)が付与された10個のサブセット120に分割された例を示す。
また、図4では、4回の繰り返し(実行順で「分割1」~「分割4」と表記)のそれぞれにおいて、10個のサブセット120のうちの、5個の訓練サブセット121(網掛け参照)及び2個の検証サブセット122(斜線参照)が使用されるものとする。換言すれば、4回の繰り返しのそれぞれにおいて、10個のサブセット120のうちの3個の未使用サブセット123(白抜き参照)は使用されないものとする。なお、サブセット120の数(分割数)、並びに、訓練サブセット121、検証サブセット122及び未使用サブセット123の各数は、図4に示す数に限定されるものではない。
交差検証処理部13は、交差検証処理において、5個の訓練サブセット121を使用して機械学習モデルを訓練し、訓練後の機械学習モデルに2個の検証サブセット122を入力して推論結果を取得する処理を、実行順に繰り返す(図4の例では4回)。そして、交差検証処理部13は、各繰り返しで得た推論結果に基づき、精度評価を行なう。
一実施形態に係る交差検証装置1は、図4に例示する交差検証処理において、使用回数が多いサブセット120を優先的に高速メモリ21に配置する。これにより、交差検証装置1は、高速メモリ21へのアクセス回数を増加させ、換言すれば低速メモリ22へのアクセス回数を削減し、交差検証処理の高速化を実現する。
このために、交差検証処理部13は、サブセット配置ポリシ決定部14に対して、サブセット配置ポリシ110の決定処理を指示する。例えば、交差検証処理部13は、図示しないネットワーク等を介して交差検証処理の処理要求を受信すると、処理要求に基づき、サブセット配置ポリシ決定部14にサブセット配置ポリシ110の決定処理の実行を指示する。処理要求には、交差検証処理に利用するデータセットが含まれてよい。
交差検証処理部13は、例えば、交差検証に使用するサブセット使用リスト11bを生成して、高速メモリ部11に格納してよい。なお、交差検証処理部13は、処理要求に含まれるデータセットを分割して得た複数のサブセット120を低速メモリ部12に格納してもよい。
図5は、サブセット使用リスト11bの一例を示す図である。サブセット使用リスト11bは、図4に例示する各繰り返し(各分割)で使用される訓練サブセット121及び検証サブセット122の組み合わせを示す。換言すれば、サブセット使用リスト11bは、交差検証処理の各分割(各ステップ)における、交差検証処理に使用される複数のサブセット120のアクセスパターンを示す第1情報であって、分割(ステップ)ごとに使用されるサブセット120を示す第1情報の一例である。
図5に例示するように、サブセット使用リスト11bは、「分割」及び「使用サブセット」の項目を含んでよい。「分割」は、交差検証処理における分割(繰り返し、ステップ)の識別情報(例えば分割ID)である。「使用サブセット」は、各分割において使用される複数のサブセット120の各々の識別情報(例えばサブセットID)である。サブセット120の「使用」とは、訓練サブセット121又は検証サブセット122として交差検証処理に使用されることを意味してよい。
ここで、交差検証処理では、訓練サブセット121の後に検証サブセット122が使用される。また、訓練サブセット121及び検証サブセット122のそれぞれの中では、所定の使用順、例えばサブセットIDの昇順に、サブセット120が使用される。さらに、訓練サブセット121及び検証サブセット122のそれぞれの個数は決まっている。
一実施形態では、これらの前提に基づき、「使用サブセット」には、前半の5個のサブセットIDが訓練サブセット121を示し、後半の2個のサブセットIDが検証サブセット122を示すように、使用される順(図4参照)にサブセットIDがセットされる。
なお、サブセット使用リスト11bは、図5に示す例に限定されるものではなく、訓練サブセット121のサブセットIDを示す「訓練サブセット」の項目と、検証サブセット122のサブセットIDを示す「検証サブセット」の項目とを含んでもよい。
図3の説明に戻り、サブセット配置ポリシ決定部14は、サブセット使用リスト11bに基づき、サブセット配置ポリシ110を決定し、高速メモリ部11に格納する。サブセット配置ポリシ110は、図3に示すように、初期配置IDリスト11c、分割実行順序リスト11d、入替IDリスト11e及び入替タイミング11fを含んでよい。
(前処理)
サブセット配置ポリシ決定部14は、交差検証処理部13からサブセット配置ポリシ110の決定処理の指示を受け付けると、サブセット配置ポリシ110を初期化する。例えば、サブセット配置ポリシ決定部14は、初期配置IDリスト11c、分割実行順序リスト11d、入替IDリスト11eを空にする(Nullをセットする)とともに、入替タイミング11fに“-1”をセットする。
また、サブセット配置ポリシ決定部14は、高速メモリ部11に格納可能なサブセット120の個数(所定個数)である高速メモリ部サブセット数を算出する。例えば、サブセット配置ポリシ決定部14は、高速メモリ部サブセット数として、高速メモリ部11の空き容量(空き記憶領域のサイズ)を1個あたりのサブセット120のデータサイズで除算した値(小数点以下切り捨て;商)を取得してよい。高速メモリ部サブセット数を算出することにより、高速メモリ部11に配置するサブセット120の適切な個数を特定することができる。一実施形態では、高速メモリ部サブセット数=4であるものとする。
(初期配置IDリスト11c及び分割実行順序リスト11dの決定処理)
サブセット配置ポリシ決定部14は、サブセット使用リスト11bの全ての分割の実行順序について、高速メモリ部サブセット数分のサブセット120の連続使用回数の合計と、当該サブセット120のサブセットIDとを取得する。
全ての分割の実行順序(分割実行順序)とは、図4に示す実行順だけでなく、複数の分割が取り得る全ての実行順序であり、例えば分割数の階乗(分割数:4個の場合、4!)通りの実行順序である。分割実行順序は、複数の分割(ステップ)の実行順序の候補パターンの一例である。
連続使用回数とは、同一のサブセット120が実行順序の先頭の分割から複数の分割に亘って連続して使用される回数である。連続使用回数は、分割実行順序(候補パターン)ごとに、各サブセット120が当該分割実行順序において分割間で連続して使用される回数の一例である。
図6は、実行順序ごとの連続使用回数及びサブセットIDの取得例を説明するための図である。図6において、符号Aは、分割1,分割2,分割3,分割4の順(以下、分割IDを実行順序に並べて「実行順序1234」のように表記する)とした場合の連続使用回数の合計の取得例を示す。符号Bは、実行順序1243とした場合の連続使用回数の合計の取得例を示す。
サブセット配置ポリシ決定部14は、サブセットID:0~9のそれぞれについて連続使用回数を取得する。
図6の符号Aの例では、サブセット配置ポリシ決定部14は、サブセットID:0が実行順序1234で順序の先頭である分割1から連続して4回使用されるため、連続使用回数:4を取得する(符号A1参照)。サブセット配置ポリシ決定部14は、サブセットID:1が実行順序1234で順序の先頭である分割1で1回使用され、分割2では使用されないため、連続使用回数:1とする。同様に、サブセット配置ポリシ決定部14は、サブセットID:2の連続使用回数:2を取得し(符号A2参照)、サブセットID:3の連続使用回数:4を取得し(符号A3参照)、サブセットID:9の連続使用回数:3を取得する(符号A4参照)。なお、サブセット配置ポリシ決定部14は、サブセットID:4の連続使用回数:2、サブセットID:6の連続使用回数:1、サブセットID:5,7,8の連続使用回数:0或いは“-”(無し)、をそれぞれ取得する。
以上より、サブセット配置ポリシ決定部14は、符号Aについて、連続使用回数の多い上位4個(=高速メモリ部サブセット数)のサブセットID:0,2,3,9と、当該4個の連続使用回数の合計である13回を取得する。
同様に、サブセット配置ポリシ決定部14は、符号Bについて、連続使用回数の多い上位4個のサブセットID:0,2,3,4(符号B1~B4参照)と、当該4個の連続使用回数の合計である14回を取得する。
サブセット配置ポリシ決定部14は、分割数:4個である場合、4!=24通りの実行順序のそれぞれについて、高速メモリ部サブセット数分のサブセットIDと連続使用回数の合計値とを取得する。
なお、連続使用回数の多い上位[高速メモリ部サブセット数]個のサブセット120の特定において、連続使用回数が同数のサブセット120が存在する場合、サブセット配置ポリシ決定部14は、所定の優先順に応じてサブセット120を選択してよい。一例として、サブセット配置ポリシ決定部14は、サブセットIDが若い(小さい)サブセット120を優先的に選択してよい。
全ての実行順序について、サブセットIDと連続使用回数の合計値とを取得すると、サブセット配置ポリシ決定部14は、取得した連続使用回数の合計値が複数の実行順序の中で最多となる実行順序を特定する。
そして、サブセット配置ポリシ決定部14は、特定した実行順序を、分割実行順序リスト11dに登録するとともに、特定した実行順序において分割間で連続して使用される回数が多い上位所定個数のサブセットIDを、初期配置IDリスト11cに登録する。
このように、サブセット配置ポリシ決定部14は、連続使用回数の合計が最大となる候補パターンの実行順序を、交差検証処理の複数の分割の実行順序に決定する。
初期配置IDリスト11cは、交差検証処理の開始前に高速メモリ部11に配置される(初期配置される)サブセット120を示す情報であり、図3に例示するサブセット11aを特定するための情報である。
分割実行順序リスト11dは、交差検証処理の実行順序を示す情報である。すなわち、分割実行順序リスト11dは、交差検証処理部13により仮に設定された実行順序(図4の例では実行順序1234)の代替となる(更新後の)実行順序である。
図7は、初期配置IDリスト11c及び分割実行順序リスト11dの一例を示す図である。図7では、実行順序1243の連続使用回数の合計値が、複数の実行順序の中で最多である場合を示す。
図7に例示するように、サブセット配置ポリシ決定部14は、分割実行順序リスト11dに、特定した実行順序1243の分割ID{1,2,4,3}を登録する。また、サブセット配置ポリシ決定部14は、初期配置IDリスト11cに、実行順序1243で取得した所定個数のサブセット120のサブセットID{0,2,3,4}をセットする。
以上により、サブセット配置ポリシ決定部14は、交差検証における訓練及び精度評価の複数の繰り返しの中で、特定のサブセット120が連続して使用される回数が最多となるような交差検証処理の実行順序と、当該特定のサブセット120(図6参照)とを決定できる。アクセス回数の多い特定のサブセット120は、高速メモリ部11に配置されることで、高速メモリ部11へのアクセス回数を増加させることができる。
換言すれば、サブセット配置ポリシ決定部14は、特定のサブセット120として、高速メモリ部11に初期配置するサブセット11a(図3参照)を決定するのである。
なお、複数のサブセット120のうちの、高速メモリ部11に配置されないサブセット120は、図3に例示する低速メモリ部12内のサブセット12aである。サブセット12aは、交差検証における訓練及び精度評価の複数の繰り返しの中で、使用される回数が比較的少ないサブセット120となる。
(入替IDリスト11e及び入替タイミング11fの決定処理)
上述した決定処理で得られた初期配置IDリスト11cは、実行順序の先頭の分割1から連続して使用される連続使用回数に基づき算出される。このため、交差検証処理が進み、実行順序で後半の分割(図7の例では分割3等)になるほど、初期配置IDリスト11c内のサブセット120が訓練サブセット121又は検証サブセット122としてアクセスされる可能性が低下する。
そこで、サブセット配置ポリシ決定部14は、入替IDリスト11e及び入替タイミング11fを決定する。
入替タイミング11fは、実行順序で後半の分割においてアクセスされる可能性の低いサブセット11aと、実行順序で後半の分割においてアクセスされる可能性の高いサブセット12aとを入れ替えるタイミングを示す情報である。換言すれば、入替タイミング11fは、高速メモリ部11と低速メモリ部12との間でサブセット120の入れ替え(階層制御)を行なうタイミングを示す情報である。
入替IDリスト11eは、入替タイミング11fにおいて、高速メモリ部11と低速メモリ部12との間で入れ替える対象となるサブセット120を選択するための情報である。
図8は、入替タイミング11fの決定処理の一例を説明するための図である。サブセット配置ポリシ決定部14は、決定した実行順序1243において、入替タイミング11fを設定する複数の入替タイミング候補を決定する。複数の入替タイミング候補は、複数の分割の実行順序におけるステップ間の複数のタイミングの一例である。図8において、符号Cは、分割1と分割2との間に設けられた入替タイミング候補(「入替タイミング1」と表記)を示す。符号Dは、分割4と分割3との間に設けられた入替タイミング候補(「入替タイミング3」と表記)を示す。
サブセット配置ポリシ決定部14は、各入替タイミング候補について、入替タイミング候補以前の1以上のステップ(実行順序1243の前半部分)の合計使用回数と、入替タイミング候補以降の1以上のステップ(実行順序1243の後半部分)の合計使用回数との差を算出する。
例えば、符号Cでは、サブセット配置ポリシ決定部14は、入替タイミング1以前(前半部分)においてサブセットID:0,2,3,4が訓練サブセット121又は検証サブセット122として使用される合計使用回数:4(C1及びC2参照)を取得する。また、サブセット配置ポリシ決定部14は、入替タイミング1以降(後半部分)におけるサブセットID:0,2,3,4の合計使用回数:10(C3及びC4参照)を取得する。そして、サブセット配置ポリシ決定部14は、前半部分の合計使用回数:4から後半部分の合計使用回数:10を減じた-6を算出する。
また、例えば、符号Dでは、サブセット配置ポリシ決定部14は、入替タイミング3以前(前半部分)におけるサブセットID:0,2,3,4の合計使用回数:12(D1及びD2参照)を取得する。また、サブセット配置ポリシ決定部14は、入替タイミング3以降(後半部分)におけるサブセットID:0,2,3,4の合計使用回数:2(D3及びD4参照)を取得する。そして、サブセット配置ポリシ決定部14は、前半部分の合計使用回数:12から後半部分の合計使用回数:2を減じた10を算出する。
なお、図8に例示するように、分割2と分割4との間の入替タイミング2については、サブセット配置ポリシ決定部14は、前半部分の合計使用回数:8から後半部分の合計使用回数:6を減じた2を算出する。
そして、サブセット配置ポリシ決定部14は、複数の入替タイミング候補の中から、算出した差分が最大となる入替タイミング3を示す“3”を入替タイミング11fにセットする。
このように、サブセット配置ポリシ決定部14は、高速メモリ部11内のサブセット11aへのアクセス回数が多い分割4と、高速メモリ部11内のサブセット11aへのアクセス回数が少ない分割3との間の境界となる入替タイミング11fを特定する。これにより、入替タイミング11fよりも前にサブセット11aへのアクセスを集中させ、サブセット11aへのアクセス回数が減少する入替タイミング11fにおいて、高速メモリ部11に格納するサブセット120を入れ替えることができる。換言すれば、入替タイミング11f以降における高速メモリ部11へのアクセス回数の減少を抑制(低速メモリ部12へのアクセス回数の増加を減少)させることができる。
図9は、入替IDリスト11eの取得例を説明するための図である。サブセット配置ポリシ決定部14は、複数のサブセット120のサブセットIDを、入替タイミング11f後(符号E1参照)の使用回数の降順にソートした入替IDリスト11eを生成する。
入替IDリスト11eは、入替タイミング11f以降の1以上のステップにおける複数のサブセット120の各々が使用される回数に応じた順序で、複数のサブセット120の各々の識別情報をソートした第2情報の一例である。
なお、複数のサブセット120間で使用回数が同一である場合、サブセット配置ポリシ決定部14は、所定の優先順に応じてサブセットIDをソートしてよい。一例として、サブセット配置ポリシ決定部14は、サブセットIDが若い(小さい)サブセットIDを優先的にリストの上位に配置してよい。
図9の例では、サブセットID:0,1,3,5,6,8,9の使用回数がいずれも1(入替タイミング11f後の回数として最大)であるため、サブセット配置ポリシ決定部14は、これらをリストの上位から順に入替IDリスト11eにセットする。また、サブセットID:2,4,7の使用回数がいずれも0であるため、サブセット配置ポリシ決定部14は、これらをサブセットID:9に続けて入替IDリスト11eにセットする。
入替IDリスト11eには、入替タイミング11f後の分割(繰り返し)の回数xに応じて、使用回数x,x-1,・・・,1,0の順(降順)に、サブセットIDがセットされてよい。図9ではx=1の例を示すが、例えば、x=2の場合(分割2と分割4との間が入替タイミング11fとなった場合)、入替IDリスト11eには、{0,1,3,5,6,2,4,8,9,7}がセットされる。
以上のように、サブセット配置ポリシ決定部14は、入替タイミング11f後の使用回数が最多のサブセットIDが先頭に位置し、入替タイミング11f後の使用回数が最少のサブセットIDが末尾に位置するように、入替IDリスト11eを設定する。
(サブセット配置部15へのサブセット配置ポリシ110の通知処理)
サブセット配置ポリシ決定部14は、上述した処理によりサブセット配置ポリシ110を決定すると、当該サブセット配置ポリシ110をサブセット配置部15に通知する。
図5~図9を参照して説明した例では、サブセット配置ポリシ110は、以下の情報を含む。
初期配置IDリスト11c:{0,2,3,4}
分割実行順序リスト11d:{1,2,4,3}
入替IDリスト11e:{0,1,3,5,6,8,9,2,4,7}
入替タイミング11f:3
サブセット配置部15は、サブセット配置ポリシ110に基づき、高速メモリ部11へのサブセット11aの配置処理を行なう。
ここで、上述したように、階層型メモリシステム20においては、HW又はプロセッサ10aが実行するOSにより、高速メモリ21及び低速メモリ22間のデータ配置制御、例えば、LRUアルゴリズムによるキャッシュ制御が行なわれる。
LRUアルゴリズムによるキャッシュ制御が実行されると、初期配置IDリスト11cに基づき高速メモリ部11にサブセット11aが配置されても、入替タイミング11fよりも前に、サブセット11aが低速メモリ部12に追い出される可能性がある。
そこで、サブセット配置部15は、サブセット配置ポリシ決定部14からサブセット配置ポリシ110を通知されると、LRUアルゴリズムによるキャッシュ制御を無効化してよい。一例として、高速メモリ21がDRAMであり、低速メモリ22がSSDである場合、サブセット配置部15は、OSのスワップ機能を無効化してよい。或いは、高速メモリ21がDRAMであり、低速メモリ22がNVDIMMである場合、サブセット配置部15は、NVDIMMの動作モードを、DRAMとNVDIMM(PM)とを別個のメモリとして利用する動作モードに設定してよい。
このように、サブセット配置部15は、高速メモリ21と低速メモリ22とを別々のメモリ(或いはメモリ及びストレージ)として扱った上で、別々のメモリへのサブセット配置処理を、サブセット120へのアクセスパターンに基づき実行するのである。
図10は、サブセット配置処理の一例を説明するための図である。図10において、符号Fは、サブセット120の初期配置タイミングにおける配置処理の一例を示し、符号Gは、サブセット120の入替タイミング11fにおける配置処理の一例を示す。図10では、高速メモリ部11に配置されるサブセット120の背景を細斜線で示し、低速メモリ部12に配置されるサブセット120の背景を濃い網掛けで示す。
(初期配置タイミングにおけるサブセット配置処理)
サブセット配置部15は、符号Fに示すように、初期配置IDリスト11c内のサブセット120(サブセットID:0,2,3,4)を、サブセット11a(図3参照)として、低速メモリ部12から高速メモリ部11に配置(移動)する。サブセット配置部15は、低速メモリ部12のサブセット120からサブセット11aを削除してもよい。
初期配置IDリスト11cに含まれないサブセット120(サブセットID:1,5,6,7,8,9)は、サブセット12a(図3参照)として、低速メモリ部12に配置される。なお、図3では、便宜上、サブセット120とサブセット12aとを区別して記載するが、サブセット12aは、複数のサブセット120のうちの、高速メモリ部11に配置されないサブセット120を意味してよい。すなわち、複数のサブセット120から複製等によりサブセット12aを生成する必要はない。
サブセット配置部15は、サブセット120の初期配置処理が完了すると、交差検証処理部13に対して、入替タイミング11fまでの交差検証処理の実行を指示してよい。
このように、サブセット配置部15は、初期配置タイミングにおいて、サブセット配置ポリシ決定部14が決定した実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセット120を、高速メモリ部11に配置する。
(入替タイミング11fにおけるサブセット配置処理)
サブセット配置部15は、入替タイミング11fの到来を検出すると、符号Gに示すように、入替IDリスト11eに基づき、低速メモリ部12上のサブセット12aの配置と、高速メモリ部11上のサブセット11aの配置とを入れ替える。
例えば、サブセット配置部15は、入替IDリスト11eの先頭に近い低速メモリ部12上のサブセット12aと、入替IDリスト11eの末尾に近い高速メモリ部11上の未使用のサブセット11aとの配置を入れ替える。
入替IDリスト11eの末尾に近い高速メモリ部11上の未使用のサブセット11aは、高速メモリ部11に格納された所定個数のサブセット11aのうちの入替タイミング11f以降の1以上のステップにおいて使用されない第1サブセットの一例である。また、入替IDリスト11eの先頭に近い低速メモリ部12上のサブセット12aは、低速メモリ部12に格納されたサブセット12aのうちの入替タイミング11f以降の1以上のステップにおいて使用される第2サブセットの一例である。
図10の例では、サブセット配置部15は、入替IDリスト11eの先頭に近い低速メモリ部12上のサブセットID:1と、入替IDリスト11eの末尾に近い高速メモリ部11上のサブセットID:4との配置を入れ替える(符号G1参照)。
また、サブセット配置部15は、入替IDリスト11eの先頭に近い低速メモリ部12上のサブセットID:5と、入替IDリスト11eの末尾に近い高速メモリ部11上のサブセットID:2との配置を入れ替える(符号G2参照)。
なお、配置の入れ替えとは、2つのサブセット120が格納される階層(高速メモリ部11及び低速メモリ部12)を入れ替えることを意味してよい。例えば、サブセット配置部15は、高速メモリ部11上のサブセット11aの格納位置(アドレス)に、低速メモリ部12上のサブセット12aを格納してもよいし、高速メモリ部11上の当該格納位置とは異なる空き領域に低速メモリ部12上のサブセット12aを格納してもよい。
サブセット配置部15は、例えば、入替IDリスト11eの先頭及び末尾から、配置の入れ替えの条件に合致するサブセットIDを探索してよい。サブセット配置部15は、条件に合致し配置を入れ替えたサブセットID、及び、条件に合致しないサブセットIDを、入替IDリスト11eから削除してよい。
そして、サブセット配置部15は、入替IDリスト11eの探索において、入替IDリスト11eの末尾のサブセット120の入替タイミング11f後の使用回数が0ではなくなった場合に、サブセットIDの探索を終了してよい。入替IDリスト11eの末尾のサブセット120は、高速メモリ部11に配置されている場合、低速メモリ部12に移動される(追い出される)候補である。しかし、当該末尾のサブセット120の入替タイミング11f後の使用回数が0ではない(未使用サブセット123ではない)ということは、当該末尾のサブセット120が高速メモリ部11でアクセスされる、換言すれば低速メモリ部12への移動が不要だからである。
サブセット配置部15は、入替タイミング11fにおけるサブセット120の配置の入れ替え処理が完了すると、交差検証処理部13に対して、入替タイミング11f以降の交差検証処理の実行を指示してよい。
〔B〕動作例
次に、図11及び図12を参照して、上述した一実施形態に係る交差検証装置1の動作例を説明する。
〔B-1〕サブセット配置ポリシの決定処理
図11は、一実施形態に係る交差検証装置1によるサブセット配置ポリシ110の決定処理の動作例を説明するためのフローチャートである。なお、交差検証処理部13は、交差検証の処理要求に応じて、データセットを複数のサブセット120に分割し、サブセット使用リスト11bを生成した状態であるものとする。
図11に例示するように、サブセット配置ポリシ決定部14は、交差検証処理部13からサブセット使用リスト11bを取得する(ステップS1)。
サブセット配置ポリシ決定部14は、サブセット配置ポリシ110を初期化する(ステップS2)。例えば、サブセット配置ポリシ決定部14は、初期配置IDリスト11c、分割実行順序リスト11d及び入替IDリスト11eを空にするとともに、入替タイミング11fに“-1”をセットする。
サブセット配置ポリシ決定部14は、高速メモリ部11の空き容量(空き記憶領域のサイズ)を1個あたりのサブセット120のサイズで除算(小数点以下切り捨て)して、高速メモリ部サブセット数を算出する(ステップS3)。
サブセット配置ポリシ決定部14は、サブセット使用リスト11bの全ての分割実行順序において、連続使用回数の合計が最大となる、高速メモリ部サブセット数分のサブセットID及び合計回数を取得する(ステップS4)。
サブセット配置ポリシ決定部14は、連続使用回数の合計が最大の分割実行順序を分割実行順序リスト11dに登録し、当該分割実行順序について取得したサブセットIDを初期配置IDリスト11cに登録する(ステップS5)。
サブセット配置ポリシ決定部14は、複数の入替タイミング候補の中から、初期配置IDリスト11cに含まれるサブセット120の前半部分の合計使用回数と後半部分の合計使用回数との差が最大となる入替タイミング11fを設定する(ステップS6)。
サブセット配置ポリシ決定部14は、入替タイミング11fの使用回数でサブセットIDを降順ソートした入替IDリスト11eを作成する(ステップS7)。
サブセット配置ポリシ決定部14は、サブセット配置部15にサブセット配置ポリシ110の決定処理の完了通知を送信し(ステップS8)、サブセット配置ポリシ110の決定処理が終了する。
〔B-2〕サブセットの配置処理
図12は、一実施形態に係る交差検証装置1によるサブセット120の配置処理の動作例を説明するためのフローチャートである。
図12に例示するように、サブセット配置部15は、サブセット配置ポリシ決定部14から完了通知を受信する(ステップS11)。サブセット配置部15は、LRUアルゴリズムによるキャッシュ制御を無効化する。キャッシュ制御の無効化のタイミングは、ステップS11よりも前であってもよい。
サブセット配置部15は、初期配置IDリスト11c内のサブセット120をサブセット11aとして低速メモリ部12から高速メモリ部11に配置する(ステップS12)。
サブセット配置部15は、交差検証処理部13に対して、分割実行順序リスト11dの順に、交差検証処理の実行を指示する。交差検証処理部13は、分割実行順序リスト11dに基づき交差検証処理を実行する(ステップS13)。
サブセット配置部15は、1つの分割について交差検証処理の実行が完了すると、実行済みの分割数が入替タイミング11f(図10の例では3)と一致するか否かを判定する(ステップS14)。
実行済みの分割数が入替タイミング11fと一致しない場合(ステップS14でNO)、処理がステップS22に移行する。
実行済みの分割数が入替タイミング11fと一致する場合(ステップS14でYES)、サブセット配置部15は、入替IDリスト11eの末尾のサブセット120の入替タイミング11f後の使用回数が0か否かを判定する(ステップS15)。
使用回数が0である場合(ステップS15でYES)、サブセット配置部15は、入替IDリスト11eの先頭のサブセット120が低速メモリ部12に配置されているか否かを判定する(ステップS16)。
先頭のサブセット120が低速メモリ部12に配置されていない場合(ステップS16でNO)、サブセット配置部15は、入替IDリスト11eの先頭を削除し(ステップS17)、処理がステップS16に移行する。
先頭のサブセット120が低速メモリ部12に配置されている場合(ステップS16でYES)、サブセット配置部15は、入替IDリスト11eの末尾のサブセット120が高速メモリ部11に配置されているか否かを判定する(ステップS18)。なお、入替IDリスト11eの末尾のサブセット120は、ステップS15にて入替タイミング後の使用回数が0であると判定されたサブセットである。
入替IDリスト11eの末尾のサブセット120が高速メモリ部11に配置されていない場合(ステップS18でNO)、サブセット配置部15は、入替IDリスト11eの末尾を削除する(ステップS19)。そして、処理がステップS18に移行する。
入替IDリスト11eの末尾のサブセット120が高速メモリ部11に配置されている場合(ステップS18でYES)、サブセット配置部15は、サブセット120の配置の入れ替えを行なう(ステップS20)。例えば、サブセット配置部15は、入替IDリスト11eの先頭の低速メモリ部12上のサブセット120と、末尾の高速メモリ部11上のサブセット120(未使用サブセット123)との配置を入れ替える。
そして、サブセット配置部15は、入替IDリスト11eの先頭及び末尾を削除し(ステップS21)、処理がステップS15に移行する。
ステップS15において、入替IDリスト11eの末尾のサブセット120の入替タイミング11f後の使用回数が0ではない場合(ステップS15でNO)、処理がステップS22に移行する。
ステップS22において、サブセット配置部15は、実行済みの分割数が全体の分割数(図10の例では4)と一致するか否かを判定する。
実行済みの分割数が全体の分割数と一致しない場合(ステップS22でNO)、処理がステップS13に移行し、サブセット配置部15は、交差検証処理部13により、分割実行順序リスト11dの次の分割に係る交差検証処理を実行する。
実行済みの分割数が全体の分割数と一致する場合(ステップS22でYES)、サブセット120の配置処理が完了する。
〔C〕一実施形態の効果
以上のように、一実施形態に係る交差検証装置1は、サブセット使用リスト11bに基づき、複数のステップの実行順序の候補パターンごとに、各サブセット120が候補パターンにおいてステップ間で連続して使用される回数を算出する。また、交差検証装置1は、連続して使用される回数の合計が最大となる候補パターンの実行順序を、交差検証処理の複数のステップの実行順序に決定する。そして、交差検証装置1は、決定した実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセット120を、高速メモリ部11に配置する。
これにより、交差検証装置1は、アクセス回数(使用される回数)が多い上位所定個数のサブセット120を高速メモリ部11に初期配置することができる。また、交差検証装置1は、所定個数のサブセット120のアクセス回数の合計が最大となるように、交差検証処理の複数のステップの実行順序を決定することができる。従って、高速メモリ部11へのアクセス回数を増加させ、交差検証処理の高速化を実現できる。
図13は、比較例に係る交差検証処理の一例を説明するための図である。図13では、一実施形態に係る手法を適用せず、LRUアルゴリズムによるキャッシュ制御により、高速メモリ部11と低速メモリ部12との間でサブセット120が配置される例を示す。
図13の例において、分割1では、サブセットID:0,1,3,4,6,2,9の順でサブセット120が使用される。
高速メモリ部サブセット数=4である場合、分割2の交差検証処理の開始時点において、高速メモリ部11に配置(キャッシュ)されているサブセット120は、キャッシュ順(LRU順)にサブセットID:4,6,2,9となる。
分割2の交差検証処理において、サブセットID:0へのアクセスは、低速メモリ部12へのアクセスとなる。その後、キャッシュ制御により、高速メモリ部11に格納されるサブセット120は、サブセットID:6,2,9,0となる。
サブセットID:2へのアクセスは、高速メモリ部11へのアクセスとなり、キャッシュ制御においてLRU順がサブセットID:6,9,0,2に更新される。
サブセットID:3へのアクセスは、低速メモリ部12へのアクセスとなる。その後、キャッシュ制御により、高速メモリ部11に格納されるサブセット120は、サブセットID:9,0,2,3となる。
サブセットID:4へのアクセスは、低速メモリ部12へのアクセスとなる。その後、キャッシュ制御により、高速メモリ部11に格納されるサブセット120は、サブセットID:0,2,3,4となる。
このように、LRUアルゴリズムによるキャッシュ制御では、高速メモリ部11にキャッシュされたサブセット120が後続の分割における交差検証処理において再度アクセスされる前に、低速メモリ部12に追い出されることになる。従って、低速メモリ部12へのアクセス頻度が増加し、交差検証処理を実行するコンピュータの性能が律速される。
これに対し、一実施形態に係る交差検証装置1によれば、図10に例示するように、初期配置タイミング~入替タイミング11fにおいて、アクセス回数が最大となる所定個数のサブセット11aが、高速メモリ部11上に固定的に配置される。また、入替タイミング11f以降は、高速メモリ部11に初期配置されたサブセット11aへのアクセス回数の変化(減少)を見越して、入替タイミング11f以降のアクセス回数が最大となるサブセット12aが、高速メモリ部11上に配置し直される。
これにより、一実施形態に係る交差検証装置1によれば、比較例よりも高速に交差検証処理を実行することができる。
〔D〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図3に示す交差検証処理部13、サブセット配置ポリシ決定部14及びサブセット配置部15は、それぞれ任意の組み合わせで併合してもよく、分割してもよい。また、高速メモリ部11が記憶する各リスト11b~11eは、それぞれ任意の組み合わせで併合した情報であってもよく、分割した情報であってもよい。
また、入替IDリスト11eは、サブセット120を合計使用回数の降順にソートしたリストであるものとして説明したが、これに限定されるものではなく、サブセット120を合計使用回数の昇順にソートした情報であってもよい。この場合、サブセット配置部15による、入替タイミング11fにおける配置の入れ替えは、上述した説明における「先頭」と「末尾」とを入れ替えて実施されてよい。
〔E〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
処理をコンピュータに実行させる、交差検証プログラム。
(付記2)
前記第2メモリの空き記憶領域を前記サブセットのデータサイズで除算した商を、前記所定個数として取得する、
処理を前記コンピュータに実行させる、付記1に記載の交差検証プログラム。
(付記3)
前記複数のステップの実行順序を決定する処理は、前記回数が多い上位所定個数のサブセットの前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定する処理を含む、
付記1又は付記2に記載の交差検証プログラム。
(付記4)
前記複数のステップの実行順序におけるステップ間の複数のタイミングのうち、前記タイミング以前の1以上のステップにおいて前記所定個数のサブセットが使用される回数から、前記タイミング以降の1以上のステップにおいて前記所定個数のサブセットが使用される回数を減じた差が最大となるタイミングを特定し、
特定した前記タイミングにおいて、前記第2メモリに格納された前記所定個数のサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用されない第1サブセットの配置と、前記第1メモリに格納されたサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用される第2サブセットの配置とを入れ替える、
処理を前記コンピュータに実行させる、付記1~付記3のいずれか1項に記載の交差検証プログラム。
(付記5)
前記特定したタイミング以降の1以上のステップにおける前記複数のサブセットの各々が使用される回数に応じた順序で、前記複数のサブセットの各々の識別情報をソートした第2情報を生成する、
処理を前記コンピュータに実行させ、
前記配置を入れ替える処理は、前記第2情報に基づき、前記第1サブセットと、前記第2サブセットとを選択する処理を含む、
付記4に記載の交差検証プログラム。
(付記6)
機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
処理をコンピュータが実行する、交差検証方法。
(付記7)
前記第2メモリの空き記憶領域を前記サブセットのデータサイズで除算した商を、前記所定個数として取得する、
処理を前記コンピュータが実行する、付記6に記載の交差検証方法。
(付記8)
前記複数のステップの実行順序を決定する処理は、前記回数が多い上位所定個数のサブセットの前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定する処理を含む、
付記6又は付記7に記載の交差検証方法。
(付記9)
前記複数のステップの実行順序におけるステップ間の複数のタイミングのうち、前記タイミング以前の1以上のステップにおいて前記所定個数のサブセットが使用される回数から、前記タイミング以降の1以上のステップにおいて前記所定個数のサブセットが使用される回数を減じた差が最大となるタイミングを特定し、
特定した前記タイミングにおいて、前記第2メモリに格納された前記所定個数のサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用されない第1サブセットの配置と、前記第1メモリに格納されたサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用される第2サブセットの配置とを入れ替える、
処理を前記コンピュータが実行する、付記6~付記8のいずれか1項に記載の交差検証方法。
(付記10)
前記特定したタイミング以降の1以上のステップにおける前記複数のサブセットの各々が使用される回数に応じた順序で、前記複数のサブセットの各々の識別情報をソートした第2情報を生成する、
処理を前記コンピュータが実行し、
前記配置を入れ替える処理は、前記第2情報に基づき、前記第1サブセットと、前記第2サブセットとを選択する処理を含む、
付記9に記載の交差検証方法。
(付記11)
機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
制御部を備える、情報処理装置。
(付記12)
前記制御部は、前記第2メモリの空き記憶領域を前記サブセットのデータサイズで除算した商を、前記所定個数として取得する、
付記11に記載の情報処理装置。
(付記13)
前記制御部は、前記複数のステップの実行順序を決定する処理において、前記回数が多い上位所定個数のサブセットの前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定する、
付記11又は付記12に記載の情報処理装置。
(付記14)
前記制御部は、
前記複数のステップの実行順序におけるステップ間の複数のタイミングのうち、前記タイミング以前の1以上のステップにおいて前記所定個数のサブセットが使用される回数から、前記タイミング以降の1以上のステップにおいて前記所定個数のサブセットが使用される回数を減じた差が最大となるタイミングを特定し、
特定した前記タイミングにおいて、前記第2メモリに格納された前記所定個数のサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用されない第1サブセットの配置と、前記第1メモリに格納されたサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用される第2サブセットの配置とを入れ替える、
付記11~付記13のいずれか1項に記載の情報処理装置。
(付記15)
前記制御部は、
前記特定したタイミング以降の1以上のステップにおける前記複数のサブセットの各々が使用される回数に応じた順序で、前記複数のサブセットの各々の識別情報をソートした第2情報を生成し、
前記配置を入れ替える処理において、前記第2情報に基づき、前記第1サブセットと、前記第2サブセットとを選択する、
付記14に記載の情報処理装置。
1 交差検証装置
10 コンピュータ
10a プロセッサ
10b メモリ
10c 記憶部
10d IF部
10e I/O部
10f 読取部
10g プログラム
10h 記録媒体
11 高速メモリ部
11a、12a、120 サブセット
11b サブセット使用リスト
11c 初期配置IDリスト
11d 分割実行順序リスト
11e 入替IDリスト
11f 入替タイミング
110 サブセット配置ポリシ
12 低速メモリ部
121 訓練サブセット
122 検証サブセット
123 未使用サブセット
13 交差検証処理部
14 サブセット配置ポリシ決定部
15 サブセット配置部
16 制御部
20 階層型メモリシステム
21 高速メモリ
22 低速メモリ

Claims (7)

  1. 機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
    前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
    決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
    処理をコンピュータに実行させる、交差検証プログラム。
  2. 前記第2メモリの空き記憶領域を前記サブセットのデータサイズで除算した商を、前記所定個数として取得する、
    処理を前記コンピュータに実行させる、請求項1に記載の交差検証プログラム。
  3. 前記複数のステップの実行順序を決定する処理は、前記回数が多い上位所定個数のサブセットの前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定する処理を含む、
    請求項1又は請求項2に記載の交差検証プログラム。
  4. 前記複数のステップの実行順序におけるステップ間の複数のタイミングのうち、前記タイミング以前の1以上のステップにおいて前記所定個数のサブセットが使用される回数から、前記タイミング以降の1以上のステップにおいて前記所定個数のサブセットが使用される回数を減じた差が最大となるタイミングを特定し、
    特定した前記タイミングにおいて、前記第2メモリに格納された前記所定個数のサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用されない第1サブセットの配置と、前記第1メモリに格納されたサブセットのうちの前記特定したタイミング以降の1以上のステップにおいて使用される第2サブセットの配置とを入れ替える、
    処理を前記コンピュータに実行させる、請求項1~請求項3のいずれか1項に記載の交差検証プログラム。
  5. 前記特定したタイミング以降の1以上のステップにおける前記複数のサブセットの各々が使用される回数に応じた順序で、前記複数のサブセットの各々の識別情報をソートした第2情報を生成する、
    処理を前記コンピュータに実行させ、
    前記配置を入れ替える処理は、前記第2情報に基づき、前記第1サブセットと、前記第2サブセットとを選択する処理を含む、
    請求項4に記載の交差検証プログラム。
  6. 機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
    前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
    決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
    処理をコンピュータが実行する、交差検証方法。
  7. 機械学習モデルの交差検証処理の各ステップにおける、前記交差検証処理に使用される複数のサブセットのアクセスパターンを示す第1情報であって、前記ステップごとに使用されるサブセットを示す前記第1情報に基づき、複数の前記ステップの実行順序の候補パターンごとに、各サブセットが前記候補パターンにおいてステップ間で連続して使用される回数を算出し、
    前記回数の合計が最大となる候補パターンの実行順序を、前記交差検証処理の前記複数のステップの実行順序に決定し、
    決定した前記実行順序においてステップ間で連続して使用される回数が多い上位所定個数のサブセットを、前記複数のサブセットが格納される第1メモリよりも高速なアクセスが可能である第2メモリに配置する、
    制御部を備える、情報処理装置。
JP2022011684A 2022-01-28 2022-01-28 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置 Pending JP2023110317A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022011684A JP2023110317A (ja) 2022-01-28 2022-01-28 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置
US17/959,344 US20230244608A1 (en) 2022-01-28 2022-10-04 Computer-readable recording medium having stored therein cross validation program, method for cross validation, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022011684A JP2023110317A (ja) 2022-01-28 2022-01-28 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2023110317A true JP2023110317A (ja) 2023-08-09

Family

ID=87432038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022011684A Pending JP2023110317A (ja) 2022-01-28 2022-01-28 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置

Country Status (2)

Country Link
US (1) US20230244608A1 (ja)
JP (1) JP2023110317A (ja)

Also Published As

Publication number Publication date
US20230244608A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
CN108804031B (zh) 最佳记录查找
KR102165776B1 (ko) 시스템 성능 향상을 위한 적응적 값 범위 프로파일링
TWI627536B (zh) 用於具有調適分割之一共用快取之系統及方法
US9922060B2 (en) Disk optimized paging for column oriented databases
US20130007370A1 (en) Method and apparatus for minimizing working memory contentions in computing systems
US20180307433A1 (en) Storage system
US10366000B2 (en) Re-use of invalidated data in buffers
US20120030430A1 (en) Cache control apparatus, and cache control method
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
CN109791510B (zh) 在异构计算中管理数据流
CN109783012A (zh) 基于闪存的储存器及其控制器
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
JP2014056425A (ja) データ管理装置、データ管理システム、処理割当方法および処理割当プログラム
CN114489475A (zh) 分布式存储系统及其数据存储方法
US11010091B2 (en) Multi-tier storage
JP7438246B2 (ja) ハードウェアベースのメモリ圧縮
JP2023110317A (ja) 機械学習モデルの交差検証プログラム,交差検証方法及び情報処理装置
US11474938B2 (en) Data storage system with multiple-size object allocator for disk cache
WO2022002128A1 (zh) 一种读数据的方法、写数据的方法、设备和系统
US11803469B2 (en) Storing data in a log-structured format in a two-tier storage system
US11461225B2 (en) Storage device, control method of storage device, and storage medium
US20160313915A1 (en) Management apparatus, storage system, method, and computer readable medium
Wang et al. Virtualized resource image storage system based on data deduplication techniques
US11714753B2 (en) Methods and nodes for handling memory
US20230273728A1 (en) Storage control apparatus and method