JP7843975B1 - 情報処理システム、情報処理方法、プログラム及び記憶媒体 - Google Patents

情報処理システム、情報処理方法、プログラム及び記憶媒体

Info

Publication number
JP7843975B1
JP7843975B1 JP2026507626A JP2026507626A JP7843975B1 JP 7843975 B1 JP7843975 B1 JP 7843975B1 JP 2026507626 A JP2026507626 A JP 2026507626A JP 2026507626 A JP2026507626 A JP 2026507626A JP 7843975 B1 JP7843975 B1 JP 7843975B1
Authority
JP
Japan
Prior art keywords
processor
memory
machine learning
information processing
learning model
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.)
Active
Application number
JP2026507626A
Other languages
English (en)
Inventor
知樹 的矢
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.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
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 Preferred Networks Inc filed Critical Preferred Networks Inc
Application granted granted Critical
Publication of JP7843975B1 publication Critical patent/JP7843975B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Advance Control (AREA)

Abstract

情報処理システムが、少なくとも1つの第1のメモリと、少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、少なくとも1つの第2のメモリと、少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を有する。第1のプロセッサは、入力情報を機械学習モデルに入力することで、中間データを生成する。第2のプロセッサは、第1のプロセッサが生成した中間データの少なくとも一部を用いて、機械学習モデルの出力情報を生成する。第1のプロセッサの演算速度に対する第1のメモリのデータ転送速度の比は、第2のプロセッサの演算速度に対する第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つの第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のメモリのデータ転送速度の比よりも低く、第1のプロセッサと第2のプロセッサとは、異なる種類のプロセッサである
図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パッケージ(例えば、CPUボード又はCPUカード)でもよい。処理装置100及び処理装置200は、1以上の各種アクセラレータを備えてもよい。
処理装置100と処理装置200とは、同一の種類の処理装置であってもよく、異なる種類の処理装置であってもよい。一例として、処理装置100はGPUパッケージ又はアクセラレータを備えてもよく、処理装置200はCPUパッケージを備えてもよい。一例として、処理装置100は第1の種類のGPUパッケージを備えてもよく、処理装置200は第2の種類のGPUパッケージを備えてもよい。一例として、処理装置100は第1の種類のアクセラレータを備えてもよく、処理装置200は第2の種類のアクセラレータを備えてもよい。
メモリ120は、プロセッサ110の演算に用いられるデータ及びプロセッサ110の演算で得られたデータを記憶する記憶装置であってもよい。メモリ220は、プロセッサ210の演算に用いられるデータ及びプロセッサ210の演算で得られたデータを記憶する記憶装置であってもよい。メモリ120及びメモリ220は、一例として、DRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)でもよい。メモリ120及びメモリ220は、一例として、多数に積層された3次元構造のメモリでもよい。
メモリ120及びメモリ220は、機械学習モデルのパラメータを記憶してもよい。メモリ120及びメモリ220は、機械学習モデルのパラメータの少なくとも一部を記憶してもよい。メモリ120及びメモリ220は、機械学習モデルのすべてのパラメータを記憶してもよい。メモリ120に記憶されるパラメータと、メモリ220に記憶されるパラメータとは、同一であってもよく、異なってもよい。メモリ120は、プロセッサ110が実行する処理で必要なパラメータを記憶してもよい。メモリ220は、プロセッサ210が実行する処理で必要なパラメータを記憶してもよい。
処理装置100は、処理装置200と比較して、B/F比(Bytes/FLOPS)が低い。逆に言うと、処理装置200は、処理装置100と比較して、B/F比が高い。B/F比は、演算性能に対するメモリバンド幅の比である。メモリバンド幅は、メモリのデータ転送速度を示す指標の一例である。データ転送速度は、一例として、単位時間当たりにプロセッサがメモリに読み書き可能なデータ量でもよい。演算性能は、演算速度を示す指標の一例である。演算性能は、一例として、単位時間当たりにプロセッサが実行可能な浮動小数点演算の回数でもよい。演算性能は、演算結果となる浮動小数点数の精度により異なってもよい。
言い替えると、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比(データ転送速度/演算速度)は、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比よりも低い。逆に言うと、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比は、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比よりも高い。
処理装置100のB/F比と処理装置200のB/F比との差は、任意でよい。処理装置100のB/F比と処理装置200のB/F比との差は、一例として、10倍程度異なってもよい。一例として、処理装置100のB/F比は、1:1000(=0.001)程度であり、処理装置200のB/F比は、1:100(=0.01)程度でもよい。
メモリのデータ転送速度及びプロセッサの演算速度は、理論性能でもよく、所定の処理を実行するときの性能でもよい。理論性能は、メモリ及びプロセッサのカタログ値でもよい。所定の処理は、機械学習モデルに関する処理を含んでもよい。所定の処理は、一例として、機械学習モデルの推論処理、又は推論処理に含まれる1以上の演算を含んでもよい。
演算性能に対するデータ転送速度の比は、所定の処理全体を通じて評価した値でもよく、所定の処理を実行したときに単位時間当たりで評価した値でもよい。言い替えると、演算性能に対するデータ転送速度の比は、機械学習モデルに関する処理全体の総演算回数に対する、機械学習モデルに関する処理全体の総データ転送量の比でもよい。また、演算性能に対するデータ転送速度の比は、機械学習モデルに関する処理を実行したときの単位時間当たりの演算回数に対する、機械学習モデルに関する処理を実行したときの単位時間当たりのデータ転送量の比でもよい。
演算性能に対するデータ転送速度の比は、処理を実行するときに用いられるプロセッサの数とメモリの数の組み合わせに応じて、評価した値でもよい。第1の例として、演算性能に対するデータ転送速度の比は、1つのメモリと1つのプロセッサとを用いて処理を実行するときの性能でもよく、この場合の理論性能でもよい。第2の例として、演算性能に対するデータ転送速度の比は、1つのメモリと2つ以上のプロセッサとを用いて処理を実行するときの性能でもよく、この場合の理論性能でもよい。第3の例として、演算性能に対するデータ転送速度の比は、2つ以上のメモリと1つのプロセッサとを用いて処理を実行するときの性能でもよく、この場合の理論性能でもよい。第4の例として、演算性能に対するデータ転送速度の比は、2つ以上のメモリと2つ以上のプロセッサとを用いて処理を実行するときの性能でもよく、この場合の理論性能でもよい。
図3は、情報処理システムの全体構成の第2例を示すブロック図である。図3に示されるように、情報処理システム1000は、1台以上のサーバ装置10及び1台以上のサーバ装置20を含んでもよい。情報処理システム1000は、複数台のサーバ装置10を含んでもよい。情報処理システム1000は、複数台のサーバ装置20を含んでもよい。情報処理システム1000に含まれるサーバ装置10の数とサーバ装置20の数は、同一でもよく、異なってもよい。
サーバ装置10は、1台以上の処理装置100及びネットワークインタフェース130を備えてもよい。サーバ装置10は、複数の処理装置100を備えてもよい。処理装置100は、第1例と同様に構成されてよい。
サーバ装置20は、1台以上の処理装置200及びネットワークインタフェース230を備えてもよい。サーバ装置20は、複数の処理装置200を備えてもよい。処理装置200は、第1例と同様に構成されてよい。
ネットワークインタフェース130及びネットワークインタフェース230は、通信ネットワークNに接続されてもよい。処理装置100及び処理装置200は、通信ネットワークNを介して相互にデータ通信可能に構成されてもよい。通信ネットワークNは、ネットワークインタフェース130とネットワークインタフェース230との間でデータ通信可能な専用の通信経路を含んでもよい。通信ネットワークNは、一例として、LAN(Local Area Network)又はインターネット等の通信網でもよい。
情報処理システム1000が複数のサーバ装置10を含む場合、複数のサーバ装置10によりクラスタを構成してもよい。クラスタを構成する複数のサーバ装置10は、並列処理を実行してもよい。複数のサーバ装置10は、並列処理したデータを結合してサーバ装置20に送信してもよい。
サーバ装置20の数はサーバ装置10の数より多くてもよい。一例として、情報処理システム1000は、1台のサーバ装置10と、複数のサーバ装置20とを備えてもよい。情報処理システム1000が複数のサーバ装置20を含む場合、複数のサーバ装置20によりクラスタを構成してもよい。クラスタを構成する複数のサーバ装置20は、並列処理を実行してもよい。情報処理システム1000が複数のサーバ装置20を含む場合、サーバ装置10は、複数のサーバ装置20それぞれにデータを送信してもよい。
処理装置100及び処理装置200は、第1例と同様に構成されてよい。すなわち、サーバ装置10が備える処理装置100は、サーバ装置20が備える処理装置200と比較して、B/F比(Bytes/FLOPS)が低い。逆に言うと、サーバ装置20が備える処理装置200は、サーバ装置10が備える処理装置100と比較して、B/F比が高い。
言い替えると、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比(データ転送速度/演算速度)は、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比よりも低い。逆に言うと、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比は、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比よりも高い。
図4は、情報処理システムの全体構成の第3例を示すブロック図である。図4に示されるように、情報処理システム1000は、1台以上のサーバ装置10を含んでもよい。情報処理システム1000は、複数台のサーバ装置10を含んでもよい。
サーバ装置10は、1台以上の処理装置100を備えてもよい。サーバ装置10は、複数の処理装置100を備えてもよい。
処理装置100は、1以上のプロセッサ110、1以上のプロセッサ210、1以上のメモリ120、及び1以上のメモリ220を備えてもよい。処理装置100は、複数のプロセッサ110を備えてもよい。処理装置100は、複数のメモリ120を備えてもよい。処理装置100は、複数のプロセッサ210を備えてもよい。処理装置100は、複数のメモリ220を備えてもよい。
プロセッサ110及びメモリ120は、電気的に接続されてもよい。プロセッサ110及びメモリ120は、相互にデータ通信可能に接続されてもよい。プロセッサ210及びメモリ220は、電気的に接続されてもよい。プロセッサ210及びメモリ220は、相互にデータ通信可能に接続されてもよい。
プロセッサ110及びプロセッサ210は、処理装置100内に形成された回路Cに接続されてもよい。プロセッサ110及びプロセッサ210は、回路Cを介して相互にデータ通信可能に構成されてもよい。回路Cは、一例として、処理装置100の基板に形成された電子部品又は配線を含んでもよい。
処理装置100が複数のプロセッサ110を含む場合、複数のプロセッサ110は、並列処理を実行してもよい。複数のプロセッサ110は、並列処理したデータを結合してプロセッサ210に送信してもよい。
プロセッサ210の数はプロセッサ110の数より多くてもよい。一例として、処理装置100は、1個のプロセッサ110と、複数のプロセッサ210とを備えてもよい。処理装置100が複数のプロセッサ210を含む場合、複数のプロセッサ210は、並列処理を実行してもよい。処理装置100が複数のプロセッサ210を含む場合、プロセッサ110は、複数のプロセッサ210それぞれにデータを送信してもよい。
プロセッサ110,210及びメモリ120,メモリ220は、第1例と同様に構成されてよい。すなわち、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比(データ転送速度/演算速度)は、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比よりも低い。逆に言うと、プロセッサ210の演算速度に対するメモリ220のデータ転送速度の比は、プロセッサ110の演算速度に対するメモリ120のデータ転送速度の比よりも高い。
なお、図2乃至図4に示した情報処理システム1000の全体構成は一例であって、用途や目的に応じて様々なシステム構成例があり得る。情報処理システム1000は、一以上の装置で構成されてもよい。情報処理システム1000に含まれる装置は、複数の装置で構成されるシステムであってもよい。情報処理システム1000に含まれる各機能は、システムを構成する任意の装置で実現されてもよい。情報処理システム1000に含まれる各構成要素は、システムを構成する任意の装置に含まれてもよい。
<推論処理の流れ>
情報処理システム1000が実行する機械学習モデルの推論処理について、図5を参照しながら説明する。図5は、機械学習モデルの推論処理の一例を示すフローチャートである。ここでは、図2に示した情報処理システム1000が機械学習モデルの推論処理を実行する例を説明する。
情報処理システム1000は、機械学習モデルの推論処理を実行するより前に、機械学習モデルのパラメータをメモリ120及びメモリ220に記憶する。メモリ120に記憶する機械学習モデルのパラメータは、サーバ装置10に内蔵された補助記憶装置又はサーバ装置10と接続された外部記憶装置から読み出されてもよい。メモリ220に記憶する機械学習モデルのパラメータは、サーバ装置20に内蔵された補助記憶装置又はサーバ装置20と接続された外部記憶装置から読み出されてもよい。
ステップS1において、処理装置100は、機械学習モデルへの入力情報を受け付ける。入力情報は、一例として、プロンプトと呼ばれる自然言語文でもよい。入力情報は、テキストデータに限定されない。入力情報は、音響データ又は画像データの少なくとも一方を含んでもよい。画像データは、静止画及び動画を含んでもよく、動画には音響データが含まれてもよい。入力情報は、テキストデータ、音響データ又は画像データの少なくとも2つを含むマルチモーダルなデータでもよい。入力情報は、情報処理システム1000の利用者により入力されてもよい。入力情報は、情報処理システム1000又は外部の情報処理装置又は情報処理システムにより生成されてもよい。なお、外部とは、情報処理システム1000に含まれないことを意味する。
処理装置100は、一例として、サーバ装置10が他の装置から受信した入力情報を受け付けてもよい。他の装置は、利用者が操作する端末装置でもよく、入力情報を生成した外部の情報処理装置又は情報処理システムでもよい。処理装置100は、一例として、サーバ装置10に入力された入力情報を受け付けてもよい。
ステップS2において、処理装置100は、ステップS1で受け付けた入力情報に基づいて、中間データを生成する。処理装置100は、入力情報を機械学習モデルに入力することで、中間データを生成してもよい。サーバ装置10が複数の処理装置100を備える場合、処理装置100は、並列処理により中間データを生成してもよい。処理装置100は、機械学習モデルが生成した中間データをメモリ120に記憶する。
処理装置100は、入力情報の一例であるプロンプトを、機械学習モデルの一例であるトランスフォーマーに入力することで、中間データの一例であるキーバリューキャッシュを生成してもよい。処理装置100は、入力情報の一例であるプロンプトを、機械学習モデルの一例である状態空間モデルに入力することで、中間データの一例である状態空間モデルにおける状態を生成してもよい。状態空間モデルにおける状態は、1以上のベクトル又はテンソルで表現されてもよい。
処理装置100は、一例として、トランスフォーマーのプレフィル過程を実行してもよい。処理装置100は、他の一例として、入力情報に含まれる画像データに基づいて、中間データの他の一例である埋め込み表現を計算してもよい。
トランスフォーマーは、入力されたトークンそれぞれについて、フォワード処理を実行する。トランスフォーマーは、フォワード処理において、トークンごとにクエリベクトル、キーベクトル及びバリューベクトルを計算する。トランスフォーマーは、トークンごとのキーベクトル及びバリューベクトルの配列をキャッシュする。これにより、キーバリューキャッシュが生成される。トランスフォーマーは、入力層に近い方から出力層に向かって、順次キーバリューキャッシュを生成する。
処理装置100は、メモリ120に記憶されている機械学習モデルのパラメータの少なくとも一部を読み出してもよい。処理装置100は、メモリ120から読み出したパラメータの少なくとも一部に基づいて、中間データを生成してもよい。処理装置100は、入力されたトークンに対するフォワード処理を実行するたびに、機械学習モデルのパラメータの少なくとも一部をメモリ120から読み出してもよい。処理装置100は、入力されたトークンに関連する機械学習モデルのパラメータの少なくとも一部をメモリ120から読み出してもよい。
ステップS3において、処理装置100は、ステップS3で生成した中間データを処理装置200に送信する。処理装置100は、メモリ120に記憶されている中間データを読み出し、バスBを介して処理装置200に送信してもよい。処理装置100は、中間データの少なくとも一部を処理装置200に送信してもよい。
処理装置100は、中間データを処理装置200(メモリ220)に直接送信してもよい。処理装置100は、中間データを処理装置200(メモリ220)に間接的に送信してもよい。送信処理の一例として、処理装置100は、中間データを記憶装置に記憶し、記憶装置に記憶された中間データを特定可能な情報を処理装置200に送信してもよい。中間データを記憶する記憶装置は、メモリ120でもよく、他のメモリでもよい。処理装置200は、中間データを特定可能な情報を用いて、記憶装置に記憶された中間データを取得してもよい。また、処理装置100は、中間データを他の装置を介してメモリ220に送信してもよい。すなわち、処理装置100は、任意の方法で処理装置200が中間データを利用可能な状態にすればよい。
サーバ装置10が複数の処理装置100を備える場合、処理装置100は、複数のメモリ120に記憶された複数の中間データを結合し、結合された中間データを処理装置200に送信してもよい。サーバ装置10が複数の処理装置200を備える場合、処理装置100は、複数の処理装置200それぞれに、中間データを送信してもよい。
処理装置100は、中間データの生成が完了する前に、生成された中間データの少なくとも一部の処理装置200への送信を開始してもよい。処理装置100は、トランスフォーマーが層ごとに生成したキーバリューキャッシュを層ごとに処理装置200に送信してもよい。処理装置100は、一例として、1つの層のキーバリューキャッシュを生成するたびに、全層のキーバリューキャッシュの生成が完了する前に、生成したキーバリューキャッシュの送信を開始してもよい。処理装置100は、他の一例として、全層のキーバリューキャッシュの生成が完了した後に、全層のキーバリューキャッシュの送信を開始してもよい。
ステップS4において、処理装置200は、処理装置100から中間データを受信する。処理装置200は、処理装置100から受信した中間データをメモリ220に記憶する。
情報処理システム1000は、ステップS2からステップS4までの処理を繰り返し実行してもよい。一例として、処理装置100が、トランスフォーマーの層ごとにキーバリューキャッシュを生成し、1つの層のキーバリューキャッシュの生成が完了するたびに、生成したキーバリューキャッシュを処理装置200に送信することを、トランスフォーマーの総数だけ繰り返し実行してもよい。
ステップS5において、処理装置100は、ステップS1で受け付けた入力情報に対する出力情報を生成する。処理装置100は、中間データの生成が完了した後に機械学習モデルが出力する出力情報を取得してもよい。処理装置100は、一例として、トランスフォーマーのプレフィル過程において、プロンプトの末尾のトークンに対するフォワード処理により出力された最後のトークンを取得してもよい。処理装置100は、生成した出力情報を処理装置200に送信する。
プレフィル過程で出力される出力情報は、テキストデータ(トークン)に限定されない。出力情報は、音響データ又は画像データの少なくとも一方を含んでもよい。画像データは、静止画及び動画を含んでもよく、動画には音響データが含まれてもよい。出力情報は、テキストデータ、音響データ又は画像データの少なくとも2つを含むマルチモーダルなデータでもよい。
ステップS6において、処理装置200は、処理装置100から出力情報を受信する。処理装置200は、処理装置100から受信した出力情報をメモリ220に記憶してもよい。処理装置200は、処理装置100から受信した出力情報を出力してもよい。処理装置100は、一例として、サーバ装置10が入力情報を受信した他の装置に出力情報を送信してもよい。処理装置100は、一例として、サーバ装置10の表示装置に出力情報を出力してもよい。
ステップS7において、処理装置200は、ステップS6で受信した出力情報に続く出力情報を生成する。処理装置200は、ステップS4で受信した中間データに基づいて、出力情報を生成してもよい。処理装置200は、メモリ220に記憶されている中間データを読み出し、読み出した中間データに基づいて、出力情報を生成してもよい。処理装置200は、中間データの少なくとも一部に基づいて、出力情報を生成してもよい。サーバ装置10が複数の処理装置200を備える場合、処理装置200は、並列処理により出力情報を生成してもよい。
処理装置200は、一例として、トランスフォーマーのデコード過程を実行してもよい。処理装置200は、一例として、プレフィル過程により生成された最後のトークンをトランスフォーマーに入力してもよい。
トランスフォーマーは、メモリ220に記憶されているキーバリューキャッシュを読み出し、入力されたトークンに対するフォワード処理を実行する。トランスフォーマーは、ステップS2で画像の埋め込み表現を生成した場合、メモリ220に記憶されている埋め込み表現を読み出し、埋め込み表現を用いたフォワード処理を実行してもよい。トランスフォーマーは、キーバリューキャッシュを用いて、入力されたトークンに続くトークン及び新たなキーバリューキャッシュを生成する。トランスフォーマーは、入力されたトークンに対するフォワード処理により生成されたトークンを出力する。
デコード過程で出力される出力情報は、テキストデータ(トークン)に限定されない。出力情報は、音響データ又は画像データの少なくとも一方を含んでもよい。画像データは、静止画及び動画を含んでもよく、動画には音響データが含まれてもよい。出力情報は、テキストデータ、音響データ又は画像データの少なくとも2つを含むマルチモーダルなデータでもよい。
処理装置200は、トランスフォーマーが出力したトークンを出力情報として取得する。処理装置200は、トランスフォーマーにより計算された新たなキーバリューキャッシュをメモリ220に記憶する。処理装置200は、推論処理が完了するまでキーバリューキャッシュをメモリ220に蓄積してもよい。
処理装置200は、他の一例として、状態空間モデルのデコード過程を実行してもよい。処理装置200は、一例として、プレフィル過程により生成された最後のトークンを状態空間モデルに入力してもよい。状態空間モデルは、メモリ220に記憶されている状態空間モデルの状態を読み出し、入力されたトークンに対するフォワード処理を実行する。状態空間モデルは、入力されたトークンに続くトークンを生成し、状態空間モデルの状態を更新する。処理装置200は、状態空間モデルが出力したトークンを出力情報として取得する。処理装置200は、更新された状態空間モデルの状態でメモリ220に記憶された状態を上書きする。
処理装置200は、他の一例として、トランスフォーマーと状態空間モデルとを組み合わせた機械学習モデルのデコード過程を実行してもよい。この種の機械学習モデルは、一例として、一部のレイヤーがトランスフォーマーで構成され、他の一部のレイヤーが状態空間モデルで構成されてもよい。処理装置200は、プレフィル過程により生成された出力情報を機械学習モデルに入力してもよい。機械学習モデルは、トランスフォーマーで構成されるレイヤーでは、メモリ220に記憶されているキーバリューキャッシュを用いてフォワード処理を実行し、状態空間モデルで構成されるレイヤーでは、メモリ220に記憶されている状態空間モデルの状態を用いてフォワード処理を実行する。機械学習モデルは、トランスフォーマーで構成されるレイヤーでは、トランスフォーマーにより計算された新たなキーバリューキャッシュをメモリ220に記憶し、状態空間モデルで構成されるレイヤーでは、メモリ220に記憶されている状態空間モデルの状態を更新する。
処理装置200は、メモリ220に記憶されている機械学習モデルのパラメータの少なくとも一部を読み出してもよい。処理装置200は、メモリ220から読み出したパラメータの少なくとも一部に基づいて、出力情報を生成してもよい。処理装置200は、入力されたトークンに対するフォワード処理を実行するたびに、機械学習モデルのパラメータの少なくとも一部をメモリ220から読み出してもよい。処理装置200は、入力されたトークンに関連する機械学習モデルのパラメータの一部をメモリ220から読み出してもよい。
ステップS8において、処理装置200は、ステップS7で生成した出力情報を出力する。処理装置200は、生成した出力情報をメモリ220に記憶してもよい。処理装置100は、一例として、サーバ装置10が入力情報を受信した他の装置に出力情報を送信してもよい。処理装置100は、一例として、サーバ装置10の表示装置に出力情報を出力してもよい。
処理装置200は、機械学習モデルの出力情報の生成が完了するまで、ステップS7及びステップS8の処理を繰り返し実行する。2回目以降のステップS7では、処理装置200は、前回のステップS7で生成された出力情報を機械学習モデルに入力することで、次の出力情報を生成してもよい。すなわち、処理装置200は、自己回帰的に入力情報に対する出力情報を生成してもよい。
処理装置200は、ステップS1で受け付けた入力情報を用いた所定の処理を実行してもよい。処理装置200は、中間データと共に入力情報を処理装置100から受信してもよい。処理装置200は、処理装置100から受信し入力情報をメモリ220に記憶してもよい。所定の処理は、フォワード処理でもよく、フォワード処理以外の処理でもよい。
[他の実施形態]
上記の実施形態では、情報処理システム1000が、機械学習モデルの推論処理を実行する構成を説明した。機械学習モデルの推論処理は、機械学習モデルの訓練処理のために実行されてもよい。
情報処理システム1000は、機械学習モデルの訓練処理において、内部処理として、推論処理を実行してもよい。一例として、情報処理システム1000は、機械学習モデルの推論処理を実行し、推論結果に基づいて機械学習モデルのパラメータを更新する訓練処理を実行してもよい。具体的には、情報処理システム1000は、学習データを機械学習モデルに入力したときの推論結果と、当該学習データに対する正解データとの誤差が小さくなるように、機械学習モデルのパラメータを調整することを繰り返す訓練処理を実行してもよい。
<まとめ>
以上の説明から明らかなように、本開示の一実施形態に係る情報処理システム1000は、少なくとも1つの第1のメモリと、少なくとも1つの第1のメモリに接続された少なくとも1つの第1のプロセッサと、少なくとも1つの第2のメモリと、少なくとも1つの第2のメモリに接続された少なくとも1つの第2のプロセッサと、を備える。少なくとも1つの第1のプロセッサは、入力情報を機械学習モデルに入力することで、中間データを生成し、中間データの少なくとも一部を少なくとも1つの第2のメモリへ送信する。少なくとも1つの第2のプロセッサは、少なくとも1つの第1のプロセッサが少なくとも1つの第2のメモリへ送信した中間データの少なくとも一部を用いて、機械学習モデルの出力情報を生成する。少なくとも1つの第1のプロセッサの演算速度に対する少なくとも1つの第1のメモリのデータ転送速度の比は、少なくとも1つの第2のプロセッサの演算速度に対する少なくとも1つの第2のメモリのデータ転送速度の比よりも低い。
少なくとも1つの第1のメモリは、機械学習モデルの少なくとも一部のパラメータを記憶してもよい。少なくとも1つの第2のメモリは、機械学習モデルの少なくとも一部のパラメータを記憶してもよい。
少なくとも1つの第1のプロセッサは、機械学習モデルを用いて、プレフィル過程の処理を実行することで中間データを生成してもよい。少なくとも1つの第2のプロセッサは、機械学習モデルを用いて、デコード過程の処理により出力情報を生成してもよい。
機械学習モデルは、注意機構を有するニューラルネットワークを含んでもよい。中間データの少なくとも一部は、注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含んでもよい。
少なくとも1つの第1のプロセッサは、機械学習モデルを用いて、演算律速となる第1の処理を実行することで中間データを生成してもよい。少なくとも1つの第2のプロセッサは、機械学習モデルを用いて、メモリ律速となる第2の処理により出力情報を生成してもよい。第1の処理は、機械学習モデルを用いたプレフィル過程の処理でもよい。第2の処理は、機械学習モデルを用いたデコード過程の処理でもよい。
機械学習モデルは、状態空間モデルを含んでもよい。中間データの少なくとも一部は、状態空間モデルにおける状態の少なくとも一部を含んでもよい。
少なくとも1つの第2のプロセッサは、過去に実行した第2の処理で生成された出力情報を用いて第2の処理を繰り返し実行してもよい。少なくとも1つの第1のプロセッサは、中間データの生成が完了する前に、中間データの少なくとも一部の送信を開始してもよい。少なくとも1つの第1のプロセッサは、中間データの生成が完了した後に、中間データの少なくとも一部の送信を開始してもよい。
演算速度に対するデータ転送速度の比は、機械学習モデルに関する処理全体を実行したときの総演算回数に対する総データ転送量の比でもよい。演算速度に対するデータ転送速度の比は、機械学習モデルに関する処理を実行したときの単位時間当たりの演算回数に対する単位時間当たりのデータ転送量の比でもよい。
情報処理システム1000は、複数の第2のメモリと、複数の第2のプロセッサと、を有してもよい。少なくとも1つの第1のプロセッサは、複数の第2のメモリそれぞれに、中間データの少なくとも一部を送信してもよい。複数の第2のプロセッサは、クラスタを構成してもよい。
情報処理システム1000は、複数の第1のメモリと、複数の第1のプロセッサと、を有してもよい。複数の第1のプロセッサは、複数の第1のプロセッサそれぞれで生成された中間データの少なくとも一部を結合して少なくとも1つの第2のメモリに送信してもよい。
情報処理システム1000は、機械学習モデルの推論処理を実行してもよい。情報処理システム1000は、機械学習モデルの訓練処理のために推論処理を実行してもよい。
情報処理システム1000は、少なくとも1つの第1のメモリと、少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、を有する第1の処理装置を有してもよい。情報処理システム1000は、少なくとも1つの第2のメモリと、少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を有する第2の処理装置を有してもよい。
これにより、本開示の一実施形態によれば、演算性能が高い第1のプロセッサが演算律速となる中間データの生成を行い、メモリバンド幅が大きい第2のプロセッサがメモリ律速となる出力情報の生成を行うため、機械学習モデルの出力情報を高速に計算できる。
[ハードウェア構成]
前述した実施形態における各装置(サーバ装置10,20)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、CD-ROM(Compact Disc-Read Only Memory)、USB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアの処理の全部又は一部がASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の回路に実装されることにより、当該ソフトウェアによる情報処理がハードウェアにより実行されてもよい。
ソフトウェアを収納する記憶媒体は、光ディスク等の着脱可能なものでもよいし、ハードディスク、メモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし(主記憶装置、補助記憶装置等)、コンピュータ外部に備えられてもよい。
図6は、前述した実施形態における各装置(サーバ装置10,20)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ101と、主記憶装置102(メモリ)と、補助記憶装置103(メモリ)と、ネットワークインタフェース104と、デバイスインタフェース105と、を備え、これらがバス106を介して接続されたコンピュータ7として実現されてもよい。
図6のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図6では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース104等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(サーバ装置10,20)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
前述した実施形態における各装置(サーバ装置10,20)の各種演算は、1又は複数のプロセッサを用いて、又はネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
プロセッサ101は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ101は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置のいずれであってもよい。また、プロセッサ101は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。
プロセッサ101は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ101は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
前述した実施形態における各装置(サーバ装置10,20)は、1又は複数のプロセッサ101により実現されてもよい。ここで、プロセッサ101は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
主記憶装置102は、プロセッサ101が実行する命令及び各種データ等を記憶してもよく、主記憶装置102に記憶された情報がプロセッサ101により読み出されてもよい。補助記憶装置103は、主記憶装置102以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。前述した実施形態における各装置(サーバ装置10,20)において各種データ等を保存するための記憶装置は、主記憶装置102又は補助記憶装置103により実現されてもよく、プロセッサ101に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における各記憶部は、主記憶装置102又は補助記憶装置103により実現されてもよい。
前述した実施形態における各装置(サーバ装置10,20)が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサで構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサが接続されてもよい。また、1つのプロセッサに対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサのうち少なくとも1つのプロセッサが、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
ネットワークインタフェース104は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース104は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース104により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか又はそれらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
デバイスインタフェース105は、外部装置9Bと直接接続するUSB等のインタフェースである。
外部装置9Aはコンピュータ7とネットワークを介して接続されている装置である。外部装置9Bはコンピュータ7と直接接続されている装置である。
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
また、外部装置9Aまた外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aはネットワークストレージ等であってもよく、外部装置9BはHDD等のストレージであってもよい。
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(サーバ装置10,20)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bに処理結果の一部又は全部を送信してもよいし、外部装置9A又は外部装置9Bから処理結果の一部又は全部を受信してもよい。
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りがない場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、各種データの中間表現等)を出力として用いる場合を含む。
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ、専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」、「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」、「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが処理Aを行い、前記1又は複数のハードウェアが処理Bを行う」等の表現(同様な表現を含む)が用いられている場合、処理Aを行うハードウェアと処理Bを行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、処理Aを行うハードウェア及び処理Bを行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、電子回路を含む装置等を含んでよい。
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。
本明細書(請求項を含む)において、「第1の」、「第2の」等の用語は、単に2つ以上の要素間を区別する方法として使用されており、その対象に対して時間的態様、空間的態様、順序、量等の技術的意味を課すことを必ずしも意図するものではない。したがって、例えば、第1の要素及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、第1の要素が第2の要素に先行しなければならないこと、第2の要素が存在するために第1の要素が存在しなければならないこと等を必ずしも意味するものではない。
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え、部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も例示的なものであり、本開示の範囲を限定するものではない。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
少なくとも1つの第1のメモリと、
前記少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、
少なくとも1つの第2のメモリと、
前記少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を有し、
前記少なくとも1つの第1のプロセッサは、
入力情報を機械学習モデルに入力することで、中間データを生成し、
前記中間データの少なくとも一部を前記少なくとも1つの第2のメモリへ送信し、
前記少なくとも1つの第2のプロセッサは、
前記少なくとも1つの第1のプロセッサが前記少なくとも1つの第2のメモリに送信した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成し、
前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低い、
情報処理システム。
(付記2)
前記少なくとも1つの第1のメモリは、前記機械学習モデルの少なくとも一部のパラメータを記憶し、
前記少なくとも1つの第2のメモリは、前記機械学習モデルの少なくとも一部のパラメータを記憶する、
付記1に記載の情報処理システム。
(付記3)
前記少なくとも1つの第1のプロセッサは、
前記機械学習モデルを用いて、プレフィル過程の処理を実行することで前記中間データを生成し、
前記少なくとも1つの第2のプロセッサは、
前記機械学習モデルを用いて、デコード過程の処理により前記出力情報を生成する、
付記1又は2に記載の情報処理システム。
(付記4)
前記機械学習モデルは、注意機構を有するニューラルネットワークを含む、
付記3に記載の情報処理システム。
(付記5)
前記中間データの少なくとも一部は、前記注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含む、
付記4に記載の情報処理システム。
(付記6)
前記少なくとも1つの第1のプロセッサは、
前記機械学習モデルを用いて、演算律速となる第1の処理を実行することで前記中間データを生成し、
前記少なくとも1つの第2のプロセッサは、
前記機械学習モデルを用いて、メモリ律速となる第2の処理により前記出力情報を生成する、
付記1から5のいずれかに記載の情報処理システム。
(付記7)
前記第1の処理は、前記機械学習モデルを用いたプレフィル過程の処理であり、
前記第2の処理は、前記機械学習モデルを用いたデコード過程の処理である、
付記6に記載の情報処理システム。
(付記8)
前記機械学習モデルは、状態空間モデルを含む、
付記6に記載の情報処理システム。
(付記9)
前記中間データの少なくとも一部は、前記状態空間モデルにおける状態の少なくとも一部を含む、
付記8に記載の情報処理システム。
(付記10)
前記少なくとも1つの第2のプロセッサは、
過去に実行した前記第2の処理で生成された前記出力情報を用いて前記第2の処理を繰り返し実行する、
付記6から9のいずれかに記載の情報処理システム。
(付記11)
前記少なくとも1つの第1のプロセッサは、
前記中間データの生成が完了する前に、前記中間データの少なくとも一部の送信を開始する、
付記1から10のいずれかに記載の情報処理システム。
(付記12)
前記少なくとも1つの第1のプロセッサは、
前記中間データの生成が完了した後に、前記中間データの少なくとも一部の送信を開始する、
付記1から11のいずれかに記載の情報処理システム。
(付記13)
前記演算速度に対する前記データ転送速度の比は、前記機械学習モデルに関する処理全体を実行したときの総演算回数に対する総データ転送量の比である、
付記1から12のいずれかに記載の情報処理システム。
(付記14)
前記演算速度に対する前記データ転送速度の比は、前記機械学習モデルに関する処理を実行したときの単位時間当たりの演算回数に対する単位時間当たりのデータ転送量の比である、
付記1から13のいずれかに記載の情報処理システム。
(付記15)
複数の前記第2のメモリと、
複数の前記第2のプロセッサと、を有し、
前記少なくとも1つの第1のプロセッサは、
前記複数の前記第2のメモリそれぞれに、前記中間データの少なくとも一部を送信する、
付記1から14のいずれかに記載の情報処理システム。
(付記16)
前記複数の前記第2のプロセッサは、クラスタを構成する、
付記15に記載の情報処理システム。
(付記17)
複数の前記第1のメモリと、
複数の前記第1のプロセッサと、を有し、
前記複数の前記第1のプロセッサは、
前記複数の前記第1のプロセッサそれぞれで生成された前記中間データの少なくとも一部を結合して前記少なくとも1つの第2のメモリに送信する、
付記1から16のいずれかに記載の情報処理システム。
(付記18)
前記情報処理システムは、
前記機械学習モデルの推論処理を実行する、
付記1から17のいずれかに記載の情報処理システム。
(付記19)
前記情報処理システムは、
前記機械学習モデルの訓練処理のために前記推論処理を実行する、
付記18に記載の情報処理システム。
(付記20)
前記少なくとも1つの第1のメモリと、前記少なくとも1つの第1のメモリと接続された前記少なくとも1つの第1のプロセッサと、を有する第1の処理装置と、
前記少なくとも1つの第2のメモリと、前記少なくとも1つの第2のメモリと接続された前記少なくとも1つの第2のプロセッサと、を有する第2の処理装置と、
を有する、
付記1から19のいずれかに記載の情報処理システム。
(付記21)
少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサが、
入力情報を機械学習モデルに入力することで、中間データを生成し、
前記中間データの少なくとも一部を、少なくとも1つの第2のメモリへ送信し、
前記少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサが、
前記少なくとも1つの第1のプロセッサが前記少なくとも1つの第2のメモリへ送信した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成し、
前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低い、
情報処理方法。
(付記22)
少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサに、
入力情報を機械学習モデルに入力することで、中間データを生成し、
前記中間データの少なくとも一部を、少なくとも1つの第2のメモリへ送信する、
処理を実行させ、
前記少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサに、
前記少なくとも1つの第1のプロセッサが前記少なくとも1つの第2のメモリへ送信した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成する、
処理を実行させ、
前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低い、
プログラム。
本願は、日本国特許庁に2024年10月2日に出願された日本国特許出願2024-173485号の優先権を主張するものであり、その全内容を参照することにより本願に援用する。
10,20:サーバ装置
100,200:処理装置
110,210:プロセッサ
120,220:メモリ
130,230:ネットワークインタフェース
1000:情報処理システム

