Transformers documentation

SeamlessM4T-v2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mô hình này được công bố trên HF papers vào ngày 2023-12-08 và được đóng góp cho Hugging Face Transformers vào ngày 2023-11-30.

SDPA

SeamlessM4T-v2

Tổng quan

Mô hình SeamlessM4T-v2 được đề xuất trong Seamless: Multilingual Expressive and Streaming Speech Translation bởi nhóm Seamless Communication từ Meta AI.

SeamlessM4T-v2 là một bộ sưu tập các mô hình được thiết kế để cung cấp dịch thuật chất lượng cao, cho phép mọi người từ các cộng đồng ngôn ngữ khác nhau giao tiếp một cách dễ dàng thông qua giọng nói và văn bản. Đây là phiên bản cải tiến so với phiên bản trước. Để biết thêm chi tiết về sự khác biệt giữa v1 và v2, hãy tham khảo mục Sự khác biệt với SeamlessM4T-v1.

SeamlessM4T-v2 cho phép thực hiện nhiều tác vụ mà không cần dựa vào các mô hình riêng biệt:

  • Dịch giọng nói sang giọng nói (S2ST)
  • Dịch văn bản từ giọng nói (S2TT)
  • Dịch văn bản thành giọng nói (T2ST)
  • Dịch văn bản sang văn bản (T2TT)
  • Nhận dạng giọng nói tự động (ASR)

SeamlessM4Tv2Model có thể thực hiện tất cả các tác vụ nêu trên, nhưng mỗi tác vụ cũng có một mô hình con riêng biệt.

Tóm tắt từ bài báo như sau:

Những tiến bộ gần đây trong dịch thuật giọng nói tự động đã mở rộng đáng kể phạm vi ngôn ngữ, cải thiện khả năng đa phương thức và cho phép thực hiện nhiều tác vụ cũng như tính năng đa dạng. Tuy nhiên, so với hội thoại giữa người với người, các hệ thống dịch thuật giọng nói tự động quy mô lớn hiện nay vẫn thiếu những tính năng then chốt giúp giao tiếp qua máy móc trở nên liền mạch. Trong công trình này, chúng tôi giới thiệu một họ các mô hình cho phép dịch thuật đa ngôn ngữ và giàu cảm xúc theo phương thức streaming từ đầu đến cuối. Trước tiên, chúng tôi đóng góp một phiên bản cải tiến của mô hình đa ngôn ngữ và đa phương thức quy mô lớn SeamlessM4T—SeamlessM4T v2. Mô hình mới hơn này, tích hợp khung UnitY2 được cập nhật, đã được huấn luyện trên nhiều dữ liệu ngôn ngữ nguồn thấp hơn. Phiên bản mở rộng của SeamlessAlign bổ sung 114.800 giờ dữ liệu được căn chỉnh tự động, nâng tổng số lên 76 ngôn ngữ. SeamlessM4T v2 cung cấp nền tảng để khởi tạo hai mô hình mới nhất của chúng tôi: SeamlessExpressive và SeamlessStreaming. SeamlessExpressive cho phép dịch thuật bảo toàn phong cách giọng nói và ngữ điệu. So với các nỗ lực trước đây trong nghiên cứu giọng nói giàu cảm xúc, công trình của chúng tôi giải quyết một số khía cạnh của ngữ điệu chưa được khám phá nhiều, chẳng hạn như tốc độ nói và các khoảng dừng, đồng thời bảo toàn phong cách giọng nói của người nói. Về SeamlessStreaming, mô hình của chúng tôi tận dụng cơ chế Efficient Monotonic Multihead Attention (EMMA) để tạo ra bản dịch đích có độ trễ thấp mà không cần chờ câu nguồn hoàn chỉnh. Là mô hình đầu tiên thuộc loại này, SeamlessStreaming cho phép dịch đồng thời giọng nói sang giọng nói/văn bản cho nhiều ngôn ngữ nguồn và đích. Để đánh giá hiệu suất của các mô hình này, chúng tôi kết hợp các chỉ số tự động mới và các phiên bản sửa đổi của các chỉ số hiện có để đánh giá ngữ điệu, độ trễ và độ bền vững. Đối với đánh giá của con người, chúng tôi điều chỉnh các giao thức hiện có để đo lường các thuộc tính liên quan nhất trong việc bảo toàn ý nghĩa, tính tự nhiên và tính biểu cảm. Để đảm bảo các mô hình của chúng tôi có thể được sử dụng một cách an toàn và có trách nhiệm, chúng tôi đã triển khai nỗ lực red-teaming đầu tiên được biết đến cho dịch thuật máy đa phương thức, một hệ thống phát hiện và giảm thiểu độc tính được thêm vào, một đánh giá có hệ thống về thiên kiến giới tính, và một cơ chế đánh dấu nước địa phương không thể nghe thấy được thiết kế để làm giảm tác động của deepfake. Do đó, chúng tôi kết hợp các thành phần chính từ SeamlessExpressive và SeamlessStreaming để tạo thành Seamless, hệ thống công khai đầu tiên mở ra giao tiếp đa ngôn ngữ giàu cảm xúc theo thời gian thực. Tóm lại, Seamless mang đến cho chúng tôi cái nhìn then chốt về nền tảng kỹ thuật cần thiết để biến Universal Speech Translator từ một khái niệm khoa học viễn tưởng thành công nghệ thực tế. Cuối cùng, các đóng góp trong công trình này—including mô hình, mã nguồn và trình phát hiện đánh dấu nước—được công bố công khai và có thể truy cập tại liên kết bên dưới.

Cách sử dụng

Trong ví dụ sau, chúng ta sẽ tải một mẫu âm thanh tiếng Ả Rập và một mẫu văn bản tiếng Anh, sau đó chuyển đổi chúng thành giọng nói tiếng Nga và văn bản tiếng Pháp.

Đầu tiên, tải bộ xử lý và một checkpoint của mô hình:

from transformers import AutoProcessor, SeamlessM4Tv2Model


processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

Bạn có thể sử dụng mô hình này một cách liền mạch trên văn bản hoặc trên âm thanh, để tạo ra văn bản đã dịch hoặc âm thanh đã dịch.

Dưới đây là cách sử dụng bộ xử lý để xử lý văn bản và âm thanh:

# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset


dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]

# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)

# now, process some English text as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)

Xử lý giọng nói

