Transformers documentation

Tokenizer

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

and get access to the augmented documentation experience

to get started

Tokenizer

Tokenizer có trách nhiệm chuẩn bị đầu vào cho mô hình. Thư viện chứa các tokenizer cho tất cả các mô hình. Hầu hết các tokenizer có sẵn ở hai phiên bản: một bản triển khai hoàn chỉnh bằng Python và một bản “Fast” dựa trên thư viện Rust 🤗 Tokenizers. Các bản triển khai “Fast” cho phép:

  1. tăng tốc đáng kể, đặc biệt khi thực hiện token hóa theo lô và
  2. các phương thức bổ sung để ánh xạ giữa chuỗi gốc (ký tự và từ) và không gian token (ví dụ: lấy chỉ số của token chứa một ký tự cho trước hoặc khoảng các ký tự tương ứng với một token cho trước).

Các lớp cơ sở PreTrainedTokenizer và PreTrainedTokenizerFast triển khai các phương thức chung để mã hóa các đầu vào chuỗi thành đầu vào mô hình (xem bên dưới) và khởi tạo/lưu trữ các tokenizer python và “Fast” từ một tệp hoặc thư mục cục bộ hoặc từ một tokenizer được huấn luyện trước do thư viện cung cấp (tải xuống từ kho lưu trữ AWS S3 của HuggingFace). Cả hai đều dựa vào PreTrainedTokenizerBase, nơi chứa các phương thức chung.

PreTrainedTokenizer và PreTrainedTokenizerFast do đó triển khai các phương thức chính để sử dụng tất cả các tokenizer:

  • Tokenizing (chia chuỗi thành các chuỗi token con từ), chuyển đổi chuỗi token sang id và ngược lại, cũng như mã hóa/giải mã (tức là tokenizing và chuyển đổi sang số nguyên).
  • Thêm các token mới vào từ vựng theo cách độc lập với cấu trúc bên dưới (BPE, SentencePiece…).
  • Quản lý các token đặc biệt (như mask, beginning-of-sentence, v.v.): thêm chúng, gán chúng cho các thuộc tính trong tokenizer để dễ truy cập và đảm bảo chúng không bị tách trong quá trình tokenization.

BatchEncoding chứa kết quả đầu ra của các phương thức mã hóa của PreTrainedTokenizerBase (__call__, encode_plus và batch_encode_plus) và được kế thừa từ một từ điển Python. Khi tokenizer là một tokenizer thuần Python, lớp này hoạt động giống như một từ điển Python tiêu chuẩn và lưu trữ các đầu vào mô hình khác nhau được tính toán bởi các phương thức này (input_ids, attention_mask…). Khi tokenizer là một tokenizer “Fast” (tức là được hỗ trợ bởi tokenizers library của HuggingFace), lớp này cung cấp thêm một số phương thức căn chỉnh nâng cao, có thể được sử dụng để ánh xạ giữa chuỗi gốc (ký tự và từ) và không gian token (ví dụ: lấy chỉ số của token chứa một ký tự nhất định hoặc phạm vi các ký tự tương ứng với một token nhất định).

Tokenizer đa phương thức

Ngoài ra, mỗi tokenizer có thể là một tokenizer “đa phương thức”, nghĩa là tokenizer sẽ lưu trữ tất cả các token đặc biệt liên quan như một phần của thuộc tính tokenizer để dễ truy cập hơn. Ví dụ, nếu tokenizer được nạp từ một mô hình thị giác-ngôn ngữ như LLaVA, bạn sẽ có thể truy cập tokenizer.image_token_id để lấy token hình ảnh đặc biệt được dùng làm ký tự thay thế.

Để bật các token đặc biệt bổ sung cho bất kỳ loại tokenizer nào, bạn cần thêm các dòng sau và lưu tokenizer. Các token đặc biệt bổ sung không nhất thiết phải liên quan đến chế độ (modality) và có thể là bất kỳ thứ gì mà mô hình thường cần truy cập. Trong đoạn mã bên dưới, tokenizer tại output_dir sẽ có quyền truy cập trực tiếp vào ba token đặc biệt khác.

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

lớp transformers.PythonBackend

< >

( **kwargs )

