Transformers documentation
myt5
Mô hình này được công bố trên HF papers vào ngày 15-03-2024 và được đóng góp cho Hugging Face Transformers vào ngày 06-10-2024.
myt5
Tổng quan
Mô hình myt5 được đề xuất trong MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling bởi Tomasz Limisiewicz, Terra Blevins, Hila Gonen, Orevaoghene Ahia và Luke Zettlemoyer. MyT5 (Myte T5) là một mô hình ngôn ngữ đa ngôn ngữ dựa trên kiến trúc T5. Mô hình sử dụng biểu diễn morphologically-driven byte (MYTE) được mô tả trong bài báo của chúng tôi. MYTE sử dụng các codepoint tương ứng với các morpheme, trái ngược với các ký tự được sử dụng trong mã hóa UTF-8. Như một điều kiện tiên quyết, chúng tôi đã sử dụng phân đoạn hình thái học không giám sát (Morfessor) để thu được danh sách morpheme cho 99 ngôn ngữ. Tuy nhiên, bước phân đoạn hình thái học không cần thiết khi sử dụng danh sách morpheme được định nghĩa trước từ hub (xem: Tomli/myt5-base).
Tóm tắt từ bài báo như sau:
Một yếu tố quan trọng trong mô hình hóa ngôn ngữ đa ngữ là cách biểu diễn tối ưu các ngôn ngữ có từ vựng và hệ thống chữ viết đa dạng. Mặc dù các phương pháp mã hóa văn bản hiện đại bao phủ hầu hết các hệ thống chữ viết trên thế giới, chúng vẫn thể hiện sự thiên lệch về phía các ngôn ngữ có nguồn lực dồi dào của phương Tây. Do đó, văn bản của các ngôn ngữ ít được đại diện thường bị phân đoạn thành các chuỗi dài các đơn vị không có ý nghĩa ngôn ngữ học. Để giải quyết sự chênh lệch này, chúng tôi giới thiệu một phương pháp tiếp cận mới mã hóa cùng một thông tin bằng các phân đoạn có kích thước nhất quán giữa các ngôn ngữ đa dạng. Quy ước mã hóa của chúng tôi (MYTE) dựa trên các morpheme, vì bộ sưu tập của chúng cân bằng hơn giữa các ngôn ngữ so với các ký tự, vốn được sử dụng trong các phương pháp trước đó. Chúng tôi cho thấy MYTE tạo ra các mã hóa ngắn hơn cho tất cả 99 ngôn ngữ được phân tích, với những cải thiện đáng kể nhất đối với các ngôn ngữ không thuộc châu Âu và các hệ thống chữ viết không phải Latinh. Điều này, đến lượt nó, cải thiện hiệu suất của LM đa ngữ và thu hẹp khoảng cách perplexity giữa các ngôn ngữ đa dạng.
Mô hình này được đóng góp bởi Tomasz Limisiewicz. Mã nguồn gốc có thể được tìm thấy tại đây.
MyT5Tokenizer
lớp transformers.MyT5Tokenizer
< source >( vocab_fileeos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'extra_ids = 125additional_special_tokens = None**kwargs )
Tham số
- vocab_file (
str) — Tệp chứa các quy tắc viết lại byte. - eos_token (
str, tùy chọn, mặc định là"</s>") — Token kết thúc chuỗi. - 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. - extra_ids (
int, tùy chọn, mặc định là 125) — Thêm một số id bổ sung vào cuối bảng từ vựng để sử dụng làm sentinel. Các token này có thể truy cập dưới dạng “id{%d}>” trong đó ”{%d}” là một số từ 0 đến extra_ids-1. Các token bổ sung được đánh chỉ số từ cuối bảng từ vựng đến đầu (“ ” là token cuối cùng trong bảng từ vựng như trong tiền xử lý ByT5, xem ở đây). - additional_special_tokens (
list[str], tùy chọn) — Các token đặc biệt bổ sung được sử dụng bởi tokenizer.
Xây dựng một tokenizer MyT5.
Tokenizer này kế thừa từ PreTrainedTokenizer, 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 siêu lớp này để biết thêm thông tin về các phương thức đó.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Tham số
- token_ids_0 (
list[int]) — Danh sách các ID mà các token đặc biệt sẽ được thêm vào. - token_ids_1 (
list[int], tùy chọn) — Danh sách ID thứ hai tùy chọn cho các cặp chuỗi.
Trả về
list[int]
Danh sách input IDs với các token đặc biệt phù hợp.
Xây dựng đầu vào mô hình từ một chuỗi hoặc một cặp chuỗi cho các tác vụ phân loại chuỗi bằng cách nối và thêm các token đặc biệt. Một chuỗi có định dạng như sau:
- một chuỗi duy nhất:
X </s> - cặp chuỗi:
A </s> B </s>
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
Tham số
- token_ids_0 (
list[int]) — Danh sách các ID. - token_ids_1 (
list[int], tùy chọn) — Danh sách ID thứ hai tùy chọn cho các cặp chuỗi. - already_has_special_tokens (
bool, tùy chọn, mặc định làFalse) — Danh sách token đã được định dạng với các token đặc biệt cho mô hình hay chưa.
Trả về
list[int]
Một danh sách các số nguyên trong khoảng [0, 1]: 1 cho một token đặc biệt, 0 cho một token chuỗi.
Lấy các id của chuỗi từ một danh sách token chưa được thêm token đặc biệt. Phương thức này được gọi khi thêm token đặc biệt bằng cách sử dụng phương thức prepare_for_model của tokenizer.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Tạo một mask từ hai chuỗi được truyền vào để sử dụng trong một tác vụ phân loại cặp chuỗi. MyT5 không sử dụng id loại token, do đó một danh sách các số không được trả về.