消費者向けAIチャットサービスの収益化問題

  • ChatGPTのような消費者向けAIチャットサービスの収益化問題に関する記事がRedditで共有されていました。

www.businessinsider.com

記事によると

  • 最近「Inflection AI」というAIスタートアップから主要メンバーがMicrosoftに引き抜かれ、会社が瓦解しかかっていることが話題になっています。
  • Inflection AIはAIチャットボット"Pi"や大規模言語モデルInflectionシリーズを手掛け、昨年にはビル・ゲイツ氏やNVIDIAなどから10億ドルを調達していました。
    • "Pi"は、ChatGPTブーム期の2023年3月に「共感性を持つAI」という謳い文句でローンチされ、その後は大きく話題になることもなく今に至ります。
  • Piだけでなく、ChatGPTやClaudeのような消費者向けAIチャットサービス全般の利用者数が伸び悩んでおり、事業としての持続性の問題に直面しています。
  • OpenAIは現在、企業向けのサービスに力を入れており、そちらに収益性の糸口を見出そうとしているように見えます。

雑感

  • 昨年のChatGPT流行期に騒がれた「Googleの検索サービスが一気にAIチャットに取って代わられる」という予測なども、今のところ下火になっています。
  • 例えば、AIチャットボットが一般的に活用される用途は相変わらず「コーディング支援」「翻訳」「要約」あたりに偏っている印象がありますし、単純な調べ物はチャットを介さず自分で検索したほうが結局速い、という経験を多くのユーザーが持っていると思います。
    • 問題の一部は、検索機能や端末との統合性が不十分であるという点に起因していて、今後AndroidiPhoneでAIシステムが拡充されれば使い勝手が向上するはずです。
    • 一方で、チャットインターフェースは単純な情報検索には不向きであるという事実は変えづらいように思えます。
  • 今の言語モデルベースのAIサービスの抱える問題は、電気自動車(EV)の抱える問題と似ているかもしれません。
    • つまり、超長期的には有望なのは間違いない一方で、現時点ではコストが高いわりに融通が効かず、なおかつそれを活用するためのインフラ整備も不十分です。
    • そのため、アーリーアダプターによる採用が一巡してしまうと、それ以上のマーケット拡大が難しいという課題に直面します。
    • しかも、参入が比較的容易で競争が激しいため、価格を上げて収益性を確保することもままならず、ひたすら事業資金を飲み込まれてしまいます。
    • そのため、規模の小さいプレイヤーから順番に資金繰りが難しくなり、競争からフェードアウトしていくことになります。
  • 目下のAIバブルの規模はEVバブルと比べても格段に大きいので、万が一これが一気に弾けるとなると、色々な意味で厳しい感じがします。
  • 現状のローカルLLMの領域も、ビッグテックやその影響下のAIベンチャーが公開するベースモデルに依存しています。なので、クローズドなAIによる寡占も困るけれどバブル崩壊で開発が滞るのも困る、というのが都合のいい本音です。

 

微調整データセットには事前学習データも混ぜたほうがいい?

投稿の要旨

  • 言語モデルのファインチューンは基本的に「加算的」ではなく「破壊的」な側面を持つ最適化プロセスである。
  • 他方で、ファインチューンで広く使われている指示応答型データセットは一定の偏りや癖を持っている。
    • 特定のプロンプト形式で統一されていたり、
    • GPT-4で機械的に合成されたデータを使っていたり、
    • (データがマルチターン形式でない限り)ごく狭い範囲のコンテキスト内で予測を行うように変質したりする。
  • そのため指示応答型データだけで追加学習させると、しばしばwikitextなどで測定される当惑度(perplexity)が悪化し、モデルの一般性能が低下する。
  • そこで、RedPajamaサブセットのような事前学習用データセットをファインチューンデータに混ぜることで、このような問題を回避できる可能性が高まる。
    • その比率について検証した研究は見当たらないが、さしあたってファインチューンデータの25%程度含めるのがよい出発点になるのではないか。

