LLasa Chuyển sang RL- Huấn luyện LLaSA với GRPO để cải thiện Âm điệu và Khả năng Diễn đạt
LLasa Chuyển sang RL- Huấn luyện LLaSA với GRPO để cải thiện Âm điệu và Khả năng Diễn đạt
- 7 min read
Llasa Goes RL: Training LLaSA with GRPO for Improved Prosody and Expressiveness
Bài viết này giới thiệu về việc sử dụng Kỹ thuật Tối ưu Hóa Chính sách Phần thưởng Sinh (GRPO) để huấn luyện mô hình tổng hợp giọng nói LLaSA, nhằm cải thiện ngữ điệu và biểu cảm.
1. Động lực: Tại sao lại dùng Học tăng cường cho TTS?
Các mô hình TTS dựa trên LLM hiện nay thường được huấn luyện bằng phương pháp ước tính khả năng cực đại (MLE). Phương pháp này chỉ đơn thuần là khiến mô hình tái tạo lại giọng nói tham chiếu một cách “an toàn” và “phẳng lặng”, bỏ qua các yếu tố quan trọng của giọng nói con người như:
- Nhấn mạnh vào các từ ngữ nhất định.
- Giai điệu (ngữ điệu) của câu.
- Biểu cảm và nhịp điệu.
Chính vì vậy, Học tăng cường (Reinforcement Learning - RL) được đưa vào để huấn luyện mô hình tối ưu hóa các phẩm chất mà chúng ta thực sự quan tâm: sự rõ ràng, biểu cảm, nhịp điệu, sự nhất quán về giọng điệu của người nói, v.v.
GRPO đặc biệt phù hợp với nhiệm vụ này vì:
- Nó hoạt động trên các token rời rạc (tương tự như đầu ra của Llasa).
- Nó kết hợp mô hình chính sách (policy) và mô hình phần thưởng (reward model).
- Nó không yêu cầu mô hình phần thưởng phải có khả năng tính đạo hàm.
2. GRPO là gì?
GRPO (Generative Reward Policy Optimization) là một thuật toán học tăng cường được thiết kế cho các mô hình chuỗi tự hồi quy lớn. Quy trình hoạt động đơn giản như sau:
- Tạo ra các đầu ra ứng viên từ mô hình (chính sách).
- Đánh giá chúng bằng một mô hình phần thưởng.
- Điều chỉnh các tham số của mô hình để tăng xác suất cho các chuỗi có phần thưởng cao và giảm xác suất cho các chuỗi có phần thưởng thấp.
3. Tóm tắt kiến trúc: Llasa + Xcodec2
Chúng ta vẫn tiếp tục sử dụng quy trình của Llasa:
| Thành phần | Vai trò |
|---|---|
| LLaSA Transformer | Mô hình tự hồi quy tạo ra các token giọng nói |
| Xcodec2 | Tokenizer chuyển đổi dạng sóng thành token rời rạc |
Việc giọng nói đã được biểu diễn dưới dạng token rời rạc giúp vòng lặp RL hiệu quả và tránh các vấn đề phức tạp về xử lý tín hiệu ở cấp độ khung.
4. Quy trình huấn luyện GRPO
Script tinh chỉnh GRPO nằm trong kho lưu trữ:
Llasa-GRPO/ │ ├─ create_dataset.py # Script chuẩn bị dataset (tokenize audio, xây dựng prompt) ├─ train.py # Vòng lặp huấn luyện GRPO chính sử dụng mô hình chính sách ├─ inference.py # Script cho suy luận: tạo giọng nói từ văn bản bằng mô hình đã huấn luyện ├─ reward_whisper.py # Module tính toán phần thưởng sử dụng ASR + WER qua Whisper ├─ requirements.txt # Danh sách các thư viện phụ thuộc └─ README.md # Tài liệu & hướng dẫn sử dụng
4.1. Mô hình phần thưởng: Đo lường chất lượng giọng nói
Các thử nghiệm hiện tại sử dụng một phần thưởng kết hợp, bao gồm tỷ lệ lỗi từ (Word Error Rate - WER) và log khả năng âm tính (negative log-likelihood - NLL):
$R = \frac{\lambda_w + \lambda_n}{ \frac{\lambda_w}{R_{WER}} + \frac{\lambda_n}{R_{NLL}} } $
trong đó:
- $R_{WER} = 1 - \tanh(\alpha_w . WER)$
- $R_{NLL} = \exp(- \frac{NLL}{\alpha_n})$
- $\alpha_w$ và $\alpha_n$ điều chỉnh độ nhạy của hàm phần thưởng đối với WER và NLL.
- $\lambda_w$ và $\lambda_n$ là trọng số cho các phần thưởng WER và NLL.
4.2. Chuẩn bị dữ liệu và Token hóa âm thanh
Llasa hoạt động trên các token giọng nói rời rạc, vì vậy âm thanh cần được token hóa bằng XCodec2 trước khi huấn luyện.
Script create_dataset.py xử lý toàn bộ quy trình này:
bash
python create_dataset.py
–dataset your_dataset_name_or_path
–output_dir tokenized_dataset
–codec_id HKUSTAudio/xcodec2
–sampling_rate 16000
Script này thực hiện các bước sau:
| Bước | Mô tả |
|---|---|
| 1. Tải âm thanh | Đọc các tệp âm thanh dạng sóng thô từ dataset |
| 2. Token hóa | Chuyển đổi âm thanh thành các token giọng nói của XCodec2 |
| 3. Căn chỉnh văn bản | Xây dựng các chuỗi huấn luyện dạng cặp văn bản → token giọng nói |
| 4. Định dạng | Lưu trữ dataset đã xử lý ở định dạng sẵn sàng cho huấn luyện hoặc tải lên Hugging Face |
Nếu bạn đã có một dataset bao gồm token giọng nói XCodec2, bạn có thể bỏ qua bước này và truyền trực tiếp vào train.py thông qua --dataset.
4.3. Chạy huấn luyện
bash
accelerate launch train.py
–model_name_or_path HKUSTAudio/Llasa-1B-Multilingual
–dataset your_dataset.json
–reward_config reward_models/prosody_reward.json
–output_dir llasa-grpo-exp1
Yêu cầu phần cứng:
- 1 x A100 (40GB) cho Llasa-1B
- Khuyến nghị 2-4 GPU để huấn luyện RL ổn định
5. Kết quả
Dưới đây là biểu đồ phần thưởng được ghi lại trong quá trình huấn luyện GRPO. Chúng tôi đã huấn luyện Llasa-1B bằng Whisper-Large v3 để tính toán tín hiệu phần thưởng dựa trên WER và NLL trong quá trình tối ưu hóa.

