2 điểm bởi GN⁺ 2024-11-04 | 1 bình luận | Chia sẻ qua WhatsApp
  • hertz-dev được công bố là mô hình nền tảng chuyên cho âm thanh full-duplex 8,5B tham số, xử lý được cả tình huống hai người nói cùng lúc, trở thành điểm khởi đầu cho nghiên cứu tác tử giọng nói thời gian thực
  • Kiến trúc được chia thành hertz-codechertz-ar: chuyển giọng nói 16kHz thành biểu diễn tiềm ẩn 8Hz, rồi dự đoán tự hồi quy giá trị tiềm ẩn âm thanh tiếp theo dựa trên các giá trị tiềm ẩn trong quá khứ
  • Trên một RTX 4090 đơn lẻ, độ trễ trung bình thực tế được benchmark là 120ms; độ trễ trung bình lý thuyết được nêu là 80ms, thấp hơn 2 lần so với mức tốt nhất trước đó
  • hertz-codec tạo 1 giá trị tiềm ẩn 32 chiều cho mỗi frame 125ms, còn hertz-ar dùng transformer decoder-only 40 lớp, 8,4B tham số và ngữ cảnh khoảng 4,5 phút
  • Đây không phải mô hình kiểu sản phẩm đã được tinh chỉnh bằng học tăng cường để thu hẹp phân bố phản hồi, mà là mô hình nền tảng dự đoán phân bố dữ liệu huấn luyện, nên các nhà nghiên cứu dễ tinh chỉnh cho các tác vụ âm thanh hội thoại

Bài toán âm thanh hội thoại mà Hertz-dev nhắm tới

  • Với một tác tử tương tác tự nhiên, modality âm thanh tức thời quan trọng hơn văn bản
  • Các cách tiếp cận âm thanh sinh tạo chủ yếu chia thành phương pháp dựa trên diffusion và phương pháp tự hồi quy; mô hình diffusion mạnh ở tạo nhạc hoặc mẫu ngắn, nhưng với âm thanh hội thoại thực tế thì phương pháp tự hồi quy phù hợp hơn
  • Có hai thách thức cốt lõi mà mô hình hội thoại cần giải quyết
    • Tạo âm thanh nghe giống con người và xử lý ngắt lời một cách tự nhiên
    • Xử lý tình huống hai kênh thời gian thực đồng thời tạo thông tin như trong hội thoại bình thường giữa người với người

Mô hình được công bố và độ trễ

  • hertz-dev là mô hình nền tảng 8,5B tham số, full-duplex, chỉ dành cho âm thanh
  • Được thiết kế cho định dạng hai người nói, có thể phân tích và tạo âm thanh của hai người nói chồng lấn
  • Hoạt động trong không gian tiềm ẩn dùng các bit ngữ âm đã lượng tử hóa, và chỉ lấy mẫu một giá trị tiềm ẩn ở mỗi timestep
  • Độ trễ được trình bày như sau
    • Độ trễ trung bình lý thuyết: 80ms
    • Benchmark thực tế trên một RTX 4090 đơn lẻ: 120ms
    • Thấp hơn 2 lần so với mức tốt nhất trước đó

