JP-2026077982-A - 情報処理システム
Abstract
【課題】機械学習モデルの出力情報を高速に生成する技術を提供する。 【解決手段】情報処理システムが、少なくとも1つの第1のメモリと、少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、少なくとも1つの第2のメモリと、少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を有する。第1のプロセッサは、入力情報を機械学習モデルに入力することで、中間データを生成する。第2のプロセッサは、第1のプロセッサが生成した中間データの少なくとも一部を用いて、機械学習モデルの出力情報を生成する。第1のプロセッサの演算速度に対する第1のメモリのデータ転送速度の比は、第2のプロセッサの演算速度に対する第2のメモリのデータ転送速度の比よりも低い。 【選択図】図2
Inventors
- 的矢 知樹
Assignees
- 株式会社Preferred Networks
Dates
- Publication Date
- 20260513
- Application Date
- 20260309
- Priority Date
- 20241002
Claims (1)
- 少なくとも1つの第1のメモリと、 前記少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、 少なくとも1つの第2のメモリと、 前記少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を有し、 前記少なくとも1つの第1のプロセッサは、 入力情報を機械学習モデルに入力することで、中間データを生成し、 前記少なくとも1つの第2のプロセッサは、 前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成し、 前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低い、 情報処理システム。
Description
本開示は、情報処理システム、情報処理方法及びプログラムに関する。 大規模言語モデル(LLM; Large Language Model)等の機械学習モデルが知られている。大規模言語モデルの推論処理を効率的に実行するために、キーバリューキャッシュ(Key Value Cache)と呼ばれる中間データを生成する技術がある。 Insu Jang, "LLM Inference: Continuous Batching and PagedAttention", [online], [令和6年8月29日検索], インターネット<URL: https://insujang.github.io/2024-01-07/llm-inference-continuous-batching-and-pagedattention/> 図1は、機械学習モデルの推論処理の一例を説明するための図である。図2は、情報処理システムの全体構成の第1例を示すブロック図である。図3は、情報処理システムの全体構成の第2例を示すブロック図である。図4は、情報処理システムの全体構成の第3例を示すブロック図である。図5は、機械学習モデルの推論処理の一例を示すフローチャートである。図6は、コンピュータのハードウェア構成の一例を示すブロック図である。 以下、本開示の各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。 [第1実施形態] 本開示の第1実施形態は、機械学習モデルに基づいて所定のタスクを実行する情報処理システムの一例である。本実施形態では、機械学習モデルは、注意機構を有するニューラルネットワークを含んでもよい。注意機構を有するニューラルネットワークは、一例として、トランスフォーマー(Transformer)等とも呼ばれるニューラルネットワークでもよい。 機械学習モデルは、トランスフォーマーに限定されるものではない。機械学習モデルは、一例として、状態空間モデル(SSM; Space State Model)でもよい。機械学習モデルは、複数の機械学習モデルを含んで構成されてもよい。機械学習モデルは、一例として、mamba、jamba等を含んでもよい。機械学習モデルは、推論処理において中間的なデータを生成するモデルであれば、どのようなものでもよい。 機械学習モデルの一例であるトランスフォーマーの推論処理について、図1を参照しながら説明する。図1は、機械学習モデルの推論処理の一例を説明するための図である。 図1に示されるように、トランスフォーマーの推論処理は、プレフィル過程とデコード過程とに大別できる。プレフィル過程は、プロンプトと呼ばれる入力情報に基づいて、キーバリューキャッシュを生成する。デコード過程は、プレフィル過程で生成されたキーバリューキャッシュを用いて出力情報を生成する。プレフィル過程は、第1の処理の一例である。デコード過程は、第2の処理の一例である。 プレフィル過程では、入力されたプロンプトをトークン単位に分割し、先頭から1トークンずつトランスフォーマーに入力する。トランスフォーマーは、入力されたトークンそれぞれについて、フォワード処理を実行する。トランスフォーマーは、フォワード処理において、トークンごとにクエリベクトル、キーベクトル及びバリューベクトルを計算する。トランスフォーマーは、入力されたトークンそれぞれに対して1個のトークンを出力する。 トランスフォーマーは、トークンごとに計算されたキーベクトル及びバリューベクトルの配列をキャッシュする。キャッシュされたキーベクトル及びバリューベクトルの配列は、キーバリューキャッシュと呼ばれる。キーバリューキャッシュは、トランスフォーマーを構成する層ごとに生成される。各層のキーバリューキャッシュは、入力層に近い方から出力層に向かって順次計算される。図1の例では、トランスフォーマーはN層の隠れ層を含んでおり、第1層から第N層へ順次キーバリューキャッシュが生成されている。 なお、トークンとは、機械学習モデルが電子データを処理するときの処理単位であり、1トークンのデータ量は機械学習モデルの設計により異なり得る。トークンは、一例として、日本語1文字又は英語1単語であるが、出現頻度によっては、1文字が2トークンで表現されることもあれば、2以上の文字が1トークンで表現されることもある。 キャッシュとは、一例として、低速な記憶装置等から読み出したデータのうち、直近に読み込んだもの又は使用頻度が高いものを高速な記憶装置に複製する技術である。データを複製する高速な記憶装置、又は複製されたデータ自体をキャッシュと呼ぶこともある。すなわち、キーバリューキャッシュは、機械学習モデルがキーベクトル及びバリューベクトルを記憶する処理を含んでもよく、記憶されたキーベクトル及びバリューベクトルを含んでもよく、キーベクトル及びバリューベクトルが記憶された記憶領域を含んでもよい。 デコード過程では、プレフィル過程で最後に出力されたトークンをトランスフォーマーに入力する。トランスフォーマーは、プレフィル過程で生成されたキーバリューキャッシュを用いて、入力されたトークンに対してフォワード処理を実行する。フォワード処理で出力されたトークンは、再びトランスフォーマーに入力される。デコード過程は、前回のフォワード処理で出力されたトークンに対するフォワード処理を繰り返し実行することで、プロンプトに対する出力情報を生成する。すなわち、デコード過程は、自己回帰的にフォワード処理を実行することで、プロンプトに対する出力情報を生成する。 プレフィル過程は、計算順序依存性が低いため、入力されたトークンそれぞれについて、並列でフォワード処理を実行できる。一方、デコード過程は、計算順序依存性が高いため、フォワード処理を逐次実行しなければならず、メモリに読み書きするデータ量が多くなる。そのため、デコード過程の実行は、プレフィル過程の実行と比較して、演算量当たりのプロセッサのメモリバンド幅をより要求する。すなわち、プレフィル過程とデコード過程とを実行する場合、プレフィル過程は、演算律速であると言え、デコード過程は、メモリ律速であると言える。 なお、プレフィル過程は第1の処理の一例、デコード過程は第2の処理の一例であるが、第1の処理は、演算律速の度合いが第2の処理より相対的に大きな処理であってもよいし、第2の処理は、メモリ律速の度合いが第1の処理より相対的に大きな処理であってもよい。 従来技術では、機械学習モデルの推論処理は、同一のプロセッサで実行する。なお、同一のプロセッサとは、同種のプロセッサを複数用いることを含む。プレフィル過程とデコード過程とを同一のプロセッサで実行した場合、プレフィル過程ではメモリバンド幅が余剰し、デコード過程では演算性能が余剰する。言い替えると、機械学習モデルの推論処理を同一のプロセッサで実行すると、プロセッサの性能を有効に活用できない。したがって、機械学習モデルの推論処理は、効率化する余地がある。 本実施形態は、機械学習モデルの出力情報を高速に生成する技術を提供する。本実施形態では、情報処理システムは、演算速度に対するデータ転送速度の比が異なる2以上のプロセッサを備える。演算速度に対するデータ転送速度の比が相対的に高い(すなわち、演算性能が高い)第1のプロセッサは、入力情報を機械学習モデルに入力することで、中間データを生成し、中間データの少なくとも一部を第2のプロセッサへ送信する。演算速度に対するデータ転送速度の比が相対的に低い(すなわち、メモリバンド幅が大きい)第2のプロセッサは、第1のプロセッサから受信した中間データの少なくとも一部を用いて、機械学習モデルの出力情報を生成する。 中間データの生成は、演算律速となる。そのため、演算性能が高いプロセッサを用いると、中間データを高速に生成できる。出力情報の生成は、メモリ律速となる。そのため、メモリバンド幅が大きいプロセッサを用いると、出力情報を高速に生成できる。一の側面では、本実施形態によれば、機械学習モデルの推論処理を通じてプロセッサの性能を有効に活用できるため、機械学習モデルの出力情報を高速に生成できる。 <情報処理システムの全体構成> 本実施形態に係る情報処理システムの全体構成について、図2乃至図4を参照しながら説明する。 図2は、情報処理システムの全体構成の第1例を示すブロック図である。図2に示されるように、情報処理システム1000は、1台以上のサーバ装置10を含んでもよい。情報処理システム1000は、複数台のサーバ装置10を含んでもよい。 サーバ装置10は、1台以上の処理装置100及び1台以上の処理装置200を備えてもよい。サーバ装置10は、複数の処理装置100を備えてもよい。サーバ装置10は、複数の処理装置200を備えてもよい。サーバ装置10が備える処理装置100の数と処理装置200の数は、同一でもよく、異なってもよい。 サーバ装置10が複数の処理装置100を備える場合、複数の処理装置100によりクラスタを構成してもよい。クラスタを構成する複数の処理装置100は、並列処理を実行してもよい。複数の処理装置100は、並列処理したデータを結合して処理装置200に送信してもよい。 サーバ装置10が備える処理装置200の数は、サーバ装置10が備える処理装置100の数より多くてもよい。一例として、サーバ装置10は、1台の処理装置100と、複数の処理装置200とを備えてもよい。サーバ装置10が複数の処理装置200を備える場合、複数の処理装置200によりクラスタを構成してもよい。クラスタを構成する複数の処理装置200は、並列処理を実行してもよい。サーバ装置10が複数の処理装置200を備える場合、処理装置100は、複数の処理装置200それぞれにデータを送信してもよい。 処理装置100は、1以上のプロセッサ110及び1以上のメモリ120を備えてもよい。処理装置100は、複数のプロセッサ110及び複数のメモリ120を備えてもよい。プロセッサ110及びメモリ120は、電気的に接続されてもよい。プロセッサ110及びメモリ120は、相互にデータ通信可能に接続されてもよい。 処理装置200は、1以上のプロセッサ210及び1以上のメモリ220を備えてもよい。処理装置200は、複数のプロセッサ210及び複数のメモリ220を備えてもよい。プロセッサ210及びメモリ220は、電気的に接続されてもよい。プロセッサ210及びメモリ220は、相互にデータ通信可能に接続されてもよい。 処理装置100及び処理装置200は、サーバ装置10のバスBに接続されてもよい。処理装置100及び処理装置200は、バスBを介して相互にデータ通信可能に構成されてもよい。バスBは、処理装置100と処理装置200との間でデータ通信可能な専用の伝送路(インターコネクト)でもよい。バスBは、サーバ装置10が備えるシステムバスでもよい。 処理装置100及び処理装置200は、特定の演算を高速に行うことができる処理回路を含む装置であってもよい。処理装置100及び処理装置200は、汎用的な演算を行うことができる処理回路を含む装置であってもよい。特定の演算は、一例として、ニューラルネットワークの学習に多く用いられる積和演算等を含んでもよい。 処理装置100及び処理装置200は、一例として、1以上のグラフィックスプロセッシングユニット(GPU; Graphic Processing Unit)を備えるGPUパッケージ(例えば、GPUボード又はGPUカード)でもよい。処理装置100及び処理装置200は、一例として、1以上の中央演算処理装置(CPU; Central Processing Unit)を備えるCPUパッケージ(例え