Сейчас каждую неделю выкатывают очередную LLM, которая "лучше предыдущих" (по заверениям авторов, конечно). Tencent, один из технологических гигантов, о котором у нас говорят не так часто, как о Google или OpenAI, недавно выкатил в опенсорс две интересные модели, которые заслуживают внимания:
Это заточенные под конкретные задачи инструменты. Давайте разберемся, что они из себя представляют, как устроены и как их можно пощупать на практике.
Начнем с более классической модели. Машинный перевод — задача старая, но до сих пор актуальная. Tencent здесь предлагает не просто модель, а целый фреймворк и подход к достижению state-of-the-art результатов.
Hunyuan-MT — это, по сути, два релиза в одном:
Разработчики заявляют о целом пайплайне обучения: Pretrain -> CPT -> SFT -> Translation Reinforcement -> Ensemble Reinforcement. Именно этот комплексный подход и позволил им взять первые места на WMT25.
Для взаимодействия с моделями используются простые и понятные промпты. Никаких сложных конструкций и танцев с бубном.
Задача | Шаблон промпта |
---|---|
С китайского / на китайский (ZH<=>XX) | 把下面的文本翻译成<target_language>,不要额外解释。 <source_text> |
Между другими языками (XX<=>XX) | Translate the following segment into <target_language>, without additional explanation. <source_text> |
Но самое интересное — это промпт для Hunyuan-MT-Chimera-7B. Он явно показывает ее назначение:
Analyze the following multiple <target_language> translations of the <source_language> segment surrounded in triple backticks and generate a single refined <target_language> translation. Only output the refined translation, do not explain.
The <source_language> segment:
```<source_text>```
The multiple <target_language> translations:
1. ```<translated_text1>```
2. ```<translated_text2>```
3. ```<translated_text3>```
...
Проще говоря, вы "скармливаете" ей исходный текст и несколько вариантов перевода, а она выдает лучший, по ее мнению, итоговый вариант. Это мощный инструмент для повышения качества, особенно в сложных и неоднозначных случаях.
Самое ценное в релизе — это, конечно, код для дообучения. Tencent предоставляет полный набор скриптов, основанных на transformers
и deepspeed
.
Для файн-тюнинга данные должны быть подготовлены в формате messages
:
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "海水为什么是咸的" },
{"role": "assistant", "content": "海水是咸的主要是因为其中含有许多溶解在水中的盐类和矿物质..."}
]
# ... затем используется tokenizer.apply_chat_template(messages)
Запуск обучения производится через скрипт finetune.sh
. Давайте разберем ключевые моменты из него:
model_path="your_model_path"
model_size="7B"
tokenizer_path=${model_path}
train_data_file=car_train.jsonl
# Выбор конфигурации DeepSpeed
# ds_config_file=ds_zero2_no_offload.json
# ds_config_file=ds_zero3_no_offload.json
ds_config_file=ds_zero3_offload_no_auto.json
output_path=./hf_train_output
deepspeed --hostfile=$HOST_PATH --master_addr $CHIEF_IP finetune.py \
--do_train \
--model_size ${model_size} \
--model_name_or_path ${model_path} \
--tokenizer_name_or_path ${tokenizer_path} \
--train_data_file ${train_data_file} \
--deepspeed ${ds_config_file} \
--output_dir ${output_path} \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 1 \
--gradient_checkpointing \
--lr_scheduler_type cosine_with_min_lr \
--logging_steps 1 \
--max_steps 200 \
--save_steps 100 \
--learning_rate 1e-5 \
# ... и другие параметры
[!TIP] Что тут интересного?
- DeepSpeed Configs: Сразу из коробки идут три конфига для DeepSpeed:
ds_zero2_no_offload.json
,ds_zero3_no_offload.json
иds_zero3_offload.json
. Это позволяет гибко настраивать процесс обучения в зависимости от доступной видеопамяти. Zero3 с offload'ом на CPU — самый экономный вариант.- LoRA из коробки: В
finetune.py
встроена поддержка LoRA. Для ее активации достаточно передать флаг--use_lora
. Параметрыlora_rank
,lora_alpha
иlora_dropout
также настраиваются через аргументы командной строки.- FlashAttention: Для ускорения можно использовать FlashAttention-2, передав флаг
--use_flash_attn
.
После обучения с LoRA у вас будут только веса адаптера. Чтобы смержить их с базовой моделью, есть отдельный скрипт merge_lora_weight.py
.
python3 merge_lora_weight.py \
--base_model_path /path/to/base_model \
--adapter_model_path /path/to/lora_adapter \
--output_path /path/to/merged_model \
--save_dtype bf16
Это стандартный и очень удобный пайплайн для работы с моделью.
Для тех, кто предпочитает готовые UI и более высокоуровневые инструменты, команда Tencent подготовила интеграцию с популярным фреймворком LLaMA-Factory.
В репозитории лежит пример .yaml
конфига (hunyuan_full.yaml
), который позволяет запустить SFT (Supervised Fine-Tuning) модели Hunyuan-MT через интерфейс или CLI LLaMA-Factory.
### model
model_name_or_path: [!!!add the model path here!!!]
trust_remote_code: true
### method
stage: sft
do_train: true
finetuning_type: full
deepspeed: examples/ds_zero3_offload_hy.json
### dataset
dataset: [!!!add the data set name here!!!]
template: hunyuan
cutoff_len: 4096
# ...
Это значительно снижает порог входа для тех, кто не хочет вручную копаться в скриптах deepspeed
.
Итог по Hunyuan-MT: это серьезный, готовый к использованию и дообучению фреймворк для машинного перевода. Наличие готовых скриптов, поддержка LoRA, DeepSpeed и интеграция с LLaMA-Factory делают его отличным выбором для production-задач.
Если модель для перевода — это понятная и ожидаемая эволюция, то второй релиз от Tencent куда более экзотичный и, возможно, революционный. Большинство (за редким исключением) современных моделей генерации видео (Sora, Kling, etc.) создают впечатляющую картинку, но она... без звука.
HunyuanVideo-Foley — это ответ на эту проблему. И это не просто V2A (Video-to-Audio) модель. Это TV2A (Text-Video-to-Audio) фреймворк. Разница принципиальная: модель не просто пытается угадать, какой звук должен быть в видео, а генерирует его, опираясь на текстовое описание. Вы можете попросить ее сделать акцент на хрусте снега под ногами, добавить фоновую музыку или шум ветра. Вы становитесь режиссером не только картинки, но и звука.
This browser does not support the video element.
This browser does not support the video element.
Само название "Foley" — это прямая отсылка к искусству синхронных шумов в кино, когда звукорежиссеры в студии записывают шаги, скрип дверей и звон посуды. Tencent буквально предлагает нам персонального AI-шумовика.
За красивой идеей стоит серьезная инженерная работа. В техническом отчете авторы выделяют три столпа, на которых держится их SOTA-производительность.
Главная проблема в обучении TV2A-моделей — это данные. Нужны гигантские объемы видео с качественным, синхронизированным звуком и, что самое сложное, с детальным текстовым описанием этого звука. Собирать такое вручную — адский труд.
Решение Tencent: автоматизация. Они создали пайплайн, который позволил им собрать и автоматически аннотировать 100 000 часов мультимодальных данных. Это колоссальный объем, который и позволил модели научиться понимать сложные связи между видеорядом, текстом и звуковой дорожкой.
Сердце системы — это диффузионный трансформер, но с хитрой мультимодальной архитектурой. Если упростить, он работает так:
dac_vae
): Аудиокодек, который превращает звуковую волну в сжатое латентное представление и обратно. Модель работает именно с этими представлениями.SigLIP-2
): Мощный предобученный энкодер для извлечения смысловых фичей из видеокадров.CLAP
): Энкодер, который превращает текстовый промпт в векторы, понятные модели.Synchformer
): Отдельный компонент, который отвечает за точную синхронизацию звука и видео на уровне кадров.Все это объединяется в гибридную архитектуру, где есть два типа блоков:
хруста снега
должен совпадать с моментом, когда на экране человек наступает на снег
.Даже с хорошей архитектурой и данными, сгенерированный звук может быть "синтетическим". Чтобы бороться с этим, Tencent применили технику REPA.
[!INFO] Как работает REPA? Во время обучения, помимо основной задачи, модель решает еще одну: ее внутренние представления (латентные векторы) должны быть похожи на представления, полученные от заранее обученной мощной аудио-модели (ATST-Frame). По сути, "учитель" (ATST) показывает "студенту" (HunyuanVideo-Foley), как должен "выглядеть" хороший, качественный звук в его латентном пространстве. Это само-обучающийся трюк, который сильно повышает стабильность обучения и итоговое качество звука.
На словах все красиво, но что на деле? Модель рвёт конкурентов на нескольких бенчмарках. Особенно показательны результаты на MovieGen-Audio-Bench, так как он включает субъективные оценки от людей (MOS).
🏆 Method | DeSync ↓ | CLAP ↑ | MOS-Q ↑ | MOS-S ↑ | MOS-T ↑ |
---|---|---|---|---|---|
FoleyCrafter | 1.29 | 0.14 | 3.36 | 3.54 | 3.46 |
V-AURA | 1.38 | 0.14 | 2.55 | 2.60 | 2.70 |
MMAudio | 0.80 | 0.35 | 3.58 | 3.63 | 3.47 |
ThinkSound | 0.91 | 0.20 | 3.20 | 3.01 | 3.02 |
HunyuanVideo-Foley | 0.74 | 0.33 | 4.14 | 4.12 | 4.15 |
Tencent предоставляет не только модель, но и готовые скрипты для инференса и даже веб-демо.
infer.py
): Вы можете озвучить одно видео или запустить пакетную обработку по CSV-файлу.Пример для одного видео:
python3 infer.py \
--model_path ./pretrained_models/ \
--config_path ./configs/hunyuanvideo-foley-xxl.yaml \
--single_video /path/to/your/video.mp4 \
--single_prompt "a person walks on frozen ice, crunching sounds" \
--output_dir ./output/
gradio_app.py
): Запустив этот скрипт, вы получите локальный веб-сервер с удобным интерфейсом, куда можно просто перетащить видео, написать промпт и нажать кнопку "Сгенерировать".Ваша поддержка — это энергия для новых статей и проектов. Спасибо, что читаете!
Два этих релиза от Tencent — это не просто очередной вброс моделей в опенсорс. Это демонстрация очень зрелой и прагматичной стратегии. Вместо того чтобы пытаться в очередной раз "убить GPT" и создать универсального чат-бота, Tencent бьет точечно по сложным, узкоспециализированным задачам, где требуется глубокая мультимодальная экспертиза.
Hunyuan-MT — это production-ready решение для перевода с понятным и мощным инструментарием для дообучения. HunyuanVideo-Foley — это шаг в будущее контент-мейкинга, инструмент, который может кардинально изменить подходы к саунд-дизайну.
Самое важное — обе модели поставляются с полным инструментарием для дообучения. Это превращает их из "черных ящиков" в гибкие фреймворки, которые можно и нужно интегрировать в свои продукты. Tencent явно нацелена на сообщество разработчиков, и это не может не радовать.