SeamlessM4Tv2Model có thể tạo ra văn bản hoặc giọng nói một cách mượt mà với ít hoặc không có thay đổi nào. Hãy nhắm đến dịch giọng nói tiếng Nga:

audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()

Với về cơ bản cùng một mã, tôi đã dịch văn bản tiếng Anh và giọng nói tiếng Ả Rập thành các mẫu giọng nói tiếng Nga.

Văn bản

Tương tự, bạn có thể tạo văn bản dịch từ tệp âm thanh hoặc từ văn bản bằng cùng một mô hình. Bạn chỉ cần truyền generate_speech=False vào SeamlessM4Tv2Model.generate(). Lần này, hãy dịch sang tiếng Pháp.

# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

Mẹo

1. Sử dụng các mô hình chuyên dụng

SeamlessM4Tv2Model là model cấp cao nhất của transformers để tạo ra giọng nói và văn bản, nhưng bạn cũng có thể sử dụng các model chuyên dụng thực hiện tác vụ mà không cần các thành phần bổ sung, từ đó giảm bớt bộ nhớ sử dụng. Ví dụ, bạn có thể thay thế đoạn mã tạo audio-to-audio bằng model chuyên dụng cho tác vụ S2ST, phần còn lại là cùng một mã:

from transformers import SeamlessM4Tv2ForSpeechToSpeech


model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

Hoặc bạn có thể thay thế đoạn mã tạo văn bản từ văn bản bằng mô hình dành riêng cho tác vụ T2TT, bạn chỉ cần xóa generate_speech=False.

from transformers import SeamlessM4Tv2ForTextToText


model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

Hãy thử cả SeamlessM4Tv2ForSpeechToText và SeamlessM4Tv2ForTextToSpeech nhé.

2. Thay đổi danh tính người nói

Bạn có thể thay đổi giọng nói được sử dụng cho tổng hợp giọng nói bằng đối số speaker_id. Một số speaker_id hoạt động tốt hơn những cái khác cho một số ngôn ngữ nhất định!

3. Thay đổi chiến lược sinh

Bạn có thể sử dụng các chiến lược sinh khác nhau cho việc sinh văn bản, ví dụ .generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True) sẽ thực hiện giải mã beam-search đa thức trên mô hình văn bản. Lưu ý rằng việc sinh giọng nói chỉ hỗ trợ greedy - mặc định - hoặc lấy mẫu đa thức, có thể sử dụng với ví dụ .generate(..., speech_do_sample=True, speech_temperature=0.6).

4. Tạo giọng nói và văn bản cùng lúc

Sử dụng return_intermediate_token_ids=True với SeamlessM4Tv2Model để trả về cả giọng nói và văn bản!

Kiến trúc mô hình

SeamlessM4T-v2 có kiến trúc đa năng, xử lý mượt mà việc tạo tuần tự văn bản và giọng nói. Cấu hình này bao gồm hai mô hình sequence-to-sequence (seq2seq). Mô hình đầu tiên dịch phương thức đầu vào thành văn bản đã dịch, trong khi mô hình thứ hai tạo ra các token giọng nói, được gọi là “unit tokens”, từ văn bản đã dịch.

Mỗi phương thức (modality) có một bộ mã hóa (encoder) riêng với kiến trúc độc đáo. Ngoài ra, đối với đầu ra giọng nói, một bộ tổng hợp âm thanh (vocoder) lấy cảm hứng từ kiến trúc HiFi-GAN được đặt phía trên mô hình seq2seq thứ hai.

Sự khác biệt với SeamlessM4T-v1

Kiến trúc của phiên bản mới này khác với phiên bản đầu tiên ở một số khía cạnh:

Cải tiến trên mô hình lượt hai

Mô hình seq2seq thứ hai, có tên là mô hình text-to-unit, hiện không còn tự hồi quy, nghĩa là nó tính toán các đơn vị trong một lần truyền thẳng duy nhất. Thành tựu này được đạt được nhờ:

  • việc sử dụng nhúng cấp ký tự, nghĩa là mỗi ký tự của văn bản dịch dự đoán có các vector nhúng riêng, sau đó được dùng để dự đoán các token đơn vị.
  • sự sử dụng một bộ dự đoán thời lượng trung gian, dự đoán thời lượng giọng nói ở mức ký tự trên văn bản dịch được dự đoán.
  • việc sử dụng bộ giải mã văn bản-sang-đơn vị mới kết hợp giữa tích chập và tự chú ý để xử lý ngữ cảnh dài hơn.

Sự khác biệt trong bộ mã hóa giọng nói

Bộ mã hóa giọng nói, được sử dụng trong quá trình tạo bản dịch lần đầu tiên để dự đoán văn bản đã dịch, khác biệt chủ yếu so với bộ mã hóa giọng nói trước đó thông qua các cơ chế sau:

  • việc sử dụng mặt nạ chú ý phân mảnh (chunked attention mask) để ngăn chặn chú ý giữa các phân mảnh, đảm bảo rằng mỗi vị trí chỉ chú ý đến các vị trí trong chính phân mảnh của nó và một số lượng phân mảnh trước đó cố định.
  • việc sử dụng nhúng vị trí tương đối, chỉ xem xét khoảng cách giữa các phần tử trong chuỗi thay vì vị trí tuyệt đối. Vui lòng tham khảo Self-Attention with Relative Position Representations (Shaw et al.) để biết thêm chi tiết.
  • việc sử dụng một phép tích chập chiều sâu nhân quả thay vì một phép tích chập không nhân quả.

Quy trình tạo

Dưới đây là cách quy trình tạo hoạt động:

  • Văn bản hoặc giọng nói đầu vào được xử lý thông qua bộ mã hóa riêng của nó.
  • Decoder tạo ra các token văn bản trong ngôn ngữ mong muốn.
  • Nếu cần tạo giọng nói, mô hình seq2seq thứ hai sẽ tạo ra các token đơn vị theo cách không tự hồi quy.
  • Các token đơn vị này sau đó được truyền qua bộ tổng hợp âm thanh (vocoder) cuối cùng để tạo ra giọng nói thực tế.

Mô hình này được đóng góp bởi ylacombe. Mã gốc có thể được tìm thấy tại đây.

SeamlessM4Tv2Model

lớp transformers.SeamlessM4Tv2Model

< >

( config: SeamlessM4Tv2Configcurrent_modality = 'text' )

