ข่าวล่าสุด
Ultravox เป็น LLM แบบหลายรูปแบบใหม่ที่สามารถเข้าใจข้อความและคำพูดของมนุษย์ได้โดยไม่จำเป็นต้องใช้เวทีการรู้จำเสียง (ASR) แยกต่างหาก (ASR) การสร้างงานวิจัยเช่น Audiolm, SeamlessM4T, Gazelle, SpeechGPT และอื่น ๆ Ultravox สามารถขยาย LLM ที่มีน้ำหนักเปิดใด ๆ ด้วยโปรเจ็กเตอร์หลายรูปแบบที่แปลงเสียงเข้าสู่พื้นที่มิติสูงที่ใช้โดย LLM เราได้ฝึกอบรมเวอร์ชั่นเกี่ยวกับ Llama 3, Mistral และ Gemma การมีเพศสัมพันธ์โดยตรงนี้ช่วยให้ Ultravox ตอบสนองได้เร็วกว่าระบบที่รวมส่วนประกอบ ASR และ LLM แยกต่างหาก ในอนาคตสิ่งนี้จะช่วยให้ Ultravox เข้าใจความหมายของการใช้เวลาและอารมณ์ความรู้สึกที่มีอยู่ทั่วไปในการพูดของมนุษย์
รุ่นปัจจุบันของ Ultravox (v0.4) เมื่อถูกเรียกใช้ด้วยเนื้อหาเสียงมีเวลา to-token (TTFT) ประมาณ 150ms และอัตราโทเค็นต่อวินาที ~ 60 โดยใช้ LLAMA 3.1 8B backbone . ในขณะที่ค่อนข้างเร็วเราเชื่อว่ามีพื้นที่มากสำหรับการปรับปรุงตัวเลขเหล่านี้
ปัจจุบัน Ultravox ใช้ข้อความและส่งข้อความสตรีมมิ่ง ในขณะที่เราพัฒนาแบบจำลองเราจะฝึกอบรมเพื่อให้สามารถปล่อยโทเค็นการพูดที่สามารถแปลงเป็นเสียงดิบได้โดยตรงโดยผู้ร้องเรียกหน่วยที่เหมาะสม
ดู Ultravox ในการดำเนินการในหน้าสาธิตของเรา
เข้าร่วมกับเราบนเซิร์ฟเวอร์ Discord ของเราที่นี่
หากคุณสนใจที่จะทำงานกับ Ultravox เต็มเวลาเรากำลังจ้าง! ตรวจสอบหน้างานของเราที่นี่
คุณสามารถลองใช้ Ultravox โดยใช้เนื้อหาเสียงของคุณเอง (เป็นไฟล์ WAV) โดยการหมุนอินสแตนซ์ Ultravox บน Baseten: https://www.baseten.co/library/ultravox/ พวกเขาเสนอเครดิตฟรีเพื่อเริ่มต้น
หากคุณสนใจที่จะใช้ Ultravox ในความสามารถตามเวลาจริงเราเสนอชุด API ที่มีการจัดการเช่นกัน คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการเข้าถึงผู้ที่นี่
คุณสามารถดาวน์โหลดน้ำหนักล่าสุดจากหน้า Ultravox Hugging Face
อ่านต่อไปหากคุณสนใจที่จะฝึก Ultravox เวอร์ชันของคุณเอง
ติดตั้งเครื่องมือพื้นฐาน:
Homebrew เป็นผู้จัดการแพ็คเกจสำหรับ MacOS ซึ่งส่วนใหญ่ทำงานให้กับ Linux หากคุณใช้ Debian หรือ Ubuntu Linux คุณสามารถผ่านไปได้ด้วย APTJust ทำให้เวิร์กโฟลว์เชลล์ของเราง่ายขึ้น มันมักจะทำหน้าที่เป็นส่วนต่อประสานกับเครื่องมืออื่น ๆ ทั้งหมด /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 ใช้เวลา 2-3 ชั่วโมงใน 8xH100 GPU สำหรับขั้นตอนการฝึกอบรม 14K
ทำไมคุณถึงต้องการ (อีกครั้ง) ฝึก Ultravox? นี่คือสถานการณ์บางอย่าง:
คุณต้องการใช้ Backbone LLM หรือเสียงที่แตกต่างกัน
. ในกรณีนี้คุณต้องฝึกอะแดปเตอร์อีกครั้ง คุณสามารถใช้ release_config.yaml ซึ่งมีการกำหนดค่าของเราสำหรับรุ่นล่าสุดของเราและคุณควรจะสามารถเปลี่ยนฐาน LLM หรือ encoder โดยระบุ --text-model <hf-model-id-for-llm> และ/หรือ --audio-model <hf-model-id-for-encoder>
คุณต้องการปรับปรุงความรู้ของแบบจำลอง -> ไม่จำเป็นต้องฝึก Ultravox!
. เราแนะนำให้ใช้ผ้าขี้ริ้วทันที (ไม่จำเป็นต้องฝึกอบรม) หรือปรับกระดูกสันหลัง LLM แทนแทน คุณอาจต้องฝึก Ultravox อีกครั้งหากคุณปรับแต่ง LLM
คุณต้องการใช้ข้อมูลเสียงของคุณเองเช่นเพื่อเพิ่มการสนับสนุนสำหรับภาษาใหม่
. ขั้นตอนแรกเตรียมชุดข้อมูลของคุณ: อย่างน้อยที่สุดตัวอย่างควรมีสนาม audio และฟิลด์ continuation ข้อความ
ข. ดูที่ ds_tool.py และ continuation.jinja รวมถึงเสียงทั่วไปของเราที่สร้างขึ้นโดยใช้ ds_tool เพื่อเพิ่มฟิลด์ continuation
ค. เพิ่มชุดข้อมูลของคุณลงในชุดข้อมูลผสมใน 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 เป็น Backbone 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 สำหรับการกำหนดค่า configs สามารถ composable (เช่นคุณสามารถระบุ zero หรือจำนวนมาก configs) และ meta_config.yaml ใช้เป็นค่าเริ่มต้นเสมอ ดู configs_base.py เพื่อค้นหาพารามิเตอร์ --device คุณ --exp-name เช่น --text-model
ก่อนที่จะทำงานฝึกอบรมใด ๆ คุณต้องตั้งค่าคีย์ SSH ของคุณในแพลตฟอร์มโมเสค: https://docs.mosaicml.com/projects/mcli/en/latest/resources/secrets/ssh.html#page-secretsssh
# # 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