Mẫu Trước & Sau
| Mô hình | Liên kết mẫu |
|---|---|
| Llasa baseline | |
| Llasa + GRPO |
6. Kết quả: Điều gì thay đổi sau khi huấn luyện GRPO?
✅ Cải tiến được quan sát:
- Cách tiếp cận GRPO được đề xuất giúp cải thiện đáng kể cả tính nhất quán về ngữ nghĩa (khớp giữa giọng nói được tạo ra và văn bản) và tính tự nhiên của giọng nói tổng hợp.
- Hàm phần thưởng kết hợp (WER + NLL) mang lại sự ổn định huấn luyện tốt hơn và đầu ra chất lượng cao hơn so với từng thành phần riêng lẻ.
- Trong đánh giá TTS zero-shot trên nhiều ngôn ngữ, việc tinh chỉnh bằng GRPO đã giảm tỷ lệ lỗi ký tự/từ (CER/WER) và cải thiện điểm ý kiến trung bình (MOS) về tính tự nhiên.
⚠️ Những điều cần lưu ý:
- Mặc dù khả năng nghe hiểu và tính nhất quán ngữ nghĩa được cải thiện, sự tương đồng về giọng điệu người nói không tăng lên đồng đều; một số trường hợp cho thấy kết quả tương đương hoặc chỉ cải thiện nhẹ về việc giữ phong cách của người nói.
- Ngay cả với cơ chế phần thưởng được cải thiện, các tác giả lưu ý rằng việc tối ưu hóa chỉ bằng các chỉ số dựa trên ASR có thể không nắm bắt đầy đủ tất cả các khía cạnh cảm nhận của giọng nói (ví dụ: cảm xúc, biểu cảm, sắc thái ngữ điệu).
7. Bước tiếp theo là gì?
Các công việc sắp tới bao gồm:
| Hướng đi | Mục tiêu |
|---|---|
| Mô hình phần thưởng ngữ điệu học được | Thay thế các chỉ số thủ công bằng phần thưởng mạng nơ-ron |
| Phản hồi của con người (RLAIF) | Đánh giá trực tiếp chất lượng cảm xúc cảm nhận được |
| GRPO thích ứng với người nói | Tối ưu hóa sự biến đổi phong cách cho từng giọng điệu người nói |
Mục tiêu cuối cùng: giọng nói đa ngôn ngữ có thể kiểm soát, biểu cảm và sống động.
Kết luận
Thí nghiệm này cho thấy tổng hợp giọng nói đang bước vào kỷ nguyên tương tự như LLM văn bản, được thúc đẩy bởi RL. Bằng cách định hình cách mô hình nói, thay vì chỉ những gì nó nói, chúng ta mở ra cánh cửa cho các trợ lý ảo, người tường thuật sách nói và nhân vật ảo thực sự sống động.
Kho lưu trữ: https://github.com/Deep-unlearning/Llasa-GRPO
Nếu bạn thử nghiệm hoặc xây dựng dựa trên dự án này, tôi rất muốn nghe về kết quả của bạn!
Link bài viết gốc
- Tags:
- Ai
- 5 Ngày Trước
- Huggingface.co