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

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

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

特開2024-150733大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体
<>
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図1
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図2
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図3A
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図3B
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図3C
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図3D
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図4A
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図4B
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図5
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図6
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図7
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図8
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図9
  • 特開-大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024150733
(43)【公開日】2024-10-23
(54)【発明の名称】大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241016BHJP
   G06F 17/16 20060101ALI20241016BHJP
【FI】
G06N20/00
G06F17/16 P
【審査請求】有
【請求項の数】34
【出願形態】OL
【公開請求】
(21)【出願番号】P 2024125931
(22)【出願日】2024-08-01
(31)【優先権主張番号】202410789531.7
(32)【優先日】2024-06-18
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100106518
【弁理士】
【氏名又は名称】松谷 道子
(74)【代理人】
【識別番号】100189555
【弁理士】
【氏名又は名称】徳山 英浩
(72)【発明者】
【氏名】王 国霞
(72)【発明者】
【氏名】曾 錦楽
(72)【発明者】
【氏名】肖 希源
(72)【発明者】
【氏名】楊 嘉彬
(72)【発明者】
【氏名】于 佃海
(72)【発明者】
【氏名】王 海峰
(57)【要約】      (修正有)
【課題】大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体を提供する。
【解決手段】方法は、処理すべき特徴に対応する、処理すべき特徴のマスク位置を表すスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから、処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表し、計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を取得する。
【選択図】図2
【特許請求の範囲】
【請求項1】
処理すべき特徴に対応する、前記処理すべき特徴のマスク位置を表すスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから、前記処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、前記マスク位置は、前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表すことと、
計算ユニットによって前記目標アテンションタスクを実行し、アテンション特徴を得ることと、を含む
大規模言語モデルに用いられるタスク実行方法。
【請求項2】
処理すべき特徴に対応するスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定することは、
処理すべき特徴に対応するスパース表現に基づいて、前記複数の処理すべきアテンションタスクに対応するマスク区間を決定することと、
前記マスク区間に基づいて、前記判定ユニットにより複数の処理すべきアテンションタスクから目標アテンションタスクを決定することと、を含む
請求項1に記載の方法。
【請求項3】
処理すべき特徴に対応するスパース表現に基づいて、前記複数の処理すべきアテンションタスクに対応するマスク区間を決定することは、
処理すべきアテンションタスクごとに、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における複数のマスク端点位置を決定することと、
前記複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することと、を含む
請求項2に記載の方法。
【請求項4】
前記マスク位置は、前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各列要素の開始マスク行及び終了マスク行であり、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列におけるマスク端点位置を決定することは、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各列要素の開始マスク行及び終了マスク行を決定することを含む
請求項3に記載の方法。
【請求項5】
前記複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することは、
前記各列要素の終了マスク行を前記マスク区間の終了位置として決定することと、
前記各列の要素の開始マスク行を前記マスク区間の開始位置として決定することと、を含む
請求項4に記載の方法。
【請求項6】
前記マスク位置は、前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各行要素の開始マスク列及び終了マスク列であり、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列におけるマスク端点位置を決定することは、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各行要素の開始マスク列及び終了マスク列を決定することを含む
請求項3に記載の方法。
【請求項7】
前記複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することは、
前記各行要素の終了マスク列を前記マスク区間の終了位置として決定することと、
前記各行要素の開始マスク列を前記マスク区間の開始位置として決定することと、を含む
請求項6に記載の方法。
【請求項8】
前記マスク区間に基づいて、前記判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定することは、
処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置が前記マスク区間内にないことに応答して、前記判定ユニットによって前記処理すべきアテンションタスクを前記目標アテンションタスクとして決定することを含み、
前記中間特徴行列は、前記処理すべきアテンションタスクに対応するクエリ行列及びキー行列に基づいて取得される
請求項2~5のいずれか一項に記載の方法。
【請求項9】
前記マスク区間は、マスク終止位置及びマスク開始位置を含み、
処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置が前記マスク区間内にないことに応答して、前記判定ユニットにより前記処理すべきアテンションタスクを前記目標アテンションタスクとして決定することは、
処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置が前記マスク終止位置より大きい又は前記マスク開始位置より小さいことに応答して、前記判定ユニットにより前記処理すべきアテンションタスクを前記目標アテンションタスクとして決定することを含む
請求項8に記載の方法。
【請求項10】
計算ユニットによって前記目標アテンションタスクを実行し、アテンション特徴を得ることは、
計算ユニットにより、目標記憶ユニットから前記目標アテンションタスクに対応する少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列を読み取ることと、
前記少なくとも1つの前記クエリ行列、前記少なくとも1つの前記キー行列、前記少なくとも1つの前記値行列及び前記少なくとも1つの前記マスク行列に基づいて、目標計算ユニットによって前記目標アテンションタスクを実行し、前記アテンション特徴を得ることと、を含む
請求項1~7のいずれか一項に記載の方法。
【請求項11】
前記少なくとも1つの前記クエリ行列、前記少なくとも1つの前記キー行列、前記少なくとも1つの前記値行列及び前記少なくとも1つの前記マスク行列に基づいて、目標計算ユニットによって前記目標アテンションタスクを実行して、前記アテンション特徴を得ることは、
前記クエリ行列及び前記キー行列の転置に基づいて、第1の中間特徴を得ることと、
前記第1の中間特徴と前記マスク行列に基づいて、第2の中間特徴を得ることと、
活性化関数を利用して前記第2の中間特徴を処理して、活性化特徴行列を得ることと、
前記活性化特徴行列及び前記キー行列に基づいて、前記アテンション特徴を得ることと、を含む
請求項10に記載の方法。
【請求項12】
前記方法は、
ブロック化ユニットによってブロック化タスクを実行し、処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、前記処理すべき特徴に対応するパラメータ行列をブロック化して、各処理すべきアテンションタスクに対応する、クエリ行列、キー行列、値行列及びマスク行列を含むパラメータ行列を取得することと、
目標記憶ユニットによって、各処理すべきアテンションタスクに対応する前記クエリ行列、前記キー行列、前記値行列及び前記マスク行列を記憶することと、をさらに含む
請求項1~7のいずれか一項に記載の方法。
【請求項13】
前記方法は、
スパース表現ユニットによりスパース表現タスクを実行して、前記処理すべきタスクに対応するシーンカテゴリに基づいて、前記処理すべき特徴に対してスパース表現を行うことをさらに含む
請求項1~7のいずれか一項に記載の方法。
【請求項14】
前記処理すべきタスクに対応するシーンカテゴリに基づいて、前記処理すべき特徴に対してスパース表現を行うことは、
前記シーンカテゴリが因果シーンであることに応答して、前記マスク行列の対角線で前記マスク行列を互いに交差しない2つの第1の区間と第2の区間に分割し、前記第1の区間内の要素は全てマスクされることと、
前記第2の区間内のマスク端点位置を用いて前記処理すべき特徴に対してスパース表現を行うことと、を含む
請求項13に記載の方法。
【請求項15】
前記処理すべきタスクに対応するシーンカテゴリに基づいて、前記処理すべき特徴に対してスパース表現を行うことは、
前記シーンカテゴリが非因果シーンであることに応答して、前記マスク行列の対角線で前記マスク行列を互いに交差しない2つの第3の区間と第4の区間に分割することと、
前記第3の区間内のマスク端点位置と前記第4の区間内のマスク端点位置を用いて前記処理すべき特徴に対してスパース表現を行うことと、を含む
請求項13に記載の方法。
【請求項16】
大規模言語モデルに用いられるタスク実行装置であって、
処理すべき特徴に対応する、前記処理すべき特徴のマスク位置を表すスパース表現に基づいて、複数の処理すべきアテンションタスクから、前記処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、前記マスク位置が前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表す判定ユニットと、
前記目標アテンションタスクを実行し、アテンション特徴を取得する計算ユニットと、を含む
大規模言語モデルに用いられるタスク実行装置。
【請求項17】
前記判定ユニットは、
処理すべき特徴に対応するスパース表現に基づいて、前記複数の処理すべきアテンションタスクに対応するマスク区間を決定する第1の決定サブユニットと、
前記マスク区間に基づいて、前記判定ユニットにより複数の処理すべきアテンションタスクから目標アテンションタスクを決定する第2の決定サブユニットと、を含む
請求項16に記載の装置。
【請求項18】
前記第1の決定サブユニットは、
処理すべきアテンションタスクごとに、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における複数のマスク端点位置を決定し、
前記複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定する
請求項17に記載の装置。
【請求項19】
前記マスク位置は、前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各列の要素の開始マスク行及び終了マスク行であり、前記第1の決定サブユニットは、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各列要素の開始マスク行及び終了マスク行を決定する
請求項18に記載の装置。
【請求項20】
前記第1の決定サブユニットは、
前記各列要素の終了マスク行を前記マスク区間の終了位置として決定し、
前記各列要素の開始マスク行を前記マスク区間の開始位置として決定する
請求項19に記載の装置。
【請求項21】
前記マスク位置は、前記処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各行要素の開始マスク列及び終了マスク列であり、前記第1の決定サブユニットは、
処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各行要素の開始マスク列及び終了マスク列を決定する
請求項18に記載の装置。
【請求項22】
前記第1の決定サブユニットは、
前記各行要素の終了マスク列を前記マスク区間の終了位置として決定し、
前記各行要素の開始マスク列を前記マスク区間の開始位置として決定する
請求項21に記載の装置。
【請求項23】
前記第2の決定サブユニットは、
処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置が前記マスク区間内にないことに応答して、前記判定ユニットによって前記処理すべきアテンションタスクを前記目標アテンションタスクとして決定し、
前記中間特徴行列は、前記処理すべきアテンションタスクに対応するクエリ行列及びキー行列に基づいて取得される
請求項17~20のいずれか一項に記載の装置。
【請求項24】
前記マスク区間は、マスク終止位置及びマスク開始位置を含み、
前記第2の決定サブユニットは、
処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置が前記マスク終止位置より大きい又は前記マスク開始位置より小さいことに応答して、前記判定ユニットにより前記処理すべきアテンションタスクを前記目標アテンションタスクとして決定する
請求項23に記載の装置。
【請求項25】
前記計算ユニットは、
計算ユニットによって目標記憶ユニットから前記目標アテンションタスクに対応する少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列を読み取る読み取りサブユニットと、
前記少なくとも1つの前記クエリ行列、前記少なくとも1つの前記キー行列、前記少なくとも1つの前記値行列及び前記少なくとも1つの前記マスク行列に基づいて、目標計算ユニットによって前記目標アテンションタスクを実行し、前記アテンション特徴を得る計算サブユニットと、を含む
請求項16~22のいずれか一項に記載の装置。
【請求項26】
前記計算サブユニットは、
前記クエリ行列及び前記キー行列の転置に基づいて、第1の中間特徴を取得し、
前記第1の中間特徴と前記マスク行列に基づいて、第2の中間特徴を取得し、
活性化関数を利用して前記第2の中間特徴を処理して、活性化特徴行列を取得し、
前記活性化特徴行列及び前記キー行列に基づいて、前記アテンション特徴を取得する
請求項25に記載の装置。
【請求項27】
前記装置は、
処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、前記処理すべき特徴に対応するパラメータ行列をブロック化して、各処理すべきアテンションタスクに対応する、クエリ行列、キー行列、値行列及びマスク行列を含むパラメータ行列を取得するように、ブロック化タスクを実行するブロック化ユニットと、
各処理すべきアテンションタスクに対応する前記クエリ行列、前記キー行列、前記値行列及び前記マスク行列を記憶する目標記憶ユニットと、をさらに含む
請求項16~22のいずれか一項に記載の装置。
【請求項28】
前記装置は、
スパース表現タスクを実行して、前記処理すべきタスクに対応するシーンカテゴリに基づいて、前記処理すべき特徴に対してスパース表現を行うスパース表現ユニットをさらに含む
請求項16~22のいずれか一項に記載の装置。
【請求項29】
前記スパース表現ユニットは、
前記シーンカテゴリが因果シーンであることに応答して、前記マスク行列の対角線で前記マスク行列を互いに交差しない2つの第1の区間と第2の区間に分割し、前記第1の区間内の要素が全てマスクされる第1の分割サブユニットと、
前記第2の区間内のマスク端点位置を用いて前記処理すべき特徴に対してスパース表現を行う第1の表示サブユニットと、を含む
請求項28に記載の装置。
【請求項30】
前記スパース表現ユニットは、
前記シーンカテゴリが非因果シーンであることに応答して、前記マスク行列の対角線で前記マスク行列を互いに交差しない2つの第3の区間と第4の区間に分割する第2の分割サブユニットと、
前記第3の区間内のマスク端点位置と前記第4の区間内のマスク端点位置を用いて前記処理すべき特徴に対してスパース表現を行う第2の表示サブユニットと、を含む
請求項28に記載の装置。
【請求項31】
請求項16から22のいずれか一項に記載の装置を含む、
大規模言語モデルに用いられるタスク実行機器。
【請求項32】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続されたメモリと、を含み、
前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令は、前記少なくとも1つのプロセッサが請求項1~7のいずれか1項に記載の方法を実行できるように、前記少なくとも1つのプロセッサによって実行される
電子機器。
【請求項33】
コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1~7のいずれか1項に記載の方法を実行させる
非一時的なコンピュータ可読記憶媒体。
【請求項34】
プロセッサによって実行されると、請求項1~7のいずれか一項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術分野に関し、特に深層学習、大規模言語モデル、自然言語処理、コンピュータビジョン等の技術分野に関し、特に、大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体に関する。
【背景技術】
【0002】
大規模言語モデル(略称:LLM、英語:Large Language Model)とは、大量のデータで訓練された高度な人工知能アルゴリズムを指す。1000億以上のパラメータを超える自然言語処理システムは、コンテンツ生成、文字要約、チャットボット、プログラムコードの作成、タンパク質構造や生体分子の属性などの客観化を予測するAI応用プログラムに適用できる。
【0003】
現在の大規模言語モデルは主にTransformerアーキテクチャを利用してアテンションメカニズムに基づく特徴処理プロセスを実現する。
【発明の概要】
【0004】
本開示は、大規模言語モデルに用いられるタスク実行方法、装置、機器及び記憶媒体を提供する。
【0005】
本開示の一態様によれば、大規模言語モデルに用いられるタスク実行方法を提供し、処理すべき特徴に対応する、処理すべき特徴のマスク位置を表すスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから、処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表すことと、計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を得ることと、を含む。
【0006】
本開示の別の態様によれば、判定ユニットと計算ユニットとを含む、大規模言語モデルに用いられるタスク実行装置を提供する。判定ユニットは、処理すべき特徴に対応する、処理すべき特徴のマスク位置を表すスパース表現に基づいて、複数の処理すべきアテンションタスクから、処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、マスク位置が処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表す。計算ユニットは、目標アテンションタスクを実行し、アテンション特徴を取得する。
【0007】
本開示の別の態様によれば、大規模言語モデルに用いられるタスク実行機器が提供され、当該機器は、本開示に係る大規模言語モデルに用いられるタスク実行装置を含む。
【0008】
本開示の別の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信接続されるメモリとを含み、メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、命令は、少なくとも1つのプロセッサによって実行され、少なくとも1つのプロセッサが本開示に係る方法を実行できるようにする電子機器を提供する。
【0009】
本開示の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体を提供し、当該コンピュータ命令は、コンピュータに本開示に係る方法を実行させる。
【0010】
本開示の別の態様によれば、プロセッサによって実行されると、本開示に係る方法を実現するコンピュータプログラムが提供される。
【0011】
本部分に記載された内容は、本開示の実施例の主な又は重要な特徴を識別するためのものではなく、本開示の範囲を制限するものでもないことを理解されたい。本開示のその他の特徴は、以下の明細書によって容易に理解されるであろう。
【図面の簡単な説明】
【0012】
図面は、本発明をより良く理解するためのものであり、本開示を限定するものではない。
【0013】
図1図1は、本開示の実施例に係る大規模言語モデルを適用可能なタスク実行方法及び装置の例示的なシステムアーキテクチャを模式的に示す。
図2図2は、本開示の実施例に係る大規模言語モデルに用いられるタスク実行方法のフローチャートである。
図3A図3Aは、本開示の実施例に係る因果シーンにおけるマスク模式図を模式的に示す。
図3B図3Bは、本開示の実施例に係る因果シーンにおけるマスク模式図を模式的に示す。
図3C図3Cは、本開示の実施例に係る因果シーンにおけるマスク模式図を模式的に示す。
図3D図3Dは、本開示の実施例に係る因果シーンにおけるマスク模式図を模式的に示す。
図4A図4Aは、本開示の実施例に係る非因果シーンにおけるマスク模式図を模式的に示す。
図4B図4Bは、本開示の実施例に係る非因果シーンにおけるマスク模式図を模式的に示す。
図5図5は、本開示の実施例に係る複雑シーンにおけるマスク模式図を模式的に示す。
図6図6は、本開示の実施例に係る処理すべきタスクをブロック化する模式図を模式的に示す。
図7図7は、本開示の実施例に係る目標処理すべきタスクを決定する模式図を模式的に示す。
図8図8は、本開示の実施例に係る目標処理タスクに対してアテンション計算を実行する模式図を模式的に示す。
図9図9は、本開示の実施例に係る大規模言語モデルに用いられるタスク実行装置のブロック図である。
図10図10は、本開示の実施例に係る大規模言語モデルに用いられるタスク実行方法を実現するのに適する電子機器のブロック図を模式的に示す。
【発明を実施するための形態】
【0014】
以下、図面を参照して本開示の例示的な実施例を説明し、理解を容易にするために、本開示の実施例の様々な詳細を含み、これらは例示的なものに過ぎない。したがって、当業者は、ここに記載された実施例に対して、本開示の範囲及び精神から逸脱することなく、様々な変更及び修正を行うことができることを理解すべきである。同様に、明確かつ簡潔にするため、以下の説明では、公知の機能及び構造についての説明を省略する。
【0015】
Transformerは、目標大規模言語モデルの基礎であり、複雑シーンにおける自然言語問題に対応することができる。Transformerの計算プロセスは、アテンションメカニズムに依存し、大規模言語モデルのトレーニング過程において、通常、トレーニング段階とトレーニングタスクに応じて異なるマスク行列を参照することにより、大規模言語モデルがアテンションタスクを実行する際に、マスクされた特徴部分を選択的に無視することができ、それにより、大規模言語モデルの処理性能を向上させる。
【0016】
関連例示において、マスク形状は一般的に[B、A、S、S]を採用し、Bはバッチサイズ(batch size)を示し、Aはヘッド(head)数を示す。Sは特徴系列の長さを示す。このようなマスク方式は、ハードウェアリソースに対してシーケンス長の2乗レベルのビデオメモリ占用及びメモリアクセスオーバーヘッドをもたらすだけでなく、アテンションタスクを実行する際にマスク領域に対する大量の無効計算が存在し、モデルの処理効率に影響を与える。
【0017】
別の例示におけるスパース又は低ランクのアテンションメカニズムは、粗い粒度のマスク方式を採用し、計算オーバーヘッドを低減できるが、モデルの精度損失が大きい。
【0018】
これに鑑み、高効率マスクによる表示メモリに対する占用および無効計算のメモリアクセスオーバーヘッドを低減するために、本開示の実施例は、大規模言語モデルに用いられるタスク実行方法を提供し、処理すべき特徴に対応する、処理すべき特徴のマスク位置を表すスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから、処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定することと、計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を得ることと、を含み、ここで、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表す。
【0019】
図1は、本開示の実施例に係る大規模言語モデルに用いられるタスク実行方法及び装置の例示的なシステムアーキテクチャを模式的に示す。
【0020】
図1は、本開示の実施例を適用可能なシステムアーキテクチャの例示であり、当業者が本開示の技術内容を理解するのを助けるが、本開示の実施例が他の機器、システム、環境又はシーンに用いられることができないことを意味するものではない。例えば、別の実施例では、大規模言語モデルに用いられるタスク実行方法及び装置の例示的なシステムアーキテクチャは、端末機器を含んでもよいが、端末機器は、サーバとインタラクションする必要がなく、本開示の実施例が提供した大規模言語モデルに用いられるタスク実行方法及び装置を実現することができる。
【0021】
図1に示すように、当該実施例に係るシステムアーキテクチャは、端末機器101、ネットワーク102及びサーバクラスタ103を含んでもよい。ネットワーク102は、端末機器101とサーバクラスタ103との間で通信リンクを提供するための媒体として用いられる。ネットワーク102は、サーバクラスタ103の内部に通信リンクを提供する媒体として用いられても良い。ネットワーク102は、有線及び/又は無線通信リンクなどの様々な接続タイプを含んでもよい。
【0022】
ユーザは、端末機器101を用いて、ネットワーク102を介してサーバクラスタ103とインタラクションし、メッセージ等を受信又は送信することができる。例えば、端末機器101は、ネットワーク102を介してサーバクラスタ103に深層学習モデルをトレーニングするための要求を送信してもよい。
【0023】
端末機器101には、知識閲覧アプリケーション、ウェブブラウザアプリケーション、検索アプリケーション、インスタントメッセージツール、メールボックスクライアント及び/又はソーシャルプラットフォームソフトウェアなど(例示的な例に過ぎない)の様々な通信クライアントアプリケーションがインストールされてもよい。
【0024】
端末機器101は、ディスプレイを有し、ウェブページ閲覧をサポートする様々な電子機器であってもよく、スマートフォン、タブレットコンピュータ、ラップトップポータブルコンピュータ、デスクトップコンピュータなどを含むが、これらに限定されない。
【0025】
サーバクラスタ103は、様々なサービスを提供するサーバであってもよく、例えば、ユーザが端末機器101を利用して送信した要求に対してサポートを提供するバックグラウンド管理サーバであっても良い(例示に過ぎない)。
【0026】
サーバクラスタ103は、クラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムのうちの1つのホスト製品であり、従来の物理ホストとVPSサービス(「Virtual Private Server」又は「VPS」と略称する。)における管理難易度が高く、サービス拡張性が弱いという欠点を解決する。サーバは、分散システムのサーバであってもよく、ブロックチェーンが結合されたサーバであってもよい。
【0027】
サーバクラスタ103は、1つ以上のハードウェア機器を含む複数のサーバノード1031、1032、1033、1034を含む。サーバクラスタ103又はサーバノードを利用して本開示に提供される大規模モデルに用いられるタスク実行方法を実行することができ、低い計算リソース及び記憶リソースにより、大規模モデルのデプロイ、推論又はトレーニングを実現する。
【0028】
以上、本開示のシステムアーキテクチャについて説明したが、以下、本開示の方法について説明する。
【0029】
図2は、本開示の実施例による大規模言語モデルに用いられるタスク実行方法のフローチャートを概略的に示す。
【0030】
図2に示すように、当該方法200は、操作S210-S220を含む。
【0031】
操作S210において、処理すべき特徴に対応するスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定する。
【0032】
操作S220において、計算ユニットにより目標アテンションタスクを実行し、アテンション特徴を得る。
【0033】
本開示の実施例によれば、判定ユニット、計算ユニットは、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、人工知能計算ユニットの少なくとも1つを含んでも良い。人工知能計算ユニットは、ニューラルネットワーク処理ユニット(NPU)、テンソル処理ユニット(TPU)及び崑崙チップ(Kunlun chip)などの少なくとも1つを含んでもよい。
【0034】
本開示の実施例によれば、スパース表現は、処理すべき特徴のマスク位置を表し、マスク形状の表現とすることができる。マスク位置は、処理すべき特徴に対応するマスク行列において、少なくとも2つの互いに交差しない区間におけるマスク端点位置を表す。
【0035】
例えば、スパース表現は、形状が[B、A、S、n]であるマスクを示すことができ、ここで、Bはバッチサイズ(batch size)を示し、Aはヘッド(head)数を示し、Sは特徴シーケンスの長さを表し、n=dkであり、kはS次元における特徴シーケンスが区切られた互いに交差しない区間の数を表し、dは各区間においてマスク端点位置を識別するための要素数を表す。
【0036】
d=1の場合、当該区間内でマスク端点位置を識別するための要素が1つであることを示してもよく、開始端点位置であってもよいし、終了端点位置であってもよい。開始端点位置でマスク端点位置を識別する場合、該開始端点から該領域境界線までがマスク領域であることを示す。終了端点位置でマスク端点位置を識別する場合、該領域境界線から該終了端点までがマスク領域であることを示す。
【0037】
d=2の場合、当該区間内でマスク端点位置を識別するための要素が2つであることを示すことができ、開始端点位置も終了端点位置も含む。
【0038】
図3Aは、本開示の実施例による因果シーンにおけるマスク模式図を模式的に示す。
【0039】
図3Bは、本開示の実施例による因果シーンにおけるマスク模式図を模式的に示す。
【0040】
図3A及び図3Bにおいて、いずれも対角線を境にマスク行列を左下領域と右上領域とに分けることができ、右上領域がいずれもマスクされているため、左下領域のマスク状況のみを表現することができる。図中、S及びEは、それぞれ左下領域のマスク開始端点位置及びマスク終了端点位置を示し、S及びEは、それぞれ左下領域のマスク開始端点位置及びマスク終了端点位置を示す。図面における陰影領域は非マスク領域を示し、薄い灰色領域はマスク領域を示す。
【0041】
図3Aに示すように、マスク模式図300Aでは、左下領域内において、1列目のマスク領域が4行目から境界線まで終了するため、S=4である。0、7、8、9列目がいずれも非マスク領域であるため、S=10であり、無限大であってもよい。このようなシーンにおいて、各マスク領域が境界線まで終了するため、[B、A、S、2]の形状ですパース表現を行うことができる。
【0042】
図3Bに示すように、マスク模式図300Bにおいて、左下領域において、0列目のマスク領域は、4行目から7行目まで終了するため、S=4であり、E=7である。このようなシーンにおいて、マスク領域がすべて境界線まで終了するではないため、[B、A、S、4]の形状でスパース表現を行うことができる。
【0043】
なお、マスク模式図300A及びマスク模式図300Bの右上領域がいずれもマスクされているため、シーケンスの長さによるメモリ占用及びアクセスオーバーヘッドをさらに低減するために、因果シーンにおけるスパース表現について、[B、A、S、1](図3Aに対応)及び[B、A、S、2](図3Bに対応)に簡略化してもよい。このような簡略化されたスパース表現は、マスク形式が簡単である因果シーンにのみ適用される。
【0044】
本開示の実施例によれば、アテンションタスクは、大規模言語モデルに対応するマルチヘッド自己アテンションタスクであってもよい。例えば、複数のアテンションタスクは、上記大規模言語モデルの複数の処理層のマルチヘッド自己アテンションメカニズムに基づいて推論するモジュールに対応することができる。
【0045】
本開示の実施例によれば、アテンションメカニズムに基づく計算式は以下の通りである。
【0046】
【数1】
【0047】
ここで、Q、K、Vはそれぞれクエリ(query)行列、キー(key)行列及び値(value)行列を表し、形状はいずれも[B、S、A、H]であり、Hはヘッドの大きさを示し、B、S、Aは前述の意味と同じであるため、ここでは説明を省略する。Mはマスク行列を表す。
【0048】
上記式(1)に基づいてアテンション計算を行う場合、
【0049】
【数2】
【0050】
を計算して得られた中間特徴が対応するマスク行列におけるマスク領域に加算された場合、アテンションメカニズムの計算結果は0である。
【0051】
したがって、この部分の前期行列演算は実際には無効であり、むしろ余分な計算オーバーヘッドが発生する。判定ユニットにより、現在処理すべきアテンションタスクが完全マスク領域に対応するタスクであるか否かを判断し、アテンションタスクを実行する前に、完全マスク領域に対応するタスクをスキップして、アテンションタスクの実行中の計算オーバーヘッドを低減する。
【0052】
本開示の実施例によれば、目標アテンションタスクは、処理すべき特徴の非完全マスク領域に対応するタスクであってもよい。例えば、部分マスク領域に対応するタスク及び/又は非マスク領域に対応するタスクを含んでもよい。そして、計算ユニットにより、非完全マスク領域に対応するタスクのみに対してアテンション計算を実行し、アテンション特徴を得る。
【0053】
本開示の実施例によれば、処理すべき特徴に対応するスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから処理すべき特徴の非完全マスク領域に対応するタスクを決定することにより、アテンションタスクを実行する前に、完全マスク領域に対応するタスクをスキップし、計算ユニットによって非完全マスク領域に対応するタスクのみに対してアテンション計算を実行し、アテンション特徴を取得し、アテンションタスクの実行中の計算オーバーヘッドを低減する。
【0054】
大規模言語モデルの適用シーンの増加に伴い、如何に特徴シーケンスの長さの線形レベルの時空間オーバーヘッドにおいて、異なるシーンにおけるマスク形状を正確に表現するかによって、精度を損失さずに、メモリ占用及び計算オーバーヘッドを低減すること実現することができる。
【0055】
したがって、本開示の実施例に係る方法は、スパース表現ユニットを用いてスパース表現タスクを実行して、処理すべきタスクに対応するシーンカテゴリに基づいて、処理すべき特徴に対してスパース表現を行う操作をさらに含む。
【0056】
本開示の実施例によれば、シーンカテゴリは、因果シーン、非因果シーン及び複雑シーンを含んでもよい。因果シーンは、例えば、広告出稿のアイテム推薦シーンであってもよい。非因果シーンは、例えば、テキスト認識シーンであってもよい。複雑シーンは、例えば、マルチモーダルタスク識別シーンであってもよい。
【0057】
本開示の実施例によれば、処理すべきタスクに対応するシーンカテゴリに基づいて、処理すべき特徴に対してスパース表現を行うことは、シーンカテゴリが因果シーンであることに応答して、マスク行列の対角線でマスク行列を互いに交差しない2つの第1の区間と第2の区間に分割し、且つ第1の区間内の要素が全てマスクされる操作と、第2の区間内のマスク端点位置を用いて処理すべき特徴に対してスパース表現を行う操作とを含むことができる。
【0058】
本開示の実施例によれば、マスク端点位置は、処理すべき特徴に対応するマスク行列における第2の区間の各列要素の開始マスク行及び終了マスク行であってもよい。
【0059】
図3Cは、本開示の実施例による因果シーンにおけるマスク模式図を模式的に示す。
【0060】
図3Dは、本開示の実施例による因果シーンにおけるマスク模式図を模式的に示す。
【0061】
図3C及び図3Dにおける図示の意味は、前述の図3A及び図3Bと同じであり、ここでは説明を省略する。第1の区間は右上領域であってもよく、第2の区間は左下領域であってもよい。
【0062】
図3Cに示すように、マスク模式図300Cにおいて、0-9列目の開始マスク行はいずれも5行目であり、マスク終止行はいずれも境界線であり、シーケンス長さSは10であり、マスク終止行を示す必要がある場合、スパース表現は[B、A、10、2]であってもよい。マスク終止行を示す必要がない場合、スパース表現は[B、A、10、1]であってもよく、対応する数値は[[5]、[5]、[5]、[5]、[5]、[5]、[5]、[5]、[5]、[5]]であってもよい。
【0063】
図3Dに示すように、マスク模式図300Dにおいて、0-3列目、7-9行目は全てマスクされておらず、4-6列目の開始マスク行はいずれも7行目であり、マスク終止行はいずれも境界線であり、シーケンス長さSは10であり、マスク終止行を示す必要がある場合、スパース表現は[B、A、10、2]であってもよい。マスク終止行を示す必要がない場合、スパース表現は[B、A、10、1]であってもよく、対応する数値は[[10]、[10]、[10]、[10]、[7]、[7]、[7]、[10]、[10]、[10]]であってもよい。
【0064】
本開示の実施例によれば、シーンカテゴリが非因果シーンであることに応答して、マスク行列の対角線でマスク行列を互いに交差しない2つの第3の区間と第4の区間に分割し、第3の区間内のマスク端点位置と第4の区間内のマスク端点位置を用いて処理すべき特徴に対してスパース表現を行う。
【0065】
本開示の実施例によれば、マスク端点位置は、処理すべき特徴に対応するマスク行列における第3の区間の各列要素の開始マスク行及び終了マスク行、第4の領域の各列要素の開始マスク行及び終了マスク行であってもよい。
【0066】
図4A図4Bは、本開示の実施例による非因果シーンにおけるマスク模式図を模式的に示す。
【0067】
図4A及び図4Bにおける図示の意味は、前述の図3A及び図3Bと同じであり、ここでは説明を省略する。第3の区間は右上領域であってもよく、第4の区間は左下領域であってもよい。
【0068】
図4Aに示すように、マスク模式図400Aにおいて、左下領域において、0-2列目はいずれも非マスク領域であり、3-9列目のマスク終止行はいずれも境界線であり、開始マスク行はそれぞれ3-9行目である。右上領域において、0-2列目はいずれも非マスク領域であり、3列目のマスクは左下領域に既に示され、4列目の開始マスク行は3であり、マスク終止行は4であるため、対応列におけるS=3であり、E=4である。このように類推する。
【0069】
図4Bに示すように、マスク模式図400Bにおいて、左下領域において、0-3列目の開始マスク行は4であり、マスク終止行は境界線である。4-6列目の開始マスク行は7であり、マスク終止行は境界線である。7-9列目は、いずれも非マスク領域である。右上領域では、0-3列目が非マスク領域である。4-6列目の開始マスク行は境界線であり、マスク終止行は4である。7-9列目の開始マスク行は境界線であり、マスク終止行は7である。したがって、スパース表現は[B、A、10、2]でり、数値は[[0、4]、[0、4]、[0、4]、[0、4]、[4、7]、[4、7]、[4、7]、[7、10]、[7、10]、[7、10]]である。
【0070】
上記2つのシーンにおいて、マスク形状が比較的簡単であり、マスク行列に対して2つの領域のみを分割すれば、マスク形状の正確な表現を実現することができる。しかし、図5に示す複雑なシーンにおけるマスク模式図に対して、互いに交差しない区間をより多く分割することで、マスク形状を正確に表現することができる。
【0071】
図5は、本開示の実施例に係る複雑シーンにおけるマスク模式図を模式的に示す。
【0072】
図5に示すように、マスク模式図500において、2行毎に1つの区間として、ハッチング領域は非マスク領域を示し、線灰色領域はマスク領域を示す。S-Sは、各区間内の各列要素の開始マスク行をそれぞれ示し、E-Eは、各区間内の各列要素の終了マスク行をそれぞれ示す。
【0073】
例えば、0列目、k区間おいて、全てが非マスク領域である。k区間において、開始マスク行は2であり、マスク終止行は4であり(マスク終止行が当該区間の境界線であるため、終了行の表示を省略してもよい)、対応列のS=2であり、E=4である。k区間おいて、全てが非マスク領域である。k区間において、開始マスク行は6であり、マスク終止行は8であり、対応列のS=6であり、E=8である。k区間において、全てが非マスク領域である。したがって、スパース表現は[B、A、10、10]であってもよく、対応する数値は図5に示される。
【0074】
本開示の実施例によれば、異なるシーンにおけるマスク形状に対して正確なスパース表現を行うことにより、特徴シーケンス長さの線形時空間オーバーヘッドにおいて、精度を損失さずに、メモリ占用及び計算オーバーヘッドを低減することができる。
【0075】
大規模言語モデルがタスクを実行する過程において、処理に関与するパラメータは、千億レベルであるため、モデルの処理効率を向上させるために、特徴をブロック化した後、分散型の複数のGPUで並列処理することができる。
【0076】
したがって、本開示の実施例が提供した、大規模言語モデルに用いられるタスク実行方法は、ブロック化ユニットによってブロック化タスクを実行し、処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、処理すべき特徴に対応するパラメータ行列をブロック化して、各処理すべきアテンションタスクに対応する、クエリ行列、キー行列、値行列及びマスク行列を含むパラメータ行列を取得することと、目標記憶ユニットによって、各処理すべきアテンションタスクに対応するクエリ行列、キー行列、値行列及びマスク行列を記憶することと、をさらに含む。
【0077】
本開示の実施例によれば、処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、まず、ブロック化タスクを実行するためのハイパーパラメータを決定し、その後、行列乗算規則に基づいて、処理すべき特徴に対応するパラメータ行列をブロック化して、各処理すべきアテンションタスクに対応するパラメータ行列を得ることができる。
【0078】
例えば、クエリ行列の形状は、[2、8、1024、128]であってもよく、[2、8、64、128]又は[2、8、128、128]のパラメータ行列に分割することができる。クエリ行列の形状は、[2、8、1024、256]であってもよく、[2、8、32、256]又は[2、8、64、256]又は[2、8、128、256]又は[2、8、256、256]のパラメータ行列に分割することができる。
【0079】
図6は、本開示の実施例に係る処理すべきタスクをブロック化する模式図を模式的に示す。
【0080】
図6に示すように、Query行列、Key行列、Value行列及びMask行列は、いずれも4つのブロックに分けることができ、各ブロックは3つの要素を含む。
【0081】
本開示の実施例によれば、処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、処理すべき特徴に対応するパラメータ行列をブロック化することにより、大規模言語モデルの処理効率を効果的に向上させることができる。
【0082】
本開示の実施例によれば、アテンション計算メカニズムに基づいて、Query行列とKey行列の転置の乗算により得られた行列次元は、Mask行列の次元と同じであるため、Query行列とKey行列のブロック化次元は、Mask行列のブロック化次元を決定する。
【0083】
したがって、複数の処理すべきアテンションタスクに対応するマスク区間を決定することによって、当該処理すべきアテンションタスクが無効タスクであるか否かを判断することにより、アテンションタスクを実行する過程において無効タスクが計算オーバーヘッドを占用することを減少させることができる。
【0084】
本開示の実施例によれば、処理すべき特徴に対応するスパース表現に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定することは、処理すべき特徴に対応するスパース表現に基づいて、複数の処理すべきアテンションタスクに対応するマスク区間を決定することと、マスク区間に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定することと、を含む。
【0085】
本開示の実施例によれば、マスク区間は、マスク開始端点とマスク終了端点との間の領域を表すことができる。これにより、処理すべきアテンションタスクにおけるどのタスクの中間計算結果行列がマスク区間内にあるかを判断し、アテンションタスクを実行する前に、マスク区間内に位置する処理すべきアテンションタスクが無効タスクであると決定する。
【0086】
ブロック化は、同一のバッチの同一のヘッドのアテンションタスクに対応する特徴行列に基づいて行われるため、ここでは、B、Aの表示を省略する。例えば、Query行列のブロックが[3、128]であり、Key行列のブロックが[3、128]であり、Q*K^T=[3、3]であるため、Mask行列のブロックが[3、3]であると決定することができる。
【0087】
従って、各[3、3]ブロックがマスク区間に位置するか否かをトラバースし、対応する処理すべきアテンションタスクが無効タスクであるか否かを決定する。
【0088】
図7は、本開示の実施例に係る目標処理すべきタスクを決定する模式図を模式的に示す。
【0089】
図7に示すように、実施例700において、非陰影領域はマスク領域であり、701はあるバッチのあるヘッドの全ての処理すべきアテンションタスクに含まれる12個のtokenを示す。処理すべきアテンションタスクBに対応する[3、3]ブロック7012における全ての領域がマスク領域であり、処理すべきアテンションタスクBが無効タスクであると決定することができる。処理すべきアテンションタスクAに対応する[3、3]ブロック7011における一部の領域のみがマスク領域であるため、処理すべきアテンションタスクAが目標アテンションタスクであると決定することができる。
【0090】
本開示の実施例によれば、マスク区間に基づいて無効タスクをスクリーニングし、アテンションタスクを実行する前に無効タスクをスキップして、無効タスクに占用される計算オーバーヘッドを低減することができる。
【0091】
本開示の実施例によれば、処理すべき特徴に対応するスパース表現に基づいて、複数の処理すべきアテンションタスクに対応するマスク区間を決定することは、処理すべきアテンションタスクごとに、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における複数のマスク端点位置を決定することと、複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することとを含んでも良い。
【0092】
本開示の実施例によれば、各処理すべきアテンションタスクは、ブロック化されたアテンションタスクであってもよい。
【0093】
異なる応用シーンのマスク形状が異なるため、異なる応用シーンのニーズに適応するために、マスク位置は処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各列の要素の開始マスク行と終了マスク行であってもよい。
【0094】
本開示の実施例によれば、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列におけるマスク端点位置を決定することは、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各列要素の開始マスク行及び終了マスク行を決定することを含むことができる。
【0095】
本開示の実施例によれば、複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することは、各列の要素の終了マスク行をマスク区間の終了位置として決定することと、各列の要素の開始マスク行をマスク区間の開始位置として決定することと、を含む。
【0096】
図7に示すように、スパース表現の形状は[B、A、12、4]であってもよく、対応する数値は順に、左下領域の開始マスク行が[12、5、5、5、6、6、9、9、9、12、12、12]であり、左下領域のマスク終了行が[12、11、11、11、11、11、11、11、11、12、12、12]であり、右上領域の開始マスク行が[0、0、0、0、0、0、0、0、0、0、0、0]であり、右下領域の終了マスク行が[0、1、2、2、3、3、6、6、6、12、12、12]であってもよい。
【0097】
本開示の実施例によれば、処理すべきタスクAに対応するブロックについて、そのブロックは左下区間内にあり、当該区間内で対応するのは0-2列であり、対応する列の終了マスク行[12、11、11]を当該マスク区間の終了位置とすることができる。対応する列の開始マスク行[12、5、5]を当該マスク区間の開始位置とすることができる。
【0098】
本開示の実施例によれば、処理すべきタスクBに対応するブロックについて、そのブロックは左下区間にあり、当該区間内において3-5列目に対応し、対応する列の終了マスク行[12、11、11]を該マスク区間の終了位置とすることができ、対応する列の開始マスク行[5、6、6]を当該マスク区間の開始位置とすることができる。
【0099】
本開示の実施例によれば、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各行要素の開始マスク列及び終了マスク列である。
【0100】
本開示の実施例によれば、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列におけるマスク端点位置を決定することは、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各行要素の開始マスク列及び終了マスク列を決定することを含むことができる。
【0101】
本開示の実施例によれば、複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定することは、各行要素の終了マスク列をマスク区間の終了位置として決定することと、各行要素の開始マスク列をマスク区間の開始位置として決定することとを含むことができる。
【0102】
各行要素の開始マスク列及び終了マスク列でマスク位置を示してマスク区間を決定する方法は、各列要素の開始マスク行及び終了マスク行でマスク位置を示してマスク区間を決定する方法の原理と同じであるため、ここでは説明を省略する。
【0103】
本開示の実施例によれば、スパース表現がマスクの形状を正確に表現したため、処理すべきタスクブロック内に対応するマスク行/列の最大(終了マスク行/列)最小値(開始マスク行/列)に基づいて、マスク区間を迅速に決定することができ、無効タスクを判定する際の計算オーバーヘッドを低減することができる。
【0104】
本開示の実施例によれば、マスク区間に基づいて、判定ユニットによって複数の処理すべきアテンションタスクから目標アテンションタスクを決定することは、処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置がマスク区間内にないことに応答して、判定ユニットによって処理すべきアテンションタスクを目標アテンションタスクとして決定することを含み、中間特徴行列は、処理すべきアテンションタスクに対応するクエリ行列とキー行列に基づいて得られる。
【0105】
本開示の実施例によれば、要素端点位置とマスク区間に対して共通部分を求めることによって、処理すべきアテンションタスクが目標アテンションタスクであるか否かを判断することができる。要素端点位置とマスク区間とが共通部分がある場合、且つ要素端点位置が全てマスク区間内にある場合、該処理すべきタスクが無効タスクであると決定することができる。要素端点位置とマスク区間とが一部の共通部分があり、あるいは、共通部分が存在しない場合、当該処理すべきタスクが目標アテンションタスクであると決定することができる。
【0106】
例えば、ある処理すべきタスクに対応する中間特徴行列における要素端点位置が[3、4]であり、マスク区間が[5、11]であることについて、上記2つの区間に共通部分がないと決定することができ、該処理すべきアテンションタスクが目標アテンションタスクであると決定することができる。
【0107】
本開示の実施例によれば、マスク区間は、マスク終止位置及びマスク開始位置を含む。処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置がマスク区間内にないことに応答して、判定ユニットによって処理すべきアテンションタスクを目標アテンションタスクとして決定することは、処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置がマスク終止位置よりも大きい又はマスク開始位置よりも小さいことに応答して、判定ユニットによって処理すべきアテンションタスクが目標アテンションタスクであると決定する操作を含んでもよい。
【0108】
本開示の実施例によれば、中間特徴行列は、式(1)のように得られる
【0109】
【数3】
【0110】
であることができる。
【0111】
図7に示すように、処理すべきタスクAに対応するブロックについて、そのブロックに対応するマスク区間の終了位置は[12、11、11]であり、マスク開始位置は[12、5、5]である。
【0112】
本開示の実施例によれば、処理すべきタスクAに対応するブロックが0-2列目の6-8行に位置し、1-2列目の6-8行のみがマスク区間内に位置し、6が12より小さく、7が5-11の間に位置し、8が5-11の間にあるため、処理すべきタスクAに対応する中間特徴行列における要素が部分的にマスク領域に位置し、目標アテンションタスクとして決定することができる。
【0113】
本開示の実施例によれば、処理すべきタスクBに対応するブロックについて、そのブロックに対応するマスク区間の終了位置は[12、11、11]であり、開始位置は[5、6、6]である。
【0114】
本開示の実施例によれば、処理すべきタスクBに対応するブロックは、3-5列目の6-8行に位置し、6が5-12の間であり、7が6-11の間であり、8が6-11の間であるため、処理すべきタスクBに対応する中間特徴行列における要素は、全てマスク区間内に位置し、処理すべきタスクBに対応するブロックは、全てマスク領域に位置し、無効タスクとして決定することができる。
【0115】
本開示の実施例によれば、ブロック内のマスク区間と要素端点タスクとを比較することにより、判定論理が簡単で効率的であり、線形時間内に無効タスクを迅速に決定することができ、無効タスクをスキップし、アテンションタスクの実行過程における計算オーバーヘッドを低減する。
【0116】
本開示の実施例によれば、計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を得ることは、計算ユニットによって目標記憶ユニットから目標アテンションタスクに対応する少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列を読み取ることと、少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列に基づいて、目標計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を得ることとを含むことができる。
【0117】
図8は、本開示の実施例に係る目標処理タスクに対してアテンション計算を実行する模式図を模式的に示す。
【0118】
図8に示すように、実施例800において、目標アテンションタスクを実行する際に、少なくとも1つのクエリ行列803、少なくとも1つのキー行列802、少なくとも1つの値行列807及び少なくとも1つのマスク行列801に基づいて、目標計算ユニットによって目標アテンションタスクを実行し、アテンション特徴806を得ることができる。
【0119】
例えば、クエリ行列8031及びキー行列8021の転置に基づいて、第1の中間特徴8041を取得し、第1の中間特徴8041及びマスク行列8011に基づいて、第2の中間特徴8051を取得し、活性化関数を利用して第2の中間特徴8051を処理して、活性化特徴行列を取得し、活性化特徴行列及びキー行列8071に基づいて、アテンション特徴8061を得ることができる。
【0120】
本開示の実施例によれば、活性化関数は、正規化関数であってもよい。
【0121】
本開示の実施例によれば、計算ユニットにより目標アテンションタスクに対してのみ計算を実行し、無効タスクに対応するアテンション計算プロセスを減少させ、アテンションタスクを実行する計算オーバーヘッドをさらに低減する。
【0122】
図9は、本開示の実施例による大規模言語モデルに用いられるタスク実行装置のブロック図を概略的に示す。
【0123】
図9に示すように、当該装置900は、判定ユニット910及び計算ユニット920を含むことができる。
【0124】
判定ユニット910は、処理すべき特徴に対応する、処理すべき特徴のマスク位置を表すスパース表現に基づいて、複数の処理すべきアテンションタスクから、処理すべき特徴の非完全マスク領域に対応するタスクである目標アテンションタスクを決定し、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内のマスク端点位置を表す。
【0125】
計算ユニット920は、目標アテンションタスクを実行し、アテンション特徴を得る。
【0126】
本開示の実施例によれば、判定ユニットは、第1の決定サブユニットと第2の決定サブユニットとを含む。第1の決定サブユニットは、処理すべき特徴に対応するスパース表現に基づいて、複数の処理すべきアテンションタスクに対応するマスク区間を決定する。第2の決定サブユニットは、マスク区間に基づいて、判定ユニットにより複数の処理すべきアテンションタスクから目標アテンションタスクを決定する。
【0127】
本開示の実施例によれば、第1の決定サブユニットは、処理すべきアテンションタスクごとに、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における複数のマスク端点位置を決定し、複数のマスク端点位置に基づいて、各処理すべきアテンションタスクに対応するマスク区間を決定する。
【0128】
本開示の実施例によれば、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各列要素の開始マスク行及び終了マスク行であり、第1の決定サブユニットは、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各列要素の開始マスク行及び終了マスク行を決定する。
【0129】
本開示の実施例によれば、第1の決定サブユニットは、各列要素の終了マスク行をマスク区間の終了位置として決定し、各列要素の開始マスク行をマスク区間の開始位置として決定する。
【0130】
本開示の実施例によれば、マスク位置は、処理すべき特徴に対応するマスク行列における少なくとも2つの互いに交差しない区間内の各行要素の開始マスク列及び終了マスク列であり、第1の決定サブユニットは、処理すべき特徴に対応するスパース表現に基づいて、各処理すべきアテンションタスクに対応するマスク行列における各行要素の開始マスク列及び終了マスク列を決定する。
【0131】
本開示の実施例によれば、第1の決定サブユニットは、各行要素の終了マスク列をマスク区間の終了位置として決定し、各行要素の開始マスク列をマスク区間の開始位置として決定する。
【0132】
本開示の実施例によれば、第2の決定サブユニットは、処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置がマスク区間内にないことに応答して、判定ユニットによって処理すべきアテンションタスクを目標アテンションタスクとして決定し、中間特徴行列は、処理すべきアテンションタスクに対応するクエリ行列及びキー行列に基づいて取得される。
【0133】
本開示の実施例によれば、マスク区間は、マスク終止位置及びマスク開始位置を含み、第2の決定サブユニットは、処理すべきアテンションタスクに対応する中間特徴行列における要素端点位置がマスク終止位置より大きい又はマスク開始位置より小さいことに応答して、判定ユニットにより処理すべきアテンションタスクを目標アテンションタスクとして決定する。
【0134】
本開示の実施例によれば、計算ユニットは、読み取りサブユニットと計算サブユニットとを含む。読み取りサブユニットは、計算ユニットによって、目標記憶ユニットから目標アテンションタスクに対応する少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列を読み取り、計算サブユニットは、少なくとも1つのクエリ行列、少なくとも1つのキー行列、少なくとも1つの値行列及び少なくとも1つのマスク行列に基づいて、目標計算ユニットによって目標アテンションタスクを実行し、アテンション特徴を得る。
【0135】
本開示の実施例によれば、計算サブユニットは、クエリ行列及びキー行列の転置に基づいて、第1の中間特徴を取得し、第1の中間特徴及びマスク行列に基づいて、第2の中間特徴を取得し、活性化関数を利用して第2の中間特徴を処理して、活性化特徴行列を取得し、活性化特徴行列及びキー行列に基づいて、アテンション特徴を得る。
【0136】
本開示の実施例によれば、上記装置は、ブロック化ユニットと目標記憶ユニットとをさらに含む。
【0137】
ブロック化ユニットは、処理すべき特徴に対応するパラメータ行列の長さ及びレジスタの数に基づいて、処理すべき特徴に対応するパラメータ行列をブロック化して、各処理すべきアテンションタスクに対応するパラメータ行列を取得するように、ブロック化タスクを実行し、パラメータ行列は、クエリ行列、キー行列、値行列及びマスク行列を含む。目標記憶ユニットは、各処理すべきアテンションタスクに対応するクエリ行列、キー行列、値行列及びマスク行列を記憶する。
【0138】
本開示の実施例によれば、上記装置は、処理すべきタスクに対応するシーンカテゴリに基づいて、処理すべき特徴に対してスパース表現を行うように、スパース表現タスクを実行するためのスパース表現ユニットをさらに含む。
【0139】
本開示の実施例によれば、スパース表現ユニットは、第1の分割サブユニットと第1の表示サブユニットとを含む。
【0140】
第1の分割サブユニットは、シーンカテゴリが因果シーンであることに応答して、マスク行列の対角線でマスク行列を互いに交差しない2つの第1の区間及び第2の区間に分割し、且つ第1の区間内の要素が全てマスクされる。第1の表示サブユニットは、第2の区間内のマスク端点位置を使用して処理すべき特徴に対してスパース表現を行う。
【0141】
本開示の実施例によれば、スパース表現ユニットは、第2の分割サブユニットと、第2の表示サブユニットとを含む。
【0142】
第2の分割サブユニットは、シーンカテゴリが非因果シーンであることに応答して、マスク行列の対角線でマスク行列を互いに交差しない2つの第3の区間及び第4の区間に分割する。
【0143】
第2の表示サブユニットは、第3の区間内のマスク端点位置と第4の区間内のマスク端点位置を用いて処理すべき特徴に対してスパース表現を行う。
【0144】
本開示の実施例によれば、本開示は、上記装置を含む大規模言語モデルに用いられるタスク実行機器をさらに提供する。
【0145】
本開示の実施例によれば、本開示は、電子機器、可読記憶媒体及びコンピュータプログラムをさらに提供する。
【0146】
本開示の実施例によれば、電子機器は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信接続されるメモリとを含み、メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、命令は、少なくとも1つのプロセッサによって実行され、少なくとも1つのプロセッサが上記の方法を実行することができる。
【0147】
本開示の実施例によれば、コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体であって、コンピュータ命令は、コンピュータに上記の方法を実行させる。
【0148】
本開示の実施例によれば、コンピュータプログラムは、プロセッサによって実行されると、上記の方法を実現する。
【0149】
図10は、本開示の実施例の例示電子機器1000を実施するための例示的なブロック図を示す。電子機器は、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータという様々な形式のデジタルコンピュータを表示することを意図する。電子機器は、さらに、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブル機器及び他の類似の計算装置という様々な形式の移動装置を表示してもよい。本明細書に示された部材、それらの接続及び関係、及びそれらの機能は例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定するものではない。
【0150】
図10に示すように、機器1000は、計算ユニット1001を含み、それはリードオンリーメモリ(ROM)1002に記憶されたコンピュータプログラム又は記憶ユニット1008からランダムアクセスメモリ(RAM)1003にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM1003には、さらに機器1000の操作に必要な様々なプログラム及びデータを記憶することができる。計算ユニット1001、ROM1002、およびRAM1003は、バス1004を介して相互に接続されている。バス1004には、入出力(I/O)インタフェース1005も接続されている。
【0151】
機器1000における複数の部品は、I/Oインタフェース1005に接続され、例えばキーボード、マウス等の入力ユニット1006と、例えば様々な種別のディスプレイ、スピーカ等の出力ユニット1007と、例えば磁気ディスク、光ディスク等の記憶ユニット1008と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信ユニット1009とを含む。通信ユニット1009は、機器1000がインターネット等のコンピュータネットワーク及び/又は各種の電気通信網を介して他の機器と情報/データをやり取りすることを可能にする。
【0152】
計算ユニット1001は、処理及び計算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算ユニット1001の幾つかの例としては、中央処理装置(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムの計算ユニット、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。
【0153】
計算ユニット1001は、例えば大規模言語モデルに用いられるタスク実行方法のような前記記載された各方法と処理を実行する。例えば、いくつかの実施例において、大規模言語モデルに用いられるタスク実行方法は、例えば記憶ユニット1008のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1002及び/又は通信ユニット1009を介して機器1000にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算ユニット1001により実行される場合、前記記載された大規模言語モデルに用いられるタスク実行方法の1つ又は複数のステップを実行してもよい。代替的に、別の実施例において、計算ユニット1001は、他の任意の適切な形態(例えば、ファームウェアを介する)により大規模言語モデルに用いられるタスク実行方法を実行するように構成されてもよい。
【0154】
本明細書で説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジック機器(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムブルプロセッサを含むプログラムブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムブルプロセッサは、専用又は汎用のプログラムブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0155】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラムブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能/操作が実施される。プログラムコードは、機械に完全に実行されてもよく、部分的に機械で実行されてるかもよく、独立したソフトウェアパッケージとして部分的に機械で実行され、かつ部分的に遠隔機械で実行されるか又は完全に遠隔機械又はサーバで実行されてもよい。
【0156】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子機器に使用され、又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子機器、又は前記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前記内容の任意の適切な組み合わせを含む。
【0157】
ユーザとのインタラクションを提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティング機器(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティング機器を介して入力をコンピュータに提供することができる。他の種別の装置は、さらにユーザとのインタラクションを提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0158】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、局所エリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0159】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。サーバは、クラウドサーバであってもよく、分散システムのサーバ、またはブロックチェーンと組み合わせたサーバであってよい。
【0160】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、ステップを改めてソーティングしたり、付加したり又は削除してもよい。例えば、本発明に記載の各ステップは、並列的に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示の技術案の所望の結果を実現することができれば、本明細書はここで限定されない。
【0161】
前記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われた任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3A
図3B
図3C
図3D
図4A
図4B
図5
図6
図7
図8
図9
図10