Berita terbaru
Ultravox adalah jenis baru LLM multimodal yang dapat memahami teks serta ucapan manusia, tanpa perlu tahap pengenalan pidato audio (ASR) yang terpisah. Membangun penelitian seperti Audiolm, SeamlessM4T, Gazelle, SpeechGPT, dan lainnya, Ultravox dapat memperluas LLM dengan berat terbuka dengan proyektor multimodal yang mengubah audio secara langsung menjadi ruang dimensi tinggi yang digunakan oleh LLM. Kami telah melatih versi di Llama 3, Mistral, dan Gemma. Kopling langsung ini memungkinkan Ultravox untuk merespons lebih cepat daripada sistem yang menggabungkan komponen ASR dan LLM yang terpisah. Di masa depan ini juga akan memungkinkan Ultravox untuk secara alami memahami isyarat paralinguistik waktu dan emosi yang ada di mana -mana dalam ucapan manusia.
Versi Ultravox (v0.4) saat ini, ketika dipanggil dengan konten audio, memiliki waktu-ke-pertama (TTFT) sekitar 150ms, dan tingkat token per detik ~ 60 menggunakan tulang punggung LLAMA 3.1 8B . Meskipun cukup cepat, kami percaya ada ruang yang cukup untuk perbaikan dalam angka -angka ini.
Ultravox saat ini mengambil audio dan memancarkan teks streaming. Saat kami mengembangkan model, kami akan melatihnya untuk dapat memancarkan aliran token bicara yang kemudian dapat dikonversi langsung menjadi audio mentah oleh vokoder unit yang sesuai.
Lihat Ultravox beraksi di halaman demo kami.
Bergabunglah dengan kami di server Discord kami di sini.
Jika Anda tertarik untuk bekerja di Ultravox penuh waktu, kami merekrut! Lihat halaman pekerjaan kami di sini.
Anda dapat mencoba Ultravox menggunakan konten audio Anda sendiri (sebagai file WAV) dengan memutar instance Ultravox pada mitra kami, Baseten: https://www.baseten.co/library/ultravox/. Mereka menawarkan kredit gratis untuk memulai.
Jika Anda tertarik untuk menjalankan Ultravox dalam kapasitas real-time, kami menawarkan satu set API yang dikelola juga. Anda dapat mempelajari lebih lanjut tentang mendapatkan akses ke orang -orang di sini.
Anda dapat mengunduh bobot terbaru dari halaman wajah Ultravox Hugging.
Baca terus jika Anda tertarik untuk melatih Ultravox versi Anda sendiri.
Instal alat dasar:
Homebrew adalah manajer paket untuk macOS yang juga sebagian besar berfungsi untuk Linux. Jika Anda menjalankan Debian atau Ubuntu Linux, Anda dapat bertahan dengan APT.Just alur kerja shell kami. Ini sering berfungsi sebagai antarmuka kita untuk semua alat lainnya. /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) "
brew update
brew install justBuat lingkungan virtual Python dan instal paket yang diperlukan:
just installKami menggunakan puisi untuk mengelola lingkungan virtual Python.
Jika Anda ingin menggunakan mosaik untuk pelatihan, Anda perlu mengatur beberapa hal untuk dijalankan di platform mosaik.
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 gcpSaat ini, kami menyimpan LLM dan encoder audio Frozen dan hanya melatih adaptor/proyektor. Pelatihan Ultraox v0.4 membutuhkan 2-3 jam di 8xH100 GPU untuk langkah pelatihan 14K.
Mengapa Anda ingin (kembali) melatih Ultravox? Berikut beberapa skenario:
Anda ingin menggunakan tulang punggung encoder LLM atau audio yang berbeda.
A. Dalam hal ini Anda perlu melatih kembali adaptor. Anda dapat menggunakan release_config.yaml , yang berisi konfigurasi kami untuk rilis terbaru kami, dan Anda harus dapat dengan mudah mengubah LLM atau encoder dasar dengan menentukan --text-model <hf-model-id-for-llm> dan/atau --audio-model <hf-model-id-for-encoder> .
Anda ingin meningkatkan pengetahuan model -> tidak perlu melatih Ultravox!
A. Kami menyarankan untuk menggunakan Rag on the Fly (tidak diperlukan pelatihan), atau menyempurnakan tulang punggung LLM sebagai gantinya. Anda mungkin perlu melatih ulang Ultravox jika Anda menyempurnakan LLM.
Anda ingin menggunakan data audio Anda sendiri, misalnya untuk menambahkan dukungan untuk bahasa baru.
A. Langkah pertama, persiapkan dataset Anda: Minimal, sampel harus memiliki audio dan bidang continuation teks.
B. Lihatlah ds_tool.py dan continuation.jinja serta varian suara umum kami yang dibuat menggunakan ds_tool untuk menambahkan bidang continuation .
C. Tambahkan dataset Anda ke campuran dataset di release_config.yaml dan latih.
Tidak ada satu ukuran yang cocok untuk semua. Jika Anda memerlukan bantuan, Anda dapat menemukan kami di server Discord kami di sini.
Kami melakukan sebagian besar pelatihan kami di platform MosaiCML dan oleh karena itu sebagian besar perkakas dan dokumen kami terkait mosaik. Namun, Anda dapat melakukan pelatihan yang sama pada GPU Anda sendiri tanpa banyak kesulitan. Di sini kami menganggap Anda memiliki pengaturan lingkungan (jalankan just install ). Anda juga dapat melihat di setup.sh
Untuk memulai pelatihan yang dapat Anda lakukan:
poetry run python -m ultravox.training.train --config_path ultravox/training/configs/release_config.yaml Untuk pelatihan DDP, pastikan untuk menambahkan torchrun . Kami juga merekomendasikan prefetching bobot terlebih dahulu:
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_ARGSUntuk menjalankan debug, Anda dapat menggunakan model yang lebih kecil, kumpulan data, atau ukuran batch. Berikut adalah konfigurasi yang menggunakan Tinyllama sebagai tulang punggung LLM:
poetry run python -m ultravox.training.train --config_path ultravox/training/configs/asr_tinyllama_100s.yaml --batch_size 1 --report_logs_to tensorboard Kami menggunakan SimpleParsing untuk konfigurasi. Konfigurasi dapat dikomposisi (yaitu Anda dapat menentukan nol atau banyak konfigurasi) dan meta_config.yaml selalu digunakan sebagai default. Lihat configs_base.py untuk menemukan parameter yang Anda ubah, seperti --text-model , --device , --exp-name , dll.
Sebelum menjalankan pekerjaan pelatihan apa pun, Anda perlu mengatur kunci SSH Anda di platform mosaic: https://docs.mosaicml.com/projects/mcli/en/latest/resources/secretets/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 --followPerintah bermanfaat lainnya:
mcli get clusters
mcli util r7z2
mcli get runs
mcli get runs --cluster r7z2
mcli run -f mcloud.yaml --followUntuk menjalankan interaktif, Anda dapat menggunakan:
just mcloud --image mosaicml/composer:latest --max-duration 1Penting: Pastikan untuk memantau pekerjaan Anda dan menghentikan mesin ketika Anda selesai dengan pekerjaan apa pun, secara khusus interaktif!
infer_tool.py --json > file untuk membuat output JSONL dari kombo model/dataset yang diberikan, di mana setiap baris berisi dua nilai: tanya jawab dan jawaban .eval_tool.py -f file untuk mengevaluasi file JSONL, yang akan menghasilkan skor rata -rata untuk model pada dataset. Justfile adalah sumber yang bagus untuk menemukan perintah populer. Inilah beberapa:
just update # update dependencies
just format # run formatting (black, isort, autoflake)
just test # run tests
just python # activate venv and run python