Hub documentation
Sử dụng 🤗 transformers tại Hugging Face
Sử dụng 🤗 transformers tại Hugging Face
🤗 transformers là thư viện do Hugging Face và cộng đồng duy trì, dành cho Machine Learning tiên tiến cho PyTorch, TensorFlow và JAX. Thư viện cung cấp hàng nghìn mô hình được huấn luyện trước để thực hiện các tác vụ trên các phương thức khác nhau như văn bản, thị giác và âm thanh. Chúng tôi hơi thiên vị, nhưng chúng tôi thực sự rất thích 🤗 transformers!
Khám phá 🤗 transformers trên Hub
Có hơn 630.000 mô hình transformers trên Hub, bạn có thể tìm thấy chúng bằng cách lọc ở phía bên trái của trang mô hình.
Bạn có thể tìm thấy các mô hình cho nhiều tác vụ khác nhau:
- Trích xuất câu trả lời từ ngữ cảnh (trả lời câu hỏi).
- Tạo bản tóm tắt từ một văn bản dài (tóm tắt).
- Phân loại văn bản (ví dụ: là spam hay không spam, text-classification).
- Tạo văn bản mới bằng các mô hình như GPT (text-generation).
- Xác định các từ loại (động từ, chủ ngữ, v.v.) hoặc các thực thể (quốc gia, tổ chức, v.v.) trong một câu (token-classification).
- Chuyển đổi tệp âm thanh thành văn bản (automatic-speech-recognition).
- Phân loại người nói hoặc ngôn ngữ trong tệp âm thanh (audio-classification).
- Phát hiện các đối tượng trong một hình ảnh (object-detection).
- Phân đoạn một hình ảnh (image-segmentation).
- Hãy thực hiện Học tăng cường (reinforcement-learning)!
Bạn có thể thử trực tiếp các mô hình ngay trong trình duyệt nếu muốn kiểm tra chúng mà không cần tải xuống, nhờ vào các widget trong trình duyệt!

Các tệp trong kho Transformers
Kho lưu trữ mô hình Transformers thường chứa các tệp mô hình và tệp tiền xử lý.

Mô hình
File
config.jsonlưu trữ các chi tiết về kiến trúc mô hình, chẳng hạn như số lượng lớp ẩn, kích thước từ vựng, số lượng đầu chú ý, kích thước của từng đầu, và nhiều hơn nữa. Metadata này chính là bản thiết kế của mô hình.File
model.safetensorslưu trữ các lớp và trọng số đã được huấn luyện trước của mô hình. Đối với các mô hình lớn, file safetensors được chia nhỏ (sharded) để giới hạn lượng bộ nhớ cần thiết để nạp nó. Xem filemodel.safetensors.index.jsonđể biết trọng số của mô hình được nạp từ file safetensors nào.{ "metadata": { "total_size": 16060522496 }, "weight_map": { "lm_head.weight": "model-00004-of-00004.safetensors", "model.embed_tokens.weight": "model-00001-of-00004.safetensors", ... } }Bạn cũng có thể trực quan hóa ánh xạ này bằng cách nhấp vào nút ↗ trên thẻ mô hình.

Safetensors là định dạng chuỗi hóa an toàn và nhanh hơn - so với pickle - để lưu trữ trọng số mô hình. Bạn có thể gặp các trọng số được pickle ở các định dạng như
bin,pth, hoặcckpt, nhưngsafetensorsngày càng được áp dụng rộng rãi trong hệ sinh thái mô hình như một lựa chọn thay thế tốt hơn.Một mô hình cũng có thể có tệp
generation_config.jsonlưu trữ các chi tiết về cách tạo văn bản, chẳng hạn như có lấy mẫu hay không, các token hàng đầu để lấy mẫu, nhiệt độ, và các token đặc biệt để bắt đầu và kết thúc quá trình tạo.
Bộ tiền xử lý
- File
tokenizer_config.jsonlưu trữ các token đặc biệt được thêm bởi một model. Các token đặc biệt này báo hiệu nhiều thứ cho model, chẳng hạn như đầu của một câu, định dạng cụ thể cho các chat template, hoặc chỉ định một hình ảnh. File này cũng hiển thị độ dài chuỗi đầu vào tối đa mà model có thể chấp nhận, lớp preprocessor, và các đầu ra mà nó trả về. - Tệp
tokenizer.jsonlưu trữ từ vựng đã được học của mô hình. special_tokens_map.jsonlà bản ánh xạ của các token đặc biệt. Ví dụ, trong Llama 3.1-8B-Instruct, token bắt đầu chuỗi là"<|begin_of_text|>".
Đối với các chế độ dữ liệu khác, tệp
tokenizer_config.jsonđược thay thế bằngpreprocessor_config.json.
Sử dụng các mô hình có sẵn
Tất cả các mô hình transformer chỉ cách một dòng code là có thể sử dụng! Tùy thuộc vào cách bạn muốn sử dụng chúng, bạn có thể dùng API cấp cao thông qua hàm pipeline hoặc dùng AutoModel để có nhiều quyền kiểm soát hơn.
# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")
# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")Bạn cũng có thể tải một mô hình từ một phiên bản cụ thể (dựa trên commit hash, tên tag, hoặc branch) như sau:
model = AutoModel.from_pretrained(
"julien-c/EsperBERTo-small", revision="v2.0.1" # tag name, or branch name, or commit hash
)Nếu bạn muốn xem cách tải một mô hình cụ thể, bạn có thể nhấp vào Use in Transformers và sẽ nhận được một đoạn mã hoạt động để tải mô hình đó! Nếu bạn cần thêm thông tin về kiến trúc mô hình, bạn cũng có thể nhấp vào “Read model documentation” ở cuối đoạn mã.

Chia sẻ các mô hình của bạn
Để tìm hiểu đầy đủ về việc chia sẻ mô hình với transformers, hãy truy cập hướng dẫn Chia sẻ một mô hình trong tài liệu chính thức.
Nhiều lớp trong transformers, chẳng hạn như các model và tokenizer, có phương thức push_to_hub cho phép tải các file lên kho một cách dễ dàng.
# Pushing model to your own account
model.push_to_hub("my-awesome-model")
# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")
# Pushing all things after training
trainer.push_to_hub()Bạn có thể làm được nhiều hơn thế, vì vậy chúng tôi đề xuất bạn xem lại hướng dẫn Chia sẻ một mô hình.
Tài nguyên bổ sung
- Thư viện Transformers.
- Tài liệu docs của Transformers.
- Chia sẻ hướng dẫn về một mô hình.