Kiến trúc mô hình: hertz-codec và hertz-ar

  • hertz-dev được chia thành hai thành phần
    • hertz-codec: mã hóa âm thanh thành các giá trị tiềm ẩn và khôi phục lại thành âm thanh
    • hertz-ar: dự đoán các giá trị tiềm ẩn tương lai với điều kiện là các giá trị tiềm ẩn trong quá khứ
  • Các giá trị tiềm ẩn âm thanh được xem là biểu diễn tiền huấn luyện giàu thông tin, có thể dùng cho nhiều tác vụ downstream
  • hertz-codec

    • hertz-codec là VAE âm thanh tích chập, nhận giọng nói mono 16kHz và mã hóa thành biểu diễn tiềm ẩn 8Hz
    • Sử dụng bitrate 1kbps được chuẩn hóa KL
    • Dùng causal convolution cho suy luận streaming, về mặt chức năng là thêm padding vào phía trái của chuỗi
    • Codec xuất các tham số Gaussian gồm trung bình và phương sai, rồi lấy mẫu thành một giá trị tiềm ẩn 32 chiều duy nhất cho mỗi frame 125ms
    • Trong đánh giá chủ quan, hertz-codec vượt Soundstream và Encodec ở 6kbps, và được đánh giá ở mức tương đương DAC 8kbps
    • Số token mỗi giây thấp hơn các tokenizer phổ biến, có lợi cho mô hình hóa ngôn ngữ
    • Cấu hình tham số
      • Encoder: 5M tham số
      • Decoder: 95M tham số
    • Checkpoint công khai
      • inference_apatosaurus_95000.pt: trọng số hertz-codec được huấn luyện bằng tái tạo hỗn hợp, adversarial loss và loss chuẩn hóa KL
      • inference_volcano_3.pt: hertz-codec quantizer chưng cất 15 bit quan trọng về mặt ngữ âm từ mỗi giá trị tiềm ẩn
  • hertz-ar

    • hertz-ar là transformer decoder-only 40 lớp, 8,4B tham số
    • Ngữ cảnh đầu vào là 2048 token, tương đương khoảng 4,5 phút
    • Giá trị tiềm ẩn đầu ra có thể được chuyển sang hertz-codec
    • 32 lớp đầu nhận lịch sử tiềm ẩn làm đầu vào và dự đoán giá trị projection lượng tử hóa 15 bit của token tiềm ẩn âm thanh tiếp theo
    • Phần 32 lớp này được gọi là hertz-lm, có thể huấn luyện độc lập hoặc khởi tạo từ trọng số mô hình ngôn ngữ
    • 8 lớp cuối dùng lịch sử tiềm ẩn và giá trị tiềm ẩn lượng tử hóa 15 bit để dự đoán token tiềm ẩn âm thanh tương lai
    • Âm thanh duplex được xử lý như một tác vụ hậu huấn luyện
      • Ghép hai projection head rồi tách ra
      • Xử lý bằng hai pipeline projection lượng tử hóa, mỗi pipeline có điều kiện là residual riêng của nó
    • Checkpoint công khai

Tạo mẫu và lựa chọn huấn luyện

  • Để thể hiện năng lực mô hình hóa âm thanh của mô hình, họ cung cấp các mẫu tạo một kênh, tạo hai kênh, và hội thoại trực tiếp giữa người và mô hình
  • Các mẫu tương tác có kèm prompt 9 giây
  • Các lựa chọn huấn luyện chính như sau
    • Với hertz-codec, dùng Causal ConvNets để giải mã song song và kiểm soát việc tạo tiềm ẩn tinh hơn
    • Các giá trị tiềm ẩn lượng tử hóa 15 bit được huấn luyện ban đầu để chứa thông tin ngữ âm, qua đó dẫn dắt mô hình tạo phát ngôn đúng về mặt cú pháp
    • Việc lượng tử hóa được thực hiện bằng cách đưa MLP projection vào một lớp Finite Scalar Quantization
    • Với hertz-lm, họ thực hiện ablation trên hai chiến lược khởi tạo và cho biết mô hình học linguistics hiệu quả bất kể có khởi tạo từ mô hình văn bản hay không

Cách suy luận thời gian thực

  • Trong suy luận live, mô hình thực hiện 8 forward pass mỗi giây và liên tục tiếp tục sinh tự hồi quy
  • Đầu vào là hai kênh riêng biệt, nhưng trong hội thoại chỉ trả về một kênh
  • Ở mỗi bước, âm thanh của người dùng được token hóa thành giá trị tiềm ẩn, rồi kết hợp với giá trị tiềm ẩn cuối cùng do mô hình tạo ra để đưa vào hertz-ar
  • Độ trễ được đo bằng thời gian trung bình giữa phát ngôn của người dùng và phản hồi của mô hình
  • Về mặt tính toán, độ trễ trung bình là 62,5ms, bao gồm thời gian trung bình giữa một phát ngôn bất kỳ và thời điểm kết thúc một token, thời gian forward pass, và độ trễ Internet khứ hồi
  • Khi chạy cục bộ trên RTX 4090, độ trễ trung bình thực tế thường là 120ms
  • Độ trễ thấp là điều kiện để tạo ra mô hình tương tác như con người, thay vì cảm giác như một cuộc gọi điện thoại bị trễ và đứt quãng

Tính chất công bố và vị trí ứng dụng

  • hertz-dev được giới thiệu là mô hình nền tảng công khai đầu tiên cho âm thanh hội thoại
  • Ở đây, mô hình nền tảng nghĩa là mô hình dự đoán chính xác phân bố dữ liệu huấn luyện, chứ không phải mô hình đã được tinh chỉnh bằng học tăng cường để thu hẹp mạnh phân bố sinh
  • Vì đặc tính này, nó phù hợp làm điểm khởi đầu để tinh chỉnh cho nhiều tác vụ downstream
  • Tài nguyên liên quan