Claims (56)

  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のメモリのデータ転送速度の比よりも低く、
    前記第1のプロセッサと前記第2のプロセッサとは、異なる種類のプロセッサである、
    情報処理システム。
  2. 前記少なくとも1つの第1のメモリは、前記機械学習モデルの少なくとも一部のパラメータを記憶し、
    前記少なくとも1つの第2のメモリは、前記機械学習モデルの少なくとも一部のパラメータを記憶する、
    請求項1に記載の情報処理システム。
  3. 前記少なくとも1つの第1のプロセッサは、
    前記機械学習モデルを用いて、プレフィル過程の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサは、
    前記機械学習モデルを用いて、デコード過程の処理を実行することで前記出力情報を生成する、
    請求項1に記載の情報処理システム。
  4. 前記機械学習モデルは、注意機構を有するニューラルネットワークを含む、
    請求項3に記載の情報処理システム。
  5. 前記中間データの少なくとも一部は、前記注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含む、
    請求項4に記載の情報処理システム。
  6. 前記少なくとも1つの第1のプロセッサは、
    層ごとに生成された前記キーベクトル及びバリューベクトルを、前記層ごとに前記少なくとも1つの第2のメモリに送信する、
    請求項5に記載の情報処理システム。
  7. 前記少なくとも1つの第1のプロセッサは、
    前記機械学習モデルを用いて、第1の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサは、
    前記機械学習モデルを用いて、第2の処理を実行することで前記出力情報を生成する、
    請求項に記載の情報処理システム。
  8. 前記第1の処理は、演算律速となる処理であり、
    前記第2の処理は、メモリ律速となる処理である、
    請求項に記載の情報処理システム。
  9. 前記第1の処理は、プレフィル過程の処理であり、
    前記第2の処理は、デコード過程の処理である、
    請求項に記載の情報処理システム。
  10. 前記機械学習モデルは、状態空間モデルを含む、
    請求項に記載の情報処理システム。
  11. 前記中間データの少なくとも一部は、前記状態空間モデルにおける状態の少なくとも一部を含む、
    請求項10に記載の情報処理システム。
  12. 前記少なくとも1つの第2のプロセッサは、
    過去に実行した前記第2の処理で生成された前記出力情報を用いて前記第2の処理を繰り返し実行する、
    請求項に記載の情報処理システム。
  13. 前記演算速度に対する前記データ転送速度の比は、前記機械学習モデルに関する処理全体を実行したときの総演算回数に対する総データ転送量の比である、
    請求項に記載の情報処理システム。
  14. 前記演算速度に対する前記データ転送速度の比は、前記機械学習モデルに関する処理を実行したときの単位時間当たりの演算回数に対する単位時間当たりのデータ転送量の比である、
    請求項に記載の情報処理システム。
  15. 前記少なくとも1つの第2のメモリは、積層された3次元構造のメモリを含む、
    請求項1に記載の情報処理システム。
  16. 複数の前記第2のメモリと、
    複数の前記第2のプロセッサと、を有し、
    複数の前記第2のプロセッサのそれぞれは、
    前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの前記出力情報を生成する、
    請求項1から15のいずれかに記載の情報処理システム。
  17. 前記複数の前記第2のプロセッサは、クラスタを構成する、
    請求項16に記載の情報処理システム。
  18. 複数の前記第1のメモリと、
    複数の前記第1のプロセッサと、を有し、
    前記複数の前記第1のプロセッサは、
    前記複数の前記第1のプロセッサそれぞれで生成された前記中間データの少なくとも一部を結合して前記少なくとも1つの第2のメモリに送信する、
    請求項1から15のいずれかに記載の情報処理システム。
  19. 前記情報処理システムは、
    前記機械学習モデルの推論処理を実行する、
    請求項1から15のいずれかに記載の情報処理システム。
  20. 前記情報処理システムは、
    前記機械学習モデルの訓練処理のために前記推論処理を実行する、
    請求項19に記載の情報処理システム。
  21. 前記少なくとも1つの第1のメモリと、前記少なくとも1つの第1のメモリと接続された前記少なくとも1つの第1のプロセッサと、を有する第1の処理装置と、
    前記少なくとも1つの第2のメモリと、前記少なくとも1つの第2のメモリと接続された前記少なくとも1つの第2のプロセッサと、を有する第2の処理装置と、
    を有し、
    前記第1の処理装置と前記第2の処理装置とは、異なる種類の処理装置である、
    請求項1から15のいずれかに記載の情報処理システム。
  22. 前記第1の処理装置は、前記中間データの生成が完了する前に、前記中間データの少なくとも一部の前記第2の処理装置への送信を開始する、
    請求項21に記載の情報処理システム。
  23. 前記第1の処理装置は、前記中間データの生成が完了した後に、前記中間データの少なくとも一部の前記第2の処理装置への送信を開始する、
    請求項21に記載の情報処理システム。
  24. 前記第1の処理装置は、第1のGPUパッケージであり、
    前記第2の処理装置は、第2のGPUパッケージである、
    請求項21に記載の情報処理システム。
  25. 前記第1の処理装置は、第1の種類のアクセラレータであり、
    前記第2の処理装置は、第2の種類のアクセラレータである、
    請求項21に記載の情報処理システム。
  26. 前記第1の処理装置と前記第2の処理装置は、インターコネクトで接続されている、
    請求項21に記載の情報処理システム。
  27. 複数の前記第1の処理装置と、複数の前記第2の処理装置と、を有する、
    請求項21に記載の情報処理システム。
  28. 前記複数の前記第1の処理装置の数と前記複数の前記第2の処理装置の数は同一である、
    請求項27に記載の情報処理システム。
  29. クラスタを構成する、
    請求項1から15のいずれかに記載の情報処理システム。
  30. 少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサが、
    入力情報を機械学習モデルに入力することで、中間データを生成し、
    なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサが、
    前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成し、
    前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低く、
    前記第1のプロセッサと前記第2のプロセッサとは、異なる種類のプロセッサである、
    情報処理方法。
  31. 前記少なくとも1つの第1のプロセッサは、
    前記機械学習モデルを用いて、プレフィル過程の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサは、
    前記機械学習モデルを用いて、デコード過程の処理を実行することで前記出力情報を生成する、
    請求項30に記載の情報処理方法。
  32. 前記機械学習モデルは、注意機構を有するニューラルネットワークを含む、
    請求項31に記載の情報処理方法。
  33. 前記中間データの少なくとも一部は、前記注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含む、
    請求項32に記載の情報処理方法。
  34. 前記少なくとも1つの第1のプロセッサは、
    層ごとに生成された前記キーベクトル及びバリューベクトルを、前記層ごとに前記少なくとも1つの第2のメモリに送信する、
    請求項33に記載の情報処理方法。
  35. 前記少なくとも1つの第1のプロセッサは、
    前記機械学習モデルを用いて、第1の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサは、
    前記機械学習モデルを用いて、第2の処理を実行することで前記出力情報を生成する、
    請求項30に記載の情報処理方法。
  36. 前記第1の処理は、演算律速となる処理であり、
    前記第2の処理は、メモリ律速となる処理である、
    請求項35に記載の情報処理方法。
  37. 前記第1の処理は、プレフィル過程の処理であり、
    前記第2の処理は、デコード過程の処理である、
    請求項35に記載の情報処理方法。
  38. 前記少なくとも1つの第2のプロセッサは、
    過去に実行した前記第2の処理で生成された前記出力情報を用いて前記第2の処理を繰り返し実行する、
    請求項35に記載の情報処理方法。
  39. 複数の前記第2のプロセッサのそれぞれが、
    前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの前記出力情報を生成する、
    請求項30から38のいずれかに記載の情報処理方法。
  40. 複数の前記第1のプロセッサが、
    前記複数の前記第1のプロセッサそれぞれで生成された前記中間データの少なくとも一部を結合して前記少なくとも1つの第2のメモリに送信する、
    請求項30から38のいずれかに記載の情報処理方法。
  41. 前記機械学習モデルの推論処理を実行する、
    請求項30から38のいずれかに記載の情報処理方法。
  42. 前記機械学習モデルの訓練処理のために前記推論処理を実行する、
    請求項41に記載の情報処理方法。
  43. 第1の処理装置は、前記少なくとも1つの第1のメモリと、前記少なくとも1つの第1のメモリと接続された前記少なくとも1つの第1のプロセッサと、を有し、
    第2の処理装置は、前記少なくとも1つの第2のメモリと、前記少なくとも1つの第2のメモリと接続された前記少なくとも1つの第2のプロセッサと、を有し、
    前記第1の処理装置が、前記中間データの生成が完了する前に、前記中間データの少なくとも一部の前記第2の処理装置への送信を開始する、
    請求項30から38のいずれかに記載の情報処理方法。
  44. 請求項30乃至38のいずれかに記載の情報処理方法を、
    少なくとも1つの第1のメモリと、前記少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサと、少なくとも1つの第2のメモリと、前記少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサと、を備える情報処理システムであって、前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低く、前記第1のプロセッサと前記第2のプロセッサとは、異なる種類のプロセッサである、情報処理システムに実行させるための、
    プログラム。
  45. 少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサに、
    入力情報を機械学習モデルに入力することで、中間データを生成する、
    処理を実行させ、
    なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサに、
    前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成する、
    処理を実行させ、
    前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低く、
    前記第1のプロセッサと前記第2のプロセッサとは、異なる種類のプロセッサである、
    プログラム。
  46. 前記少なくとも1つの第1のプロセッサに、
    前記機械学習モデルを用いて、プレフィル過程の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサに、
    前記機械学習モデルを用いて、デコード過程の処理を実行することで前記出力情報を生成する、
    処理を実行させる、請求項45に記載のプログラム。
  47. 前記機械学習モデルは、注意機構を有するニューラルネットワークを含む、
    請求項46に記載のプログラム。
  48. 前記中間データの少なくとも一部は、前記注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含む、
    請求項47に記載のプログラム。
  49. 前記少なくとも1つの第1のプロセッサに、
    層ごとに生成された前記キーベクトル及びバリューベクトルを、前記層ごとに前記少なくとも1つの第2のメモリに送信する、
    処理を実行させる、請求項48に記載のプログラム。
  50. 前記少なくとも1つの第1のプロセッサに、
    前記機械学習モデルを用いて、第1の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサに、
    前記機械学習モデルを用いて、第2の処理を実行することで前記出力情報を生成する、
    処理を実行させる、請求項45に記載のプログラム。
  51. 少なくとも1つの第1のメモリと接続された少なくとも1つの第1のプロセッサに、
    入力情報を機械学習モデルに入力することで、中間データを生成する、
    処理を実行させ、
    少なくとも1つの第2のメモリと接続された少なくとも1つの第2のプロセッサに、
    前記少なくとも1つの第1のプロセッサが生成した前記中間データの少なくとも一部を用いて、前記機械学習モデルの出力情報を生成する、
    処理を実行させ、
    前記少なくとも1つの第1のプロセッサの演算速度に対する前記少なくとも1つの第1のメモリのデータ転送速度の比は、前記少なくとも1つの第2のプロセッサの演算速度に対する前記少なくとも1つの第2のメモリのデータ転送速度の比よりも低く、
    前記第1のプロセッサと前記第2のプロセッサとは、異なる種類のプロセッサである、
    プログラムを記憶しているコンピュータ読み取り可能な記憶媒体。
  52. 前記少なくとも1つの第1のプロセッサに、
    前記機械学習モデルを用いて、プレフィル過程の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサに、
    前記機械学習モデルを用いて、デコード過程の処理を実行することで前記出力情報を生成する、
    処理を実行させる前記プログラムを記憶している、請求項51に記載の記憶媒体。
  53. 前記機械学習モデルは、注意機構を有するニューラルネットワークを含む、
    請求項52に記載の記憶媒体。
  54. 前記中間データの少なくとも一部は、前記注意機構で用いられるキーベクトル及びバリューベクトルの少なくとも一部を含む、
    請求項53に記載の記憶媒体。
  55. 前記少なくとも1つの第1のプロセッサに、
    層ごとに生成された前記キーベクトル及びバリューベクトルを、前記層ごとに前記少なくとも1つの第2のメモリに送信する、
    処理を実行させる前記プログラムを記憶している、請求項54に記載の記憶媒体。
  56. 前記少なくとも1つの第1のプロセッサに、
    前記機械学習モデルを用いて、第1の処理を実行することで前記中間データを生成し、
    前記少なくとも1つの第2のプロセッサに、
    前記機械学習モデルを用いて、第2の処理を実行することで前記出力情報を生成する、
    処理を実行させる前記プログラムを記憶している、請求項51に記載の記憶媒体。