雑感

  • ファインチューンによる過剰最適化によって、モデルの性能が低下したり以前持っていた知識を忘れたりする事象はよく問題になります。
  • 例えば知識学習の文脈では、こちらの研究のように前段階の学習内容を繰り返しながら後続の学習を行う(Replay Buffer)ことで、壊滅的忘却を防ぐケースがあります。
  • 単に無関係のテキストを混ぜるだけだとファインチューン精度の低下が心配です。できればファインチューンデータのフォーマットを多様化したり、学習する知識領域を周辺隣接分野に広げたりすることで過剰最適化の防止と学習精度の維持を両立できないかな、と考えています。
  • 個人的には、単純な知識学習後のPerplexityやHellaSwagスコアの変化を観察していますが、今のところ性能面の悪影響は見られません(むしろPerplexityが改善したりする)。r=64程度の高めのランクでがっつりファインチューンしていますが、データセットが小さいと影響が出にくいのかもしれません。

 

Mistral AI のCEO、Arthur Mensch の対談メモ

www.youtube.com

Mistral AI と Figma のCEOの対談に関する投稿がRedditに上がっていた(文字起こしのリンクが貼られている)。目を通して気になった点を適当にメモしておく。

  • Llama-7Bのような小型のモデルはコミュニティの需要が大きい一方で、改善の余地が多くあると気づいたので、まず小型モデルに狙いを定めた。
  • Mistral 7Bの開発・リリースには4か月かかった。500台のGPUを使い、5人のチームでほとんど休暇を取らずに作業した。個人的にはAI開発チームは4-5人程度の規模がベストだと考えている。
  • 当面は新しいオープンソースモデル(汎用モデルと、金融など特定領域に特化したモデル)のリリースを控えているほか、Mistralのウェブプラットフォームの機能拡充を進めている。
  • Microsoftと提携しAzureでMistralのモデルが採用されたことで、1000社ほどの顧客を獲得できた。
  • 資金調達により計算資源が増えたことでより大型のモデルを開発する余力ができた。ただし、当社はあくまで推論の効率性を重視していて、オープンソースの小型モデルも引き続きリリースしていく。
  • 2年ほど前まではRLHF(人間のフィードバックによる強化学習)が非常に重要だった。今では言語モデル自身を使って強化学習できるので、確かにその重要性は以前ほどではない。一方で、LLM開発が隆盛を極めていることでRLHFを低コストで行えるような環境も整備されつつある。
  • 今後3年以内には、多くのホワイトカラー業務でAIが人間を代替できる状況が生まれているのではないか。AIエージェントをデプロイし、評価し、ロバストで信頼性の高いものにする方法を見出すことが重要。
  • いわゆるnext token predictionだけでは、多彩な科学領域で実用的なツールとなることは難しい。
  • 昨今のGPU不足と計算コスト高騰は、ハードウェア分野での競争が進むことで次第に緩和されるだろう。NVIDIAのチップにはメモリ帯域幅の問題があり、Transformersに最適化したカスタムなチップが登場すればコストは大幅に削減される。
  • EUなどのAI規制に関しては、喧伝されている実存的リスクは定義があいまいで、科学的根拠にも欠けている。いくつもの異なる議論がごちゃまぜにされている。
  • 音声AIなどによるディープフェイクはもちろん大きな懸念があるが、当社はひとまずテキスト生成にフォーカスしており、この領域では現実的なリスクを制御できると考えている。
  • 多くのLLMは英語中心だが、英語は言語のひとつに過ぎず、我々は欧州の諸言語に注力し、そこに大きなマーケットを見出した。他にもアジアではアジアの言語に優れたモデルに対するマーケットがあるのだろうが、そこは我々の力の及ぶところではない。
  • 今後も、効率的なオープンソースモデルと強力なクローズドAPIを並行して提供する戦略を維持する予定。
  • 当社のAI開発チームでは、インフラスタックからパイプラインの作成、抽出、変換、ロード、数学的考察まで、あらゆることができる人材を探してきたが、そのようなフルスタックのAIエンジニアは行動に偏りがある傾向があった。
  • 私たちがフォーカスしたのは、退屈な裏方仕事も嫌がらずにこなしてくれるような利己的でない人材を探すことで、それが実際にチームに生産的な結果をもたらした。
  • Mistral Large に勝る 7B モデルが実現できるかどうかは少し難しい。方法はあるかもしれない。特定のタスクに絞れば非常に強力な7Bモデルを作れるだろうが、例えばこのサイズで多言語モデルを作るのはおそらく良いアイディアではない。

 

