Hub documentation

Sử dụng 🤗 transformers tại Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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:

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.json lư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.safetensors lư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 file model.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ặc ckpt, nhưng safetensors ngà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.json lư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.json lư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.json lưu trữ từ vựng đã được học của mô hình.
  • special_tokens_map.json là 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ằng preprocessor_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

Update on GitHub