Tham số

  • config (SeamlessM4Tv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
  • current_modality (str, tùy chọn, mặc định là "text") — Chế độ nhận thức mặc định. Được dùng để khởi tạo mô hình.

Model transformer gốc của SeamlessM4Tv2, có thể được sử dụng cho mọi tác vụ khả dụng (S2ST, S2TT, T2TT, T2ST).

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Có thể lấy chỉ số bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. input IDs là gì?

    Các chỉ số có thể được lấy bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • input_features (torch.Tensor có hình dạng (batch_size, sequence_length, num_banks), tùy chọn) — Đặc trưng âm thanh đầu vào. Giá trị này nên được trả về bởi lớp SeamlessM4TFeatureExtractor hoặc lớp SeamlessM4TProcessor. Xem SeamlessM4TFeatureExtractor.call() để biết thêm chi tiết.
  • return_intermediate_token_ids (bool, tùy chọn) — Nếu True, cũng trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thành True nếu bạn cũng muốn nhận văn bản đã dịch cùng với âm thanh. Lưu ý rằng nếu generate_speech=False, tham số này sẽ bị bỏ qua và các token văn bản sẽ được trả về.
  • tgt_lang (str, tùy chọn) — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
  • speaker_id (int, tùy chọn, mặc định là 0) — Id của người nói được sử dụng cho tổng hợp giọng nói. Phải nhỏ hơn config.vocoder_num_spkrs.
  • generate_speech (bool, tùy chọn, mặc định là True) — Nếu False, chỉ trả về các token văn bản và không tạo giọng nói.
  • kwargs (tuỳ chọn) — Từ điển các tham số từ khoá còn lại sẽ được truyền đến GenerationMixin.generate(). Các tham số từ khoá thuộc hai loại:
    • Nếu không có tiền tố, chúng sẽ được nhập dưới dạng **kwargs cho phương thức generate của từng mô hình con, ngoại trừ decoder_input_ids chỉ được truyền qua các thành phần văn bản.
    • Với tiền tố text_ hoặc speech_, chúng sẽ lần lượt là đầu vào cho phương thức generate của mô hình văn bản và mô hình giọng nói. Chúng có độ ưu tiên cao hơn so với các từ khóa không có tiền tố.

    Điều này có nghĩa là bạn có thể, ví dụ, chỉ định một chiến lược sinh cho một lần sinh nhưng không áp dụng cho lần sinh còn lại.

Trả về

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]

  • Nếu generate_speech và return_intermediate_token_ids, trả về SeamlessM4Tv2GenerationOutput.
  • Nếu generate_speech và không return_intermediate_token_ids, trả về một tuple gồm các waveform có shape (batch_size, sequence_length) và waveform_lengths cho biết độ dài của từng mẫu.
  • Nếu generate_speech=False, nó sẽ trả về ModelOutput.

Tạo ra các id token đã dịch và/hoặc các dạng sóng âm thanh đã dịch.

Phương pháp này lần lượt gọi hàm .generate của hai mô hình con khác nhau. Bạn có thể chỉ định các đối số từ khóa ở hai cấp độ khác nhau: các đối số chung sẽ được truyền cho cả hai mô hình, hoặc các đối số có tiền tố sẽ được truyền cho một trong hai mô hình.

Ví dụ, việc gọi .generate(input_ids=input_ids, num_beams=4, speech_do_sample=True) sẽ lần lượt thực hiện giải mã beam-search trên mô hình văn bản và lấy mẫu beam-search đa thức trên mô hình giọng nói.

Để xem tổng quan về các chiến lược sinh và ví dụ mã, hãy xem hướng dẫn sau.

SeamlessM4Tv2ForTextToSpeech

lớp transformers.SeamlessM4Tv2ForTextToSpeech

< >

( config: SeamlessM4Tv2Config )