LoRAのランク(r)は高いほうがいいのか?

  • LoRAファインチューンでは様々なハイパーパラメータがあります。モデルとデータセットに合ったパラメータを選ぶことで、学習速度・精度が変わります。
  • 今日は主要なハイパーパラメータの一つであるLoRAランク (r)が気になったので、簡単な備忘録を書いておきます。

LoRAのランクとは

  • LoRA(Low Rank Adaptation)は、モデルの追加学習の際に膨大な重み行列を低ランク行列に分解することで計算資源を節約する手法です。
  • 低ランクに分解するとモデルが追加学習するパラメータ数が減るので、ランクを低い値に設定するほど計算コストが低下します。
  • 学習パラメータ数を減らすと学習精度も悪化するようにに思えますが「実はファインチューンの際の重みの変化は低い固有のランクを持っているため、低ランクでの学習でもフルのファインチューンに匹敵する精度を得られる」というのがLoRA論文の主張です。
    • 言語モデルにはある種の冗長性があって、重要なパラメータは低い固有次元に偏っている、と理解すればいいようです。
  • さて、このLoRAによる学習時の具体的なランクの値としては、8,16,32,64, 128 あたりがよく使われますが、この値の選び方について所説あるようです(別に8の倍数である必要はありません)。

「だからランクは低くて十分だよ」説

  • 上述のとおり、おおもとのLoRA論文では低いランクでも十分高い精度が期待できるとされています。具体的には、ランク8程度でもランク64とほとんど変わらない学習パフォーマンスを得たようです(GPT-3の場合)。
  • LoRAに量子化を組み合わてさらなる効率化を図ったQLoRA論文でも、8~64のどのランクを選んでも学習パフォーマンスの差はみられないという分析を示しています(Llama-1-7B、4bitのQLoRAの場合)。
  • 通常のファインチューンとして行うならランクは8ないし16(高くても32程度)でOK、というのがLoRAの一般的な考え方です。

「とはいえランクは高い方がいいよ」説

  • とはいえ計算資源に余裕があれば無理にランクを下げる必要はありません。場合によっては64や128などのランクを使いたくなるかもしれません。
  • 例えば前回のDoRA論文などをみると、フルのファインチューンとLoRAでは依然として学習精度にギャップが残るとする主張も根強いようです。
  • ランクを上げれば学習パラメータ数が増えるので、実質的にフルファインチューンに近くなるという想定ができます。
  • ドメイン知識追加の目的で最適なLoRAハイパーパラメータを探索した研究では、100程度の高いランクが効果的と示唆しています(Llama-2の場合)。

「むしろランクは低い方がいいよ」説

  • 一方で、ランクを上げると学習が不安定化するので値はむしろ低いほうがよい、とする検証結果もあります。
  • ランクの違いによるLlama-2モデルの挙動を調べた研究では、1)モデルの当惑度(perplexity)はLoRAランクを上げても改善しないうえ、r=2048など極端な値をとればむしろ悪化する、2)高いLoRAランクをとると勾配ノルムが破綻する、という結果を示しています。
  • 他にもモデルに日本語知識の追加を試みた検証では、Llama-2-7Bの場合にランクが低いほうが学習が安定したと報告しています(ただし13Bではランクの影響なし)。

