Transformers documentation
SeamlessM4T
Mô hình này được công bố trên HF papers vào ngày 2023-08-22 và được đóng góp cho Hugging Face Transformers vào ngày 2023-10-23.
SeamlessM4T
Tổng quan
Mô hình SeamlessM4T được đề xuất trong SeamlessM4T — Massively Multilingual & Multimodal Machine Translation bởi nhóm Seamless Communication từ Meta AI.
Đây là bản phát hành phiên bản 1 của mô hình. Đối với bản phát hành phiên bản 2 đã cập nhật, hãy tham khảo tài liệu Seamless M4T v2.
SeamlessM4T 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.
SeamlessM4T 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)
SeamlessM4TModel 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:
Điều gì cần thiết để tạo ra Babel Fish, một công cụ có thể hỗ trợ cá nhân dịch giọng nói giữa bất kỳ hai ngôn ngữ nào? Trong khi những đột phá gần đây trong các mô hình dựa trên văn bản đã đẩy phạm vi bao phủ của dịch máy vượt quá 200 ngôn ngữ, các mô hình dịch giọng nói sang giọng nói thống nhất vẫn chưa đạt được những bước tiến tương tự. Cụ thể hơn, các hệ thống dịch giọng nói sang giọng nói thông thường dựa vào các hệ thống nối tiếp (cascaded) thực hiện dịch một cách tuần tự, khiến các hệ thống thống nhất hiệu suất cao nằm ngoài tầm với. Để giải quyết những khoảng trống này, chúng tôi giới thiệu SeamlessM4T, một mô hình duy nhất hỗ trợ dịch giọng nói sang giọng nói, dịch giọng nói sang văn bản, dịch văn bản sang giọng nói, dịch văn bản sang văn bản và nhận dạng giọng nói tự động cho tối đa 100 ngôn ngữ. Để xây dựng điều này, chúng tôi đã sử dụng 1 triệu giờ dữ liệu âm thanh giọng nói mở để học các biểu diễn giọng nói tự giám sát với w2v-BERT 2.0. Tiếp theo, chúng tôi đã tạo ra một kho ngữ liệu đa phương tiện gồm các bản dịch giọng nói được căn chỉnh tự động. Sau khi lọc và kết hợp với dữ liệu được gán nhãn bởi con người và dữ liệu gán nhãn giả (pseudo-labeled), chúng tôi đã phát triển hệ thống đa ngôn ngữ đầu tiên có khả năng dịch từ và sang tiếng Anh cho cả giọng nói và văn bản. Trên FLEURS, SeamlessM4T thiết lập một chuẩn mới cho các bản dịch sang nhiều ngôn ngữ đích, đạt được cải thiện 20% BLEU so với SOTA trước đó trong dịch trực tiếp từ giọng nói sang văn bản. So với các mô hình nối tiếp mạnh, SeamlessM4T cải thiện chất lượng dịch sang tiếng Anh bằng 1,3 điểm BLEU trong dịch giọng nói sang văn bản và bằng 2,6 điểm ASR-BLEU trong dịch giọng nói sang giọng nói. Được kiểm tra về độ bền vững, hệ thống của chúng tôi hoạt động tốt hơn trước tiếng ồn nền và sự biến đổi của người nói trong các tác vụ dịch giọng nói sang văn bản so với mô hình SOTA hiện tại. Quan trọng hơn, chúng tôi đã đánh giá SeamlessM4T về thiên kiến giới tính và thêm độc tính để đánh giá tính an toàn của bản dịch. Cuối cùng, tất cả các đóng góp trong công việc này đều được mã nguồn mở và có thể truy cập tại https://github.com/facebookresearch/seamless_communication
Cách sử dụng
Đầu tiên, tải bộ xử lý và một checkpoint của mô hình:
from transformers import AutoProcessor, SeamlessM4TModel
processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", 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 test 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
SeamlessM4TModel 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 SeamlessM4TModel.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
SeamlessM4TModel 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 dung lượng bộ nhớ. 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 SeamlessM4TForSpeechToSpeech
model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", 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 SeamlessM4TForTextToText
model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")Hãy thử cả SeamlessM4TForSpeechToText và SeamlessM4TForTextToSpeech 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ố spkr_id. Một số spkr_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 giọng nói và văn bản, ví dụ .generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True), trong đó 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 đa thức trên mô hình giọng nói.
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 SeamlessM4TModel để trả về cả giọng nói và văn bản!
Kiến trúc mô hình
SeamlessM4T 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.
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, tuân theo cấu trúc encoder-decoder tiêu chuẩn, sẽ tạo ra các token đơn vị.
- 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.
SeamlessM4TModel
lớp transformers.SeamlessM4TModel
< source >( config: SeamlessM4TConfigcurrent_modality = 'text' )
Tham số
- config (SeamlessM4TConfig) — 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 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 SeamlessM4T, 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
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]
Tham số
- input_ids (
torch.LongTensorcó 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.
- input_features (
torch.Tensorcó 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ếuTrue, cũng trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thànhTruenế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ếugenerate_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. - spkr_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ơnconfig.vocoder_num_spkrs. - generate_speech (
bool, tùy chọn, mặc định làTrue) — NếuFalse, 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
**kwargscho phương thứcgeneratecủa từng mô hình con, ngoại trừdecoder_input_idschỉ đượ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
generatecủ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.
- Nếu không có tiền tố, chúng sẽ được nhập dưới dạng
Trả về
Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]
- Nếu
generate_speechvàreturn_intermediate_token_ids, trả vềSeamlessM4TGenerationOutput. - Nếu
generate_speechvà khôngreturn_intermediate_token_ids, trả về một tuple gồm các waveform có shape(batch_size, sequence_length)vàwaveform_lengthscho 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
.generatecủ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.
SeamlessM4TForTextToSpeech
lớp transformers.SeamlessM4TForTextToSpeech
< source >( config: SeamlessM4TConfig )
Tham số
- config (SeamlessM4TConfig) — 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 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 SeamlessM4T 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
< source >( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
Tham số
- input_ids (
torch.LongTensorcó 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.
- return_intermediate_token_ids (
bool, tuỳ chọn) — NếuTrue, đồng thời trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thànhTruenế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. - spkr_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ơnconfig.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
**kwargscho phương thứcgeneratecủa từng mô hình con, ngoại trừdecoder_input_idschỉ đượ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
generatecủ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.
- Nếu không có tiền tố, chúng sẽ được nhập dưới dạng
Trả về
Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
- Nếu
return_intermediate_token_ids, trả vềSeamlessM4TGenerationOutput. - 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_lengthscho 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
.generatecủ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.
SeamlessM4TForSpeechToSpeech
lớp transformers.SeamlessM4TForSpeechToSpeech
< source >( config: SeamlessM4TConfig )
Tham số
- config (SeamlessM4TConfig) — 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 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 SeamlessM4T 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
< source >( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
Tham số
- input_features (
torch.Tensorcó 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ếuTrue, đồng thời trả về văn bản và token đơn vị được tạo ở các bước trung gian. Đặt thànhTruenế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. - spkr_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ơnconfig.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
**kwargscho phương thứcgeneratecủa từng mô hình con, ngoại trừdecoder_input_idschỉ đượ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
generatecủ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.
- Nếu không có tiền tố, chúng sẽ được nhập dưới dạng
Trả về
Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
- Nếu
return_intermediate_token_ids, trả vềSeamlessM4TGenerationOutput. - 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_lengthscho 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
.generatecủ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.
SeamlessM4TForTextToText
lớp transformers.SeamlessM4TForTextToText
< source >( config: SeamlessM4TConfig )
Tham số
- config (SeamlessM4TConfig) — 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 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 SeamlessM4T text-to-text 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
< source >( 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.LongTensorcó 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.
- attention_mask (
torch.Tensorcó 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.
- decoder_input_ids (
torch.LongTensorcó 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_idlàm token khởi đầu cho việc tạodecoder_input_ids. Nếu sử dụngpast_key_values, tùy chọn chỉ cần nhậpdecoder_input_idscuối cùng (xempast_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ấpdecoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyểninput_idssang phải cho tiền huấn luyện khử nhiễu theo bài báo. - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_idsbạ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 đổiinput_idsthà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.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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.Tensorcó hình dạng(batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềndecoder_input_idsbạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếupast_key_valuesđược sử dụng, tùy chọn chỉ cầndecoder_inputs_embedscuối cùng phải được nhập (xempast_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 đổidecoder_input_idschỉ 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_idsvàdecoder_inputs_embedsđều không được đặt,decoder_inputs_embedssẽ nhận giá trị củainputs_embeds. - labels (
torch.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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ànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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 (SeamlessM4TConfig) và đầu vào.
Phương thức forward của SeamlessM4TForTextToText 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling.logits (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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
< source >( 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.Tensorcó 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.
- 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ủageneration_configsẽ ghi đè lên chúng. Nếugeneration_configkhô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ìnhgeneration_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 batchbatch_idvà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 batchbatch_idvà 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ớiFullyShardedDataParallelvà DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], tùy chọn) — Tham số hóa ad hoc chogenerate_configvà/hoặc các kwargs cụ thể của model bổ sung sẽ được chuyển tiếp đến hàmforwardcủ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_confignà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.
SeamlessM4TForSpeechToText
lớp transformers.SeamlessM4TForSpeechToText
< source >( config: SeamlessM4TConfig )
Tham số
- config (SeamlessM4TConfig) — 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 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 SeamlessM4T 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
< source >( 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.Tensorcó 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.Tensorcó 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.
- decoder_input_ids (
torch.LongTensorcó 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_idlàm token khởi đầu cho việc tạodecoder_input_ids. Nếu sử dụngpast_key_values, tùy chọn chỉ cần nhậpdecoder_input_idscuối cùng (xempast_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ấpdecoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyểninput_idssang phải cho tiền huấn luyện khử nhiễu theo bài báo. - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_idsbạ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 đổiinput_idsthà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.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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.Tensorcó hình dạng(batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềndecoder_input_idsbạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếupast_key_valuesđược sử dụng, tùy chọn chỉ cầndecoder_inputs_embedscuối cùng phải được nhập (xempast_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 đổidecoder_input_idschỉ 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_idsvàdecoder_inputs_embedsđều không được đặt,decoder_inputs_embedssẽ nhận giá trị củainputs_embeds. - labels (
torch.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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ànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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 (SeamlessM4TConfig) và đầu vào.
Phương thức forward của SeamlessM4TForSpeechToText 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling.logits (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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, SeamlessM4TForSpeechToText
>>> 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 = SeamlessM4TForSpeechToText.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
< source >( 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.Tensorcó 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ủageneration_configsẽ ghi đè lên chúng. Nếugeneration_configkhô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ìnhgeneration_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 batchbatch_idvà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 batchbatch_idvà 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ớiFullyShardedDataParallelvà DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], tùy chọn) — Tham số hóa ad hoc chogenerate_configvà/hoặc các kwargs cụ thể của model bổ sung sẽ được chuyển tiếp đến hàmforwardcủ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_confignà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.
SeamlessM4TConfig
lớp transformers.SeamlessM4TConfig
< source >( 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 = 10082hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 1024encoder_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 = 160num_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 4096conv_depthwise_kernel_size: int = 31t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_decoder_start_token_id: int = 2t2u_max_new_tokens: int = 1024t2u_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 = 2048sampling_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ởiinput_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 SeamlessM4T. Xác định số lượng token đơn vị khác nhau có thể được biểu diễn bởiinputs_idsđược truyền khi gọi mô hình con Text-To-Units của ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech hoặc ~SeamlessM4TForTextToSpeech. - 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ếuconfig.is_decoder=Truehoặ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à1024) — 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ớinum_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ớinum_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ớibos, đâ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 (
strhoặcfunction, 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. - num_conv_pos_embeddings (
int, tùy chọn, mặc định là 128) — Số lượng nhúng vị trí tích chập. Xác định kích thước nhân của lớp nhúng vị trí tích chập 1D của bộ mã hóa giọng nói. - num_conv_pos_embedding_groups (
int, tùy chọn, mặc định là 16) — Số lượng nhóm của lớp nhúng vị trí tích chập 1D của bộ mã hóa giọng nói. - 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ếuadd_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ếuadd_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ếuadd_adapter is True. - position_embeddings_type (
str, tùy chọn, mặc định là"relative") — Có thể được chỉ định làrelativehoặcrotarycho tương ứng embedding vị trí tương đối hoặc embedding vị trí rotary. Nếu đểNone, sẽ không áp dụng embedding vị trí tương đối. Chỉ áp dụng cho bộ mã hóa giọng nói. - rotary_embedding_base (
int, tuỳ chọn, mặc định là 10000) — Nếu sử dụng vị trí nhúng"rotary", định nghĩa kích thước của cơ sở nhúng. Chỉ áp dụng cho bộ mã hóa giọng nói. - max_source_positions (
int, tùy chọn, mặc định là 4096) — nếu sử dụng position embeddings"relative", định nghĩa vị trí đầu vào nguồn tối đa. Chỉ áp dụng cho speech encoder. - 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. - 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_decoder_start_token_id (
int, tùy chọn, mặc định là 2) — 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 đó. Chỉ được áp dụng cho mô hình seq2seq text-to-unit. - t2u_max_new_tokens (
int, tùy chọn, mặc định là 1024) — Số lượng tối đa các unit token cần tạo, bỏ qua số lượng token trong prompt. 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à 2048) — 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). - 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ặclist[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ặclist[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ặclist[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ặclist[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 SeamlessM4T. Xác định số lượng token unit khác nhau có thể được biểu diễn bởiinputs_idsđược truyền khi gọi vocoder của ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech hoặc ~SeamlessM4TForTextToSpeech. - 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ớit2u_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_keyscủ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 SeamlessM4TModel. Nó được sử dụng để khởi tạo một mô hình Seamless M4T 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ủ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 SeamlessM4TModel, SeamlessM4TConfig
>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()
>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSeamlessM4TTokenizer
lớp transformers.SeamlessM4TTokenizer
< source >( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'src_lang = 'eng'tgt_lang = 'fra'additional_special_tokens = Nonekeep_accents = Nonevocab_file = None**kwargs )
Tham số
- vocab (
listhoặcdict, tùy chọn) — Danh sách các tuple (token, score) hoặc dict ánh xạ token sang chỉ số. Nếu không được cung cấp, sẽ sử dụng vocab mặc định. - merges (
strhoặclist, tùy chọn) — Danh sách các quy tắc gộp cho mô hình BPE. Nếu không được cung cấp, sẽ sử dụng danh sách rỗng. - bos_token (
str, tuỳ chọn, mặc định là"<s>") — Token bắt đầu chuỗi được sử dụng trong quá trình pretraining. Có thể được dùng làm token phân loại chuỗi. Khi xây dựng một chuỗi bằng các token đặc biệt, đây không phải là token được dùng cho phần bắt đầu của chuỗi. Token được dùng là cls_token.Khi xây dựng một chuỗi sử dụng các token đặc biệt, đây không phải là token được dùng cho phần đầu của chuỗi. Token được sử dụng là
cls_token. - eos_token (
str, tuỳ chọn, mặc định là"</s>") — Token kết thúc chuỗi. Khi xây dựng một chuỗi bằng các token đặc biệt, đây không phải là token được dùng cho kết thúc chuỗi. Token được dùng là sep_token.Khi xây dựng một chuỗi bằng các token đặc biệt, đây không phải là token được sử dụng cho kết thúc chuỗi. Token được sử dụng là
sep_token. - sep_token (
str, tùy chọn, mặc định là"</s>") — Token phân cách, được sử dụng khi xây dựng một chuỗi từ nhiều chuỗi, ví dụ như hai chuỗi cho phân loại chuỗi hoặc một văn bản và một câu hỏi cho trả lời câu hỏi. Nó cũng được sử dụng làm token cuối cùng của một chuỗi được xây dựng với các token đặc biệt. - cls_token (
str, tùy chọn, mặc định là"<s>") — Token phân loại được sử dụng khi thực hiện phân loại chuỗi (phân loại toàn bộ chuỗi thay vì phân loại theo từng token). Đây là token đầu tiên của chuỗi khi được xây dựng với các token đặc biệt. - unk_token (
str, tùy chọn, mặc định là"<unk>") — Token không xác định. Một token không có trong từ vựng sẽ không thể được chuyển đổi thành ID và sẽ được gán thành token này thay thế. - pad_token (
str, tùy chọn, mặc định là"<pad>") — Token được sử dụng để đệm, chẳng hạn khi xử lý các lô (batch) gồm các chuỗi có độ dài khác nhau. - src_lang (
str, tùy chọn, mặc định là"eng") — Ngôn ngữ được sử dụng làm ngôn ngữ nguồn cho việc dịch. - tgt_lang (
str, tùy chọn, mặc định là"fra") — Ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch. - additional_special_tokens (tuple hoặc list của
strhoặctokenizers.AddedToken, không bắt buộc) — Một tuple hoặc list chứa các token đặc biệt bổ sung.
Xây dựng một tokenizer SeamlessM4T (dựa trên thư viện tokenizers của HuggingFace). Dựa trên BPE.
Tokenizer này kế thừa từ TokenizersBackend, lớp chứa hầu hết các phương thức chính. Người dùng nên tham khảo lớp cha này để biết thêm thông tin về các phương thức đó.
Phương pháp tokenization là <language code> <tokens> <eos> cho tài liệu ngôn ngữ nguồn và <eos> <language code> <tokens> <eos> cho tài liệu ngôn ngữ đích.
Ví dụ:
>>> from transformers import SeamlessM4TTokenizer
>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
... "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")__call__
< source >( text: str | list[str] | list[list[str]] | None = Nonetext_pair: str | list[str] | list[list[str]] | None = Nonetext_target: str | list[str] | list[list[str]] | None = Nonetext_pair_target: str | list[str] | list[list[str]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsepad_to_multiple_of: int | None = Nonesrc_lang: str | None = Nonetgt_lang: str | None = None**kwargs )
Tham số
- text (
str,list[str],list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tiền mã hóa). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (tiền mã hóa), bạn phải đặtis_split_into_words=True(để loại bỏ sự mơ hồ với một lô các chuỗi). - text_pair (
str,list[str],list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tách token trước). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token trước), bạn phải đặtis_split_into_words=True(để loại bỏ sự mơ hồ với một lô các chuỗi). - text_target (
str,list[str],list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa dưới dạng văn bản đích. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã tách token). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token), bạn phải đặtis_split_into_words=True(để loại bỏ sự mơ hồ với một lô các chuỗi). - text_pair_target (
str,list[str],list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa dưới dạng văn bản đích. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã tách token). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token), bạn phải đặtis_split_into_words=True(để loại bỏ sự mơ hồ với một lô các chuỗi). - padding (
bool,strhoặc PaddingStrategy, tùy chọn, mặc định làFalse) — Chọn một chiến lược để đệm các chuỗi trả về (theo phía đệm và chỉ số đệm của mô hình) trong số các lựa chọn sau:Truehoặc'longest': Lấp đầy đến trình tự dài nhất trong lô (hoặc không lấp đầy nếu chỉ có một trình tự được cung cấp).'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham sốmax_lengthhoặc đến độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp.Falsehoặc'do_not_pad'(mặc định): Không đệm (tức là có thể xuất ra một lô với các chuỗi có độ dài khác nhau).
- pad_to_multiple_of (
int, tuỳ chọn, mặc định làNone) — Nếu được đặt, sẽ đệm chuỗi đến bội số của giá trị được cung cấp.Điều này đặc biệt hữu ích để cho phép sử dụng Tensor Cores trên phần cứng NVIDIA có khả năng tính toán
>= 7.5(Volta). - src_lang (
str, tùy chọn) — Chuỗi đại diện cho ngôn ngữ nguồn. Nếu không được chỉ định,src_langcuối cùng được chỉ định (cả trong quá trình khởi tạo hoặc khi gọi tokenizer này) sẽ được sử dụng. - tgt_lang (
str, tùy chọn) — Chuỗi đại diện cho ngôn ngữ đích. Nếu không được chỉ định,tgt_langcuối cùng được chỉ định (cả trong khi khởi tạo hoặc khi gọi tokenizer này) sẽ được sử dụng. - kwargs (tùy chọn) — Từ điển các đối số từ khóa còn lại sẽ được truyền vào TokenizersBackend.call().
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Tham số
- token_ids_0 — Danh sách các ID của chuỗi (có thể đã được định dạng).
- token_ids_1 — Không được sử dụng khi
already_has_special_tokens=True. Trong trường hợp đó, giá trị phải là None. - already_has_special_tokens — Xác định xem chuỗi đã được định dạng với các token đặc biệt hay chưa.
Trả về
Một danh sách các số nguyên trong khoảng [0, 1]
1 cho token đặc biệt, 0 cho token chuỗi.
Lấy các id chuỗi từ một danh sách token không có token đặc biệt nào được thêm vào.
Đối với các tokenizer nhanh, các data collator gọi hàm này với already_has_special_tokens=True để xây dựng một mask trên một chuỗi đã được định dạng sẵn. Trong trường hợp đó, chúng ta tính mask bằng cách kiểm tra sự thuộc về trong all_special_ids.
SeamlessM4TFeatureExtractor
lớp transformers.SeamlessM4TFeatureExtractor
< source >( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0stride = 2**kwargs )
Tham số
- feature_size (
int, tùy chọn, mặc định là 80) — Kích thước chiều của các đặc trưng đã trích xuất. - 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. - num_mel_bins (
int, tùy chọn, mặc định là 80) — Số lượng bin tần số Mel. - padding_value (
float, tùy chọn, mặc định là 0.0) — Giá trị được dùng để điền vào các vector đệm. - stride (
int, tùy chọn, mặc định là 2) — Stride được sử dụng để thay đổi hình dạng (reshape) âm thanh từ (batch_size,num_frames,num_mel_bins) thành (batch_size,num_frames//stride,num_mel_bins*stride).
Tạo một bộ trích xuất đặc trưng SeamlessM4T.
Feature extractor này kế thừa từ SequenceFeatureExtractor, bao gồm hầu hết các phương thức chính. Người dùng nên tham khảo lớp cha này để biết thêm thông tin về các phương thức đó.
Lớp này trích xuất các đặc trưng mel-filter bank từ giọng nói thô.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truepad_to_multiple_of: int | None = 2max_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = Nonedo_normalize_per_mel_bins: bool | None = True**kwargs )
Tham số
- raw_speech (
np.ndarray,torch.Tensor,list[float],list[np.ndarray],list[torch.Tensor], — -
list[list[float]],list[list[list[float]]]) — Chuỗi hoặc lô các chuỗi cần được đệm. Mỗi chuỗi có thể là một mảng numpy, một tensor torch, một danh sách các giá trị float, một danh sách các mảng numpy, một danh sách các tensor torch, một danh sách các danh sách giá trị float hoặc một danh sách của danh sách của danh sách giá trị float. Nếuraw_speechlà mộtnp.ndarray,torch.Tensorhoặc mộtlist[float]một chiều,raw_speechđược coi là âm thanh đơn kênh, đơn mẫu. Trong tất cả các trường hợp khác, chiều đầu tiên củaraw_speech, dù từ mộtnp.ndarray, mộttorch.Tensorhay mộtlist[...], tương ứng với số lượng mẫu trong lô, và số lượng kênh (tức là tính chất mono hoặc stereo) được suy ra từ các chiều còn lại (1D -> các lô waveform đơn kênh; 2D-> các lô waveform đa kênh stereo). - padding (
bool,strhoặc PaddingStrategy, tùy chọn, mặc định làTrue) — Chọn một chiến lược để đệm các chuỗi trả về (theo phía đệm và chỉ số đệm của mô hình) trong số các lựa chọn sau:Truehoặc'longest': Lấp đầy đến trình tự dài nhất trong lô (hoặc không lấp đầy nếu chỉ có một trình tự được cung cấp).'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham sốmax_lengthhoặc đến độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp.Falsehoặc'do_not_pad'(mặc định): Không đệm (tức là có thể xuất ra một lô với các chuỗi có độ dài khác nhau).
- pad_to_multiple_of (
int, tuỳ chọn, mặc định là 2) — Nếu được đặt, chuỗi sẽ được đệm (pad) đến bội số của giá trị được cung cấp.Điều này đặc biệt hữu ích để cho phép sử dụng Tensor Cores trên phần cứng NVIDIA có khả năng tính toán
>= 7.5(Volta), hoặc trên TPU, nơi mà việc có độ dài chuỗi là bội số của 128 sẽ mang lại lợi ích. - max_length (
int, tùy chọn) — Độ dài tối đa của danh sách trả về và tùy chọn độ dài padding (xem bên trên). - truncation (
bool) — Bật tính năng cắt để giảm các chuỗi đầu vào dài hơn max_length xuống còn max_length. - return_attention_mask (
bool, tuỳ chọn) — Có trả về attention mask hay không. Nếu để mặc định, sẽ trả về attention mask theo mặc định của feature_extractor cụ thể.Đối với các mô hình SeamlessM4T,
attention_maskluôn phải được truyền vào khi suy luận theo lô (batched inference) để tránh các lỗi tinh vi. - return_tensors (
strhoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor thay vì danh sách các số nguyên Python. Các giá trị chấp nhận được là:'pt': Trả về các đối tượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượng Numpynp.ndarray.
- sampling_rate (
int, tùy chọn) — Tần số lấy mẫu mà đầu vàoraw_speechđược lấy mẫu. Rất khuyến nghị truyềnsampling_ratetrong lời gọi forward để ngăn các lỗi âm thầm. - do_normalize_per_mel_bins (
bool, tùy chọn, mặc định làTrue) — Có nên chuẩn hóa trung bình bằng không và phương sai đơn vị cho đầu vào theo từng kênh mel hay không. - kwargs (tùy chọn) — Từ điển các đối số từ khóa còn lại sẽ được truyền cho tokenizer hoặc feature extractor.
Phương thức chính để tạo đặc trưng và chuẩn bị một hoặc nhiều chuỗi cho mô hình.
SeamlessM4TProcessor
lớp transformers.SeamlessM4TProcessor
< source >( feature_extractortokenizer )
Tạo một SeamlessM4TProcessor đóng gói một bộ trích xuất đặc trưng và một bộ phân từ thành một bộ xử lý duy nhất.
SeamlessM4TProcessor cung cấp đầy đủ các chức năng của SeamlessM4TFeatureExtractor và SeamlessM4TTokenizer. Xem ~SeamlessM4TFeatureExtractor và ~SeamlessM4TTokenizer để biết thêm thông tin.
__call__
< source >( text: str | list[str] | list[list[str]] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchEncoding
Tham số
- text (
Union[str, list[str], list[list[str]]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tách token trước). Nếu bạn truyền vào dữ liệu đầu vào đã được tách token trước, hãy đặtis_split_into_words=Trueđể tránh nhầm lẫn với các đầu vào dạng lô. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], optional) — Âm thanh hoặc lô âm thanh cần được chuẩn bị. Mỗi âm thanh có thể là một mảng NumPy hoặc tensor PyTorch. Trong trường hợp là mảng NumPy/tensor PyTorch, mỗi âm thanh nên có hình dạng (C, T), trong đó C là số kênh và T là độ dài mẫu của âm thanh. - return_tensors (
strhoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Các giá trị chấp nhận được là:'pt': Trả về các đối tượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượngnp.ndarraycủa NumPy.
- **kwargs (ProcessingKwargs, optional) — Các tùy chọn xử lý bổ sung cho từng modality (text, images, videos, audio). Các tham số cụ thể của model được liệt kê ở trên; xem lớp TypedDict để biết danh sách đầy đủ các đối số được hỗ trợ.
Trả về
Một BatchEncoding với các trường sau:
- input_ids — Danh sách các token id để đưa vào mô hình. Được trả về khi
textkhông phảiNone. - attention_mask — Danh sách các chỉ số chỉ định những token nào nên được mô hình chú ý đến (khi
return_attention_mask=Truehoặc nếu “attention_mask” nằm trongself.model_input_namesvà nếutextkhông phải làNone). - input_features — Các đặc trưng đầu vào âm thanh để đưa vào mô hình. Được trả về khi
audioskhông phải làNone.
SeamlessM4TCodeHifiGan
lớp transformers.SeamlessM4TCodeHifiGan
< source >( config: SeamlessM4TConfig )
Tham số
- config (SeamlessM4TConfig) — 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 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.
Mã hóa vocoder HiFi-GAN như được mô tả trong repository này.
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
< source >( input_ids: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )
Tham số
- input_ids (
torch.LongTensorcó dạng(batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ vựng.Các chỉ số có thể được lấy bằng cách sử dụng SeamlessM4TTextToUnitForConditionalGeneration. ID đầu vào là gì?
- spkr_id (
int, tùy chọn) — Id của người nói được sử dụng cho tổng hợp giọng nói. Phải nhỏ hơnconfig.vocoder_num_spkrs. - tgt_lang (
str, tùy chọn) — ID ngôn ngữ được sử dụng làm ngôn ngữ đích cho việc dịch.
SeamlessM4THifiGan
forward
< source >( inputs_embeds: Tensor ) → torch.Tensor
Tham số
- spectrogram (
torch.Tensor) — Tensor chứa các spectrogram log-mel. Có thể được batched với shape(batch_size, sequence_length, model_in_dim), hoặc không batched với shape(sequence_length, model_in_dim). Lưu ý rằngmodel_in_dimlà tổng củaconfig.unit_embed_dim,config.lang_embed_dimvàconfig.spkr_embed_dim.
Trả về
torch.Tensor
Tensor chứa dạng sóng âm thanh. Nếu phổ đồ đầu vào được nhóm (batched), sẽ có hình dạng (batch_size, num_frames,). Nếu không nhóm, sẽ có hình dạng (num_frames,).
Chuyển đổi phổ log-mel thành dạng sóng âm thanh. Truyền vào một lô (batch) các phổ log-mel sẽ trả về một lô các dạng sóng âm thanh. Truyền vào một phổ log-mel đơn lẻ, không nằm trong lô, sẽ trả về một dạng sóng âm thanh đơn lẻ, không nằm trong lô.
SeamlessM4TTextToUnitModel
lớp transformers.SeamlessM4TTextToUnitModel
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
Tham số
- config (SeamlessM4TConfig) — 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 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.
- embed_tokens_decoder (
nn.Embedding, tùy chọn) — embedding đầu vào của bộ giải mã.
Bộ mã hóa - giải mã từ văn bản thô sang đơn vị của Transformer. Bộ mã hóa là SeamlessM4TEncoder không có nhúng và bộ giải mã là SeamlessM4TDecoder.
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
< source >( 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] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)
Tham số
- input_ids (
torch.LongTensorcó 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.
- attention_mask (
torch.Tensorcó 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.
- decoder_input_ids (
torch.LongTensorcó 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. ID đầu vào của decoder là gì?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.
- decoder_attention_mask (
torch.LongTensorcó shape(batch_size, target_sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên một số chỉ số token nhất định. Mặc định, một mặt nạ nhân quả sẽ được sử dụng để đảm bảo mô hình chỉ có thể nhìn vào các đầu vào trước đó nhằm dự đoán tương lai. - 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_ids, bạn có thể chọn truyền trực tiếp 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 các chỉ sốinput_idsthà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. - decoder_inputs_embeds (
torch.Tensorcó hình dạng(batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềndecoder_input_idsbạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếupast_key_valuesđược sử dụng, tùy chọn chỉ cầndecoder_inputs_embedscuối cùng phải được nhập (xempast_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 đổidecoder_input_idschỉ 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_idsvàdecoder_inputs_embedsđều không được đặt,decoder_inputs_embedssẽ nhận giá trị củainputs_embeds. - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_key_values).
Trả về
Seq2SeqModelOutput hoặc tuple(torch.Tensor)
Một Seq2SeqModelOutput 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 (SeamlessM4TConfig) và đầu vào.
Phương thức forward của SeamlessM4TTextToUnitModel 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.
last_hidden_state (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của bộ giải mã (decoder) của mô hình.Nếu
past_key_valuesđược sử dụng, chỉ có hidden-state cuối cùng của các chuỗi có shape(batch_size, 1, hidden_size)được xuất ra.past_key_values (
EncoderDecoderCache, tùy chọn, được trả về khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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 các đầu ra nhúng ban đầu tùy chọn.
decoder_attentions (
tuple(torch.Tensor), tùy chọn, được trả về khi truyềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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 các đầu ra nhúng ban đầu tùy chọn.
encoder_attentions (
tuple(torch.Tensor), tùy chọn, được trả về khi truyềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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).
SeamlessM4TTextToUnitForConditionalGeneration
lớp transformers.SeamlessM4TTextToUnitForConditionalGeneration
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
Tham số
- config (SeamlessM4TConfig) — 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 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.
- embed_tokens_decoder (
nn.Embedding, tùy chọn) — embedding đầu vào của bộ giải mã.
Bộ mã hóa-giải mã văn bản-sang-đơn vị Transformer với đầu mô hình ngôn ngữ. Mô hình mã hóa-giải mã cơ bản là SeamlessM4TTextToUnit.
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
< source >( 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.LongTensorcó 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.
- attention_mask (
torch.Tensorcó 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.
- decoder_input_ids (
torch.LongTensorcó 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_idlàm token khởi đầu cho việc tạodecoder_input_ids. Nếu sử dụngpast_key_values, tùy chọn chỉ cần nhậpdecoder_input_idscuối cùng (xempast_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ấpdecoder_input_ids, mô hình sẽ tạo tensor này bằng cách dịch chuyểninput_idssang phải cho tiền huấn luyện khử nhiễu theo bài báo. - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_idsbạ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 đổiinput_idsthà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.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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.Tensorcó hình dạng(batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềndecoder_input_idsbạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếupast_key_valuesđược sử dụng, tùy chọn chỉ cầndecoder_inputs_embedscuối cùng phải được nhập (xempast_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 đổidecoder_input_idschỉ 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_idsvàdecoder_inputs_embedsđều không được đặt,decoder_inputs_embedssẽ nhận giá trị củainputs_embeds. - labels (
torch.LongTensorcó 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ủainput_ids). Các token có chỉ số được đặt thành-100sẽ 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ànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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 (SeamlessM4TConfig) và đầu vào.
Phương thức forward của SeamlessM4TTextToUnitForConditionalGeneration 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling.logits (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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).