見出し画像

日本語を含む多様な音声入力に対応したLLM: Qwen-Audio-Chatを試す

アリババクラウドが、音声入力に対応したLLMであるQwen-Audioを公開していたので早速デモを試してみました。


Qwen-Audioの概要

Qwen-Audioは、異なる種類のオーディオ入力やタスクに対応するユニバーサルオーディオ理解モデルを目指して開発されています。主な目的は、既存の音声モデルが持つ限定的なインタラクション能力の問題を解決し、人間の発話、自然音、音楽、歌などを含む幅広いオーディオタイプに対応することです。このモデルは、複数のタスクにわたる知識共有と協調学習を通じて、高度なオーディオ処理能力の実現を目指しています。

モデル

Qwen-Audioは、オーディオエンコーダと大規模な言語モデルを含む構造を持っており、大規模言語モデルにはQwen-7Bから派生した事前訓練済みの重みを使用し、オーディオエンコーダ部はWhisper-large-v2モデルに基づいて初期化されたものを学習に用いています。

マルチタスク訓練フレームワーク

類似タスク間の知識共有を最大化するため、学習時の入力トークンには入出力データに応じたタグが付与してデコーダーに条件付けを行っています。このアプローチにより、Qwen-Audioは幅広いオーディオタスクに対応したモデルを訓練することを目指しているとのこと。

  1. トランスクリプションタグ: 予測の開始を示すためにトランスクリプションタグ「<|startof-transcripts|>」が使用されます。これは、音声認識や音声翻訳タスクなど、話された言葉を正確に書き起こし、音声記録の言語的内容を捉えるタスクを指示します。他のタスクでは「<|startofanalysis|>」タグが使用されます。

  2. オーディオ言語タグ: オーディオに含まれる話されている言語を示すために言語タグが導入されます。このタグは、トレーニングセットに存在する各言語に割り当てられたユニークなトークンを使用します。音声が含まれていないオーディオセグメント(自然音や音楽など)の場合、モデルは「<|unknown|>」トークンを予測するように訓練されます。

  3. タスクタグ: 続くトークンはタスクを指定します。収集されたオーディオタスクは、「<|transcribe|>」「<|translate|>」「<|caption|>」「<|analysis|>」「<|question-answer|>」の五つのカテゴリに分類されます。質疑応答(QA)タスクの場合、対応する質問がタグの後に追加されます。

  4. テキスト言語タグ: このタグは出力テキストシーケンスの言語を指定します。

  5. タイムスタンプタグ: 「<|timestamps|>」または「<|notimestamps|>」トークンの存在は、モデルがタイムスタンプを予測する必要があるかどうかを決定します。Whisperで使用される文レベルのタイムスタンプとは異なり、「<|timestamps|>」タグの含まれる場合、モデルは細かい単語レベルのタイムスタンプ予測(SRWT)を行う必要があります。これにより、モデルは音声信号とタイムスタンプをより正確に整合させることができ、音声認識や音声QAタスクなど多くのタスクでのパフォーマンスが向上します。

  6. 出力指示: 最後に、異なるサブタスクのためのタスクと希望されるフォーマットをさらに指定する出力指示を行います。

モデルのベンチマーク結果

‘タスク固有の微調整を必要とせずに、さまざまなベンチマークで高いパフォーマンスを達成

インストールとデモの実行

クイックスタートの手順に沿ってサクッと試してみます。今回はローカル環境(Windows11 WSL2 GPU: RTX3090)を用いました。仮想環境を用意してインストール、webデモを実行します。

$ git clone https://github.com/QwenLM/Qwen-Audio
$ cd Qwen-Audio/
$ pip install -r requirements.txt
$ pip install -r requirements_web_demo.txt
$ python web_demo_audio.py

ターミナルに表示されたリンクをブラウザでWebUIを開きます。
なお、GPUメモリは18GB程度消費するようです。

webデモではマイク音声とテキストでチャットできます。音声入力部分にWhisperを利用しているだけあって、レスポンスも軽くていい感じで日本語を聞き取って応答してくれます。話者の性別も認識してくれているようです。

こんなのがローカル環境で動くなんて、びっくりです。😮
チュートリアルも試してみないと!ざっと見た感じ、自然音の認識やら、感情分析、音楽分析、指定した単語の音声の検索とか色々できるようです。
https://github.com/QwenLM/Qwen-Audio/blob/main/TUTORIAL.md

複数言語の音声翻訳を利用した学習支援とか、環境音を解析し、適切な応答やアクションを提供するホームデバイスとか色々応用できそうです。
このように音声データを直接LLM学習に使えるようになると、LLM技術のもう一段のブレイクスルーが起こる気がします。楽しみですね!

最後までお読みいただきありがとうございました。


この記事が気に入ったらサポートをしてみませんか?