雑感

  • 前提として、適切なランクの設定にはモデル、データセット、エポック数や学習率など他の要素との兼ね合いが重要で、一般化するのはあまりに難しい気がします。
  • そのうえで強いて言うなら、会話スタイルなど形式面のファインチューンを行いたい場合は8~16の低いランク、知識の追加など内容理解を伴うファインチューンを行うならもっと高めのランクがよさそうな印象です。
  • 一方で、高すぎるランクを使うと学習が不安定化するリスクがあり、また、当然ながら必要な計算コストも膨らみます。基本的に128~などの高いランクは避けたほうが無難に見えます。

補足:LoRAのアルファについて

  • ランク(r)とは別にLoRAにはアルファ(α)というハイパーパラメータもあります。
  • アルファはLoRAにおけるスケーリングファクターで(weight += (lora_B @ lora_A) * (alpha / r))、学習がモデルの重みに与える影響を強さを決定します。例えばr=32, α=16なら、32/16=2倍のスケールとなります。
  • よく使われるのはLoRA論文の実装で使われた2倍(つまりランクの半分のアルファ)ですが、スケールは1倍がよいという人、2.5倍や3倍がよいという人もいて、ケースバイケースのようです。
  • QLoRA論文では、アルファは常に学習率に比例するとして、ランクとは独立にアルファを固定しています(ランクより小さい、つまり1倍未満のスケールを採用している)。
  • アルファを高めに設定しても基本的に問題なさそうですが、学習率が高めになる場合には、対応して下げざるを得なくなるかもしれません。

参考

LoRA論文:[2106.09685] LoRA: Low-Rank Adaptation of Large Language Models

QLoRA論文:[2305.14314] QLoRA: Efficient Finetuning of Quantized LLMs

DoRA論文:[2402.09353] DoRA: Weight-Decomposed Low-Rank Adaptation

ドメイン知識追加論文:[2312.03360] Teaching Specific Scientific Knowledge into Large Language Models through Additional Training

rsLoRA論文:[2312.03732] A Rank Stabilization Scaling Factor for Fine-Tuning with LoRA

日本語知識追加:大規模言語モデルのFine-tuningによるドメイン知識獲得の検討 - Preferred Networks Research & Development

【LLM論文を読む】DoRA:Weight-Decomposed Low-Rank Adaptation(重み分解LoRA)

  • ここ数日「Stable Knowledge Editing」を参考にしながら、LoRAファインチューンによるLLMへの知識の追加を試しています。
  • LoRAのハイパーパラメータ調整のコツを調べるなかで、「DoRA(重み分解LoRA)」という別のLoRA派生手法の存在を知りました。HuggingFaceのPEFTライブラリでも対応しているツールのようです。
  • DoRA論文は、2024年2月にNVIDIA香港科技大学の研究者によりarXivに投稿されています。

arxiv.org

概要

広く使われているパラメータ効率的ファインチューニング(PEFT)手法の中で、LoRA(低ランク適応)とその亜種は、追加の推論コストを回避できることから、かなりの人気を得ている。しかし、これらの手法と完全なファインチューニング(FT)との間には、まだしばしば精度のギャップが存在する。本研究では、まずFTとLoRAの本質的な違いを調べるために、新しい重み分解分析を導入する。得られた知見からFTの学習能力に似せることを目指し、重み分解低ランク適応(DoRA)を提案する。DoRAは、事前に学習された重みを大きさと方向の2つの成分に分解し、微調整を行うもので、特に方向の更新にLoRAを採用することで、学習可能なパラメータ数を効率的に最小化する。DoRAを採用することで、LoRAの学習能力と学習の安定性の両方を向上させると同時に、推論オーバーヘッドの追加を回避している。DoRAは、LLaMA、LLaVA、VL-BARTのファインチューニングにおいて、常識推論、視覚命令チューニング、画像/動画テキスト理解などの様々な下流タスクにおいて、一貫してLoRAを凌駕する。

簡単な説明

先述のPEFTのページでは、以下のようにDoRAを紹介しています。

重み分解LoRA (DoRA):

