InSerter: Speech Instruction Following with Unsupervised Interleaved Pre-training

生成日:

InSerter: Speech Instruction Following with Unsupervised Interleaved Pre-training

Abstract(日本語訳)

音声大規模言語モデル(SpeechLLM)の近年の進展は大きな関心を集めている。しかし、現在の手法は音声による指示に従う性能が十分ではない。とくに、音声形式の入力を処理する場合、直接テキスト形式で入力した場合に比べて、モデルの知的能力は大きく低下する。先行研究は、表現アラインメントや振る舞いのアラインメントといった技術によって、音声表現とテキスト表現のあいだの意味的一貫性の不足を緩和しようとしてきたが、これらは post-training 段階でデータ対を綿密に設計する必要がある。本論文では、Interleaved Speech-Text Representation Pre-training を意味する InSerter という、単純でスケールしやすい学習方法を導入する。InSerter は、大規模なテキストコーパスからランダムに選んだ区間を text-to-speech 変換で音声合成し、大規模な教師なし音声・テキスト交互系列を事前学習するように設計されている。その結果、モデルは、与えられた音声区間に対応するテキストの続きを生成する能力を獲得し、手間のかかるデータ設計を不要にする。音声指示追従能力を体系的に評価するため、本論文は、音声指向の指示追従タスクのために特に設計された初の包括的ベンチマークである SpeechInstructBench も導入する。提案モデル InSerter は SpeechInstructBench で state-of-the-art の性能を達成し、多様な音声処理タスクでも既存手法を上回る、または同等の結果を示した。SpeechInstructBench は https://huggingface.co/datasets/ddwang2000/SpeechInstructBench で公開されている。

論文の面白いところ

音声入力の LLM をよくする方法として、本論文は「音声をテキストに近づける」よりも、「音声を含む系列の続きを普通の言語モデルのように予測させる」ことを選んでいる。ここが素直で、実装上の見通しもよい。既存の表現アラインメントでは、連続的な音声フレームと離散的なテキストトークンを無理に対応づけるため、音調、エネルギー、ピッチのような音声固有の情報を削るおそれがある。振る舞いのアラインメントは、音声と書き起こしに同じ応答を出させる形で学習するが、質の高い対データの設計に依存しやすい。InSerter はその前段に戻り、事前学習中に音声区間とテキスト区間を混ぜ、音声を文脈として次のテキストを予測させる。テキストコーパスを元にして text-to-speech で音声を作るため、データ量を増やしやすい。論文では約 6100 億テキストトークンのコーパスを処理し、最終的に 301,540 時間の合成音声を含む交互データを作っている。大きな主張は、音声理解の改善を小さな post-training の工夫だけに任せず、事前学習の分布そのものに音声とテキストの往復を入れる点にある。音声対話システムで、ユーザーが話した指示を単に認識するだけでなく、その制約まで守る必要がある場面に向く考え方である。

問題設定

SpeechLLM は、音声を入力として受け取り、そのまま質問応答や対話を行うモデルである。一般的な自動音声認識とは異なり、最終目的は文字起こしではなく、話された指示を理解して適切に応答することにある。ところが論文が示すように、同じ指示をテキストで与えた場合と音声で与えた場合には、性能差が生じやすい。理由の一つは、テキストが離散的なトークン列であるのに対し、音声は長さも粒度も異なる連続信号であることにある。この差を埋めるため、従来は音声表現をテキスト embedding に近づけたり、音声入力とテキスト入力で同じ応答分布を持つように学習したりしてきた。しかし、それらは追加のペアデータや蒸留損失に頼りやすく、データ構築も単純ではない。さらに、音声の実利用では、標準的な読み上げ音声だけを扱えばよいわけではない。アクセント、背景雑音、速度、声色、感情、言いよどみ、言い直しが入る。したがって本論文の問題設定は、音声を意味として理解するだけでなく、話し言葉の揺れを含む指示をどれだけ正確に守れるかを測り、改善することである。

提案手法

InSerter は、Interleaved Speech-Text Representation Pre-training の略であり、音声区間とテキスト区間を交互に含む系列で SpeechLLM を事前学習する方法である。まず、大規模なテキストコーパスを集め、不要な特殊文字の除去などを行う。次に、文中の一部を word-level または sentence-level で選び、その区間を CosyVoice 2.0 により音声へ変換する。たとえば "The weather is really nice today, I want to go for a walk in the park" という文があれば、一部の句だけを音声にし、残りをテキストのまま残す。学習時には、音声区間を speech encoder と adapter で連続表現に変換し、テキストトークン列とつなぐ。目的関数は特別なものではなく、直前までの音声表現とテキストから次のテキストトークンを予測する cross-entropy loss である。損失は正解テキスト区間に対してだけ計算し、音声区間そのものはマスクする。この設計により、モデルは音声を「次の言葉を予測するための文脈」として使う。論文の最終設定では、事前学習データを交互データ 40%、通常の音声マルチタスクデータ 30%、テキストのみのデータ 30% とし、その後 20K サンプルの対話データで supervised fine-tuning を行っている。

結果

評価は、既存の VoiceBench と、本論文が導入した SpeechInstructBench で行われている。VoiceBench では、AlpacaEval、CommonEval、SD-QA、MMSU、OpenBookQA、AdvBench などを用い、音声入力とテキスト入力の両方を比較している。InSerter は音声入力時の AlpacaEval で GPT-score 4.23、CommonEval で 3.63 を得ており、OpenBookQA では 77.14% に達している。これは同じ表に載る Qwen2-Audio の 49.45% を大きく上回る。SpeechInstructBench では、英語の標準 closed-ended task で prompt-level accuracy 39.75%、instruction-level accuracy 51.35% を示し、次点の DIVA の 27.64%、37.26% を上回った。背景雑音、アクセント、パラ言語情報、言いよどみを含む条件でも、同じ傾向が見られる。中国語でも、closed-ended task、open-ended task、adjustment task の全体で InSerter が最も高い値を示した。アブレーションでは、交互データなしの baseline が英語標準 closed-ended task で 23.40 / 31.75 であるのに対し、word-level の InSerter は 36.56 / 47.38 まで上がった。さらに continuation writing を組み合わせた最終設定では 39.75 / 51.35 となる。データ規模の分析では、交互データが大きくなるほど性能が上がり、約 300K 時間付近で既存の強い手法を超えると報告されている。

具体例

たとえば、ユーザーが駅のホームの雑音の中で「回答には必ず calendar という語を三回以上入れて、最後は done で終えてください。ええと、ほかの語はその後に続けないでください」と話したとする。通常の音声認識なら、この発話を文字に直すことが主な目的になる。しかし SpeechLLM では、音声から得た内容を使って、語の出現回数、最後の句、余計な後続語の禁止という制約まで守った応答を作らなければならない。InSerter の学習では、音声区間を文脈として次のテキストを予測する経験を大量に持つため、音声で与えられた制約を後続の生成に結びつけやすくなる。期待される出力は、calendar を三回以上含み、最後が正確に done で終わる短い応答である。間違えやすい点は、背景雑音で calendar を聞き落とすこと、三回という回数を満たさないこと、あるいは done の後に説明文を続けてしまうことである。SpeechInstructBench の closed-ended task は、まさにこの種の形式的な制約違反を accuracy として測る。open-ended task では、たとえば「五つ挙げる」「箇条書きにする」「指定された文体で答える」といった条件を、人手評価と整合する GPT-4o 評価で判定する。adjustment task では、「宣伝文を書いて。いや、手順が明確なユーザーガイドにして」のような言い直しに対して、古い指示ではなく修正後の指示へ従えるかを見る。