JP2026507626A 2024-10-02 2025-09-29 情報処理システム、情報処理方法、プログラム及び記憶媒体 Active JP7843975B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2024173485 2024-10-02
JP2024173485 2024-10-02
PCT/JP2025/034436 WO2026075067A1 (ja) 2024-10-02 2025-09-29 情報処理システム、情報処理方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2026037385A Division JP2026077982A (ja) 2024-10-02 2026-03-09 情報処理システム

Publications (1)

Publication Number Publication Date
JP7843975B1 true JP7843975B1 (ja) 2026-04-13

Family

ID=99357896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2026507626A Active JP7843975B1 (ja) 2024-10-02 2025-09-29 情報処理システム、情報処理方法、プログラム及び記憶媒体

Country Status (2)

Country Link
JP (1) JP7843975B1 (ja)
WO (1) WO2026075067A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019207458A (ja) * 2018-05-28 2019-12-05 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス設定方法
JP2020529676A (ja) * 2017-07-30 2020-10-08 ニューロブレード リミテッド メモリベースの分散型プロセッサアーキテクチャ
CN114897133A (zh) * 2022-04-22 2022-08-12 中山大学 一种通用可配置的Transformer硬件加速器及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020529676A (ja) * 2017-07-30 2020-10-08 ニューロブレード リミテッド メモリベースの分散型プロセッサアーキテクチャ
JP2019207458A (ja) * 2018-05-28 2019-12-05 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス設定方法
CN114897133A (zh) * 2022-04-22 2022-08-12 中山大学 一种通用可配置的Transformer硬件加速器及其实现方法

