最新ニュース
Ultravoxは、別のオーディオ音声認識(ASR)段階を必要とせずに、テキストと人間のスピーチを理解できる新しい種類のマルチモーダルLLMです。 Audiolm、SeamlessM4T、Gazelle、SpeechGptなどの研究に基づいて、Ultravoxは、LLMが使用する高次元空間にオーディオを直接変換するマルチモーダルプロジェクターでオープンウェイトLLMを拡張できます。 Llama 3、Mistral、およびGemmaでバージョンをトレーニングしました。この直接カップリングにより、Altravoxは、個別のASRコンポーネントとLLMコンポーネントを組み合わせたシステムよりもはるかに迅速に応答できます。将来、これにより、Ultravoxは、人間のスピーチに遍在するタイミングと感情の麻痺性の手がかりをネイティブに理解することができます。
Ultravox(v0.4)の現在のバージョンは、オーディオコンテンツで呼び出されると、約150msの時間から3番目のトークン(TTFT)があり、llama 3.1 8bバックボーンを使用して〜60のトークン率が〜60のレートがあります。 。非常に速いですが、これらの数字にはかなりの改善の余地があると考えています。
Ultravoxは現在、音声を取り入れており、ストリーミングテキストを発しています。モデルを進化させるにつれて、適切なユニットボコーダーによって直接RAWオーディオに変換できる音声トークンのストリームを放出できるようにトレーニングします。
デモページでアクション中のUltravoxを参照してください。
こちらのDiscordサーバーにご参加ください。
あなたがフルタイムでUltravoxの作業に興味があるなら、私たちは雇っています!ジョブズページはこちらをご覧ください。
パートナーであるBaseten:https://www.baseten.co/library/ultravox/でUltravoxインスタンスをスピンアップすることにより、独自のオーディオコンテンツ(WAVファイルとして)を使用してUltravoxを試すことができます。彼らは始めるために無料のクレジットを提供します。
リアルタイム容量でUltravoxを実行することに興味がある場合は、マネージドAPIのセットも提供しています。ここでそれらにアクセスすることについて詳しく知ることができます。
Ultravox Hugging Faceページから最新のウェイトをダウンロードできます。
Ultravoxの独自のバージョンのトレーニングに興味がある場合は読んでください。
基本的なツールをインストールします。
Homebrewは、MacOSのパッケージマネージャーであり、ほとんどがLinuxでも機能します。 DebianまたはUbuntu Linuxを実行している場合は、代わりにAPTを使用できます。Just 。他のすべてのツールへのインターフェイスとして頻繁に機能します。 /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) "
brew update
brew install justPython仮想環境を作成し、必要なパッケージをインストールします。
just installPython Virtual環境を管理するために詩を使用しています。
トレーニングにモザイクを使用する場合は、モザイクプラットフォームで実行するためにいくつかのことをセットアップする必要があります。
pip install --upgrade mosaicml-cli
mcli init
mcli set api-key < new-value > # Huggging Face token for accessing walled data and models
mcli create secret env HF_TOKEN=hf_ < your_token >
# WandB token for logging experiments
mcli create secret env WANDB_PROJECT=ultravox
mcli create secret env WANDB_API_KEY= < your_wandb_key >
# GCP credentials for accessing data (e.g. BoolQ)
# Get service_account.json file from Justin/Farzad and put it in the root dir, then
mcli create secret gcp現在、LLMとオーディオエンコーダーの両方を冷凍保持し、アダプター/プロジェクターのみを訓練しています。トレーニングUltraox V0.4は、14Kトレーニングステップで8xH100 GPUで2〜3時間かかりました。
なぜあなたはUltravoxを(再)訓練したいのですか?ここにいくつかのシナリオがあります:
別のLLMまたはオーディオエンコーダーバックボーンを使用する必要があります。
a。この場合、アダプターを再訓練する必要があります。最新リリースの構成を含むrelease_config.yaml使用できます。 --text-model <hf-model-id-for-llm>および/または--audio-model <hf-model-id-for-encoder> 。
モデルの知識を向上させたい - > Ultravoxを訓練する必要はありません!
a。その場でRAGを使用するか(トレーニングは不要)、代わりにLLMバックボーンを微調整することをお勧めします。 LLMを微調整する場合は、Ultravoxを再訓練する必要がある場合があります。
たとえば、新しい言語のサポートを追加するために、独自のオーディオデータを使用する必要があります。
a。最初のステップ、データセットの準備:最低限、サンプルにはaudioとテキストのcontinuationフィールドが必要です。
b。 ds_tool.pyとcontinuation.jinja 、およびds_toolを使用してcontinuationフィールドを追加した共通音声のバリアントをご覧ください。
c。 release_config.yamlとトレーニングのデータセットミックスにデータセットを追加します。
すべてのサイズに適合するものはありません。サポートが必要な場合は、こちらのDiscordサーバーで私たちを見つけることができます。
MosaicMLプラットフォームでのトレーニングのほとんどを行うため、ほとんどのツールとドキュメントはMosaic関連です。ただし、それほど困難なく自分のGPUで同じトレーニングを行うことができます。ここでは、環境がセットアップされていると仮定します( just install )。 setup.shをご覧ください
トレーニングの実行を開始するには:
poetry run python -m ultravox.training.train --config_path ultravox/training/configs/release_config.yaml DDPトレーニングについては、必ずtorchrunを追加してください。また、事前にウェイトをプレイすることをお勧めします。
TRAIN_ARGS= " --config_path ultravox/training/configs/release_config.yaml "
poetry run python -m ultravox.training.helpers.prefetch_weights $TRAIN_ARGS
poetry run torchrun --nproc_per_node=8 -m ultravox.training.train $TRAIN_ARGSデバッグを実行するには、小さなモデル、データセット、またはバッチサイズを使用できます。 TinyllamaをLLMバックボーンとして使用する構成は次のとおりです。
poetry run python -m ultravox.training.train --config_path ultravox/training/configs/asr_tinyllama_100s.yaml --batch_size 1 --report_logs_to tensorboard構成にSimpleParsingを使用します。構成はcomposable(つまり、ゼロまたは多くの構成を指定できます)、 meta_config.yamlは常にデフォルトとして使用されます。 configs_base.py参照して--text-model 、 --device device、 --exp-nameなど、変更するパラメーターを見つけます。
トレーニングジョブを実行する前に、モザイクプラットフォームでSSHキーをセットアップする必要があります:https://docs.mosaicml.com/projects/mcli/en/latest/resources/secrets/ssh.html#page-secrets-ssh
# # Create a new SSH key and add it to the Mosaic Platform
# ssh-keygen -f ~/.ssh/mclid_id_rsa
# # add the **public** key to Github
# mcli create secret ssh ~/.ssh/mclid_id_rsa
mcli run -f mcloud.yaml --followその他の有用なコマンド:
mcli get clusters
mcli util r7z2
mcli get runs
mcli get runs --cluster r7z2
mcli run -f mcloud.yaml --followインタラクティブな実行については、使用できます。
just mcloud --image mosaicml/composer:latest --max-duration 1重要:ジョブ、特にインタラクティブなジョブを完了したら、必ずジョブを監視し、マシンを停止してください!
infer_tool.py --json > fileを使用して、特定のモデル/データセットコンボからJSONL出力を作成します。各行には、質問と回答の2つの値が含まれています。eval_tool.py -f fileを使用してJSONLファイルを評価します。これにより、データセットのモデルの平均スコアが生成されます。 JustFileは、人気のあるコマンドを見つけるための良いリソースです。ここにいくつかあります:
just update # update dependencies
just format # run formatting (black, isort, autoflake)
just test # run tests
just python # activate venv and run python