최신 뉴스
Ultravox는 별도의 오디오 음성 인식 (ASR) 단계없이 텍스트뿐만 아니라 인간 연설을 이해할 수있는 새로운 종류의 멀티 모달 LLM입니다. Ultravox는 Audiolm, SeamlessM4T, Gazelle, SpeechGPT 및 기타와 같은 연구를 바탕으로 오디오를 LLM에서 사용하는 고차원 공간으로 직접 변환하는 멀티 모달 프로젝터를 사용하여 오픈-가이트 LLM을 확장 할 수 있습니다. 우리는 Llama 3, Mistral 및 Gemma에서 버전을 훈련 시켰습니다. 이 직접 커플 링을 통해 Ultravox는 별도의 ASR 및 LLM 구성 요소를 결합한 시스템보다 훨씬 빠르게 응답 할 수 있습니다. 미래에 이것은 또한 Ultravox가 인간의 연설에서 전능 한 타이밍과 감정에 대한 부유 한 신호를 기본적으로 이해할 수있게 해줄 것입니다.
오디오 컨텐츠로 호출 될 때 Ultravox (v0.4)의 현재 버전은 약 150ms의 최초의 시간 (TTFT)과 LLAMA 3.1 8B 백본을 사용하여 ~ 60의 토큰 속도를 가지고 있습니다. . 매우 빠르지 만, 우리는이 숫자의 개선을위한 상당한 여지가 있다고 생각합니다.
Ultravox는 현재 오디오를 사용하여 스트리밍 텍스트를 방출합니다. 우리는 모델을 발전시킬 때 적절한 유닛 보코더로 원시 오디오로 직접 변환 할 수있는 음성 토큰 스트림을 방출 할 수 있도록 모델을 훈련시킬 것입니다.
데모 페이지에서 Ultravox를 참조하십시오.
Discord Server에서 우리와 함께하십시오.
Ultravox 풀 타임 작업에 관심이 있다면 우리는 채용하고 있습니다! 여기에서 작업 페이지를 확인하십시오.
파트너 인 Baseten : https://www.baseten.co/library/ultravox/에서 Ultravox 인스턴스를 회전시켜 자신의 오디오 컨텐츠 (WAV 파일)를 사용하여 Ultravox를 사용해 볼 수 있습니다. 그들은 시작하기 위해 무료 크레딧을 제공합니다.
실시간 용량으로 Ultravox를 실행하는 데 관심이 있다면 관리되는 API 세트도 제공합니다. 여기에서 접근 할 수있는 것에 대해 더 배울 수 있습니다.
Ultravox Hugging Face 페이지에서 최신 가중치를 다운로드 할 수 있습니다.
자신만의 버전의 Ultravox를 훈련시키는 데 관심이 있으시면 읽으십시오.
기본 도구 설치 :
Homebrew 는 대부분 Linux에서도 일하는 MacOS의 패키지 관리자입니다. 데비안 또는 우분투 리눅스를 실행하는 경우 대안으로 APT를 사용할 수 있습니다.Just 합니다. 그것은 종종 다른 모든 도구와의 인터페이스로 기능합니다. /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) "
brew update
brew install just파이썬 가상 환경을 만들고 필요한 패키지를 설치하십시오.
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 교육은 14K 교육 단계를 위해 8xh100 GPU에서 2-3 시간이 걸렸습니다.
Ultravox를 (다시)하려는 이유는 무엇입니까? 몇 가지 시나리오는 다음과 같습니다.
다른 LLM 또는 오디오 인코더 백본을 사용하려고합니다.
에이. 이 경우 어댑터를 다시 훈련해야합니다. 최신 릴리스에 대한 구성이 포함 된 release_config.yaml 사용할 수 있으며 --text-model <hf-model-id-for-llm> 및/또는을 지정하여 기본 LLM 또는 인코더를 간단히 변경할 수 있습니다. --audio-model <hf-model-id-for-encoder> .
모델에 대한 지식을 향상 시키려고합니다 -> Ultravox를 훈련시킬 필요가 없습니다!
에이. 우리는 헝겊을 즉석에서 사용하거나 (훈련이 필요하지 않음) 대신 LLM 백본을 미세 조정하는 것이 좋습니다. LLM을 미세 조정하면 Ultravox를 다시 훈련해야 할 수도 있습니다.
예를 들어 새로운 언어에 대한 지원을 추가하기 위해 자신의 오디오 데이터를 사용하려고합니다.
에이. 첫 번째 단계, 데이터 세트 준비 : 최소한 최소한 샘플에는 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디버그 실행의 경우 더 작은 모델, 데이터 세트 또는 배치 크기를 사용할 수 있습니다. 다음은 LLM 백본으로 작은 llama를 사용하는 구성입니다.
poetry run python -m ultravox.training.train --config_path ultravox/training/configs/asr_tinyllama_100s.yaml --batch_size 1 --report_logs_to tensorboard 우리는 구성에 SimpleParsing을 사용합니다. 구성은 복합 가능합니다 (예 : 0 또는 많은 구성을 지정할 수 있음). meta_config.yaml 항상 기본값으로 사용됩니다. --text-model , --device , --exp-name 등과 같은 configs_base.py 참조하십시오.
교육 작업을 수행하기 전에 모자이크 플랫폼에서 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 출력을 만듭니다. 여기서 각 줄에는 질문 과 답변이 포함되어 있습니다.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