Tham số

  • model_max_length (int, tùy chọn) — Độ dài tối đa (tính bằng số token) cho các đầu vào của mô hình transformer. Khi tokenizer được tải bằng from_pretrained(), giá trị này sẽ được đặt thành giá trị được lưu cho mô hình liên quan trong max_model_input_sizes (xem ở trên). Nếu không có giá trị nào được cung cấp, mặc định sẽ là VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • truncation_side (str, tùy chọn) — Bên mà mô hình cần áp dụng cắt bớt. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • chat_template (str, tùy chọn) — Chuỗi mẫu Jinja sẽ được dùng để định dạng các danh sách tin nhắn chat. Xem https://huggingface.co/docs/transformers/chat_templating để biết mô tả đầy đủ.
  • model_input_names (list[string], tùy chọn) — Danh sách các đầu vào được chấp nhận bởi bước truyền trực tiếp (forward pass) của mô hình (ví dụ "token_type_ids" hoặc "attention_mask"). Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • bos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho đầu câu.
  • eos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho kết thúc của một câu.
  • unk_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token ngoài từ vựng.
  • sep_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt dùng để phân tách hai câu khác nhau trong cùng một đầu vào (ví dụ được BERT sử dụng).
  • pad_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt được sử dụng để làm cho các mảng token có cùng kích thước nhằm phục vụ mục đích tạo batch. Sau đó, nó sẽ bị bỏ qua bởi các cơ chế chú ý (attention) hoặc quá trình tính toán loss.
  • cls_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho lớp của đầu vào (ví dụ được sử dụng bởi BERT).
  • mask_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token bị che (được sử dụng bởi các mục tiêu tiền huấn luyện mô hình ngôn ngữ có che, như BERT). Sẽ được liên kết với self.mask_token và self.mask_token_id.
  • extra_special_tokens (list of str hoặc tokenizers.AddedToken, optional) — Một danh sách các token đặc biệt bổ sung dành riêng cho model. Thêm chúng vào đây để đảm bảo chúng bị bỏ qua khi giải mã với skip_special_tokens được đặt thành True. Nếu chúng không thuộc từ vựng, chúng sẽ được thêm vào cuối từ vựng.
  • split_special_tokens (bool, tùy chọn, mặc định là False) — Xác định xem các token đặc biệt có nên được tách ra trong quá trình tokenization hay không. Việc truyền tham số này sẽ ảnh hưởng đến trạng thái nội bộ của tokenizer. Hành vi mặc định là không tách các token đặc biệt. Điều này có nghĩa là nếu <s> là bos_token, thì tokenizer.tokenize("<s>") = ['<s>]. Ngược lại, nếu split_special_tokens=True, thì tokenizer.tokenize("<s>") sẽ trả về ['<','s', '>'].

Lớp cơ sở cho tất cả các tokenizer chậm.

Kế thừa từ PreTrainedTokenizerBase.

Xử lý tất cả các phương thức dùng chung cho việc phân tách token và các token đặc biệt, cũng như các phương thức tải xuống/đặt vào bộ nhớ đệm/tải các bộ phân tách token được huấn luyện trước, cũng như thêm token vào từ vựng.

Lớp này cũng chứa các token được thêm vào theo cách thống nhất trên tất cả các tokenizer, nhờ đó chúng ta không cần phải xử lý các phương pháp bổ sung từ vựng cụ thể của các cấu trúc từ điển cơ bản khác nhau (BPE, sentencepiece…).

Thuộc tính lớp (được ghi đè bởi các lớp kế thừa)

  • vocab_files_names (dict[str, str]) — Một từ điển có các khóa là tên tham số __init__ của từng tệp từ vựng mà mô hình yêu cầu, và các giá trị tương ứng là tên tệp để lưu tệp liên quan (chuỗi).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Một từ điển của các từ điển, trong đó các khóa cấp cao là tên từ khóa __init__ của từng tệp từ vựng cần thiết cho mô hình, các khóa cấp thấp là short-cut-names của các mô hình được huấn luyện trước, với các giá trị liên quan là url của tệp từ vựng được huấn luyện trước tương ứng.
  • model_input_names (list[str]) — Danh sách các đầu vào được kỳ vọng trong bước truyền thẳng (forward pass) của mô hình.
  • padding_side (str) — Giá trị mặc định cho phía mà mô hình cần được áp dụng padding. Phải là 'right' hoặc 'left'.
  • truncation_side (str) — Giá trị mặc định cho phía mà mô hình cần áp dụng cắt bớt. Phải là 'right' hoặc 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

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 đặt is_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 đặt is_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 đặt is_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 đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • tokenizer_kwargs (dict[str, Any], tùy chọn) — Các kwargs bổ sung để truyền cho tokenizer. Chúng sẽ được gộp với các tham số tường minh và các kwargs khác, trong đó các tham số tường minh có độ ưu tiên cao hơn.
  • add_special_tokens (bool, tùy chọn, mặc định là True) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàm PretrainedTokenizerBase.build_inputs_with_special_tokens bên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn thêm các token bos hoặc eos một cách tự động.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát padding. Chấp nhận các giá trị sau:
    • True hoặc 'longest': Lấp đầy (pad) đến độ dài của chuỗi dài nhất trong batch (hoặc không lấp đầy nếu chỉ cung cấp một chuỗi duy nhất).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặ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.
    • False hoặ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).
  • truncation (bool, str hoặc TruncationStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát việc cắt ngắn. Chấp nhận các giá trị sau:
    • True hoặc 'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa chấp nhận được của mô hình nếu tham số đó không được cung cấp. Thao tác này sẽ cắt ngắn theo từng token, loại bỏ một token từ chuỗi dài nhất trong cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi đầu tiên của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_second': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi thứ hai của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • False hoặc 'do_not_truncate' (mặc định): Không cắt bớt (tức là có thể xuất ra batch với độ dài chuỗi lớn hơn kích thước đầu vào tối đa cho phép của mô hình).
  • max_length (int, tuỳ chọn) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ (truncation/padding).

    Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.

  • stride (int, tùy chọn, mặc định là 0) — Nếu được đặt thành một số cùng với max_length, các token tràn ra được trả về khi return_overflowing_tokens=True sẽ chứa một số token từ cuối của chuỗi bị cắt ngắn được trả về để tạo ra một phần chồng lấn giữa các chuỗi bị cắt ngắn và các chuỗi tràn ra. Giá trị của đối số này xác định số lượng token chồng lấn.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một bội số của giá trị được cung cấp. Yêu cầu padding phải được kích hoạt. Đ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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • return_tensors (str hoặ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ượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • return_token_type_ids (bool, tuỳ chọn) — Có trả về token type IDs hay không. Nếu để mặc định, sẽ trả về token type IDs theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

    ID loại token là gì?

  • 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 tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

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

  • return_overflowing_tokens (bool, tùy chọn, mặc định là False) — Có trả về các chuỗi token tràn hay không. Nếu một cặp chuỗi input ids (hoặc một batch các cặp) được cung cấp với truncation_strategy = longest_first hoặc True, một lỗi sẽ được ném thay vì trả về các token tràn.
  • return_special_tokens_mask (bool, tùy chọn, mặc định là False) — Có trả về thông tin mặt nạ (mask) cho các token đặc biệt hay không.
  • return_offsets_mapping (bool, tuỳ chọn, mặc định là False) — Có trả về (char_start, char_end) cho từng token hay không.

    Tính năng này chỉ khả dụng trên các bộ phân từ nhanh kế thừa từ PreTrainedTokenizerFast; nếu sử dụng bộ phân từ của Python, phương thức này sẽ gây ra NotImplementedError.

  • return_length (bool, tùy chọn, mặc định là False) — Có trả về độ dài của các đầu vào đã mã hóa hay không.
  • verbose (bool, tùy chọn, mặc định là True) — Có in thêm thông tin và cảnh báo hay không.
  • **kwargs — được truyền đến phương thức self.tokenize()

Trả về

BatchEncoding

Một BatchEncoding với các trường sau:

  • input_ids — Danh sách các id token để đưa vào mô hình.

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

  • token_type_ids — Danh sách các id loại token để đưa vào mô hình (khi return_token_type_ids=True hoặc nếu “token_type_ids” nằm trong self.model_input_names).

    ID loại token là gì?

  • 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=True hoặc nếu “attention_mask” nằm trong self.model_input_names).

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

  • overflowing_tokens — Danh sách các chuỗi token bị tràn (khi max_length được chỉ định và return_overflowing_tokens=True).

  • num_truncated_tokens — Số lượng token bị cắt bỏ (khi có chỉ định max_length và return_overflowing_tokens=True).

  • special_tokens_mask — Danh sách các số 0 và 1, trong đó 1 chỉ định các token đặc biệt được thêm vào và 0 chỉ định các token chuỗi thông thường (khi add_special_tokens=True và return_special_tokens_mask=True).

  • length — Độ dài của các đầu vào (khi return_length=True)

Phương thức chính để mã hóa token và chuẩn bị cho mô hình một hoặc nhiều chuỗi, hoặc một hoặc nhiều cặp chuỗi.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Tham số

  • new_tokens (str, tokenizers.AddedToken hoặc một chuỗi của str hoặc tokenizers.AddedToken) — Các token chỉ được thêm vào nếu chúng chưa có trong từ vựng. tokenizers.AddedToken bọc một token dạng chuỗi để bạn có thể tùy chỉnh hành vi của nó: liệu token này có nên chỉ khớp với một từ duy nhất hay không, liệu token này có nên loại bỏ tất cả khoảng trắng tiềm năng ở phía bên trái hay không, liệu token này có nên loại bỏ tất cả khoảng trắng tiềm năng ở phía bên phải hay không, v.v.
  • special_tokens (bool, tùy chọn, mặc định là False) — Chỉ định xem token có phải là token đặc biệt hay không. Điều này chủ yếu thay đổi hành vi chuẩn hóa. Xem chi tiết về tokenizers.AddedToken trong thư viện tokenizers của HuggingFace.

Trả về

int

Số lượng token được thêm vào từ vựng.

#TODO xóa dòng này khỏi đây! PreTrainedTokenizerBase nên không phụ thuộc vào AddedToken.

Thêm một danh sách các token mới. Nếu các token mới không có trong từ vựng, chúng sẽ được thêm vào cuối. Do đó, các token được thêm vào và các token từ từ vựng của thuật toán phân tách token không được xử lý theo cùng một cách.

Bộ phân từ nhanh với bộ tiền phân từ Metaspace sử dụng prepend_scheme="always" (ví dụ: NLLB) sẽ thêm "▁" vào đầu văn bản đi sau một token được thêm vào. Sau tokenizer.add_tokens(["abcd"]), "abcdgym" được phân từ thành ["abcd", "▁gym"] và giải mã thành "abcd gym". Nếu các token được thêm vào có thể xuất hiện bên trong từ, hãy chuyển bộ tiền phân từ

thành prepend_scheme="first" để chỉ phần đầu của đầu vào được thêm tiền tố:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Ví dụ:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Tham số

  • special_tokens_dict (từ điển str tới str, tokenizers.AddedToken, hoặc Sequence[Union[str, AddedToken]]) — Các khóa phải nằm trong danh sách các thuộc tính đặc biệt được định nghĩa trước: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Các token chỉ được thêm vào nếu chúng chưa có trong bảng từ vựng (được kiểm tra bằng cách xem tokenizer có gán chỉ số của unk_token cho chúng hay không).

  • replace_extra_special_tokens (bool, tùy chọn, mặc định là True) — Nếu True, danh sách các token đặc biệt bổ sung hiện có sẽ được thay thế bằng danh sách được cung cấp trong special_tokens_dict. Ngược lại, extra_special_tokens sẽ được mở rộng. Trong trường hợp trước, các token sẽ KHÔNG bị xóa khỏi từ vựng đầy đủ của tokenizer - chúng chỉ được đánh dấu là các token không đặc biệt. Hãy nhớ rằng, điều này chỉ ảnh hưởng đến việc các token nào bị bỏ qua trong quá trình giải mã, chứ không ảnh hưởng đến added_tokens_encoder và added_tokens_decoder. Điều này có nghĩa là các extra_special_tokens trước đó vẫn là các token đã thêm, và sẽ không bị tách bởi mô hình.

Trả về

int

Số lượng token được thêm vào từ vựng.

Thêm một từ điển các token đặc biệt (eos, pad, cls, v.v.) vào encoder và liên kết chúng với các thuộc tính lớp. Nếu các token đặc biệt KHÔNG có trong bảng từ vựng, chúng sẽ được thêm vào (được chỉ mục bắt đầu từ chỉ mục cuối cùng của bảng từ vựng hiện tại).

Khi thêm các token mới vào từ vựng, bạn cần đảm bảo rằng ma trận nhúng token của mô hình cũng được thay đổi kích thước sao cho ma trận nhúng của nó khớp với tokenizer.

Để thực hiện điều đó, vui lòng sử dụng phương thức resize_token_embeddings().

Việc sử dụng add_special_tokens sẽ đảm bảo các token đặc biệt của bạn có thể được sử dụng theo một số cách sau:

  • Các token đặc biệt có thể được bỏ qua khi giải mã bằng cách sử dụng skip_special_tokens = True.
  • Các token đặc biệt được tokenizer xử lý cẩn thận (chúng không bao giờ bị tách), tương tự như AddedTokens.
  • Bạn có thể dễ dàng tham chiếu đến các token đặc biệt bằng cách sử dụng các thuộc tính của lớp tokenizer như tokenizer.cls_token. Điều này giúp việc phát triển các script huấn luyện và tinh chỉnh không phụ thuộc vào mô hình trở nên dễ dàng hơn.

Khi có thể, các token đặc biệt đã được đăng ký sẵn cho các mô hình được huấn luyện trước (ví dụ BertTokenizer cls_token đã được đăng ký là '[CLS]' và của XLM cũng được đăng ký là '</s>').

Ví dụ:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Tham số

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Một danh sách các dict có các khóa “role” và “content”, đại diện cho lịch sử trò chuyện cho đến hiện tại.
  • tools (list[Union[Dict, Callable]], tùy chọn) — Một danh sách các công cụ (các hàm có thể gọi) mà mô hình có thể truy cập. Nếu template không hỗ trợ function calling, tham số này sẽ không có hiệu lực. Mỗi công cụ nên được truyền dưới dạng JSON Schema, cung cấp tên, mô tả và kiểu của các tham số cho công cụ đó. Xem hướng dẫn sử dụng công cụ để biết thêm thông tin.
  • documents (list[dict[str, str]], tùy chọn) — Một danh sách các dict đại diện cho các tài liệu mà mô hình có thể truy cập nếu nó đang thực hiện RAG (retrieval-augmented generation). Nếu template không hỗ trợ RAG, tham số này sẽ không có tác dụng. Chúng tôi khuyến nghị mỗi tài liệu nên là một dict chứa các khóa “title” và “text”.
  • chat_template (str, tùy chọn) — Một mẫu Jinja để sử dụng cho quá trình chuyển đổi này. Thông thường không cần truyền gì cho tham số này, vì mẫu của mô hình sẽ được sử dụng mặc định.
  • add_generation_prompt (bool, tùy chọn) — Nếu được đặt, một prompt chứa các token chỉ báo hiệu bắt đầu thông điệp của trợ lý sẽ được thêm vào đầu ra đã định dạng. Điều này hữu ích khi bạn muốn tạo phản hồi từ mô hình. Lưu ý rằng đối số này sẽ được truyền vào mẫu chat, do đó mẫu phải hỗ trợ đối số này để nó có hiệu lực.
  • continue_final_message (bool or str, tùy chọn) — Nếu được đặt, cuộc trò chuyện sẽ được định dạng sao cho tin nhắn cuối cùng trong cuộc trò chuyện là mở, không có token EOS nào. Mô hình sẽ tiếp tục tin nhắn này thay vì bắt đầu một tin nhắn mới. Điều này cho phép bạn “tiền nạp” một phần phản hồi của mô hình. Nếu một chuỗi được truyền vào, nó sẽ được dùng làm khóa cho trường cần tiếp tục (ví dụ: “reasoning_content”). Không thể sử dụng đồng thời với add_generation_prompt.
  • tokenize (bool, mặc định là True) — Có nên tokenize đầu ra hay không. Nếu False, đầu ra sẽ là một chuỗi.
  • sanitize_control_tokens (bool, mặc định là False) — Nếu được đặt, các token điều khiển xuất hiện trong messages, tools hoặc documents sẽ được mã hóa như văn bản thông thường, do đó chỉ các token điều khiển do chính chat template viết ra mới được mã hóa dưới dạng token. Các token điều khiển là các token đặc biệt của tokenizer, cộng với các token đã thêm trong tokenizer.chat_control_tokens. Nếu biến đó không được đặt, các token điều khiển sẽ được suy ra từ các token đã thêm xuất hiện trong văn bản và các chuỗi literal của chat template. Chỉ các token điều khiển hoàn chỉnh mới được làm sạch, vì vậy nếu template nối các chuỗi từ đầu vào thành các token điều khiển (như '<|' + message['role'] + '|>'), những chuỗi đó phải được xác thực riêng biệt. Các key của Dict cũng không được làm sạch.
  • padding (bool, str hoặ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:
    • True hoặ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_length hoặ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.
    • False hoặ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).
  • truncation (bool, mặc định là False) — Có nên cắt chuỗi tại độ dài tối đa hay không. Không có tác dụng nếu tokenize là False.
  • max_length (int, tùy chọn) — Độ dài tối đa (tính bằng token) để sử dụng cho việc đệm hoặc cắt bớt. Không có tác dụng nếu tokenize là False. Nếu không được chỉ định, thuộc tính max_length của tokenizer sẽ được sử dụng làm mặc định.
  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Không có hiệu lực nếu tokenize là False. Các giá trị được chấp nhận là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.
  • return_dict (bool, mặc định là True) — Có nên trả về một từ điển với các đầu ra có tên hay không. Không có tác dụng nếu tokenize là False.
  • tokenizer_kwargs (dict[str -- Any], tùy chọn): Các tham số bổ sung để truyền cho tokenizer.
  • return_assistant_tokens_mask (bool, mặc định là False) — Có nên trả về mặt nạ (mask) của các token do trợ lý tạo ra hay không. Đối với các token do trợ lý tạo ra, mặt nạ sẽ chứa giá trị 1. Đối với các token của người dùng và hệ thống, mặt nạ sẽ chứa giá trị 0. Chức năng này chỉ khả dụng cho các mẫu chat (chat template) hỗ trợ nó thông qua từ khóa {% generation %}.
  • **kwargs — Các kwargs bổ sung để truyền cho trình render template. Chat template sẽ có thể truy cập chúng.

Trả về

Union[list[int], Dict]

Danh sách các id token đại diện cho cuộc trò chuyện đã được token hóa cho đến hiện tại, bao gồm cả các token điều khiển. Đầu ra này sẵn sàng để truyền vào mô hình, trực tiếp hoặc thông qua các phương thức như generate(). Nếu return_dict được đặt, sẽ trả về một dict chứa các đầu ra của tokenizer thay thế.

Chuyển đổi một danh sách các từ điển có các khóa "role" và "content" thành một danh sách các id token. Phương thức này được thiết kế để sử dụng với các mô hình chat, và sẽ đọc thuộc tính chat_template của tokenizer để xác định định dạng và các token điều khiển cần sử dụng khi chuyển đổi.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Tham số

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Danh sách các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • clean_up_tokenization_spaces (bool, tùy chọn) — Có dọn dẹp khoảng trắng token hóa hay không. Nếu là None, mặc định sẽ là self.clean_up_tokenization_spaces.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

list[str]

Danh sách các câu đã giải mã.

Chuyển đổi một danh sách các danh sách id token thành một danh sách các chuỗi bằng cách gọi decode.

Phương pháp này được cung cấp để đảm bảo tương thích ngược. Phương pháp decode hiện xử lý đầu vào dạng lô (batched) một cách bản địa, do đó bạn có thể sử dụng trực tiếp decode thay vì batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Tham số

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Một chuỗi duy nhất hoặc một lô (danh sách các chuỗi) các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

Union[str, list[str]]

Chuỗi đã giải mã cho một chuỗi duy nhất, hoặc một danh sách các chuỗi đã giải mã cho một lô các chuỗi.

Chuyển đổi một chuỗi các id thành một chuỗi ký tự, hoặc một danh sách các chuỗi id thành một danh sách các chuỗi ký tự, sử dụng tokenizer và bảng từ vựng với các tùy chọn để loại bỏ các token đặc biệt và dọn dẹp khoảng trắng trong quá trình token hóa.

Tương tự như việc thực hiện self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Tham số

  • text (str, list[str] hoặc list[int]) — Chuỗi đầu tiên cần được mã hóa. Đây có thể là một chuỗi, một danh sách các chuỗi (chuỗi đã được tách token bằng phương thức tokenize) hoặc một danh sách các số nguyên (id của các token đã tách bằng phương thức convert_tokens_to_ids).
  • text_pair (str, list[str] hoặc list[int], tùy chọn) — Chuỗi thứ hai tùy chọn để mã hóa. Đây có thể là một chuỗi, một danh sách các chuỗi (chuỗi đã được tách token bằng phương thức tokenize) hoặc một danh sách các số nguyên (id của các chuỗi đã được tách token bằng phương thức convert_tokens_to_ids).
  • add_special_tokens (bool, tùy chọn, mặc định là True) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàm PretrainedTokenizerBase.build_inputs_with_special_tokens bên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn thêm các token bos hoặc eos một cách tự động.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát padding. Chấp nhận các giá trị sau:
    • True hoặc 'longest': Lấp đầy (pad) đến độ dài của chuỗi dài nhất trong batch (hoặc không lấp đầy nếu chỉ cung cấp một chuỗi duy nhất).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặ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.
    • False hoặ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).
  • truncation (bool, str hoặc TruncationStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát việc cắt ngắn. Chấp nhận các giá trị sau:
    • True hoặc 'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa chấp nhận được của mô hình nếu tham số đó không được cung cấp. Thao tác này sẽ cắt ngắn theo từng token, loại bỏ một token từ chuỗi dài nhất trong cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi đầu tiên của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_second': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi thứ hai của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • False hoặc 'do_not_truncate' (mặc định): Không cắt bớt (tức là có thể xuất ra batch với độ dài chuỗi lớn hơn kích thước đầu vào tối đa cho phép của mô hình).
  • max_length (int, tuỳ chọn) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ (truncation/padding).

    Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.

  • stride (int, tùy chọn, mặc định là 0) — Nếu được đặt thành một số cùng với max_length, các token tràn ra được trả về khi return_overflowing_tokens=True sẽ chứa một số token từ cuối của chuỗi bị cắt ngắn được trả về để tạo ra một phần chồng lấn giữa các chuỗi bị cắt ngắn và các chuỗi tràn ra. Giá trị của đối số này xác định số lượng token chồng lấn.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một bội số của giá trị được cung cấp. Yêu cầu padding phải được kích hoạt. Đ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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • return_tensors (str hoặ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ượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • **kwargs — Được truyền đến phương thức .tokenize().

Trả về

list[int], torch.Tensor hoặc np.ndarray

Các id đã được token hóa của văn bản.

Chuyển đổi một chuỗi thành một dãy các id (số nguyên), sử dụng tokenizer và từ điển.

Tương đương với việc thực hiện self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Tham số

  • repo_id (str) — Tên của kho mà bạn muốn đẩy tokenizer của mình lên. Nó nên chứa tên tổ chức của bạn khi đẩy lên một tổ chức cụ thể.
  • commit_message (str, tùy chọn) — Thông điệp để commit khi đẩy. Mặc định là "Upload tokenizer".
  • commit_description (str, tùy chọn) — Mô tả của commit sẽ được tạo
  • private (bool, optional) — Xác định có làm cho kho (repo) ở chế độ riêng tư hay không. Nếu là None (mặc định), kho sẽ ở chế độ công khai trừ khi mặc định của tổ chức là riêng tư. Giá trị này bị bỏ qua nếu kho đã tồn tại.
  • token (bool hoặc str, tùy chọn) — Token được sử dụng làm HTTP bearer authorization cho các tệp từ xa. Nếu True (mặc định), sẽ sử dụng token được tạo ra khi chạy hf auth login (được lưu trong ~/.huggingface).
  • revision (str, tùy chọn) — Nhánh để đẩy các tệp đã tải lên.
  • create_pr (bool, tùy chọn, mặc định là False) — Có tạo PR với các tệp đã tải lên hay commit trực tiếp hay không.
  • max_shard_size (int hoặc str, tùy chọn, mặc định là "50GB") — Chỉ áp dụng cho các model. Kích thước tối đa của một checkpoint trước khi được chia shard. Các checkpoint sau khi chia shard sẽ có kích thước nhỏ hơn giá trị này. Nếu được biểu diễn dưới dạng chuỗi, cần là các chữ số theo sau bởi một đơn vị (ví dụ "5MB").
  • tags (list[str], tùy chọn) — Danh sách các thẻ để đẩy lên Hub.

Tải các tệp tokenizer lên 🤗 Model Hub.

Ví dụ:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

build_inputs_with_special_tokens

< >

( 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 các ID đầu vào 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 bằng cách thêm các token đặc biệt.

Phương pháp này xây dựng động các đầu vào dựa trên special_tokens_pattern của tokenizer:

  • "none": Không có token đặc biệt
  • "cls_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] hoặc seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 hoặc [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] hoặc [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (tiền tố/hậu tố tùy chỉnh được lưu trên tokenizer)

create_token_type_ids_from_sequences

< >

( 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.
  • 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]

ID loại token theo mẫu được cấu hình.

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.

Phương pháp này xây dựng động các ID loại token dựa trên các thuộc tính cấu hình của tokenizer:

  • token_type_ids_pattern: Mẫu cần sử dụng (“all_zeros” hoặc “bert_style”)
  • token_type_ids_include_special_tokens: Có tính các token đặc biệt trong tính toán độ dài hay không

Ví dụ:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Trả về

dict[str, int]

Các token được thêm vào.

Trả về các token đã thêm trong từ vựng dưới dạng từ điển ánh xạ từ token sang chỉ số. Kết quả có thể khác so với lệnh gọi nhanh vì hiện tại chúng ta luôn thêm các token ngay cả khi chúng đã có trong từ vựng. Đây là điều cần thay đổi.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Tham số

  • token_ids_0 (list[int]) — Danh sách các id của chuỗi đầu tiên.
  • token_ids_1 (list[int], tùy chọn) — Danh sách các id của chuỗi thứ hai.
  • 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ề

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 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 các phương thức prepare_for_model hoặc encode_plus của tokenizer.

Phương pháp này xây dựng động mặt nạ các token đặc biệt dựa trên special_tokens_pattern của tokenizer:

  • "none": Không có token đặc biệt (mặc định, trả về tất cả 0)
  • "cls_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] hoặc seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 hoặc [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] hoặc [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

số_token_đặc_biệu_cần_thêm

< >

( pair: bool = False ) → int

Tham số

  • pair (bool, tuỳ chọn, mặc định là False) — Liệu số lượng token được thêm vào có nên được tính trong trường hợp của một cặp chuỗi hay một chuỗi đơn hay không.

Trả về

int

Số lượng token đặc biệt được thêm vào các chuỗi.

Trả về số lượng token được thêm vào khi mã hóa một chuỗi với các token đặc biệt.

Điều này mã hóa một đầu vào giả và kiểm tra số lượng token được thêm vào, do đó không hiệu quả. Không đặt điều này bên trong vòng lặp huấn luyện của bạn.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Tham số

  • ids — Các id đầu vào đã được token hóa của chuỗi đầu tiên.
  • pair_ids — Các id đầu vào đã được token hóa của chuỗi thứ hai (tùy chọn).

Chuẩn bị một chuỗi các id đầu vào để có thể được sử dụng bởi mô hình. Thêm các token đặc biệt, cắt ngắn và đệm.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Tham số

  • text (str) — Văn bản cần chuẩn bị.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa để sử dụng cho việc phân tách token.

Trả về

tuple[str, dict[str, Any]]

Văn bản đã được chuẩn bị và các kwargs chưa được sử dụng.

Thực hiện các phép biến đổi cần thiết trước khi phân tách token.

Phương thức này nên lấy các đối số ra khỏi kwargs và trả về kwargs còn lại. Chúng tôi kiểm tra kwargs vào cuối quá trình mã hóa để đảm bảo tất cả các đối số đã được sử dụng.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Tham số

  • save_directory (str) — Thư mục để lưu trữ từ vựng.
  • filename_prefix (str, tùy chọn) — Một tiền tố tùy chọn để thêm vào tên của các tệp được lưu.

Trả về

tuple[str, ...]

Đường dẫn đến các tệp đã lưu, hoặc bộ rỗng nếu không có tệp nào được lưu.

Thực hiện mặc định cho các mẫu lưu trữ từ vựng phổ biến. Lưu self.encoder/self.vocab dưới dạng JSON, tùy chọn kèm self.bpe_ranks dưới dạng merges. Trả về bộ rỗng nếu không có từ vựng.

Ghi đè phương thức này nếu tokenizer của bạn cần logic lưu trữ tùy chỉnh (ví dụ: mô hình SentencePiece, nhiều tệp từ vựng, hoặc các định dạng tệp đặc biệt).

tokenize

< >

( text: str**kwargs )

Tham số

  • text — Chuỗi cần được mã hóa.
  • **kwargs — Được truyền đến phương pháp tiền xử lý prepare_for_tokenization cụ thể của mô hình.

Chuyển đổi một chuỗi thành một chuỗi các token, sử dụng tokenizer.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Cắt ngắn các chuỗi theo chiến lược được chỉ định.

PreTrainedTokenizerFast

PreTrainedTokenizerFast phụ thuộc vào thư viện tokenizers. Các tokenizer có được từ thư viện 🤗 tokenizers có thể được nạp vào 🤗 transformers một cách rất đơn giản. Hãy xem trang Sử dụng tokenizers từ 🤗 tokenizers để hiểu cách thực hiện điều này.

lớp transformers.TokenizersBackend

< >

( *args**kwargs )

Tham số

  • model_max_length (int, tùy chọn) — Độ dài tối đa (tính bằng số token) cho các đầu vào của mô hình transformer. Khi tokenizer được tải bằng from_pretrained(), giá trị này sẽ được đặt thành giá trị được lưu cho mô hình liên quan trong max_model_input_sizes (xem ở trên). Nếu không có giá trị nào được cung cấp, mặc định sẽ là VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • truncation_side (str, tùy chọn) — Bên mà mô hình cần áp dụng cắt bớt. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • chat_template (str, tùy chọn) — Chuỗi mẫu Jinja sẽ được dùng để định dạng các danh sách tin nhắn chat. Xem https://huggingface.co/docs/transformers/chat_templating để biết mô tả đầy đủ.
  • model_input_names (list[string], tùy chọn) — Danh sách các đầu vào được chấp nhận bởi bước truyền trực tiếp (forward pass) của mô hình (ví dụ "token_type_ids" hoặc "attention_mask"). Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • bos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho đầu câu.
  • eos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho kết thúc của một câu.
  • unk_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token ngoài từ vựng.
  • sep_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt dùng để phân tách hai câu khác nhau trong cùng một đầu vào (ví dụ được BERT sử dụng).
  • pad_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt được sử dụng để làm cho các mảng token có cùng kích thước nhằm phục vụ mục đích tạo batch. Sau đó, nó sẽ bị bỏ qua bởi các cơ chế chú ý (attention) hoặc quá trình tính toán loss.
  • cls_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho lớp của đầu vào (ví dụ được sử dụng bởi BERT).
  • mask_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token bị che (được sử dụng bởi các mục tiêu tiền huấn luyện mô hình ngôn ngữ có che, như BERT). Sẽ được liên kết với self.mask_token và self.mask_token_id.
  • extra_special_tokens (list of str hoặc tokenizers.AddedToken, optional) — Một danh sách các token đặc biệt bổ sung dành riêng cho model. Thêm chúng vào đây để đảm bảo chúng bị bỏ qua khi giải mã với skip_special_tokens được đặt thành True. Nếu chúng không thuộc từ vựng, chúng sẽ được thêm vào cuối từ vựng.
  • split_special_tokens (bool, tùy chọn, mặc định là False) — Xác định xem các token đặc biệt có nên được tách ra trong quá trình tokenization hay không. Việc truyền tham số này sẽ ảnh hưởng đến trạng thái nội bộ của tokenizer. Hành vi mặc định là không tách các token đặc biệt. Điều này có nghĩa là nếu <s> là bos_token, thì tokenizer.tokenize("<s>") = ['<s>]. Ngược lại, nếu split_special_tokens=True, thì tokenizer.tokenize("<s>") sẽ trả về ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Một đối tượng tokenizers.Tokenizer từ 🤗 tokenizers để khởi tạo. Xem Sử dụng tokenizers từ 🤗 tokenizers để biết thêm thông tin.
  • tokenizer_file (str) — Đường dẫn đến tệp JSON cục bộ đại diện cho một đối tượng tokenizers.Tokenizer đã được serialize trước đó từ 🤗 tokenizers.

Lớp cơ sở cho tất cả các bộ phân từ nhanh (bao bọc thư viện tokenizers của HuggingFace).

Kế thừa từ PreTrainedTokenizerBase.

Xử lý tất cả các phương thức dùng chung cho việc phân tách token và các token đặc biệt, cũng như các phương thức để tải xuống/đặt vào bộ nhớ đệm/tải các bộ phân tách token được huấn luyện trước, cũng như thêm token vào từ vựng.

Lớp này cũng chứa các token được thêm vào theo cách thống nhất trên tất cả các tokenizer, nhờ đó chúng ta không cần phải xử lý các phương pháp bổ sung từ vựng cụ thể của các cấu trúc từ điển cơ bản khác nhau (BPE, sentencepiece…).

Thuộc tính lớp (được ghi đè bởi các lớp kế thừa)

  • vocab_files_names (dict[str, str]) — Một từ điển có các khóa là tên tham số __init__ của từng tệp từ vựng mà mô hình yêu cầu, và các giá trị tương ứng là tên tệp để lưu tệp liên quan (chuỗi).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Một từ điển của các từ điển, trong đó các khóa cấp cao là tên từ khóa __init__ của từng tệp từ vựng cần thiết cho mô hình, các khóa cấp thấp là short-cut-names của các mô hình được huấn luyện trước, với các giá trị liên quan là url của tệp từ vựng được huấn luyện trước tương ứng.
  • model_input_names (list[str]) — Danh sách các đầu vào được kỳ vọng trong bước truyền thẳng (forward pass) của mô hình.
  • padding_side (str) — Giá trị mặc định cho phía mà mô hình cần được áp dụng padding. Phải là 'right' hoặc 'left'.
  • truncation_side (str) — Giá trị mặc định cho phía mà mô hình cần áp dụng cắt bớt. Phải là 'right' hoặc 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

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 đặt is_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 đặt is_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 đặt is_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 đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • tokenizer_kwargs (dict[str, Any], tùy chọn) — Các kwargs bổ sung để truyền cho tokenizer. Chúng sẽ được gộp với các tham số tường minh và các kwargs khác, trong đó các tham số tường minh có độ ưu tiên cao hơn.
  • add_special_tokens (bool, tùy chọn, mặc định là True) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàm PretrainedTokenizerBase.build_inputs_with_special_tokens bên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn thêm các token bos hoặc eos một cách tự động.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát padding. Chấp nhận các giá trị sau:
    • True hoặc 'longest': Lấp đầy (pad) đến độ dài của chuỗi dài nhất trong batch (hoặc không lấp đầy nếu chỉ cung cấp một chuỗi duy nhất).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặ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.
    • False hoặ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).
  • truncation (bool, str hoặc TruncationStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát việc cắt ngắn. Chấp nhận các giá trị sau:
    • True hoặc 'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa chấp nhận được của mô hình nếu tham số đó không được cung cấp. Thao tác này sẽ cắt ngắn theo từng token, loại bỏ một token từ chuỗi dài nhất trong cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi đầu tiên của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_second': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi thứ hai của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • False hoặc 'do_not_truncate' (mặc định): Không cắt bớt (tức là có thể xuất ra batch với độ dài chuỗi lớn hơn kích thước đầu vào tối đa cho phép của mô hình).
  • max_length (int, tuỳ chọn) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ (truncation/padding).

    Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.

  • stride (int, tùy chọn, mặc định là 0) — Nếu được đặt thành một số cùng với max_length, các token tràn ra được trả về khi return_overflowing_tokens=True sẽ chứa một số token từ cuối của chuỗi bị cắt ngắn được trả về để tạo ra một phần chồng lấn giữa các chuỗi bị cắt ngắn và các chuỗi tràn ra. Giá trị của đối số này xác định số lượng token chồng lấn.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một bội số của giá trị được cung cấp. Yêu cầu padding phải được kích hoạt. Đ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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • return_tensors (str hoặ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ượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • return_token_type_ids (bool, tuỳ chọn) — Có trả về token type IDs hay không. Nếu để mặc định, sẽ trả về token type IDs theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

    ID loại token là gì?

  • 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 tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

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

  • return_overflowing_tokens (bool, tùy chọn, mặc định là False) — Có trả về các chuỗi token tràn hay không. Nếu một cặp chuỗi input ids (hoặc một batch các cặp) được cung cấp với truncation_strategy = longest_first hoặc True, một lỗi sẽ được ném thay vì trả về các token tràn.
  • return_special_tokens_mask (bool, tùy chọn, mặc định là False) — Có trả về thông tin mặt nạ (mask) cho các token đặc biệt hay không.
  • return_offsets_mapping (bool, tuỳ chọn, mặc định là False) — Có trả về (char_start, char_end) cho từng token hay không.

    Tính năng này chỉ khả dụng trên các bộ phân từ nhanh kế thừa từ PreTrainedTokenizerFast; nếu sử dụng bộ phân từ của Python, phương thức này sẽ gây ra NotImplementedError.

  • return_length (bool, tùy chọn, mặc định là False) — Có trả về độ dài của các đầu vào đã mã hóa hay không.
  • verbose (bool, tùy chọn, mặc định là True) — Có in thêm thông tin và cảnh báo hay không.
  • **kwargs — được truyền đến phương thức self.tokenize()

Trả về

BatchEncoding

Một BatchEncoding với các trường sau:

  • input_ids — Danh sách các id token để đưa vào mô hình.

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

  • token_type_ids — Danh sách các id loại token để đưa vào mô hình (khi return_token_type_ids=True hoặc nếu “token_type_ids” nằm trong self.model_input_names).

    ID loại token là gì?

  • 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=True hoặc nếu “attention_mask” nằm trong self.model_input_names).

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

  • overflowing_tokens — Danh sách các chuỗi token bị tràn (khi max_length được chỉ định và return_overflowing_tokens=True).

  • num_truncated_tokens — Số lượng token bị cắt bỏ (khi có chỉ định max_length và return_overflowing_tokens=True).

  • special_tokens_mask — Danh sách các số 0 và 1, trong đó 1 chỉ định các token đặc biệt được thêm vào và 0 chỉ định các token chuỗi thông thường (khi add_special_tokens=True và return_special_tokens_mask=True).

  • length — Độ dài của các đầu vào (khi return_length=True)

Phương thức chính để mã hóa token và chuẩn bị cho mô hình một hoặc nhiều chuỗi, hoặc một hoặc nhiều cặp chuỗi.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Tham số

  • new_tokens (str, tokenizers.AddedToken hoặc một chuỗi của str hoặc tokenizers.AddedToken) — Các token chỉ được thêm vào nếu chúng chưa có trong từ vựng. tokenizers.AddedToken bọc một token dạng chuỗi để bạn có thể tùy chỉnh hành vi của nó: liệu token này có nên chỉ khớp với một từ duy nhất hay không, liệu token này có nên loại bỏ tất cả khoảng trắng tiềm năng ở phía bên trái hay không, liệu token này có nên loại bỏ tất cả khoảng trắng tiềm năng ở phía bên phải hay không, v.v.
  • special_tokens (bool, tùy chọn, mặc định là False) — Chỉ định xem token có phải là token đặc biệt hay không. Điều này chủ yếu thay đổi hành vi chuẩn hóa. Xem chi tiết về tokenizers.AddedToken trong thư viện tokenizers của HuggingFace.

Trả về

int

Số lượng token được thêm vào từ vựng.

#TODO xóa dòng này khỏi đây! PreTrainedTokenizerBase nên không phụ thuộc vào AddedToken.

Thêm một danh sách các token mới. Nếu các token mới không có trong từ vựng, chúng sẽ được thêm vào cuối. Do đó, các token được thêm vào và các token từ từ vựng của thuật toán phân tách token không được xử lý theo cùng một cách.

Bộ phân từ nhanh với bộ tiền phân từ Metaspace sử dụng prepend_scheme="always" (ví dụ: NLLB) sẽ thêm "▁" vào đầu văn bản đi sau một token được thêm vào. Sau tokenizer.add_tokens(["abcd"]), "abcdgym" được phân từ thành ["abcd", "▁gym"] và giải mã thành "abcd gym". Nếu các token được thêm vào có thể xuất hiện bên trong từ, hãy chuyển bộ tiền phân từ

thành prepend_scheme="first" để chỉ phần đầu của đầu vào được thêm tiền tố:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Ví dụ:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Tham số

  • special_tokens_dict (từ điển str tới str, tokenizers.AddedToken, hoặc Sequence[Union[str, AddedToken]]) — Các khóa phải nằm trong danh sách các thuộc tính đặc biệt được định nghĩa trước: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Các token chỉ được thêm vào nếu chúng chưa có trong bảng từ vựng (được kiểm tra bằng cách xem tokenizer có gán chỉ số của unk_token cho chúng hay không).

  • replace_extra_special_tokens (bool, tùy chọn, mặc định là True) — Nếu True, danh sách các token đặc biệt bổ sung hiện có sẽ được thay thế bằng danh sách được cung cấp trong special_tokens_dict. Ngược lại, extra_special_tokens sẽ được mở rộng. Trong trường hợp trước, các token sẽ KHÔNG bị xóa khỏi từ vựng đầy đủ của tokenizer - chúng chỉ được đánh dấu là các token không đặc biệt. Hãy nhớ rằng, điều này chỉ ảnh hưởng đến việc các token nào bị bỏ qua trong quá trình giải mã, chứ không ảnh hưởng đến added_tokens_encoder và added_tokens_decoder. Điều này có nghĩa là các extra_special_tokens trước đó vẫn là các token đã thêm, và sẽ không bị tách bởi mô hình.

Trả về

int

Số lượng token được thêm vào từ vựng.

Thêm một từ điển các token đặc biệt (eos, pad, cls, v.v.) vào encoder và liên kết chúng với các thuộc tính lớp. Nếu các token đặc biệt KHÔNG có trong bảng từ vựng, chúng sẽ được thêm vào (được chỉ mục bắt đầu từ chỉ mục cuối cùng của bảng từ vựng hiện tại).

Khi thêm các token mới vào từ vựng, bạn cần đảm bảo rằng ma trận nhúng token của mô hình cũng được thay đổi kích thước sao cho ma trận nhúng của nó khớp với tokenizer.

Để thực hiện điều đó, vui lòng sử dụng phương thức resize_token_embeddings().

Việc sử dụng add_special_tokens sẽ đảm bảo các token đặc biệt của bạn có thể được sử dụng theo một số cách sau:

  • Các token đặc biệt có thể được bỏ qua khi giải mã bằng cách sử dụng skip_special_tokens = True.
  • Các token đặc biệt được tokenizer xử lý cẩn thận (chúng không bao giờ bị tách), tương tự như AddedTokens.
  • Bạn có thể dễ dàng tham chiếu đến các token đặc biệt bằng cách sử dụng các thuộc tính của lớp tokenizer như tokenizer.cls_token. Điều này giúp việc phát triển các script huấn luyện và tinh chỉnh không phụ thuộc vào mô hình trở nên dễ dàng hơn.

Khi có thể, các token đặc biệt đã được đăng ký sẵn cho các mô hình được huấn luyện trước (ví dụ BertTokenizer cls_token đã được đăng ký là '[CLS]' và của XLM cũng được đăng ký là '</s>').

Ví dụ:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Tham số

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Một danh sách các dict có các khóa “role” và “content”, đại diện cho lịch sử trò chuyện cho đến hiện tại.
  • tools (list[Union[Dict, Callable]], tùy chọn) — Một danh sách các công cụ (các hàm có thể gọi) mà mô hình có thể truy cập. Nếu template không hỗ trợ function calling, tham số này sẽ không có hiệu lực. Mỗi công cụ nên được truyền dưới dạng JSON Schema, cung cấp tên, mô tả và kiểu của các tham số cho công cụ đó. Xem hướng dẫn sử dụng công cụ để biết thêm thông tin.
  • documents (list[dict[str, str]], tùy chọn) — Một danh sách các dict đại diện cho các tài liệu mà mô hình có thể truy cập nếu nó đang thực hiện RAG (retrieval-augmented generation). Nếu template không hỗ trợ RAG, tham số này sẽ không có tác dụng. Chúng tôi khuyến nghị mỗi tài liệu nên là một dict chứa các khóa “title” và “text”.
  • chat_template (str, tùy chọn) — Một mẫu Jinja để sử dụng cho quá trình chuyển đổi này. Thông thường không cần truyền gì cho tham số này, vì mẫu của mô hình sẽ được sử dụng mặc định.
  • add_generation_prompt (bool, tùy chọn) — Nếu được đặt, một prompt chứa các token chỉ báo hiệu bắt đầu thông điệp của trợ lý sẽ được thêm vào đầu ra đã định dạng. Điều này hữu ích khi bạn muốn tạo phản hồi từ mô hình. Lưu ý rằng đối số này sẽ được truyền vào mẫu chat, do đó mẫu phải hỗ trợ đối số này để nó có hiệu lực.
  • continue_final_message (bool or str, tùy chọn) — Nếu được đặt, cuộc trò chuyện sẽ được định dạng sao cho tin nhắn cuối cùng trong cuộc trò chuyện là mở, không có token EOS nào. Mô hình sẽ tiếp tục tin nhắn này thay vì bắt đầu một tin nhắn mới. Điều này cho phép bạn “tiền nạp” một phần phản hồi của mô hình. Nếu một chuỗi được truyền vào, nó sẽ được dùng làm khóa cho trường cần tiếp tục (ví dụ: “reasoning_content”). Không thể sử dụng đồng thời với add_generation_prompt.
  • tokenize (bool, mặc định là True) — Có nên tokenize đầu ra hay không. Nếu False, đầu ra sẽ là một chuỗi.
  • sanitize_control_tokens (bool, mặc định là False) — Nếu được đặt, các token điều khiển xuất hiện trong messages, tools hoặc documents sẽ được mã hóa như văn bản thông thường, do đó chỉ các token điều khiển do chính chat template viết ra mới được mã hóa dưới dạng token. Các token điều khiển là các token đặc biệt của tokenizer, cộng với các token đã thêm trong tokenizer.chat_control_tokens. Nếu biến đó không được đặt, các token điều khiển sẽ được suy ra từ các token đã thêm xuất hiện trong văn bản và các chuỗi literal của chat template. Chỉ các token điều khiển hoàn chỉnh mới được làm sạch, vì vậy nếu template nối các chuỗi từ đầu vào thành các token điều khiển (như '<|' + message['role'] + '|>'), những chuỗi đó phải được xác thực riêng biệt. Các key của Dict cũng không được làm sạch.
  • padding (bool, str hoặ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:
    • True hoặ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_length hoặ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.
    • False hoặ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).
  • truncation (bool, mặc định là False) — Có nên cắt chuỗi tại độ dài tối đa hay không. Không có tác dụng nếu tokenize là False.
  • max_length (int, tùy chọn) — Độ dài tối đa (tính bằng token) để sử dụng cho việc đệm hoặc cắt bớt. Không có tác dụng nếu tokenize là False. Nếu không được chỉ định, thuộc tính max_length của tokenizer sẽ được sử dụng làm mặc định.
  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Không có hiệu lực nếu tokenize là False. Các giá trị được chấp nhận là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.
  • return_dict (bool, mặc định là True) — Có nên trả về một từ điển với các đầu ra có tên hay không. Không có tác dụng nếu tokenize là False.
  • tokenizer_kwargs (dict[str -- Any], tùy chọn): Các tham số bổ sung để truyền cho tokenizer.
  • return_assistant_tokens_mask (bool, mặc định là False) — Có nên trả về mặt nạ (mask) của các token do trợ lý tạo ra hay không. Đối với các token do trợ lý tạo ra, mặt nạ sẽ chứa giá trị 1. Đối với các token của người dùng và hệ thống, mặt nạ sẽ chứa giá trị 0. Chức năng này chỉ khả dụng cho các mẫu chat (chat template) hỗ trợ nó thông qua từ khóa {% generation %}.
  • **kwargs — Các kwargs bổ sung để truyền cho trình render template. Chat template sẽ có thể truy cập chúng.

Trả về

Union[list[int], Dict]

Danh sách các id token đại diện cho cuộc trò chuyện đã được token hóa cho đến hiện tại, bao gồm cả các token điều khiển. Đầu ra này sẵn sàng để truyền vào mô hình, trực tiếp hoặc thông qua các phương thức như generate(). Nếu return_dict được đặt, sẽ trả về một dict chứa các đầu ra của tokenizer thay thế.

Chuyển đổi một danh sách các từ điển có các khóa "role" và "content" thành một danh sách các id token. Phương thức này được thiết kế để sử dụng với các mô hình chat, và sẽ đọc thuộc tính chat_template của tokenizer để xác định định dạng và các token điều khiển cần sử dụng khi chuyển đổi.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Tham số

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Danh sách các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • clean_up_tokenization_spaces (bool, tùy chọn) — Có dọn dẹp khoảng trắng token hóa hay không. Nếu là None, mặc định sẽ là self.clean_up_tokenization_spaces.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

list[str]

Danh sách các câu đã giải mã.

Chuyển đổi một danh sách các danh sách id token thành một danh sách các chuỗi bằng cách gọi decode.

Phương pháp này được cung cấp để đảm bảo tương thích ngược. Phương pháp decode hiện xử lý đầu vào dạng lô (batched) một cách bản địa, do đó bạn có thể sử dụng trực tiếp decode thay vì batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Tham số

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Một chuỗi duy nhất hoặc một lô (danh sách các chuỗi) các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

Union[str, list[str]]

Chuỗi đã giải mã cho một chuỗi duy nhất, hoặc một danh sách các chuỗi đã giải mã cho một lô các chuỗi.

Chuyển đổi một chuỗi các id thành một chuỗi ký tự, hoặc một danh sách các chuỗi id thành một danh sách các chuỗi ký tự, sử dụng tokenizer và bảng từ vựng với các tùy chọn để loại bỏ các token đặc biệt và dọn dẹp khoảng trắng trong quá trình token hóa.

Tương tự như việc thực hiện self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Tham số

  • text (str, list[str] hoặc list[int]) — Chuỗi đầu tiên cần được mã hóa. Đây có thể là một chuỗi, một danh sách các chuỗi (chuỗi đã được tách token bằng phương thức tokenize) hoặc một danh sách các số nguyên (id của các token đã tách bằng phương thức convert_tokens_to_ids).
  • text_pair (str, list[str] hoặc list[int], tùy chọn) — Chuỗi thứ hai tùy chọn để mã hóa. Đây có thể là một chuỗi, một danh sách các chuỗi (chuỗi đã được tách token bằng phương thức tokenize) hoặc một danh sách các số nguyên (id của các chuỗi đã được tách token bằng phương thức convert_tokens_to_ids).
  • add_special_tokens (bool, tùy chọn, mặc định là True) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàm PretrainedTokenizerBase.build_inputs_with_special_tokens bên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn thêm các token bos hoặc eos một cách tự động.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát padding. Chấp nhận các giá trị sau:
    • True hoặc 'longest': Lấp đầy (pad) đến độ dài của chuỗi dài nhất trong batch (hoặc không lấp đầy nếu chỉ cung cấp một chuỗi duy nhất).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặ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.
    • False hoặ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).
  • truncation (bool, str hoặc TruncationStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát việc cắt ngắn. Chấp nhận các giá trị sau:
    • True hoặc 'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa chấp nhận được của mô hình nếu tham số đó không được cung cấp. Thao tác này sẽ cắt ngắn theo từng token, loại bỏ một token từ chuỗi dài nhất trong cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi đầu tiên của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_second': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ 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. Thao tác này chỉ cắt ngắn chuỗi thứ hai của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • False hoặc 'do_not_truncate' (mặc định): Không cắt bớt (tức là có thể xuất ra batch với độ dài chuỗi lớn hơn kích thước đầu vào tối đa cho phép của mô hình).
  • max_length (int, tuỳ chọn) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ (truncation/padding).

    Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.

  • stride (int, tùy chọn, mặc định là 0) — Nếu được đặt thành một số cùng với max_length, các token tràn ra được trả về khi return_overflowing_tokens=True sẽ chứa một số token từ cuối của chuỗi bị cắt ngắn được trả về để tạo ra một phần chồng lấn giữa các chuỗi bị cắt ngắn và các chuỗi tràn ra. Giá trị của đối số này xác định số lượng token chồng lấn.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một bội số của giá trị được cung cấp. Yêu cầu padding phải được kích hoạt. Đ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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • return_tensors (str hoặ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ượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • **kwargs — Được truyền đến phương thức .tokenize().

Trả về

list[int], torch.Tensor hoặc np.ndarray

Các id đã được token hóa của văn bản.

Chuyển đổi một chuỗi thành một dãy các id (số nguyên), sử dụng tokenizer và từ điển.

Tương đương với việc thực hiện self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Tham số

  • repo_id (str) — Tên của kho mà bạn muốn đẩy tokenizer của mình lên. Nó nên chứa tên tổ chức của bạn khi đẩy lên một tổ chức cụ thể.
  • commit_message (str, tùy chọn) — Thông điệp để commit khi đẩy. Mặc định là "Upload tokenizer".
  • commit_description (str, tùy chọn) — Mô tả của commit sẽ được tạo
  • private (bool, optional) — Xác định có làm cho kho (repo) ở chế độ riêng tư hay không. Nếu là None (mặc định), kho sẽ ở chế độ công khai trừ khi mặc định của tổ chức là riêng tư. Giá trị này bị bỏ qua nếu kho đã tồn tại.
  • token (bool hoặc str, tùy chọn) — Token được sử dụng làm HTTP bearer authorization cho các tệp từ xa. Nếu True (mặc định), sẽ sử dụng token được tạo ra khi chạy hf auth login (được lưu trong ~/.huggingface).
  • revision (str, tùy chọn) — Nhánh để đẩy các tệp đã tải lên.
  • create_pr (bool, tùy chọn, mặc định là False) — Có tạo PR với các tệp đã tải lên hay commit trực tiếp hay không.
  • max_shard_size (int hoặc str, tùy chọn, mặc định là "50GB") — Chỉ áp dụng cho các model. Kích thước tối đa của một checkpoint trước khi được chia shard. Các checkpoint sau khi chia shard sẽ có kích thước nhỏ hơn giá trị này. Nếu được biểu diễn dưới dạng chuỗi, cần là các chữ số theo sau bởi một đơn vị (ví dụ "5MB").
  • tags (list[str], tùy chọn) — Danh sách các thẻ để đẩy lên Hub.

Tải các tệp tokenizer lên 🤗 Model Hub.

Ví dụ:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Xây dựng backend tokenizers.Tokenizer từ các tệp phân tích chuỗi có sẵn (tokenizer.json, mô hình sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Trả về

dict[str, int]

Các token được thêm vào.

Trả về các token đã thêm trong từ vựng dưới dạng từ điển ánh xạ từ token sang chỉ số.

số_token_đặc_biệu_cần_thêm

< >

( pair: bool = False ) → int

Tham số

  • pair (bool, tuỳ chọn, mặc định là False) — Liệu số lượng token được thêm vào có nên được tính trong trường hợp của một cặp chuỗi hay một chuỗi đơn hay không.

Trả về

int

Số lượng token đặc biệt được thêm vào các chuỗi.

Trả về số lượng token được thêm vào khi mã hóa một chuỗi với các token đặc biệt.

Điều này mã hóa một đầu vào giả và kiểm tra số lượng token được thêm vào, do đó không hiệu quả. Không đặt điều này bên trong vòng lặp huấn luyện của bạn.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Tham số

  • save_format (str, tùy chọn) — "mistral" để lưu dưới dạng tekken.json bản địa bằng cách sao chép tệp gốc (yêu cầu tệp từ vựng tekken gốc phải khả dụng). Tên sẽ được chuẩn hóa thành tekken.json khi lưu, và tokenizer được khởi tạo vẫn phải khớp chính xác với nó. "hf" hoặc None cho định dạng HuggingFace mặc định.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa bổ sung được truyền đến phương thức push_to_hub().

Trả về

Một tuple của str

Các tệp đã được lưu.

Lưu trạng thái tokenizer đầy đủ.

Mở rộng save_pretrained() với hỗ trợ save_format, dành cho các tokenizer được chuyển đổi từ tệp từ điển gốc (ví dụ: tekken.json của Mistral). Xem phương thức cơ sở để biết về legacy_format, filename_prefix và push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Tham số

  • padding_strategy (PaddingStrategy) — Loại padding sẽ được áp dụng cho đầu vào
  • truncation_strategy (TruncationStrategy) — Loại cắt ngắn sẽ được áp dụng cho đầu vào
  • max_length (int) — Kích thước tối đa của một chuỗi.
  • stride (int) — Bước nhảy (stride) được sử dụng khi xử lý tràn (overflow).
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một 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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.

Định nghĩa các chiến lược cắt ngắn và đệm cho bộ phân từ nhanh (được cung cấp bởi thư viện HuggingFace tokenizers) và khôi phục cài đặt của bộ phân từ sau đó.

Tokenizer được cung cấp không có chiến lược padding / truncation trước phần được quản lý. Nếu tokenizer của bạn đã thiết lập chiến lược padding / truncation trước đó, chiến lược này sẽ được đặt lại về không có padding / truncation khi thoát khỏi phần được quản lý.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Tham số

  • text_iterator (generator của list[str]) — Tập dữ liệu huấn luyện. Nên là một generator của các batch văn bản, ví dụ một list của các list văn bản nếu bạn có toàn bộ dữ liệu trong bộ nhớ.
  • vocab_size (int) — Kích thước của bảng từ vựng mà bạn muốn cho bộ phân từ của mình.
  • length (int, tùy chọn) — Tổng số chuỗi trong bộ lặp. Giá trị này được dùng để theo dõi tiến độ một cách có ý nghĩa
  • new_special_tokens (list of str or AddedToken, tuỳ chọn) — Danh sách các token đặc biệt mới cần thêm vào tokenizer bạn đang huấn luyện.
  • special_tokens_map (dict[str, str], tùy chọn) — Nếu bạn muốn đổi tên một số token đặc biệt mà tokenizer này sử dụng, hãy truyền vào một ánh xạ từ tên token đặc biệt cũ sang tên token đặc biệt mới trong tham số này.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa bổ sung được truyền cho trainer từ thư viện 🤗 Tokenizers.

Một tokenizer mới cùng loại với tokenizer gốc, được huấn luyện trên text_iterator.

Đào tạo một tokenizer trên một tập dữ liệu mới với các cài đặt mặc định (về các token đặc biệt hoặc pipeline phân tách token) giống như tokenizer hiện tại.

update_post_processor

< >

( )

Cập nhật bộ xử lý hậu xử lý (post processor) bên dưới với bos_token và eos_token hiện tại.

PythonBackend

lớp transformers.PythonBackend

< >

( **kwargs )

Tham số

  • model_max_length (int, tùy chọn) — Độ dài tối đa (tính bằng số token) cho các đầu vào của mô hình transformer. Khi tokenizer được tải bằng from_pretrained(), giá trị này sẽ được đặt thành giá trị được lưu cho mô hình liên quan trong max_model_input_sizes (xem ở trên). Nếu không có giá trị nào được cung cấp, mặc định sẽ là VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • truncation_side (str, tùy chọn) — Bên mà mô hình cần áp dụng cắt bớt. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • chat_template (str, tùy chọn) — Chuỗi mẫu Jinja sẽ được dùng để định dạng các danh sách tin nhắn chat. Xem https://huggingface.co/docs/transformers/chat_templating để biết mô tả đầy đủ.
  • model_input_names (list[string], tùy chọn) — Danh sách các đầu vào được chấp nhận bởi bước truyền trực tiếp (forward pass) của mô hình (ví dụ "token_type_ids" hoặc "attention_mask"). Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • bos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho đầu câu.
  • eos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho kết thúc của một câu.
  • unk_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token ngoài từ vựng.
  • sep_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt dùng để phân tách hai câu khác nhau trong cùng một đầu vào (ví dụ được BERT sử dụng).
  • pad_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt được sử dụng để làm cho các mảng token có cùng kích thước nhằm phục vụ mục đích tạo batch. Sau đó, nó sẽ bị bỏ qua bởi các cơ chế chú ý (attention) hoặc quá trình tính toán loss.
  • cls_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho lớp của đầu vào (ví dụ được sử dụng bởi BERT).
  • mask_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token bị che (được sử dụng bởi các mục tiêu tiền huấn luyện mô hình ngôn ngữ có che, như BERT). Sẽ được liên kết với self.mask_token và self.mask_token_id.
  • extra_special_tokens (list of str hoặc tokenizers.AddedToken, optional) — Một danh sách các token đặc biệt bổ sung dành riêng cho model. Thêm chúng vào đây để đảm bảo chúng bị bỏ qua khi giải mã với skip_special_tokens được đặt thành True. Nếu chúng không thuộc từ vựng, chúng sẽ được thêm vào cuối từ vựng.
  • split_special_tokens (bool, tùy chọn, mặc định là False) — Xác định xem các token đặc biệt có nên được tách ra trong quá trình tokenization hay không. Việc truyền tham số này sẽ ảnh hưởng đến trạng thái nội bộ của tokenizer. Hành vi mặc định là không tách các token đặc biệt. Điều này có nghĩa là nếu <s> là bos_token, thì tokenizer.tokenize("<s>") = ['<s>]. Ngược lại, nếu split_special_tokens=True, thì tokenizer.tokenize("<s>") sẽ trả về ['<','s', '>'].

Lớp cơ sở cho tất cả các tokenizer chậm.

Kế thừa từ PreTrainedTokenizerBase.

Xử lý tất cả các phương thức dùng chung cho việc phân tách token và các token đặc biệt, cũng như các phương thức tải xuống/đặt vào bộ nhớ đệm/tải các bộ phân tách token được huấn luyện trước, cũng như thêm token vào từ vựng.

Lớp này cũng chứa các token được thêm vào theo cách thống nhất trên tất cả các tokenizer, nhờ đó chúng ta không cần phải xử lý các phương pháp bổ sung từ vựng cụ thể của các cấu trúc từ điển cơ bản khác nhau (BPE, sentencepiece…).

Thuộc tính lớp (được ghi đè bởi các lớp kế thừa)

  • vocab_files_names (dict[str, str]) — Một từ điển có các khóa là tên tham số __init__ của từng tệp từ vựng mà mô hình yêu cầu, và các giá trị tương ứng là tên tệp để lưu tệp liên quan (chuỗi).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Một từ điển của các từ điển, trong đó các khóa cấp cao là tên từ khóa __init__ của từng tệp từ vựng cần thiết cho mô hình, các khóa cấp thấp là short-cut-names của các mô hình được huấn luyện trước, với các giá trị liên quan là url của tệp từ vựng được huấn luyện trước tương ứng.
  • model_input_names (list[str]) — Danh sách các đầu vào được kỳ vọng trong bước truyền thẳng (forward pass) của mô hình.
  • padding_side (str) — Giá trị mặc định cho phía mà mô hình cần được áp dụng padding. Phải là 'right' hoặc 'left'.
  • truncation_side (str) — Giá trị mặc định cho phía mà mô hình cần áp dụng cắt bớt. Phải là 'right' hoặc 'left'.

build_inputs_with_special_tokens

< >

( 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 các ID đầu vào 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 bằng cách thêm các token đặc biệt.

Phương pháp này xây dựng động các đầu vào dựa trên special_tokens_pattern của tokenizer:

  • "none": Không có token đặc biệt
  • "cls_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] hoặc seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 hoặc [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] hoặc [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (tiền tố/hậu tố tùy chỉnh được lưu trên tokenizer)

create_token_type_ids_from_sequences

< >

( 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.
  • 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]

ID loại token theo mẫu được cấu hình.

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.

Phương pháp này xây dựng động các ID loại token dựa trên các thuộc tính cấu hình của tokenizer:

  • token_type_ids_pattern: Mẫu cần sử dụng (“all_zeros” hoặc “bert_style”)
  • token_type_ids_include_special_tokens: Có tính các token đặc biệt trong tính toán độ dài hay không

Ví dụ:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Trả về

dict[str, int]

Các token được thêm vào.

Trả về các token đã thêm trong từ vựng dưới dạng từ điển ánh xạ từ token sang chỉ số. Kết quả có thể khác so với lệnh gọi nhanh vì hiện tại chúng ta luôn thêm các token ngay cả khi chúng đã có trong từ vựng. Đây là điều cần thay đổi.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Tham số

  • token_ids_0 (list[int]) — Danh sách các id của chuỗi đầu tiên.
  • token_ids_1 (list[int], tùy chọn) — Danh sách các id của chuỗi thứ hai.
  • 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ề

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 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 các phương thức prepare_for_model hoặc encode_plus của tokenizer.

Phương pháp này xây dựng động mặt nạ các token đặc biệt dựa trên special_tokens_pattern của tokenizer:

  • "none": Không có token đặc biệt (mặc định, trả về tất cả 0)
  • "cls_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] hoặc seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 hoặc [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] hoặc [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] hoặc [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

số_token_đặc_biệu_cần_thêm

< >

( pair: bool = False ) → int

Tham số

  • pair (bool, tuỳ chọn, mặc định là False) — Liệu số lượng token được thêm vào có nên được tính trong trường hợp của một cặp chuỗi hay một chuỗi đơn hay không.

Trả về

int

Số lượng token đặc biệt được thêm vào các chuỗi.

Trả về số lượng token được thêm vào khi mã hóa một chuỗi với các token đặc biệt.

Điều này mã hóa một đầu vào giả và kiểm tra số lượng token được thêm vào, do đó không hiệu quả. Không đặt điều này bên trong vòng lặp huấn luyện của bạn.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Tham số

  • ids — Các id đầu vào đã được token hóa của chuỗi đầu tiên.
  • pair_ids — Các id đầu vào đã được token hóa của chuỗi thứ hai (tùy chọn).

Chuẩn bị một chuỗi các id đầu vào để có thể được sử dụng bởi mô hình. Thêm các token đặc biệt, cắt ngắn và đệm.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Tham số

  • text (str) — Văn bản cần chuẩn bị.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa để sử dụng cho việc phân tách token.

Trả về

tuple[str, dict[str, Any]]

Văn bản đã được chuẩn bị và các kwargs chưa được sử dụng.

Thực hiện các phép biến đổi cần thiết trước khi phân tách token.

Phương thức này nên lấy các đối số ra khỏi kwargs và trả về kwargs còn lại. Chúng tôi kiểm tra kwargs vào cuối quá trình mã hóa để đảm bảo tất cả các đối số đã được sử dụng.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Tham số

  • save_directory (str) — Thư mục để lưu trữ từ vựng.
  • filename_prefix (str, tùy chọn) — Một tiền tố tùy chọn để thêm vào tên của các tệp được lưu.

Trả về

tuple[str, ...]

Đường dẫn đến các tệp đã lưu, hoặc bộ rỗng nếu không có tệp nào được lưu.

Thực hiện mặc định cho các mẫu lưu trữ từ vựng phổ biến. Lưu self.encoder/self.vocab dưới dạng JSON, tùy chọn kèm self.bpe_ranks dưới dạng merges. Trả về bộ rỗng nếu không có từ vựng.

Ghi đè phương thức này nếu tokenizer của bạn cần logic lưu trữ tùy chỉnh (ví dụ: mô hình SentencePiece, nhiều tệp từ vựng, hoặc các định dạng tệp đặc biệt).

tokenize

< >

( text: str**kwargs )

Tham số

  • text — Chuỗi cần được mã hóa.
  • **kwargs — Được truyền đến phương pháp tiền xử lý prepare_for_tokenization cụ thể của mô hình.

Chuyển đổi một chuỗi thành một chuỗi các token, sử dụng tokenizer.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Cắt ngắn các chuỗi theo chiến lược được chỉ định.

TokenizersBackend

lớp transformers.TokenizersBackend

< >

( *args**kwargs )

Tham số

  • model_max_length (int, tùy chọn) — Độ dài tối đa (tính bằng số token) cho các đầu vào của mô hình transformer. Khi tokenizer được tải bằng from_pretrained(), giá trị này sẽ được đặt thành giá trị được lưu cho mô hình liên quan trong max_model_input_sizes (xem ở trên). Nếu không có giá trị nào được cung cấp, mặc định sẽ là VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • truncation_side (str, tùy chọn) — Bên mà mô hình cần áp dụng cắt bớt. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • chat_template (str, tùy chọn) — Chuỗi mẫu Jinja sẽ được dùng để định dạng các danh sách tin nhắn chat. Xem https://huggingface.co/docs/transformers/chat_templating để biết mô tả đầy đủ.
  • model_input_names (list[string], tùy chọn) — Danh sách các đầu vào được chấp nhận bởi bước truyền trực tiếp (forward pass) của mô hình (ví dụ "token_type_ids" hoặc "attention_mask"). Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • bos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho đầu câu.
  • eos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho kết thúc của một câu.
  • unk_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token ngoài từ vựng.
  • sep_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt dùng để phân tách hai câu khác nhau trong cùng một đầu vào (ví dụ được BERT sử dụng).
  • pad_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt được sử dụng để làm cho các mảng token có cùng kích thước nhằm phục vụ mục đích tạo batch. Sau đó, nó sẽ bị bỏ qua bởi các cơ chế chú ý (attention) hoặc quá trình tính toán loss.
  • cls_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho lớp của đầu vào (ví dụ được sử dụng bởi BERT).
  • mask_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token bị che (được sử dụng bởi các mục tiêu tiền huấn luyện mô hình ngôn ngữ có che, như BERT). Sẽ được liên kết với self.mask_token và self.mask_token_id.
  • extra_special_tokens (list of str hoặc tokenizers.AddedToken, optional) — Một danh sách các token đặc biệt bổ sung dành riêng cho model. Thêm chúng vào đây để đảm bảo chúng bị bỏ qua khi giải mã với skip_special_tokens được đặt thành True. Nếu chúng không thuộc từ vựng, chúng sẽ được thêm vào cuối từ vựng.
  • split_special_tokens (bool, tùy chọn, mặc định là False) — Xác định xem các token đặc biệt có nên được tách ra trong quá trình tokenization hay không. Việc truyền tham số này sẽ ảnh hưởng đến trạng thái nội bộ của tokenizer. Hành vi mặc định là không tách các token đặc biệt. Điều này có nghĩa là nếu <s> là bos_token, thì tokenizer.tokenize("<s>") = ['<s>]. Ngược lại, nếu split_special_tokens=True, thì tokenizer.tokenize("<s>") sẽ trả về ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Một đối tượng tokenizers.Tokenizer từ 🤗 tokenizers để khởi tạo. Xem Sử dụng tokenizers từ 🤗 tokenizers để biết thêm thông tin.
  • tokenizer_file (str) — Đường dẫn đến tệp JSON cục bộ đại diện cho một đối tượng tokenizers.Tokenizer đã được serialize trước đó từ 🤗 tokenizers.

Lớp cơ sở cho tất cả các bộ phân từ nhanh (bao bọc thư viện tokenizers của HuggingFace).

Kế thừa từ PreTrainedTokenizerBase.

Xử lý tất cả các phương thức dùng chung cho việc phân tách token và các token đặc biệt, cũng như các phương thức để tải xuống/đặt vào bộ nhớ đệm/tải các bộ phân tách token được huấn luyện trước, cũng như thêm token vào từ vựng.

Lớp này cũng chứa các token được thêm vào theo cách thống nhất trên tất cả các tokenizer, nhờ đó chúng ta không cần phải xử lý các phương pháp bổ sung từ vựng cụ thể của các cấu trúc từ điển cơ bản khác nhau (BPE, sentencepiece…).

Thuộc tính lớp (được ghi đè bởi các lớp kế thừa)

  • vocab_files_names (dict[str, str]) — Một từ điển có các khóa là tên tham số __init__ của từng tệp từ vựng mà mô hình yêu cầu, và các giá trị tương ứng là tên tệp để lưu tệp liên quan (chuỗi).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Một từ điển của các từ điển, trong đó các khóa cấp cao là tên từ khóa __init__ của từng tệp từ vựng cần thiết cho mô hình, các khóa cấp thấp là short-cut-names của các mô hình được huấn luyện trước, với các giá trị liên quan là url của tệp từ vựng được huấn luyện trước tương ứng.
  • model_input_names (list[str]) — Danh sách các đầu vào được kỳ vọng trong bước truyền thẳng (forward pass) của mô hình.
  • padding_side (str) — Giá trị mặc định cho phía mà mô hình cần được áp dụng padding. Phải là 'right' hoặc 'left'.
  • truncation_side (str) — Giá trị mặc định cho phía mà mô hình cần áp dụng cắt bớt. Phải là 'right' hoặc 'left'.

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Xây dựng backend tokenizers.Tokenizer từ các tệp phân tích chuỗi có sẵn (tokenizer.json, mô hình sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Trả về

dict[str, int]

Các token được thêm vào.

Trả về các token đã thêm trong từ vựng dưới dạng từ điển ánh xạ từ token sang chỉ số.

số_token_đặc_biệu_cần_thêm

< >

( pair: bool = False ) → int

Tham số

  • pair (bool, tuỳ chọn, mặc định là False) — Liệu số lượng token được thêm vào có nên được tính trong trường hợp của một cặp chuỗi hay một chuỗi đơn hay không.

Trả về

int

Số lượng token đặc biệt được thêm vào các chuỗi.

Trả về số lượng token được thêm vào khi mã hóa một chuỗi với các token đặc biệt.

Điều này mã hóa một đầu vào giả và kiểm tra số lượng token được thêm vào, do đó không hiệu quả. Không đặt điều này bên trong vòng lặp huấn luyện của bạn.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Tham số

  • save_format (str, tùy chọn) — "mistral" để lưu dưới dạng tekken.json bản địa bằng cách sao chép tệp gốc (yêu cầu tệp từ vựng tekken gốc phải khả dụng). Tên sẽ được chuẩn hóa thành tekken.json khi lưu, và tokenizer được khởi tạo vẫn phải khớp chính xác với nó. "hf" hoặc None cho định dạng HuggingFace mặc định.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa bổ sung được truyền đến phương thức push_to_hub().

Trả về

Một tuple của str

Các tệp đã được lưu.

Lưu trạng thái tokenizer đầy đủ.

Mở rộng save_pretrained() với hỗ trợ save_format, dành cho các tokenizer được chuyển đổi từ tệp từ điển gốc (ví dụ: tekken.json của Mistral). Xem phương thức cơ sở để biết về legacy_format, filename_prefix và push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Tham số

  • padding_strategy (PaddingStrategy) — Loại padding sẽ được áp dụng cho đầu vào
  • truncation_strategy (TruncationStrategy) — Loại cắt ngắn sẽ được áp dụng cho đầu vào
  • max_length (int) — Kích thước tối đa của một chuỗi.
  • stride (int) — Bước nhảy (stride) được sử dụng khi xử lý tràn (overflow).
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một 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).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.

Định nghĩa các chiến lược cắt ngắn và đệm cho bộ phân từ nhanh (được cung cấp bởi thư viện HuggingFace tokenizers) và khôi phục cài đặt của bộ phân từ sau đó.

Tokenizer được cung cấp không có chiến lược padding / truncation trước phần được quản lý. Nếu tokenizer của bạn đã thiết lập chiến lược padding / truncation trước đó, chiến lược này sẽ được đặt lại về không có padding / truncation khi thoát khỏi phần được quản lý.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Tham số

  • text_iterator (generator của list[str]) — Tập dữ liệu huấn luyện. Nên là một generator của các batch văn bản, ví dụ một list của các list văn bản nếu bạn có toàn bộ dữ liệu trong bộ nhớ.
  • vocab_size (int) — Kích thước của bảng từ vựng mà bạn muốn cho bộ phân từ của mình.
  • length (int, tùy chọn) — Tổng số chuỗi trong bộ lặp. Giá trị này được dùng để theo dõi tiến độ một cách có ý nghĩa
  • new_special_tokens (list of str or AddedToken, tuỳ chọn) — Danh sách các token đặc biệt mới cần thêm vào tokenizer bạn đang huấn luyện.
  • special_tokens_map (dict[str, str], tùy chọn) — Nếu bạn muốn đổi tên một số token đặc biệt mà tokenizer này sử dụng, hãy truyền vào một ánh xạ từ tên token đặc biệt cũ sang tên token đặc biệt mới trong tham số này.
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa bổ sung được truyền cho trainer từ thư viện 🤗 Tokenizers.

Một tokenizer mới cùng loại với tokenizer gốc, được huấn luyện trên text_iterator.

Đào tạo một tokenizer trên một tập dữ liệu mới với các cài đặt mặc định (về các token đặc biệt hoặc pipeline phân tách token) giống như tokenizer hiện tại.

update_post_processor

< >

( )

Cập nhật bộ xử lý hậu xử lý (post processor) bên dưới với bos_token và eos_token hiện tại.

SentencePieceBackend

lớp transformers.SentencePieceBackend

< >

( **kwargs )

Tham số

  • model_max_length (int, tùy chọn) — Độ dài tối đa (tính bằng số token) cho các đầu vào của mô hình transformer. Khi tokenizer được tải bằng from_pretrained(), giá trị này sẽ được đặt thành giá trị được lưu cho mô hình liên quan trong max_model_input_sizes (xem ở trên). Nếu không có giá trị nào được cung cấp, mặc định sẽ là VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • truncation_side (str, tùy chọn) — Bên mà mô hình cần áp dụng cắt bớt. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • chat_template (str, tùy chọn) — Chuỗi mẫu Jinja sẽ được dùng để định dạng các danh sách tin nhắn chat. Xem https://huggingface.co/docs/transformers/chat_templating để biết mô tả đầy đủ.
  • model_input_names (list[string], tùy chọn) — Danh sách các đầu vào được chấp nhận bởi bước truyền trực tiếp (forward pass) của mô hình (ví dụ "token_type_ids" hoặc "attention_mask"). Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • bos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho đầu câu.
  • eos_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho kết thúc của một câu.
  • unk_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token ngoài từ vựng.
  • sep_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt dùng để phân tách hai câu khác nhau trong cùng một đầu vào (ví dụ được BERT sử dụng).
  • pad_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt được sử dụng để làm cho các mảng token có cùng kích thước nhằm phục vụ mục đích tạo batch. Sau đó, nó sẽ bị bỏ qua bởi các cơ chế chú ý (attention) hoặc quá trình tính toán loss.
  • cls_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho lớp của đầu vào (ví dụ được sử dụng bởi BERT).
  • mask_token (str hoặc tokenizers.AddedToken, tùy chọn) — Một token đặc biệt đại diện cho một token bị che (được sử dụng bởi các mục tiêu tiền huấn luyện mô hình ngôn ngữ có che, như BERT). Sẽ được liên kết với self.mask_token và self.mask_token_id.
  • extra_special_tokens (list of str hoặc tokenizers.AddedToken, optional) — Một danh sách các token đặc biệt bổ sung dành riêng cho model. Thêm chúng vào đây để đảm bảo chúng bị bỏ qua khi giải mã với skip_special_tokens được đặt thành True. Nếu chúng không thuộc từ vựng, chúng sẽ được thêm vào cuối từ vựng.
  • split_special_tokens (bool, tùy chọn, mặc định là False) — Xác định xem các token đặc biệt có nên được tách ra trong quá trình tokenization hay không. Việc truyền tham số này sẽ ảnh hưởng đến trạng thái nội bộ của tokenizer. Hành vi mặc định là không tách các token đặc biệt. Điều này có nghĩa là nếu <s> là bos_token, thì tokenizer.tokenize("<s>") = ['<s>]. Ngược lại, nếu split_special_tokens=True, thì tokenizer.tokenize("<s>") sẽ trả về ['<','s', '>'].

Lớp cơ sở cho các bộ phân từ dựa trên SentencePiece, được nạp từ các tệp sentencepiece.model.

Kế thừa từ PreTrainedTokenizer.

Xử lý tất cả các phương thức dùng chung cho việc phân tách token và các token đặc biệt, cũng như các phương thức tải xuống/đặt vào bộ nhớ đệm/tải các bộ phân tách token được huấn luyện trước, cũng như thêm token vào từ vựng.

Lớp này cũng chứa các token được thêm vào theo cách thống nhất trên tất cả các tokenizer, nhờ đó chúng ta không cần phải xử lý các phương pháp bổ sung từ vựng cụ thể của các cấu trúc từ điển cơ bản khác nhau (BPE, sentencepiece…).

Thuộc tính lớp (được ghi đè bởi các lớp kế thừa)

  • vocab_files_names (dict[str, str]) — Một từ điển có các khóa là tên tham số __init__ của từng tệp từ vựng mà mô hình yêu cầu, và các giá trị tương ứng là tên tệp để lưu tệp liên quan (chuỗi).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Một từ điển của các từ điển, trong đó các khóa cấp cao là tên từ khóa __init__ của từng tệp từ vựng cần thiết cho mô hình, các khóa cấp thấp là short-cut-names của các mô hình được huấn luyện trước, với các giá trị liên quan là url của tệp từ vựng được huấn luyện trước tương ứng.
  • model_input_names (list[str]) — Danh sách các đầu vào được kỳ vọng trong bước truyền thẳng (forward pass) của mô hình.
  • padding_side (str) — Giá trị mặc định cho phía mà mô hình cần được áp dụng padding. Phải là 'right' hoặc 'left'.
  • truncation_side (str) — Giá trị mặc định cho phía mà mô hình cần áp dụng cắt bớt. Phải là 'right' hoặc 'left'.

convert_tokens_to_string

< >

( tokens: list )

Chuyển đổi một chuỗi các token (chuỗi ký tự) trong một chuỗi duy nhất.

get_vocab

< >

( )

Trả về từ điển (vocab) dưới dạng dict

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Tham số

  • save_directory (str) — Thư mục để lưu trữ từ vựng.
  • filename_prefix (str, tùy chọn) — Một tiền tố tùy chọn để thêm vào tên của các tệp được lưu.

Trả về

tuple(str)

Đường dẫn đến các tệp đã lưu.

Lưu từ vựng sentencepiece (sao chép tệp gốc) vào một thư mục.

BatchEncoding

lớp transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

Tham số

  • data (dict, tùy chọn) — Từ điển chứa các danh sách/mảng/tensor được trả về bởi các phương thức __call__/encode_plus/batch_encode_plus (‘input_ids’, ‘attention_mask’, v.v.).
  • encoding (tokenizers.Encoding hoặc Sequence[tokenizers.Encoding], không bắt buộc) — Nếu tokenizer là fast tokenizer có xuất ra thêm thông tin như ánh xạ từ không gian từ/ký tự sang không gian token thì instance tokenizers.Encoding hoặc danh sách các instance (cho các batch) sẽ chứa thông tin này.
  • tensor_type (Union[None, str, TensorType], tùy chọn) — Bạn có thể cung cấp tensor_type tại đây để chuyển đổi các danh sách số nguyên trong Tensor PyTorch/Numpy khi khởi tạo.
  • prepend_batch_axis (bool, tùy chọn, mặc định là False) — Có thêm một trục batch khi chuyển đổi sang tensor hay không (xem tensor_type ở trên). Lưu ý rằng tham số này chỉ có hiệu lực nếu tham số tensor_type được đặt, ngược lại thì không có hiệu lực.
  • n_sequences (Optional[int], tùy chọn) — Số lượng chuỗi đầu vào được biểu diễn bởi mỗi mã hóa (None cho trường hợp không xác định, 1 cho một chuỗi đơn và 2 cho một cặp chuỗi).

Chứa kết quả đầu ra của call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus và ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (tokens, attention_masks, v.v.).

Lớp này được kế thừa từ một từ điển python và có thể được sử dụng như một từ điển. Ngoài ra, lớp này còn cung cấp các phương tiện tiện ích để ánh xạ từ không gian từ/ký tự sang không gian token.

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Tham số

  • batch_or_char_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của ký tự trong chuỗi
  • char_index (int, tùy chọn) — Nếu một chỉ số batch được cung cấp trong batch_or_char_index, đây có thể là chỉ số của ký tự trong chuỗi.
  • sequence_index (int, tuỳ chọn, mặc định là 0) — Nếu một cặp chuỗi được mã hóa trong batch, tham số này có thể được dùng để chỉ định chuỗi nào trong cặp (0 hoặc 1) mà chỉ số ký tự được cung cấp thuộc về.

Trả về

int

Chỉ số của token, hoặc None nếu chỉ số ký tự tham chiếu đến một token chỉ chứa khoảng trắng và khoảng trắng đã được cắt bỏ với trim_offsets=True.

Lấy chỉ số của token trong đầu ra đã mã hóa, bao gồm một ký tự trong chuỗi gốc, cho một chuỗi của lô.

Có thể được gọi như sau:

  • self.char_to_token(char_index) nếu kích thước lô là 1
  • self.char_to_token(batch_index, char_index) nếu kích thước lô lớn hơn hoặc bằng 1

Phương pháp này đặc biệt phù hợp khi các chuỗi đầu vào được cung cấp dưới dạng các chuỗi đã được token hóa sẵn (tức là các từ được định nghĩa bởi người dùng). Trong trường hợp này, nó cho phép dễ dàng liên kết các token đã mã hóa với các từ đã được token hóa được cung cấp.

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Tham số

  • batch_or_char_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của ký tự trong chuỗi gốc.
  • char_index (int, tùy chọn) — Nếu một chỉ số batch được cung cấp trong batch_or_char_index, đây có thể là chỉ số của ký tự trong chuỗi gốc.
  • sequence_index (int, tuỳ chọn, mặc định là 0) — Nếu một cặp chuỗi được mã hóa trong batch, tham số này có thể được dùng để chỉ định chuỗi nào trong cặp (0 hoặc 1) mà chỉ số ký tự được cung cấp thuộc về.

Trả về

int

Chỉ số của từ chứa ký tự.

Lấy từ trong chuỗi gốc tương ứng với một ký tự trong chuỗi gốc của một chuỗi trong lô.

Có thể được gọi như sau:

  • self.char_to_word(char_index) nếu kích thước lô là 1
  • self.char_to_word(batch_index, char_index) nếu kích thước lô lớn hơn 1

Phương pháp này đặc biệt phù hợp khi các chuỗi đầu vào được cung cấp dưới dạng các chuỗi đã được token hóa sẵn (tức là các từ được định nghĩa bởi người dùng). Trong trường hợp này, nó cho phép dễ dàng liên kết các token đã mã hóa với các từ đã được token hóa được cung cấp.

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

Tham số

  • tensor_type (str hoặc TensorType, tuỳ chọn) — Loại tensor cần sử dụng. Nếu là str, phải là một trong các giá trị của enum TensorType. Nếu là None, sẽ không thực hiện thay đổi nào.
  • prepend_batch_axis (bool, tùy chọn, mặc định là False) — Có thêm chiều batch trong quá trình chuyển đổi hay không.

Chuyển đổi nội dung bên trong thành các tensor.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Tham số

  • batch_index (int, tuỳ chọn, mặc định là 0) — Chỉ số để truy cập trong batch.

Trả về

list[Optional[int]]

Một danh sách chỉ định id của chuỗi tương ứng với mỗi token. Các token đặc biệt được thêm bởi tokenizer được ánh xạ tới None và các token khác được ánh xạ tới chỉ số của chuỗi tương ứng của chúng.

Trả về một danh sách ánh xạ các token đến id của câu gốc tương ứng:

  • None cho các token đặc biệt được thêm xung quanh hoặc giữa các chuỗi,
  • 0 cho các token tương ứng với các từ trong chuỗi thứ nhất,
  • 1 cho các token tương ứng với các từ trong chuỗi thứ hai khi một cặp chuỗi được mã hóa cùng nhau.

đến

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

Tham số

  • device (str hoặc torch.device hoặc int) — Thiết bị để đặt các tensor lên.
  • non_blocking (bool) — Xác định việc sao chép có được thực hiện bất đồng bộ hay không.

Trả về

BatchEncoding

Cùng một instance sau khi được sửa đổi.

Gửi tất cả các giá trị đến thiết bị bằng cách gọi v.to(device, non_blocking=non_blocking) (chỉ PyTorch).

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

Tham số

  • batch_or_token_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của token trong chuỗi.
  • token_index (int, tùy chọn) — Nếu một chỉ số batch được cung cấp trong batch_or_token_index, đây có thể là chỉ số của token hoặc các token trong chuỗi.

Trả về

CharSpan

Khoảng các ký tự trong chuỗi gốc, hoặc None, nếu token (ví dụ , ) không tương ứng với bất kỳ ký tự nào trong chuỗi gốc.

Lấy khoảng ký tự tương ứng với một token đã mã hóa trong một chuỗi của lô.

Các khoảng ký tự được trả về dưới dạng CharSpan với:

  • start — Chỉ số của ký tự đầu tiên trong chuỗi gốc liên quan đến token.
  • end — Chỉ số của ký tự ngay sau ký tự cuối cùng trong chuỗi gốc liên quan đến token.

Có thể được gọi như sau:

  • self.token_to_chars(token_index) nếu kích thước lô là 1
  • self.token_to_chars(batch_index, token_index) nếu kích thước batch lớn hơn hoặc bằng 1

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Tham số

  • batch_or_token_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của token trong chuỗi.
  • token_index (int, tùy chọn) — Nếu một chỉ số batch được cung cấp trong batch_or_token_index, đây có thể là chỉ số của token trong chuỗi.

Trả về

int

Chỉ số của chuỗi đầu vào chứa token (0 cho chuỗi đầu tiên hoặc 1 cho chuỗi thứ hai của một cặp).

Lấy chỉ số của chuỗi được đại diện bởi token cho trước. Trong trường hợp sử dụng chung, phương thức này trả về 0 cho một chuỗi đơn hoặc chuỗi đầu tiên của một cặp, và 1 cho chuỗi thứ hai của cặp

Có thể được gọi như sau:

  • self.token_to_sequence(token_index) nếu kích thước lô là 1
  • self.token_to_sequence(batch_index, token_index) nếu kích thước batch lớn hơn 1

Phương pháp này đặc biệt phù hợp khi các chuỗi đầu vào được cung cấp dưới dạng các chuỗi đã được token hóa sẵn (tức là các từ được định nghĩa bởi người dùng). Trong trường hợp này, nó cho phép dễ dàng liên kết các token đã mã hóa với các từ đã được token hóa được cung cấp.

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Tham số

  • batch_or_token_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của token trong chuỗi.
  • token_index (int, tùy chọn) — Nếu một chỉ số batch được cung cấp trong batch_or_token_index, đây có thể là chỉ số của token trong chuỗi.

Trả về

int

Chỉ số của từ trong chuỗi đầu vào.

Lấy chỉ số của từ tương ứng (tức là bao gồm) với một token đã mã hóa trong một chuỗi của batch.

Có thể được gọi như sau:

  • self.token_to_word(token_index) nếu kích thước lô là 1
  • self.token_to_word(batch_index, token_index) nếu kích thước batch lớn hơn 1

Phương pháp này đặc biệt phù hợp khi các chuỗi đầu vào được cung cấp dưới dạng các chuỗi đã được token hóa sẵn (tức là các từ được định nghĩa bởi người dùng). Trong trường hợp này, nó cho phép dễ dàng liên kết các token đã mã hóa với các từ đã được token hóa được cung cấp.

token

< >

( batch_index: int = 0 ) → list[str]

Tham số

  • batch_index (int, tuỳ chọn, mặc định là 0) — Chỉ số để truy cập trong batch.

Trả về

list[str]

Danh sách các token tại chỉ số đó.

Trả về danh sách các token (các phần con của chuỗi đầu vào sau khi tách từ/từ con và trước khi chuyển đổi thành chỉ số nguyên) tại một chỉ số batch cho trước (chỉ hoạt động với đầu ra của một bộ phân từ nhanh).

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Tham số

  • batch_index (int, tuỳ chọn, mặc định là 0) — Chỉ số để truy cập trong batch.

Trả về

list[Optional[int]]

Một danh sách chỉ ra từ tương ứng với mỗi token. Các token đặc biệt được thêm bởi tokenizer được ánh xạ tới None và các token khác được ánh xạ tới chỉ số của từ tương ứng của chúng (nhiều token sẽ được ánh xạ tới cùng một chỉ số từ nếu chúng là các phần của từ đó).

Trả về một danh sách ánh xạ các token đến từ thực tế của chúng trong câu ban đầu đối với một bộ phân từ nhanh.

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

Tham số

  • batch_or_word_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của từ trong chuỗi
  • word_index (int, tùy chọn) — Nếu một chỉ số lô được cung cấp trong batch_or_word_index, đây có thể là chỉ số của từ trong chuỗi.
  • sequence_index (int, tùy chọn, mặc định là 0) — Nếu một cặp chuỗi được mã hóa trong batch, tham số này có thể được dùng để chỉ định chuỗi nào trong cặp (0 hoặc 1) mà chỉ số từ được cung cấp thuộc về.

Trả về

CharSpan

Phạm vi của ký tự hoặc các ký tự liên quan trong chuỗi. CharSpan là một NamedTuple có:

  • start: chỉ số của ký tự đầu tiên liên quan đến từ trong chuỗi gốc
  • end: chỉ số của ký tự ngay sau ký tự cuối cùng liên quan đến từ trong chuỗi gốc

Lấy khoảng ký tự trong chuỗi gốc tương ứng với từ đã cho trong một chuỗi của lô.

Các khoảng ký tự được trả về dưới dạng CharSpan NamedTuple với:

  • start: chỉ số của ký tự đầu tiên trong chuỗi gốc
  • end: chỉ số của ký tự ngay sau ký tự cuối cùng trong chuỗi gốc

Có thể được gọi như sau:

  • self.word_to_chars(word_index) nếu kích thước lô là 1
  • self.word_to_chars(batch_index, word_index) nếu kích thước batch lớn hơn hoặc bằng 1

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

Tham số

  • batch_or_word_index (int) — Chỉ số của chuỗi trong batch. Nếu batch chỉ bao gồm một chuỗi, đây có thể là chỉ số của từ trong chuỗi.
  • word_index (int, tùy chọn) — Nếu một chỉ số lô được cung cấp trong batch_or_word_index, đây có thể là chỉ số của từ trong chuỗi.
  • sequence_index (int, tùy chọn, mặc định là 0) — Nếu một cặp chuỗi được mã hóa trong batch, tham số này có thể được dùng để chỉ định chuỗi nào trong cặp (0 hoặc 1) mà chỉ số từ được cung cấp thuộc về.

Trả về

(TokenSpan, tùy chọn)

Phạm vi các token trong chuỗi đã mã hóa. Trả về None nếu không có token nào tương ứng với từ. Điều này có thể xảy ra đặc biệt khi token là một token đặc biệt được sử dụng để định dạng quá trình token hóa. Ví dụ, khi chúng ta thêm một token lớp ở ngay đầu của quá trình token hóa.

Lấy khoảng token đã mã hóa tương ứng với một từ trong một chuỗi của lô.

Các khoảng token được trả về dưới dạng TokenSpan với:

  • start — Chỉ số của token đầu tiên.
  • end — Chỉ số của token tiếp theo sau token cuối cùng.

Có thể được gọi như sau:

  • self.word_to_tokens(word_index, sequence_index: int = 0) nếu kích thước lô là 1
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0) nếu kích thước lô lớn hơn hoặc bằng 1

Phương pháp này đặc biệt phù hợp khi các chuỗi đầu vào được cung cấp dưới dạng các chuỗi đã được token hóa sẵn (tức là các từ được định nghĩa bởi người dùng). Trong trường hợp này, nó cho phép dễ dàng liên kết các token đã mã hóa với các từ đã được token hóa được cung cấp.

Update on GitHub