1 bình luận

 
GN⁺ 2024-11-04
Ý kiến trên Hacker News
  • Cái này thật sự rất hay. Tham khảo thêm thì các engine tổng hợp giọng nói mã nguồn mở hiện có khá tệ nếu so với thứ được nêu ở đây, nên nếu về sau được mở rộng thành dạng đa phương thức hiện là speech-to-speech nhưng cũng có thể nhận văn bản, mình nghĩ nhu cầu sẽ rất lớn
    Về cơ bản, ngoài việc là một mô hình speech-to-speech xuất sắc, nó còn trở thành một mô hình TTS rất tốt. Có thể ai đó sẽ đi đường vòng bằng cách fine-tune để phát đầu ra kiểu Piper với ngữ điệu và cao độ tự nhiên hơn, nhưng tính năng nhận văn bản một cách native có lẽ sẽ hữu ích hơn nhiều so với việc nối pipeline văn bản LLM → Piper → Hertz-dev

    • Nếu nhóm chỉ có 4 người thì mình nghĩ nên tập trung vào một việc thay vì mở rộng ra nhiều hướng
    • Đúng, chính là cái này. Piper vốn đã khá ổn rồi, nếu cộng thêm mô hình này nữa thì hay
      Tuy nhiên có thể không nhất thiết nhóm này phải tự làm việc đó
  • Hertz nói là đầu tiên, nhưng Moshi ra mắt hồi đầu năm nay cũng là một mô hình giọng nói hai chiều hoạt động tương tự và chạy được cả trên MacBook: https://github.com/kyutai-labs/moshi

    • Moshi không công bố mô hình nền tảng, chỉ công bố 2 mô hình đã được fine-tune cho hội thoại. Ngoài codec ra thì cũng không công bố mã huấn luyện
      Hertz cũng chỉ thấy 3 notebook suy luận và mã mô hình đầy no_grad, không thấy mã huấn luyện. Cũng không có paper nên khó hiểu nó được huấn luyện thế nào và kiến trúc ra sao; nếu mình không bỏ sót gì thì gọi là thân thiện với nghiên cứu có vẻ hơi khó
    • LLaMA-Omni https://github.com/ictnlp/LLaMA-Omni là mô hình ngôn ngữ-giọng nói dựa trên Llama-3.1-8B-Instruct, tạo văn bản và giọng nói đồng thời
      moshi https://github.com/kyutai-labs/moshi là mô hình dựa trên giọng nói-văn bản dùng codec âm thanh neural streaming đời mới Mimi, còn Mini-Omni https://github.com/gpt-omni/mini-omni là LLM đa phương thức dựa trên Qwen2, cung cấp đầu vào/đầu ra giọng nói. Ichigo https://github.com/homebrewltd/ichigo là dự án nghiên cứu mở nhằm mở rộng khả năng nghe native cho LLM dựa trên văn bản bằng kỹ thuật hợp nhất sớm
    • Moshi là mô hình tốt để làm ứng dụng chat, nhưng cái này có vẻ được thiết kế gần với một mô hình nền tảng đúng nghĩa hơn, có sự kỳ lạ, tự nhiên và tính thân thiện với nghiên cứu đặc trưng của mô hình nền tảng
  • Việc Tesla tạm gạt lidar và các cảm biến khác sang một bên để tập trung vào tự lái thuần thị giác có vẻ là một chiến lược nhằm làm công nghệ dễ tiếp cận và dễ mở rộng hơn
    Tập trung vào mô hình chỉ dùng thị giác có thể giúp triển khai nhanh hơn, thu thập dữ liệu quy mô lớn và cải tiến lặp lại nhanh hơn. Khi hệ thống dựa trên thị giác đủ trưởng thành, Tesla có thể tích hợp lại dữ liệu cảm biến như lidar hay radar để làm bộ sản phẩm tự lái vững chắc và hoàn thiện hơn
    Mình cũng từng nghĩ đến một ý tưởng tương tự cho hệ thống tương tác bằng giọng nói. Hiện nay đa phần chuyển giọng nói thành văn bản, tạo phản hồi văn bản rồi lại chuyển thành giọng nói. Nhưng nếu có thể huấn luyện để phản hồi trực tiếp bằng giọng nói mà không đi qua văn bản thì có thể có những câu trả lời tự nhiên và ứng biến hơn. Lời nói tự nhiên có cú pháp và nhịp điệu riêng, khác biệt về phương ngữ và tông giọng, nên một hệ thống học thuần giọng nói có vẻ sẽ giống con người hơn và thú vị hơn
    Mình tò mò các mô hình tương tác giọng nói hiện nay đang theo quy trình chuẩn giọng nói→văn bản→giọng nói, hay đang khám phá xử lý speech-to-speech

    • Mình là một trong các developer. Mô hình của chúng tôi hoàn toàn là speech-to-speech, và chính vì lý do này nên khi làm hertz-dev chúng tôi hoàn toàn không dùng văn bản
    • Đoạn thứ hai nghe như đang mô tả ChatGPT Advanced Voice Mode hoặc Realtime API
  • Rất hay. Mình đang tìm hiểu VUI (giao diện người dùng bằng giọng nói) nên có thể sẽ hữu ích
    Có thể mình hơi thiên lệch vì từng làm tiến sĩ nghiên cứu cách VUI thuyết phục con người, nhưng mình nghĩ VUI là tương lai của tương tác với máy tính. Dù không phải tương lai đi nữa, nó cũng có thể mở ra các nhóm người dùng mới như trẻ em và người cao tuổi

    • Mình rất quan tâm đến giao diện người dùng bằng giọng nói. Bạn đang làm gì vậy, có link không?
    • Đúng, còn cả người khiếm thị nữa
  • Nếu có tác giả làm mô hình giọng nói hoặc người làm các công việc liên quan ở đây, mình tò mò liệu các bạn có từng cảm thấy âm thanh từ hệ thống nghe rợn người hoặc có tác động sinh lý nào không

  • Có thể hiểu đây là một loại LLM, cụ thể là audio LLM trong đó prompt cũng là âm thanh và đầu ra được tạo cũng là âm thanh không?

    • Đúng. Theo mình thì có vẻ nó hoạt động chính xác như vậy
  • Mình tò mò ý tưởng “sụp đổ phân phối sinh” có phải là một chủ đề đã được nghiên cứu không. Nếu có thì nó được gọi bằng tên gì
    Nội dung cho rằng mô hình nền tảng mô hình hóa chính xác phân phối dữ liệu huấn luyện, còn mô hình đã qua tuning bằng reinforcement learning ở mức mạnh thì phân phối sinh bị gập lại, nên mô hình nền tảng là điểm khởi đầu tốt hơn để fine-tune cho nhiều tác vụ, khá thú vị. Có vẻ cũng liên quan đến học liên tục hoặc phương pháp fine-tune đúng đắn

  • Nếu muốn pretrain mô hình nền tảng hertz-dev bằng ngôn ngữ khác thì phải làm thế nào? Mình tò mò có thể lấy thông tin liên quan ở đâu

  • Giọng nói nghe hơi méo và thường có nhiễu nền. Đặc biệt dễ nhận thấy nhiễu này biến mất khi giọng nói dừng lại
    Mình tò mò đây là giới hạn của mô hình hay là vấn đề chất lượng dữ liệu huấn luyện

  • Một trong các tác giả có thể giải thích câu này trong bài thực sự có nghĩa là gì không?
    hertz-vae: bộ giải mã transformer 1,8 tỷ tham số đóng vai trò phân phối tiên nghiệm đã học của audio VAE. Nó dùng 8192 biểu diễn tiềm ẩn được lấy mẫu, tức ngữ cảnh dài 17 phút, và dự đoán frame âm thanh đã mã hóa tiếp theo dưới dạng hỗn hợp Gaussian. Thông tin lượng tử hóa 15 bit của token tiếp theo đóng vai trò giàn giáo ngữ nghĩa dẫn hướng quá trình sinh theo cách có thể streaming

    • Suy đoán của mình là thế này. Trước hết, codec có vẻ nén âm thanh 16k sample rate bằng tích chập xuống còn 8 sample mỗi giây, rồi lượng tử hóa vector thành 128 bit để lấy codec
      Số bit này hoàn toàn không đủ để biểu diễn âm thanh thực, và có lẽ gần với mục đích biểu diễn những thứ như âm vị. vae trông giống một mô hình khuếch tán dựa trên VAE dùng codec làm prompt, còn dev có vẻ là mô hình dự đoán codec tiếp theo
      Toàn bộ luồng rất có khả năng là token hóa prompt bằng codec, nếu cần thêm s giây âm thanh thì dùng dev dự đoán thêm 8 * s token, rồi dùng mô hình khuếch tán vae chuyển lại thành âm thanh