最新消息
Ultravox是一種新型的多模式LLM,可以理解文本和人類語音,而無需單獨的音頻語音識別(ASR)階段。 Ultravox以Audiolm,SeamlessM4T,Gazelle,Speechgpt等研究為基礎,它可以通過多模式投影儀擴展任何開放式LLM,該LLM將音頻直接轉換為LLM使用的高維空間。我們已經在Llama 3,Mistral和Gemma上訓練了版本。這種直接耦合使Ultravox比組合單獨的ASR和LLM組件的系統更快地響應。將來,這也將使Ultravox在人類言語中無所不在,從而使Ultravox本來可以理解時間和情感的副語言提示。
當前版本的Ultravox(v0.4)使用音頻內容調用時,使用Llama 3.1 8B骨架的時間為150ms,每秒的次數為〜60 〜60 。雖然很快,但我們認為這些數字有很大的改進空間。
Ultravox目前會帶有音頻並發出流式文本。隨著我們的發展模型,我們將訓練它,以便能夠發出一系列語音令牌,然後可以由適當的單元Vocoder直接將其轉換為原始音頻。
請參閱我們的演示頁面上的Ultravox。
在此處加入我們的Discord服務器。
如果您有興趣全職從事Ultravox,我們正在招聘!在此處查看我們的工作頁面。
您可以通過在我們的合作夥伴Baseten上旋轉一個Ultravox實例:https://www.baseten.co/library/ultravox/,使用自己的音頻內容(作為WAV文件)嘗試Ultravox。他們提供免費的積分來開始。
如果您有興趣以實時能力運行Ultravox,我們也提供一組託管API。您可以了解有關訪問此處的訪問的更多信息。
您可以從“ Ultravox擁抱面部”頁面下載最新權重。
請繼續閱讀您是否有興趣培訓自己的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 just創建Python虛擬環境並安裝必要的軟件包:
just install我們正在使用詩歌來管理Python虛擬環境。
如果您想使用馬賽克進行訓練,則需要在馬賽克平台上進行一些操作。
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在8xH100 GPU上花費了2-3個小時的14K訓練步驟。
您為什麼要(重新)火車Ultravox?以下是幾個方案:
您想使用其他LLM或音頻編碼器主鏈。
一個。在這種情況下,您需要重新培訓適配器。您可以使用release_config.yaml ,其中包含我們的最新版本--text-model <hf-model-id-for-llm>配置--audio-model <hf-model-id-for-encoder> 。
您想提高模型的知識 - >無需訓練Ultravox!
一個。我們建議即時使用抹布(無需訓練),或者改用LLM主鏈。如果您調整了LLM,則可能需要重新培訓Ultravox。
您想使用自己的音頻數據,例如增加對新語言的支持。
一個。第一步,準備數據集:至少,樣本應具有audio和文本continuation字段。
b。看看ds_tool.py and continuation.jinja以及我們使用ds_tool創建的常見語音變體來添加continuation字段。
c。將數據集添加到release_config.yaml和Train中的數據集混合物中。
沒有一件大小的人。如果您需要幫助,您可以在此處的Discord服務器上找到我們。
我們在MosaiCML平台上進行了大部分培訓,因此我們的大多數工具和文檔都是與馬賽克相關的。但是,您可以在自己的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我們使用簡單的配置。配置是可以組合的(即您可以指定零或許多配置),而meta_config.yaml始終用作默認值。請參閱configs_base.py查找您修改的參數,例如--text-model , --device , --exp-name ,等。
在進行任何培訓工作之前,您需要在Mosaic平台中設置SSH密鑰:https://docs.mosaicml.com/projects/mcli/en/latest/resources/secrets/secrets/secrets/secrets/ssh.html# page-secrets-secrets-secrets-secrets-ssss-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輸出,其中每行包含兩個值:問答。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