Transformers documentation

FLAN-UL2

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

Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2023-06-20.

FLAN-UL2

Tổng quan

Flan-UL2 là một mô hình encoder decoder dựa trên kiến trúc T5. Nó sử dụng cùng cấu hình với mô hình UL2 được phát hành vào đầu năm trước. Nó được tinh chỉnh bằng cách sử dụng “Flan” prompt tuning và bộ sưu tập dữ liệu. Tương tự như Flan-T5, người dùng có thể trực tiếp sử dụng trọng số FLAN-UL2 mà không cần tinh chỉnh lại mô hình:

Theo blog gốc, đây là những cải tiến đáng chú ý:

  • Mô hình UL2 ban đầu chỉ được huấn luyện với trường tiếp nhận (receptive field) là 512, khiến nó không tối ưu cho N-shot prompting khi N lớn.
  • Checkpoint Flan-UL2 sử dụng trường tiếp nhận (receptive field) là 2048, giúp nó dễ sử dụng hơn cho việc học trong ngữ cảnh (in-context learning) với ít ví dụ (few-shot).
  • Mô hình UL2 ban đầu cũng có các token chuyển đổi chế độ, vốn khá bắt buộc để đạt hiệu suất tốt. Tuy nhiên, chúng hơi cồng kềnh vì điều này thường đòi hỏi một số thay đổi trong quá trình suy luận hoặc tinh chỉnh. Trong bản cập nhật/thay đổi này, chúng tôi tiếp tục huấn luyện UL2 20B thêm 100k bước (với batch nhỏ) để “quên” các “token chế độ” trước khi áp dụng tinh chỉnh chỉ dẫn Flan. Điểm kiểm tra Flan-UL2 này không còn yêu cầu các token chế độ nữa. Google đã phát hành các biến thể sau:

Các checkpoint gốc có thể được tìm thấy tại đây.

Chạy trên các thiết bị có tài nguyên thấp

Mô hình khá nặng (~40GB ở độ chính xác nửa) nên nếu bạn chỉ muốn chạy mô hình, hãy đảm bảo nạp mô hình ở 8bit và sử dụng device_map="auto" để tránh mọi vấn đề OOM!

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig


model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-ul2", quantization_config=BitsAndBytesConfig(load_in_8bit=True), device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("google/flan-ul2")

inputs = tokenizer("A step by step recipe to make bolognese pasta:", return_tensors="pt").to(model.device)
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
['In a large skillet, brown the ground beef and onion over medium heat. Add the garlic']

Tham khảo trang tài liệu của T5 để xem tham chiếu API, mẹo, ví dụ mã và notebook.

Update on GitHub