TechEd ベルリンで SAP-RPT-1 が発表されました。よくある疑問として「このモデルは LLM なの?」「今まで発表されてきた Joule とは何が違うの?」といった声をよく聞きます。
実は、この SAP-RPT-1 のベースになっている(であろう)アイデアは「RPT: Relational Pre-trained Transformer Is Almost All You Need towards Democratizing Data Preparation」というタイトルで、2020年の段階で既に論文として発表されています。
今回は、SAP-RPT-1 そのものではなく、オリジナルの RPT 論文を基に、その構造を読み解いていこうと思います。
(SAP-RPT-1 自体も “Relational Pretrained Transformer” の略称として公式に紹介されていますが、製品版はより実務寄り・ビジネス寄りにチューニングされた「Foundation Model」と位置づけられています。)
インコンテキスト学習(In-context learning)とは
SAP-RPT-1 の公式サイトには次のような説明があります。
SAP-RPT-1 is a relational pretrained transformer model that delivers accurate predictive insights from structured business data. SAP-RPT-1 uses in-context learning, allowing users to provide data records to generate instant, reliable predictions without any model training.
(SAP-RPT-1 は、構造化されたビジネスデータから正確な予測インサイトを提供する、Relational Pre-trained Transfomer モデルです。SAP-RPT-1 はインコンテキスト学習を採用しており、ユーザーはデータレコードを提供することで、モデルのトレーニングなしで即座に信頼性の高い予測を生成できます。)
ここで述べられているインコンテキスト学習とは何なのでしょうか?
インコンテキスト学習とは、あらかじめ学習しておいたモデルに対して、いくつかの参照情報(例)を一緒に与えることで、モデルがその規則性に基づいて出力を生成する手法です。
(以下のように、先にパターンを見せたから質問するイメージ)
ここでポイントなのは、「例を見せているだけであって、モデル内部のパラメータを更新しているわけではない」という点です。あくまで、事前学習済みモデルに対して「その場の文脈(コンテキスト)」として例を追加で渡し、その文脈の中で推論させているだけです。
【注意!】インコンテキスト学習と「学習」は別物
インコンテキスト学習は、通常の機械学習分野で述べられている”学習”とは異なります。
インコンテキスト学習では、モデルのパラメータ更新は行われません。この手法は few-shot prompting と呼ばれることもあります。一方で、few-shot learning という用語もありますが、こちらは「少量データで実際にモデルを再学習/微調整する」ケースを指すことが多く、インコンテキスト学習とは別物です。
言い換えると、「学習」(pretraining や fine-tuning)自体はすでに終わっていて、その結果として得られた”巨大なパターン認識マシン”に対し、プロンプトの中で参照例を見せると、あたかもその場で新しいタスクを学んだかのように、それっぽい出力を返してくる──この”ブラックボックスっぽい“振る舞いをうまく利用しているのが、インコンテキスト学習です。
Relational Pre-trained Transformerとは
話題の大規模言語モデル(LLM)は、Next Token Prediction という手法を用いて、大量のテキストを読み込み、その統計的なパターンに基づいて文法や語彙、指示文の解釈などの自然言語処理を行ってきました。興味深いのは、こうして大量のデータを学習させることで、明示的に教えていないことについても「推察/想像」したり、さまざまなタスクに転用できる汎用性が現れる現象が見出されたことです。(創発性や分布外汎化と呼んだりします。)このような「広いデータで事前学習され、さまざまな下流タスクに適用できる巨大モデル」は、近年「基盤モデル(Foundation Model)」という枠組みで整理されています。
そんな中で出てきたアイデアが Relational Pre-trained Transformer(RPT) です。RPT は、もともと データクリーニングや属性補完などのデータ前処理タスクを自動化することを主目的として提案されています。RPT では、属性 [A] と値 [V] のペアを入力として扱います。例えば、
[A] name [V] Michael Jordan [A] expertise [V] Machine Learning [A] city [V] Berkeley
のような形です。この「属性+値」の組(タプルという)を入力として、RPT は属性または値のどちらかをマスクします。
属性名をマスクする場合: name そのものを隠して、「これはどの属性名か?」を他の情報から当てさせる。
(例: [A] name [V] Michael Jordan -> [A] [M] [V] Michael Jordan )属性値をマスクする場合: “Machine Learning” などの値を [M] で隠し、「どんな値が入るべきか?」を他の属性・値から推測させる。
(例: [A] name [V] Michael Jordan -> [A] name [V] [M] )
このような属性と値のペア(タプル)を対象としてひたすら学習することで、RPT は
データクリーニング(誤値の検出・修正)欠損値補完(値埋め)スキーママッチング(どの値がどのカラムに属するかの判定)
といったデータ前処理タスクに特化したモデルとして機能するようになります。つまり、RPT は「自然文の続きを書く LLM」ではなく、「表の1行を見て、おかしなところを補完・修正することに長けた Transformer」と考えるとイメージしやすいです。
なぜ SAP-RPT-1 は「予測モデル」と言われているの?
この「タプルによる学習」は、表形式データに対して非常に相性が良いです。先ほど説明したように、 属性(attribute)は表における カラム に相当し、 値(value)は各行における セルの値 に相当します。 RPT 系のモデルは、この「カラム+値」のパターンを事前学習で徹底的に覚えたうえで、新しいレコードに対して「このカラムにはどんな値が入りそうか?」を推論できます。
SAP-RPT-1 が「予測モデル」と呼ばれている理由は、「既存レコードをそのまま教師」としてインコンテキスト学習ができるからと言えます。SAP-RPT-1 は、API 呼び出し時に 既存レコード(履歴データ)を一緒に渡すことで、モデルはコンテキスト内のパターンを読み取り、予測対象のセルを推定する“予測モデル”として振る舞うことができます。
このように、
RPT(論文版)は「タプルの欠損やゆらぎを埋めるデータ前処理モデル」SAP-RPT-1(製品版)は、それをビジネス文脈に拡張した「表形式データ用の基盤予測モデル」
という関係になっています。裏側のアーキテクチャは RPT の系譜にありつつ、表データに対する分類・回帰をインコンテキストで回せるようにした結果、「予測モデル」として前面に出している、と考えられます。
最後に
SAP-RPT-1 には実際に触って試せる Playground が用意されています。公式サイトから「Try SAP-RPT-1 for free」をクリックして、ぜひ自分のデータやユースケースに近いシナリオで試してみてください。 GUI ベースで少量の表データをアップロードするだけで、「どんな入力を与えると、どんな予測が返ってくるのか」を体験できるので、論文ベースの概念理解とあわせて触ってみると理解が一気に進むはずです。
TechEd ベルリンで SAP-RPT-1 が発表されました。よくある疑問として「このモデルは LLM なの?」「今まで発表されてきた Joule とは何が違うの?」といった声をよく聞きます。実は、この SAP-RPT-1 のベースになっている(であろう)アイデアは「RPT: Relational Pre-trained Transformer Is Almost All You Need towards Democratizing Data Preparation」というタイトルで、2020年の段階で既に論文として発表されています。今回は、SAP-RPT-1 そのものではなく、オリジナルの RPT 論文を基に、その構造を読み解いていこうと思います。(SAP-RPT-1 自体も “Relational Pretrained Transformer” の略称として公式に紹介されていますが、製品版はより実務寄り・ビジネス寄りにチューニングされた「Foundation Model」と位置づけられています。) インコンテキスト学習(In-context learning)とはSAP-RPT-1 の公式サイトには次のような説明があります。SAP-RPT-1 is a relational pretrained transformer model that delivers accurate predictive insights from structured business data. SAP-RPT-1 uses in-context learning, allowing users to provide data records to generate instant, reliable predictions without any model training.(SAP-RPT-1 は、構造化されたビジネスデータから正確な予測インサイトを提供する、Relational Pre-trained Transfomer モデルです。SAP-RPT-1 はインコンテキスト学習を採用しており、ユーザーはデータレコードを提供することで、モデルのトレーニングなしで即座に信頼性の高い予測を生成できます。)ここで述べられているインコンテキスト学習とは何なのでしょうか?インコンテキスト学習とは、あらかじめ学習しておいたモデルに対して、いくつかの参照情報(例)を一緒に与えることで、モデルがその規則性に基づいて出力を生成する手法です。(以下のように、先にパターンを見せたから質問するイメージ)ここでポイントなのは、「例を見せているだけであって、モデル内部のパラメータを更新しているわけではない」という点です。あくまで、事前学習済みモデルに対して「その場の文脈(コンテキスト)」として例を追加で渡し、その文脈の中で推論させているだけです。 【注意!】インコンテキスト学習と「学習」は別物インコンテキスト学習は、通常の機械学習分野で述べられている”学習”とは異なります。インコンテキスト学習では、モデルのパラメータ更新は行われません。この手法は few-shot prompting と呼ばれることもあります。一方で、few-shot learning という用語もありますが、こちらは「少量データで実際にモデルを再学習/微調整する」ケースを指すことが多く、インコンテキスト学習とは別物です。言い換えると、「学習」(pretraining や fine-tuning)自体はすでに終わっていて、その結果として得られた”巨大なパターン認識マシン”に対し、プロンプトの中で参照例を見せると、あたかもその場で新しいタスクを学んだかのように、それっぽい出力を返してくる──この”ブラックボックスっぽい”振る舞いをうまく利用しているのが、インコンテキスト学習です。 Relational Pre-trained Transformerとは話題の大規模言語モデル(LLM)は、Next Token Prediction という手法を用いて、大量のテキストを読み込み、その統計的なパターンに基づいて文法や語彙、指示文の解釈などの自然言語処理を行ってきました。興味深いのは、こうして大量のデータを学習させることで、明示的に教えていないことについても「推察/想像」したり、さまざまなタスクに転用できる汎用性が現れる現象が見出されたことです。(創発性や分布外汎化と呼んだりします。)このような「広いデータで事前学習され、さまざまな下流タスクに適用できる巨大モデル」は、近年「基盤モデル(Foundation Model)」という枠組みで整理されています。 そんな中で出てきたアイデアが Relational Pre-trained Transformer(RPT) です。RPT は、もともと データクリーニングや属性補完などのデータ前処理タスクを自動化することを主目的として提案されています。RPT では、属性 [A] と値 [V] のペアを入力として扱います。例えば、[A] name [V] Michael Jordan [A] expertise [V] Machine Learning [A] city [V] Berkeleyのような形です。この「属性+値」の組(タプルという)を入力として、RPT は属性または値のどちらかをマスクします。属性名をマスクする場合: name そのものを隠して、「これはどの属性名か?」を他の情報から当てさせる。(例: [A] name [V] Michael Jordan -> [A] [M] [V] Michael Jordan )属性値をマスクする場合: “Machine Learning” などの値を [M] で隠し、「どんな値が入るべきか?」を他の属性・値から推測させる。(例: [A] name [V] Michael Jordan -> [A] name [V] [M] )このような属性と値のペア(タプル)を対象としてひたすら学習することで、RPT はデータクリーニング(誤値の検出・修正)欠損値補完(値埋め)スキーママッチング(どの値がどのカラムに属するかの判定)といったデータ前処理タスクに特化したモデルとして機能するようになります。つまり、RPT は「自然文の続きを書く LLM」ではなく、「表の1行を見て、おかしなところを補完・修正することに長けた Transformer」と考えるとイメージしやすいです。 なぜ SAP-RPT-1 は「予測モデル」と言われているの?この「タプルによる学習」は、表形式データに対して非常に相性が良いです。先ほど説明したように、 属性(attribute)は表における カラム に相当し、 値(value)は各行における セルの値 に相当します。 RPT 系のモデルは、この「カラム+値」のパターンを事前学習で徹底的に覚えたうえで、新しいレコードに対して「このカラムにはどんな値が入りそうか?」を推論できます。SAP-RPT-1 が「予測モデル」と呼ばれている理由は、「既存レコードをそのまま教師」としてインコンテキスト学習ができるからと言えます。SAP-RPT-1 は、API 呼び出し時に 既存レコード(履歴データ)を一緒に渡すことで、モデルはコンテキスト内のパターンを読み取り、予測対象のセルを推定する“予測モデル”として振る舞うことができます。 このように、RPT(論文版)は「タプルの欠損やゆらぎを埋めるデータ前処理モデル」SAP-RPT-1(製品版)は、それをビジネス文脈に拡張した「表形式データ用の基盤予測モデル」という関係になっています。裏側のアーキテクチャは RPT の系譜にありつつ、表データに対する分類・回帰をインコンテキストで回せるようにした結果、「予測モデル」として前面に出している、と考えられます。 最後にSAP-RPT-1 には実際に触って試せる Playground が用意されています。公式サイトから「Try SAP-RPT-1 for free」をクリックして、ぜひ自分のデータやユースケースに近いシナリオで試してみてください。 GUI ベースで少量の表データをアップロードするだけで、「どんな入力を与えると、どんな予測が返ってくるのか」を体験できるので、論文ベースの概念理解とあわせて触ってみると理解が一気に進むはずです。 Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog