Transformers documentation
GPT-Sw3
Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2022-12-12.
GPT-Sw3
Tổng quan
Mô hình GPT-Sw3 lần đầu được đề xuất trong Lessons Learned from GPT-SW3: Building the First Large-Scale Generative Language Model for Swedish của Ariel Ekgren, Amaru Cuba Gyllensten, Evangelia Gogoulou, Alice Heiman, Severine Verlinden, Joey Öhman, Fredrik Carlsson, Magnus Sahlgren.
Kể từ bài báo đầu tiên, các tác giả đã mở rộng công việc của mình và huấn luyện các mô hình mới trên các tập dữ liệu 1,2TB mới có tên là The Nordic Pile.
GPT-Sw3 là một bộ sưu tập các mô hình ngôn ngữ transformer chỉ có bộ giải mã (decoder-only) được huấn luyện trước, do AI Sweden phát triển cùng với RISE và WASP WARA for Media and Language. GPT-Sw3 được huấn luyện trên một tập dữ liệu chứa 320B token bằng tiếng Thụy Điển, tiếng Na Uy, tiếng Đan Mạch, tiếng Iceland, tiếng Anh và mã lập trình. Mô hình được huấn luyện trước bằng mục tiêu mô hình hóa ngôn ngữ nhân quả (causal language modeling - CLM) sử dụng cài đặt NeMo Megatron GPT.
Mô hình này được đóng góp bởi AI Sweden Models.
Ví dụ sử dụng
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-356m")
model = AutoModelForCausalLM.from_pretrained("AI-Sweden-Models/gpt-sw3-356m", device_map="auto")
input_ids = tokenizer("Träd är fina för att", return_tensors="pt").to(model.device)["input_ids"]
generated_token_ids = model.generate(inputs=input_ids, max_new_tokens=10, do_sample=True)[0]
print(tokenizer.decode(generated_token_ids))
Träd är fina för att de är färgstarka. Men ibland är det fintTài nguyên
- Hướng dẫn cho tác vụ phân loại văn bản
- Hướng dẫn cho tác vụ phân loại token
- Hướng dẫn tác vụ mô hình hóa ngôn ngữ nhân quả
Cài đặt sử dụng
GPT2Modelkết hợp vớiGPTSw3Tokenizercủa chúng tôi. Tham khảo tài liệu GPT2Model để xem tham chiếu API và các ví dụ.Lưu ý rằng sentencepiece là bắt buộc để sử dụng tokenizer của chúng tôi và có thể được cài đặt bằng
pip install transformers[sentencepiece]hoặcpip install sentencepiece
GPTSw3Tokenizer
lớp transformers.GPTSw3Tokenizer
< source >( vocab_filedo_lower_case = Falseremove_space = Falsekeep_accents = Falsepad_token = Noneunk_token = Noneeos_token = Nonebos_token = Nonesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )
Tham số
- vocab_file (
str) — SentencePiece file (thường có phần mở rộng .spm) chứa từ vựng cần thiết để khởi tạo một tokenizer. - do_lower_case (
bool, tùy chọn, mặc định làFalse) — Có chuyển đổi chữ thường cho đầu vào khi phân tách token hay không. - remove_space (
bool, tùy chọn, mặc định làFalse) — Có nên loại bỏ khoảng trắng thừa khi phân tách token (xóa các khoảng trắng dư thừa trước và sau chuỗi) hay không. - keep_accents (
bool, tùy chọn, mặc định làFalse) — Có giữ dấu khi phân tách token hay không. - pad_token (
str, tùy chọn) — Token được sử dụng để đệm, chẳng hạn khi xử lý các lô (batch) gồm các chuỗi có độ dài khác nhau. Nếu không được cung cấp, giá trị mặc định sẽ là ’’ hoặc ’ ’ tùy thuộc vào kích thước của mô hình. - unk_token (
str, tùy chọn) — Token không xác định. Token không có trong từ vựng sẽ không thể chuyển đổi thành ID và sẽ được gán thành token này thay thế. Nếu không được cung cấp, giá trị mặc định sẽ là ’‘. - eos_token (
str, tùy chọn) — Token kết thúc chuỗi được nhìn thấy trong quá trình tiền huấn luyện. Nếu không được cung cấp, giá trị mặc định sẽ là ’<|endoftext|>’ - bos_token (
str, tùy chọn) — Token bắt đầu chuỗi có thể được sử dụng cho các tác vụ downstream, không được nhìn thấy trong quá trình pretraining. Nếu không được cung cấp, giá trị mặc định sẽ là ’’ hoặc ’<|endoftext|>’, tùy thuộc vào kích thước của model. - sp_model_kwargs (
dict, tuỳ chọn) — Sẽ được truyền vàoSentencePieceProcessor.__init__()phương thức. bọc Python cho SentencePiece có thể được sử dụng, trong số nhiều mục đích khác, để thiết lập:-
enable_sampling: Bật chuẩn hóa từ con (subword regularization). -
nbest_size: Tham số lấy mẫu cho unigram. Không hợp lệ với BPE-Dropout.nbest_size = {0,1}: Không thực hiện lấy mẫu.nbest_size > 1: lấy mẫu từ các kết quả nbest_size.nbest_size < 0: giả định rằng nbest_size là vô hạn và lấy mẫu từ tất cả các giả thuyết (lattice) bằng thuật toán forward-filtering-and-backward-sampling.
-
alpha: Tham số làm mịn cho việc lấy mẫu unigram và xác suất dropout của các thao tác merge cho BPE-dropout.
-
- sp_model (
SentencePieceProcessor) — Bộ xử lý SentencePiece được sử dụng cho mọi phép chuyển đổi (chuỗi, token và ID). - whitespaces (
set) — Các khoảng trắng được thay thế trong bước chuẩn hóa khoảng trắng khi tiền xử lý. - non_printing_characters_re (
Pattern) — Biểu thức chính tắc đã biên dịch để loại bỏ các ký tự không in được trong tiền xử lý.
Xây dựng một tokenizer GPTSw3. Dựa trên SentencePiece.
Tokenizer này kế thừa từ PreTrainedTokenizer, lớp chứa hầu hết các phương thức chính. Người dùng nên tham khảo siêu lớp này để biết thêm thông tin về các phương thức đó.
Cách sử dụng ví dụ:
>>> from transformers import GPTSw3Tokenizer
>>> tokenizer = GPTSw3Tokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-126m")
>>> tokenizer("Svenska är kul!")["input_ids"]
[1814, 377, 3617, 63504]save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Lưu từ vựng sentencepiece (sao chép tệp gốc) vào một thư mục.