Tham số

  • config (SeamlessM4Tv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Model transformer SeamlessM4Tv2 cho text-to-speech, có thể được sử dụng cho T2ST.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Có thể lấy chỉ số bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. input IDs là gì?

    Các chỉ số có thể được lấy bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • return_intermediate_token_ids (bool, tuỳ chọn) — Nếu True, đồng thời trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thành True nếu bạn cũng muốn nhận văn bản đã dịch cùng với âm thanh.
  • tgt_lang (str, tùy chọn) — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
  • speaker_id (int, tùy chọn, mặc định là 0) — Id của người nói được sử dụng cho tổng hợp giọng nói. Phải nhỏ hơn config.vocoder_num_spkrs.
  • kwargs (tuỳ chọn) — Từ điển các tham số từ khoá còn lại sẽ được truyền đến GenerationMixin.generate(). Các tham số từ khoá thuộc hai loại:
    • Nếu không có tiền tố, chúng sẽ được nhập dưới dạng **kwargs cho phương thức generate của từng mô hình con, ngoại trừ decoder_input_ids chỉ được truyền qua các thành phần văn bản.
    • Với tiền tố text_ hoặc speech_, chúng sẽ lần lượt là đầu vào cho phương thức generate của mô hình văn bản và mô hình giọng nói. Chúng có độ ưu tiên cao hơn so với các từ khóa không có tiền tố.

    Điều này có nghĩa là bạn có thể, ví dụ, chỉ định một chiến lược sinh cho một lần sinh nhưng không áp dụng cho lần sinh còn lại.

Trả về

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

  • Nếu return_intermediate_token_ids, trả về SeamlessM4Tv2GenerationOutput.
  • Nếu không return_intermediate_token_ids, trả về một tuple gồm các waveform có shape (batch_size, sequence_length) và waveform_lengths cho biết độ dài của từng mẫu.

Tạo ra các dạng sóng âm thanh đã được dịch.

Phương pháp này lần lượt gọi hàm .generate của hai mô hình con khác nhau. Bạn có thể chỉ định các đối số từ khóa ở hai cấp độ khác nhau: các đối số chung sẽ được truyền cho cả hai mô hình, hoặc các đối số có tiền tố sẽ được truyền cho một trong hai mô hình.

Ví dụ, việc gọi .generate(input_ids, num_beams=4, speech_do_sample=True) sẽ lần lượt thực hiện giải mã beam-search trên mô hình văn bản và lấy mẫu beam-search đa thức trên mô hình giọng nói.

Để xem tổng quan về các chiến lược sinh và ví dụ mã, hãy xem hướng dẫn sau.

SeamlessM4Tv2ForSpeechToSpeech

lớp transformers.SeamlessM4Tv2ForSpeechToSpeech

< >

( config: SeamlessM4Tv2Config )

Tham số

  • config (SeamlessM4Tv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Model transformer SeamlessM4Tv2 cho speech-to-speech có thể được sử dụng cho S2ST.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

generate

< >

( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

Tham số

  • input_features (torch.Tensor có hình dạng (batch_size, sequence_length, num_banks)) — Các đặc trưng âm thanh đầu vào. Giá trị này phải được trả về bởi lớp SeamlessM4TFeatureExtractor hoặc lớp SeamlessM4TProcessor. Xem SeamlessM4TFeatureExtractor.call() để biết thêm chi tiết.
  • return_intermediate_token_ids (bool, tuỳ chọn) — Nếu True, đồng thời trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thành True nếu bạn cũng muốn nhận văn bản đã dịch cùng với âm thanh.
  • tgt_lang (str, tùy chọn) — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
  • speaker_id (int, tùy chọn, mặc định là 0) — Id của người nói được sử dụng cho tổng hợp giọng nói. Phải nhỏ hơn config.vocoder_num_spkrs.
  • kwargs (tuỳ chọn) — Từ điển các tham số từ khoá còn lại sẽ được truyền đến GenerationMixin.generate(). Các tham số từ khoá thuộc hai loại:
    • Nếu không có tiền tố, chúng sẽ được nhập dưới dạng **kwargs cho phương thức generate của từng mô hình con, ngoại trừ decoder_input_ids chỉ được truyền qua các thành phần văn bản.
    • Với tiền tố text_ hoặc speech_, chúng sẽ lần lượt là đầu vào cho phương thức generate của mô hình văn bản và mô hình giọng nói. Chúng có độ ưu tiên cao hơn so với các từ khóa không có tiền tố.

    Điều này có nghĩa là bạn có thể, ví dụ, chỉ định một chiến lược sinh cho một lần sinh nhưng không áp dụng cho lần sinh còn lại.

Trả về

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

  • Nếu return_intermediate_token_ids, trả về SeamlessM4Tv2GenerationOutput.
  • Nếu không return_intermediate_token_ids, trả về một tuple gồm các waveform có shape (batch_size, sequence_length) và waveform_lengths cho biết độ dài của từng mẫu.

Tạo ra các dạng sóng âm thanh đã được dịch.

Phương pháp này lần lượt gọi hàm .generate của hai mô hình con khác nhau. Bạn có thể chỉ định các đối số từ khóa ở hai cấp độ khác nhau: các đối số chung sẽ được truyền cho cả hai mô hình, hoặc các đối số có tiền tố sẽ được truyền cho một trong hai mô hình.

Ví dụ, việc gọi .generate(input_features, num_beams=4, speech_do_sample=True) sẽ lần lượt thực hiện giải mã beam-search trên mô hình văn bản và lấy mẫu beam-search đa thức trên mô hình giọng nói.

Để xem tổng quan về các chiến lược sinh và ví dụ mã, hãy xem hướng dẫn sau.

SeamlessM4Tv2ForTextToText

lớp transformers.SeamlessM4Tv2ForTextToText

< >

( config: SeamlessM4Tv2Config )

Tham số

  • config (SeamlessM4Tv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Model transformer SeamlessM4Tv2 từ văn bản sang văn bản có thể được sử dụng cho T2TT.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_ids (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào của decoder trong bảng từ vựng. Có thể lấy chỉ số bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. decoder input IDs là gì? Bart sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values). Đối với huấn luyện dịch thuật và tóm tắt, cần cung cấp decoder_input_ids. Nếu không cung cấp decoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyển input_ids sang bên phải cho tiền huấn luyện khử nhiễu theo bài báo.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào của bộ giải mã là gì?

    Bart sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

    Đối với huấn luyện dịch và tóm tắt, cần cung cấp decoder_input_ids. Nếu không cung cấp decoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyển input_ids sang phải cho tiền huấn luyện khử nhiễu theo bài báo.

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_ids. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc modeling_bart._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc modeling_bart._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor có hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi input_ids thành các vector tương ứng so với ma trận tra cứu nhúng nội bộ của mô hình.

    labels (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn): Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có mặt nạ. Chỉ số phải nằm trong [-100, 0, ..., config.vocab_size] (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (mặt nạ), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor có hình dạng (batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền decoder_input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếu past_key_values được sử dụng, tùy chọn chỉ cần decoder_inputs_embeds cuối cùng phải được nhập (xem past_key_values). Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi decoder_input_ids chỉ số thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.

    Nếu cả decoder_input_ids và decoder_inputs_embeds đều không được đặt, decoder_inputs_embeds sẽ nhận giá trị của inputs_embeds.

  • labels (torch.LongTensor có shape (batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong [0, ..., config.vocab_size] hoặc -100 (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size].
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).

Trả về

Seq2SeqLMOutput hoặc tuple(torch.Tensor)

Một Seq2SeqLMOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SeamlessM4Tv2Config) và đầu vào.

Phương thức forward của SeamlessM4Tv2ForTextToText ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling.

  • logits (torch.Tensor có hình dạng (batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

generate

< >

( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

Tham số

  • input_ids (torch.Tensor có hình dạng thay đổi tùy theo modality, tùy chọn) — Chỉ số của các token trong chuỗi đầu vào trong từ vựng. Có thể lấy chỉ số bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. input IDs là gì?

    Các chỉ số có thể được lấy bằng cách sử dụng SeamlessM4TTokenizer hoặc SeamlessM4TProcessor. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • tgt_lang (str, tùy chọn) — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
  • generation_config (~generation.GenerationConfig, tùy chọn) — Cấu hình sinh được sử dụng làm tham số hóa cơ sở cho lệnh gọi sinh. **kwargs được truyền vào generate và khớp với các thuộc tính của generation_config sẽ ghi đè lên chúng. Nếu generation_config không được cung cấp, giá trị mặc định sẽ được sử dụng, với thứ tự ưu tiên nạp như sau: 1) từ tệp mô hình generation_config.json, nếu tệp này tồn tại; 2) từ cấu hình của mô hình. Vui lòng lưu ý rằng các tham số không được chỉ định sẽ kế thừa các giá trị mặc định của GenerationConfig, và tài liệu của lớp này nên được kiểm tra để tham số hóa quá trình sinh.
  • logits_processor (LogitsProcessorList, tùy chọn) — Các logits processor tùy chỉnh bổ sung cho các logits processor mặc định được tạo từ các đối số và cấu hình sinh. Nếu một logit processor được truyền vào mà đã được tạo từ các đối số hoặc một cấu hình sinh, một lỗi sẽ được ném ra. Tính năng này dành cho người dùng nâng cao.
  • stopping_criteria (StoppingCriteriaList, tùy chọn) — Các tiêu chí dừng tùy chỉnh bổ sung cho các tiêu chí dừng mặc định được xây dựng từ các đối số và cấu hình sinh. Nếu một tiêu chí dừng được truyền vào mà đã được tạo từ các đối số hoặc cấu hình sinh, một lỗi sẽ được ném ra. Tính năng này dành cho người dùng nâng cao.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], tùy chọn) — Nếu được cung cấp, hàm này sẽ ràng buộc beam search chỉ sử dụng các token được phép ở mỗi bước. Nếu không được cung cấp, sẽ không áp dụng ràng buộc nào. Hàm này nhận 2 đối số: ID của batch batch_id và input_ids. Nó phải trả về một danh sách chứa các token được phép cho bước sinh tiếp theo, dựa trên ID của batch batch_id và các token đã được sinh trước đó inputs_ids. Đối số này hữu ích cho việc sinh có ràng buộc dựa trên tiền tố, như được mô tả trong Autoregressive Entity Retrieval.
  • synced_gpus (bool, tùy chọn, mặc định là False) — Có nên tiếp tục chạy vòng lặp while cho đến max_length hay không (cần thiết để tránh deadlock với FullyShardedDataParallel và DeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], tùy chọn) — Tham số hóa ad hoc cho generate_config và/hoặc các kwargs cụ thể của model bổ sung sẽ được chuyển tiếp đến hàm forward của model.

Trả về

ModelOutput hoặc torch.LongTensor

Một ModelOutput (nếu return_dict_in_generate=True hoặc khi config.return_dict_in_generate=True) hoặc một torch.Tensor. Các kiểu ModelOutput có thể là:

Tạo ra các chuỗi id token.

Hầu hết các tham số kiểm soát quá trình sinh được đặt trong generation_config, nếu không được truyền vào, sẽ được đặt thành cấu hình sinh mặc định của mô hình. Bạn có thể ghi đè bất kỳ generation_config nào bằng cách truyền các tham số tương ứng vào generate(), ví dụ .generate(inputs, num_beams=4, do_sample=True).

Để xem tổng quan về các chiến lược sinh và ví dụ mã, hãy xem hướng dẫn sau.

SeamlessM4Tv2ForSpeechToText

lớp transformers.SeamlessM4Tv2ForSpeechToText

< >

( config: SeamlessM4Tv2Config )

Tham số

  • config (SeamlessM4Tv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Model transformer SeamlessM4Tv2 cho speech-to-text có thể được sử dụng cho S2TT.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Tham số

  • input_features (torch.Tensor có hình dạng (batch_size, sequence_length, num_banks)) — Các đặc trưng âm thanh đầu vào. Giá trị này phải được trả về bởi lớp SeamlessM4TFeatureExtractor hoặc lớp SeamlessM4TProcessor. Xem SeamlessM4TFeatureExtractor.call() để biết thêm chi tiết.
  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_ids (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào của decoder trong bảng từ vựng. Có thể lấy chỉ số bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. decoder input IDs là gì? Bart sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values). Đối với huấn luyện dịch thuật và tóm tắt, cần cung cấp decoder_input_ids. Nếu không cung cấp decoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyển input_ids sang bên phải cho tiền huấn luyện khử nhiễu theo bài báo.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào của bộ giải mã là gì?

    Bart sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

    Đối với huấn luyện dịch và tóm tắt, cần cung cấp decoder_input_ids. Nếu không cung cấp decoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyển input_ids sang phải cho tiền huấn luyện khử nhiễu theo bài báo.

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_ids. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc modeling_bart._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc modeling_bart._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor có hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi input_ids thành các vector tương ứng so với ma trận tra cứu nhúng nội bộ của mô hình.

    labels (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn): Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có mặt nạ. Chỉ số phải nằm trong [-100, 0, ..., config.vocab_size] (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (mặt nạ), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor có hình dạng (batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền decoder_input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếu past_key_values được sử dụng, tùy chọn chỉ cần decoder_inputs_embeds cuối cùng phải được nhập (xem past_key_values). Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi decoder_input_ids chỉ số thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.

    Nếu cả decoder_input_ids và decoder_inputs_embeds đều không được đặt, decoder_inputs_embeds sẽ nhận giá trị của inputs_embeds.

  • labels (torch.LongTensor có shape (batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong [0, ..., config.vocab_size] hoặc -100 (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size].
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).

Trả về

Seq2SeqLMOutput hoặc tuple(torch.Tensor)

Một Seq2SeqLMOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SeamlessM4Tv2Config) và đầu vào.

Phương thức forward của SeamlessM4Tv2ForSpeechToText ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling.

  • logits (torch.Tensor có hình dạng (batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

>>> from transformers import AutoProcessor, SeamlessM4Tv2ForSpeechToText
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> model = SeamlessM4Tv2ForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...

generate

< >

( input_features = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

Tham số

  • input_features (torch.Tensor có hình dạng (batch_size, sequence_length, num_banks)) — Các đặc trưng âm thanh đầu vào. Giá trị này phải được trả về bởi lớp SeamlessM4TFeatureExtractor hoặc lớp SeamlessM4TProcessor. Xem SeamlessM4TFeatureExtractor.call() để biết thêm chi tiết.
  • tgt_lang (str, tùy chọn) — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
  • generation_config (~generation.GenerationConfig, tùy chọn) — Cấu hình sinh được sử dụng làm tham số hóa cơ sở cho lệnh gọi sinh. **kwargs được truyền vào generate và khớp với các thuộc tính của generation_config sẽ ghi đè lên chúng. Nếu generation_config không được cung cấp, giá trị mặc định sẽ được sử dụng, với thứ tự ưu tiên nạp như sau: 1) từ tệp mô hình generation_config.json, nếu tệp này tồn tại; 2) từ cấu hình của mô hình. Vui lòng lưu ý rằng các tham số không được chỉ định sẽ kế thừa các giá trị mặc định của GenerationConfig, và tài liệu của lớp này nên được kiểm tra để tham số hóa quá trình sinh.
  • logits_processor (LogitsProcessorList, tùy chọn) — Các logits processor tùy chỉnh bổ sung cho các logits processor mặc định được tạo từ các đối số và cấu hình sinh. Nếu một logit processor được truyền vào mà đã được tạo từ các đối số hoặc một cấu hình sinh, một lỗi sẽ được ném ra. Tính năng này dành cho người dùng nâng cao.
  • stopping_criteria (StoppingCriteriaList, tùy chọn) — Các tiêu chí dừng tùy chỉnh bổ sung cho các tiêu chí dừng mặc định được xây dựng từ các đối số và cấu hình sinh. Nếu một tiêu chí dừng được truyền vào mà đã được tạo từ các đối số hoặc cấu hình sinh, một lỗi sẽ được ném ra. Tính năng này dành cho người dùng nâng cao.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], tùy chọn) — Nếu được cung cấp, hàm này sẽ ràng buộc beam search chỉ sử dụng các token được phép ở mỗi bước. Nếu không được cung cấp, sẽ không áp dụng ràng buộc nào. Hàm này nhận 2 đối số: ID của batch batch_id và input_ids. Nó phải trả về một danh sách chứa các token được phép cho bước sinh tiếp theo, dựa trên ID của batch batch_id và các token đã được sinh trước đó inputs_ids. Đối số này hữu ích cho việc sinh có ràng buộc dựa trên tiền tố, như được mô tả trong Autoregressive Entity Retrieval.
  • synced_gpus (bool, tùy chọn, mặc định là False) — Có nên tiếp tục chạy vòng lặp while cho đến max_length hay không (cần thiết để tránh deadlock với FullyShardedDataParallel và DeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], tùy chọn) — Tham số hóa ad hoc cho generate_config và/hoặc các kwargs cụ thể của model bổ sung sẽ được chuyển tiếp đến hàm forward của model.

Trả về

ModelOutput hoặc torch.LongTensor

Một ModelOutput (nếu return_dict_in_generate=True hoặc khi config.return_dict_in_generate=True) hoặc một torch.Tensor. Các kiểu ModelOutput có thể là:

Tạo ra các chuỗi id token.

Hầu hết các tham số kiểm soát quá trình sinh được đặt trong generation_config, nếu không được truyền vào, sẽ được đặt thành cấu hình sinh mặc định của mô hình. Bạn có thể ghi đè bất kỳ generation_config nào bằng cách truyền các tham số tương ứng vào generate(), ví dụ .generate(inputs, num_beams=4, do_sample=True).

Để xem tổng quan về các chiến lược sinh và ví dụ mã, hãy xem hướng dẫn sau.

SeamlessM4Tv2Config

lớp transformers.SeamlessM4Tv2Config

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 256102t2u_vocab_size: int = 10082char_vocab_size: int = 10943hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 4096encoder_layerdrop: float | int = 0.05decoder_layerdrop: float | int = 0.05activation_function: str = 'relu'dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.0scale_embedding: bool = Trueencoder_layers: int = 24encoder_ffn_dim: int = 8192encoder_attention_heads: int = 16decoder_layers: int = 24decoder_ffn_dim: int = 8192decoder_attention_heads: int = 16decoder_start_token_id: int = 3max_new_tokens: int | None = 256pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3speech_encoder_layers: int = 24speech_encoder_attention_heads: int = 16speech_encoder_intermediate_size: int = 4096speech_encoder_hidden_act: str = 'swish'speech_encoder_dropout: float | int = 0.0add_adapter: bool = Truespeech_encoder_layerdrop: float | int = 0.1feature_projection_input_dim: int = 160adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative_key'conv_depthwise_kernel_size: int = 31left_max_position_embeddings: int = 64right_max_position_embeddings: int = 8speech_encoder_chunk_size: int = 20000speech_encoder_left_chunk_num: int = 128t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_encoder_layers: int = 6t2u_encoder_ffn_dim: int = 8192t2u_encoder_attention_heads: int = 16t2u_decoder_layers: int = 6t2u_decoder_ffn_dim: int = 8192t2u_decoder_attention_heads: int = 16t2u_max_position_embeddings: int = 4096t2u_variance_predictor_embed_dim: int = 1024t2u_variance_predictor_hidden_dim: int = 256t2u_variance_predictor_kernel_size: int = 3t2u_variance_pred_dropout: float | int = 0.5sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1unit_hifi_gan_vocab_size: int = 10000unit_embed_dim: int = 1280lang_embed_dim: int = 256spkr_embed_dim: int = 256vocoder_num_langs: int = 36vocoder_num_spkrs: int = 200variance_predictor_kernel_size: int = 3var_pred_dropout: float | int = 0.5vocoder_offset: int = 4tie_word_embeddings: bool = True )

Tham số

  • is_encoder_decoder (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có được sử dụng như một encoder/decoder hay không.
  • vocab_size (int, tùy chọn, mặc định là 256102) — Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi input_ids.
  • t2u_vocab_size (int, tùy chọn, mặc định là 10082) — Kích thước từ vựng đơn vị của mô hình SeamlessM4Tv2. Xác định số lượng “unit token” khác nhau có thể được biểu diễn bởi inputs_ids được truyền khi gọi mô hình con Text-To-Units của ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech hoặc ~SeamlessM4Tv2ForTextToSpeech.
  • char_vocab_size (int, tuỳ chọn, mặc định là 10943) — Kích thước từ vựng ký tự của mô hình SeamlessM4Tv2. Xác định số lượng các token ký tự khác nhau có thể được biểu diễn bởi char_inputs_ids được truyền khi gọi mô hình con Text-To-Units của ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech hoặc ~SeamlessM4Tv2ForTextToSpeech.
  • hidden_size (int, tùy chọn, mặc định là 1024) — Kích thước của các biểu diễn ẩn.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • use_cache (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếu config.is_decoder=True hoặc khi mô hình là mô hình sinh chỉ có decoder.
  • max_position_embeddings (int, tùy chọn, mặc định là 4096) — Chiều dài chuỗi tối đa mà mô hình này có thể được sử dụng.
  • encoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.05) — Xác suất LayerDrop cho encoder. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • decoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.05) — Xác suất LayerDrop cho bộ giải mã. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • activation_function (str, tùy chọn, mặc định là relu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Tỷ lệ cho tất cả các lớp dropout.
  • attention_dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Tỷ lệ dropout cho các xác suất chú ý.
  • activation_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các kích hoạt bên trong lớp liên kết đầy đủ.
  • scale_embedding (bool, tùy chọn, mặc định là True) — Có nên chia embedding cho sqrt(d_model) để chuẩn hóa hay không.
  • encoder_layers (int, tùy chọn, mặc định là 24) — Số lượng lớp ẩn trong bộ mã hóa Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • encoder_ffn_dim (int, tùy chọn, mặc định là 8192) — Kích thước của lớp “trung gian” (thường được gọi là feed-forward) trong encoder.
  • encoder_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa Transformer.
  • decoder_layers (int, tuỳ chọn, mặc định là 24) — Số lượng lớp ẩn trong bộ giải mã Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • decoder_ffn_dim (int, tùy chọn, mặc định là 8192) — Kích thước của lớp “trung gian” (thường được gọi là feed-forward) trong decoder.
  • decoder_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.
  • decoder_start_token_id (int, tùy chọn, mặc định là 3) — Nếu một mô hình encoder-decoder bắt đầu giải mã bằng một token khác với bos, đây là id của token đó.
  • max_new_tokens (int, tùy chọn, mặc định là 256) — Số lượng token văn bản tối đa cần tạo, không tính số token trong prompt.
  • pad_token_id (int, tùy chọn, mặc định là 0) — Token id được sử dụng để đệm (padding) trong từ vựng.
  • bos_token_id (int, tùy chọn, mặc định là 2) — Token id được sử dụng cho beginning-of-stream trong bảng từ vựng.
  • eos_token_id (Union[int, list[int]], tuỳ chọn, mặc định là 3) — Token id được dùng cho end-of-stream trong bảng từ vựng.
  • speech_encoder_layers (int, tùy chọn, mặc định là 24) — Số lượng lớp ẩn trong bộ mã hóa giọng nói Transformer.
  • speech_encoder_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa giọng nói Transformer.
  • speech_encoder_intermediate_size (int, tùy chọn, mặc định là 4096) — Kích thước của lớp “trung gian” (tức là lớp feed-forward) trong bộ mã hóa giọng nói Transformer.
  • speech_encoder_hidden_act (str hoặc function, tùy chọn, mặc định là "swish") — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ mã hóa giọng nói. Nếu là chuỗi, "gelu", "relu", "selu", "swish" và "gelu_new" được hỗ trợ.
  • speech_encoder_dropout (float, tùy chọn, mặc định là 0.0) — Xác suất dropout cho tất cả các lớp trong speech encoder.
  • add_adapter (bool, tùy chọn, mặc định là True) — Thêm một lớp adapter phía trên bộ mã hóa giọng nói.
  • speech_encoder_layerdrop (float, tùy chọn, mặc định là 0.1) — Xác suất LayerDrop cho bộ mã hóa giọng nói. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • feature_projection_input_dim (int, tùy chọn, mặc định là 160) — Kích thước đầu vào của phép chiếu đặc trưng đầu vào của bộ mã hóa giọng nói, tức là kích thước sau khi xử lý âm thanh đầu vào bằng SeamlessM4TFeatureExtractor.
  • adaptor_kernel_size (int, tuỳ chọn, mặc định là 8) — Kích thước kernel của các lớp tích chập trong mạng adapter. Chỉ liên quan nếu add_adapter is True.
  • adaptor_stride (int, tùy chọn, mặc định là 8) — Stride của các lớp convolution trong mạng adapter. Chỉ liên quan nếu add_adapter is True.
  • adaptor_dropout (float, tùy chọn, mặc định là 0.1) — Xác suất dropout cho tất cả các lớp trong bộ thích ứng giọng nói.
  • num_adapter_layers (int, tuỳ chọn, mặc định là 1) — Số lượng lớp tích chập cần được sử dụng trong mạng adapter. Chỉ liên quan nếu add_adapter is True.
  • position_embeddings_type (str, tùy chọn, mặc định là "relative_key") — Có thể được chỉ định thành relative_key. Nếu để là None, sẽ không áp dụng nhúng vị trí tương đối. Chỉ áp dụng cho bộ mã hóa giọng nói. Để biết thêm thông tin về "relative_key", vui lòng tham khảo Self-Attention with Relative Position Representations (Shaw et al.).
  • conv_depthwise_kernel_size (int, tuỳ chọn, mặc định là 31) — Kích thước kernel của lớp convolution depthwise 1D trong các khối Conformer. Chỉ được áp dụng cho bộ mã hóa giọng nói.
  • left_max_position_embeddings (int, tùy chọn, mặc định là 64) — Giá trị cắt phía bên trái cho các vị trí tương đối.
  • right_max_position_embeddings (int, tùy chọn, mặc định là 8) — Giá trị cắt bên phải cho các vị trí tương đối.
  • speech_encoder_chunk_size (int, tùy chọn, mặc định là 20000) — Kích thước của mỗi khối chú ý (attention chunk).
  • speech_encoder_left_chunk_num (int, tùy chọn, mặc định là 128) — Số lượng chunk ở bên trái mà lookahead được phép thực hiện.
  • t2u_bos_token_id (int, tuỳ chọn, mặc định là 0) — Id của token đơn vị beginning-of-stream. Chỉ áp dụng cho mô hình seq2seq text-to-unit.
  • t2u_pad_token_id (int, tùy chọn, mặc định là 1) — Id của token đơn vị padding. Chỉ áp dụng cho mô hình seq2seq text-to-unit.
  • t2u_eos_token_id (int, tùy chọn, mặc định là 2) — Id của token đơn vị kết thúc luồng. Chỉ áp dụng cho mô hình seq2seq text-to-unit.
  • t2u_encoder_layers (int, tùy chọn, mặc định là 6) — Số lượng lớp ẩn trong bộ mã hóa text-to-unit của Transformer.
  • t2u_encoder_ffn_dim (int, tùy chọn, mặc định là 8192) — Kích thước của lớp “trung gian” (tức là lớp feed-forward) trong bộ mã hóa text-to-unit của Transformer.
  • t2u_encoder_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa văn bản-sang-đơn vị Transformer.
  • t2u_decoder_layers (int, tùy chọn, mặc định là 6) — Số lượng lớp ẩn trong bộ giải mã text-to-unit của Transformer.
  • t2u_decoder_ffn_dim (int, tùy chọn, mặc định là 8192) — Kích thước của lớp “trung gian” (tức là lớp feed-forward) trong bộ giải mã text-to-unit của Transformer.
  • t2u_decoder_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã text-to-unit của Transformer.
  • t2u_max_position_embeddings (int, tùy chọn, mặc định là 4096) — Chiều dài chuỗi tối đa mà thành phần text-to-unit của mô hình này có thể được sử dụng. Thông thường, hãy đặt giá trị này ở mức lớn để phòng ngừa (ví dụ: 512 hoặc 1024 hoặc 2048).
  • t2u_variance_predictor_embed_dim (int, tùy chọn, mặc định là 1024) — Kích thước chiếu của bộ dự đoán thời lượng của text-to-unit.
  • t2u_variance_predictor_hidden_dim (int, tùy chọn, mặc định là 256) — Chiều kích bên trong của bộ dự đoán thời lượng của text-to-unit.
  • t2u_variance_predictor_kernel_size (int, tùy chọn, mặc định là 3) — Kích thước kernel của các lớp tích chập của bộ dự đoán thời lượng của text-to-unit.
  • t2u_variance_pred_dropout (float, tùy chọn, mặc định là 0.5) — Xác suất dropout của bộ dự đoán thời lượng của text-to-unit.
  • sampling_rate (int, tùy chọn, mặc định là 16000) — Tần số lấy mẫu (tính bằng hertz (Hz)) mà các tệp âm thanh cần được số hóa.
  • upsample_initial_channel (int, tùy chọn, mặc định là 512) — Số lượng kênh đầu vào của mạng upsampling trong hifi-gan. Chỉ áp dụng cho vocoder.
  • upsample_rates (tuple[int] hoặc list[int], tùy chọn, mặc định là [5, 4, 4, 2, 2]) — Một tuple các số nguyên xác định stride của mỗi lớp tích chập 1D trong mạng upsampling của vocoder. Độ dài của upsample_rates xác định số lượng lớp tích chập và phải khớp với độ dài của upsample_kernel_sizes. Chỉ áp dụng cho vocoder.
  • upsample_kernel_sizes (tuple[int] hoặc list[int], tuỳ chọn, mặc định là [11, 8, 8, 4, 4]) — Một tuple các số nguyên xác định kích thước kernel của từng lớp tích chập 1D trong mạng upsampling của vocoder. Độ dài của upsample_kernel_sizes xác định số lượng lớp tích chập và phải khớp với độ dài của upsample_rates. Chỉ áp dụng cho vocoder.
  • resblock_kernel_sizes (tuple[int] hoặc list[int], tùy chọn, mặc định là [3, 7, 11]) — Một tuple các số nguyên xác định kích thước kernel của các lớp tích chập 1D của vocoder trong module multi-receptive field fusion (MRF). Chỉ áp dụng cho vocoder.
  • resblock_dilation_sizes (tuple[tuple[int]] hoặc list[list[int]], tuỳ chọn, mặc định là [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Một tuple lồng nhau của các số nguyên xác định tỷ lệ giãn nở (dilation rates) của các lớp tích chập 1D giãn nở trong vocoder thuộc module multi-receptive field fusion (MRF). Chỉ áp dụng cho vocoder.
  • leaky_relu_slope (float, tùy chọn, mặc định là 0.1) — Góc của độ dốc âm được sử dụng bởi hàm kích hoạt leaky ReLU trong vocoder. Chỉ áp dụng cho vocoder.
  • unit_hifi_gan_vocab_size (int, tuỳ chọn, mặc định là 10000) — Kích thước từ vựng của vocoder SeamlessM4Tv2. Xác định số lượng token unit khác nhau có thể được biểu diễn bởi inputs_ids được truyền khi gọi vocoder của ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech hoặc ~SeamlessM4Tv2ForTextToSpeech.
  • unit_embed_dim (int, tùy chọn, mặc định là 1280) — Kích thước chiếu của các id đầu vào được đưa vào bộ tổng hợp âm thanh hifi-gan. Chỉ áp dụng cho bộ tổng hợp âm thanh.
  • lang_embed_dim (int, tùy chọn, mặc định là 256) — Kích thước chiếu của ngôn ngữ đích được truyền cho bộ tổng hợp âm thanh hifi-gan. Chỉ áp dụng cho bộ tổng hợp âm thanh.
  • spkr_embed_dim (int, tùy chọn, mặc định là 256) — Kích thước chiếu của id người nói được đưa vào bộ tổng hợp âm hifi-gan. Chỉ áp dụng cho bộ tổng hợp âm.
  • vocoder_num_langs (int, tùy chọn, mặc định là 36) — Số lượng ngôn ngữ được hỗ trợ bởi vocoder. Có thể khác với t2u_num_langs.
  • vocoder_num_spkrs (int, tùy chọn, mặc định là 200) — Số lượng người nói được hỗ trợ bởi vocoder.
  • variance_predictor_kernel_size (int, tuỳ chọn, mặc định là 3) — Kích thước kernel của bộ dự đoán thời lượng. Chỉ áp dụng cho bộ tổng hợp âm thanh.
  • var_pred_dropout (float, tùy chọn, mặc định là 0.5) — Xác suất dropout của bộ dự đoán thời lượng. Chỉ áp dụng cho bộ tổng hợp âm thanh.
  • vocoder_offset (int, tùy chọn, mặc định là 4) — Dịch chuyển các id token đơn vị bằng số này để tính đến các token ký hiệu. Chỉ áp dụng cho vocoder.
  • tie_word_embeddings (bool, tùy chọn, mặc định là True) — Có nên gắn kết các trọng số nhúng theo ánh xạ tied_weights_keys của mô hình hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một SeamlessM4Tv2Model. Nó được sử dụng để khởi tạo một mô hình Seamless M4T V2 theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của facebook/hf-seamless-m4t-medium

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

>>> from transformers import SeamlessM4Tv2Model, SeamlessM4Tv2Config

>>> # Initializing a SeamlessM4Tv2 "" style configuration
>>> configuration = SeamlessM4Tv2Config()

>>> # Initializing a model from the "" style configuration
>>> model = SeamlessM4Tv2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
Update on GitHub