この手法では、重み行列の更新を「大きさ」と「方向」の2つに分解します。そのうえで、方向は通常のLoRAで処理され、大きさは別の学習可能なパラメータで処理されます。これにより、特に低いランク(r)においてLoRAの性能を改善できます。現在、DoRAは非量子化線形レイヤーのみサポートします。DoRAは純粋なLoRAより大きなオーバーヘッドがあるため、推論時には重みをマージしておくことを推奨します。

  • 重み行列を大きさと方向に分解したうえで、パラメータ数の多い「方向」にだけLoRAをかける方法のようです。
  • LoRAのランク(r)が小さく設定しても(学習パラメータ数を減らしても)高い学習精度が期待できるとされています。
  • ただ、現時点で量子化に未対応らしいので、単に学習効率を上げるだけならQLoRAの方が速そうです。実用的には学習精度の向上に注目です。

メモ

  • 一般的に「LoRAのFTに対する精度の低さは、学習可能なパラメータの数が少ないことに起因する(=LoRAでもパラメータ数を増やせばFTの精度に近似する)」とみなされているが、その点の具体的な検証は乏しい。
  • そこで本論文では、まずLoRAとFTの学習パターンの違いを調べるため、重み行列を大きさと方向の2つの別々の成分に分解して分析した。

  • 結果、上図のようにLoRAはすべての中間ステップで一貫した正の傾きを示し、変化の方向と大きさが比例した一方、FTでは緩やかな負の傾きを持った多様な学習パターンを示した。
  • この違いが、おそらくFTとLoRAの学習能力の差を反映する。LoRAは「大きさ」を大幅に変更しながら「方向」を僅かに変えるような微妙な調整は苦手である。
  • そこで本論文では、LoRAの学習パターンをよりFTに近づけ、LoRAよりも学習能力を向上させる変形LoRAとして「DoRA」を提案する。
  • 重み分解LoRA(DoRA)ではまず、事前に訓練された重みを大きさ成分と方向成分に分解し、その両方を微調整する。その際、方向成分はパラメータ数が大きいため、LoRAでさらに分解し、効率的な微調整を行う。
  • 重み分解によって単に学習が効率化されるだけでなく、方向更新を最適化するプロセスがより安定し、LoRAに比べFTに近い学習パターンを実現できる。
  • 以下は、Llama-7B/13Bを8種類の常識推論用のデータセットで学習し、それぞれ対応するベンチマークで評価したもの。LoRA/DoRAではr=32を用い、DoRA†は半分のr=16を使用。

  • 以下はMT-Bench(マルチターンの記述式ベンチマーク)による評価結果。Llama-1/2をAlpacaデータセットでLoRA/DoRAで学習させて評価。なお、VeRAは別のLoRA効率化手法で、DVoRAはVeRAとDoRAを組み合わせたもの。

  • 少ないデータセット数でもDoRAは他の手法に比べて高いスコアを示す。

  • なお、本論文ではマルチモーダルモデルの画像理解タスクにおけるDoRAの有効性についても検証している(割愛)。

雑感

  • ちょうど今DoRAによる学習を試していますが、やはり量子化が使えないと低ランク(とりあえず16で実施)でも学習が遅いので、個人用途では扱いにくい印象です。量子化実装に勝手に期待したいです。
  • ところで、付表にあったランク(r)ごとの学習後ベンチマークがちょっと気になりました。r=64でHellaSwagのスコアだけ大幅に低下しています。

  • 過学習でモデルが壊れてしまったのでしょうか?ほかのベンチマークではr=32と大差がありません。
  • 知識編集目的の場合、基本的にランクは大きいほうがいいとされていますが、性能低下にも気を配る必要はありそうです。

 

【LLM論文を読む】大規模言語モデルの安定的知識編集(Stable Knowledge Editing)

  • 2024年2月に投稿された中国科学院大学の研究者によるarXiv論文です。
  • ファインチューン・ベースの知識編集手法である「Stable Knowledge Editing」を提案したうえで、既存の知識編集手法と比べた場合の有用性を主張しています。

arxiv.org

概要