Also Published As

Publication number Publication date
WO2026075067A1 (ja) 2026-04-09

Similar Documents

Publication Publication Date Title
JP7430744B2 (ja) 機械学習モデルを改良して局所性を改善させること
KR102175044B1 (ko) 인공 신경망 역방향 트레이닝 실행용 장치와 방법
US20210264220A1 (en) Method and system for updating embedding tables for machine learning models
US11922282B2 (en) Selective batching for inference system for transformer-based generation tasks
KR102891573B1 (ko) 텐서 처리 방법, 가속기 및 이를 포함한 가속기 시스템
KR20190107766A (ko) 계산 장치 및 방법
CN118170874A (zh) 用于对话ai系统和应用的可自定义领域的模型
WO2020119268A1 (zh) 一种基于模型进行预测的方法和装置
US10997497B2 (en) Calculation device for and calculation method of performing convolution
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
TW202347122A (zh) 用於以三角形輸入遮罩來遮罩及正規化資料的硬體加速之系統與方法
KR102883346B1 (ko) 호스트 프로세서 및 가속기의 동작 방법 및 이들을 포함한 전자 장치
CN116579373A (zh) 数据处理方法及装置、电子设备、存储介质
US12499604B2 (en) Updating shader scheduling policy at runtime
WO2026075067A1 (ja) 情報処理システム、情報処理方法及びプログラム
JP2026077982A (ja) 情報処理システム
US20250005101A1 (en) Techniques for twiddle factor generation for number-theoretic- transrom and inverse-number-theoretic-tranform computations
CN113688089B (zh) 数据处理方法、计算系统和计算机存储介质
CN119025259A (zh) 模型执行方法、装置及存储介质、设备
JP7648352B2 (ja) データ処理方法、データ処理装置、データ処理システムおよびデータ処理プログラム
TW202427266A (zh) 應用於類神經網路的記憶內運算的加速器
US20250005102A1 (en) Techniques for twiddle factor generation for number-theoretic-transform and inverse-number-theoretic-transform computations
CN110826704B (zh) 一种用于防止神经网络过拟合的处理装置及系统
TW202301130A (zh) 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介
CN111723917A (zh) 运算方法、装置及相关产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20260206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20260206

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20260206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260323

R150 Certificate of patent or registration of utility model

Ref document number: 7843975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150