大規模言語モデルの効率的な知識編集は、古くなった情報を置き換えたり、まとまった専門知識を導入したりするために極めて重要である。しかし、既存手法では、知識がモデル内で局所的かつ孤立していることを暗黙の前提としており、この前提はモデル知識の相互関連性を単純化しすぎている。知識が局在しているという前提は不完全な知識編集を招く一方で、知識が孤立して存在するという前提は他の知識と一般的な能力の両方を損なう可能性がある。これは知識編集法の性能に不安定さをもたらす。これらの仮定を超えるために、我々はStableKE(Stable Knowledge Editing)を導入する。StableKEは、知識の増強に基づいた新しい視点を採用した手法である。人間によるラベリングにかかるコストを克服するため、StableKEは2つの自動化された知識増強戦略を統合する:意味的言い換え増強戦略は、モデルへの新しい情報の定着を容易にするために知識の記述を多様化するものであり、文脈的記述増強戦略は、関連する情報の忘却を防ぐために周囲の知識を拡張するものである。StableKEは、他の知識編集手法を凌駕し、編集された知識とマルチホップ知識の安定性を示すと同時に、関連しない知識や一般的な能力も保持する。さらに、StableKEはChatGPT上の知識を編集することができる。

メモ

  • 既存の知識編集手法については、こちらの記事サーベイ論文を概観しました。
  • そもそもLLMの知識編集は、ファインチューン(追加学習)による知識更新のデメリットを解消する目的で研究されているもので、正確に編集できることに加えて、1)編集に必要な計算コストを抑えること、2)モデルに不必要な副作用を与えないこと(該当する知識だけをピンポイントで編集すること)が重視されています。
  • そのため、モデル本体とは別に外部メモリを追加したり(SERAC、GRACEなど)、Hyper-Networkを介して制限付きのファインチューンを行ったり(MENDなど)、特定の知識に対応するパラメータだけを特定して編集(Locate-Then-Edit)したり(MEMIT、ROME)といった、最小限の介入で知識を編集するための実験的手法がいくつも考案されています。
  • この論文は、そうした既存手法が「ある知識がモデルの特定のパラメータに局在している」という不適切な前提を持っており、モデル内部の複雑な相互関係性の中で知識が形作られている実態に合致していないと批判しています。
  • そこで「Stable Knowledge Editing(StableKE)」という新たな知識編集手法を提案しているのですが、私が理解した限りでは、StableKEというのは、総じて特殊な処理を必要とする既存の知識編集手法とは別物で、ほとんどオーソドックスなファインチューンの一形態と言えるものです。
  • 具体的には、まず「意味的言い換えによる強化(Semantic Paraphrase Enhancement)」として、更新したい知識を叙述するテキスト(例えば「スナクは英国の首相です」)をGPT-3.5を使って何回も言い換えさせます(「スナクは現在、イギリスで首相の地位にある」「英国は現在、スナク首相が率いている」...)。この同一知識を別の表現で言い換えたテキストを、ファインチューン用データセットに使用します。
    • この手順は普通のファインチューンでの知識追加でよく使われるデータ増強(Data Augmentation)と全く同じです。同じ事実を異なる言い回しで表現した複数のテキストを学習させることで、モデル内部で知識として一般化させる狙いがあります。
  • 次に「文脈的な説明による強化(Contextual Description Enrichment)」として、更新したい知識の背景知識を含むテキスト(例えば「スナクは英国の首相です」に対して「リシ・スナクは1980年生まれの英国の政治家で、保守党に所属しています。」)を用意します。これも同じようにいくつも言い換えテキストを生成し、ファインチューン用のデータセットとして追加します。
    • このプロセスは、モデルが既に持つ知識を忘却するのを防ぐために必要なそうです(個人的には、むしろ更新知識の汎化を促すのに必要なもののような気もします)。
  • あとは、作成したデータセットを使ってモデルをファインチューンするだけのようです。詳細には触れられておらず、FastChatを使ってデフォルト設定で学習させたとだけ書かれています。
    • FastChatのRepoをみると、学習率2e-5、エポック数3などとなっています。
  • 実験で使うデータセットには先行研究で使用された知識編集用のデータセットを流用しているようです。対象モデルはVicuna 7Bとなっています。
  • 性能評価:以下は、バッチサイズを変更した場合の、MEMITとStableKEの効果比較です。比較対象がMEMITだけの理由はわかりません。
  • (a)が狙った知識の編集成功率、(b)が狙った知識+の派生知識の編集成功率(汎化を測定するもの)、(c)が無関係の知識への影響度、(d)がMMLUによるモデル性能評価を示していて、グラフの右軸がバッチサイズです。

  • 小さなバッチサイズではMEMITと大差ないようですが、マルチホップの知識安定性(記事冒頭のポンチ絵を参照)では上回っています。
  • 以下はバッチサイズではなく実行回数(シーケンシャルサイズ)を変えた場合の効果比較です。比較対象はROMEとMEMITです。

  • これもサイズが小さければ差はありませんが、大きくなるとMEMITやROMEでは劣化するということのようです。
  • MEMITやROMEといった知識編集手法の場合、大規模な知識の更新だと精度低下やモデル劣化の影響が表れやすいので、そのような用途ではファインチューンベースのStableKEのような手法が有効である、という解釈ができそうです。
  • 以下は、「意味的言い換えによる強化(Semantic Paraphrase Enhancement)」の際に同一知識についてパラフレーズするテキストの数を増やした(データセットの嵩を増した)場合の、知識編集の効果の評価です。
    • 先ほどのバッチサイズ等の実験時にどのテキスト数を採用したのかは書かれていません。

  • だいたい4件~8件程度のパラフレーズ(言いかえ)が好ましいようです。
  • 別のデータ増強関連の研究で読んだところでは、llamaモデルの場合だいたい5件程度にパラフレーズすると知識の定着が安定すると書かれていた記憶がありますが、この研究(llamaベースのVicuna 7Bを使用)でも似たような結果が出ています。
  • ただ、実質的な知識の定着と言えるマルチホップ知識の正確性は最高でも25%程度にとどまっていることに注意が必要です。
  • この研究では、ChatGPTの提供するファンチューン機能を使ってGPT-3.5への知識編集も試みています。下記の表に記載されているとおり、やはりマルチホップ知識の正確性は2割~3割(大半は汎化していない)となっています。

雑感

  • 基本的に、知識編集の局所性と一般性はトレードオフの関係にあるとされていますが、データセットに工夫すれば通常のファインチューンでもあまり性能を損なわずに両立できるよ、というのがこの論文の主旨だと理解しました。
  • 一般人目線では、MENDやMEMITなど従来の知識編集手法はローカルで手軽に試せる実装が提供されていないので、QLoRAなどがそのまま使えるファインチューンベースの知識編集手法が有効なのであればあればありがたいところです。
    • ただ、StableKEも含めファインチューンをかけるとどうしても若干モデル性能が低下するようなので、限られた数の事実知識をサクッと編集したいなら、やはりROMEなどを使いたい感じがします。
  • なおStableKEではマルチホップ知識(直接更新した知識から派生する関連知識)の正確性の高さがアピールされていますが、この手法だと「文脈的な説明による強化」と称して周辺知識も学習データに含めているので、そもそも部分的にマルチホップではなくなってる(直接学習してしまっている)可能性があるのでは?と素人的には思いました。
    • 従来の知識編集においても、周辺知識も含めてまとめて編集することでモデル内部の知識体系の一貫性を維持できる、という研究を見た記憶があります。
  • 最近、知識編集手法に関する文献にいくつか目を通してみているのですが、気になるのは文献によって各手法の性能評価がまったくバラバラであることです。
    • LocaliyやGeneralityなどのおおまかな評価基準は共有されていて、具体的なベンチマークやパラメータの設定で違いが出ているようなのですが...。
    • 参考まで、以下がEasyEditのRepoで公開されている知識編集手法の効果比較です。PortabilityがGeneralityに相当します。

github.com