Chuẩn bị cho tinh chỉnh

Nhập môn LLMs trong Python

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Pipelines và lớp Auto

Pipelines: pipeline()

  • Đơn giản hóa tác vụ
  • Tự chọn model và tokenizer
  • Kiểm soát hạn chế

Các pipeline của Hugging Face Transformers

Lớp Auto (AutoModel class)

  • Tùy biến
  • Điều chỉnh thủ công
  • Hỗ trợ tinh chỉnh

Lớp AutoModel của Hugging Face Transformers với các tùy chọn tùy biến

Nhập môn LLMs trong Python

Vòng đời LLM

Vòng đời LLM

Tiền huấn luyện

  • Dữ liệu rộng
  • Học mẫu tổng quát
Nhập môn LLMs trong Python

Vòng đời LLM

Vòng đời LLM

Tiền huấn luyện                                                             Tinh chỉnh

  • Dữ liệu rộng                                                          Theo miền
  • Học mẫu tổng quát                                       Nhiệm vụ chuyên biệt
Nhập môn LLMs trong Python

Tải dữ liệu để tinh chỉnh

from datasets import load_dataset


train_data = load_dataset("imdb", split="train")
train_data = data.shard(num_shards=4, index=0)
test_data = load_dataset("imdb", split="test")
test_data = data.shard(num_shards=4, index=0)
  • load_dataset(): tải tập dữ liệu từ Hugging Face Hub
    • imdb: phân loại đánh giá
Nhập môn LLMs trong Python

Lớp Auto

from transformers import AutoModel, AutoTokenizer

from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
Nhập môn LLMs trong Python

Mã hóa token (Tokenization)

from transformers import AutoTokenizer, AutoModelForSequenceClassification
from datasets import load_dataset

train_data = load_dataset("imdb", split="train")
train_data = data.shard(num_shards=4, index=0)
test_data = load_dataset("imdb", split="test")
test_data = data.shard(num_shards=4, index=0)

model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")


# Tokenize the data tokenized_training_data = tokenizer(train_data["text"], return_tensors="pt", padding=True, truncation=True, max_length=64) tokenized_test_data = tokenizer(test_data["text"], return_tensors="pt", padding=True, truncation=True, max_length=64)
Nhập môn LLMs trong Python

Kết quả mã hóa token

print(tokenized_training_data)
{'input_ids': tensor([[  101,  1045, 12524,  1045,  2572,  8025,  1011,  3756,  
2013,  2026, 2678,  3573,  2138,  1997,  2035,  1996,  6704,  2008,  5129,  2009, 
2043,  2009, 2001,  2034,  2207,  1999,  3476,  1012,  1045,  2036, ...
Nhập môn LLMs trong Python

Mã hóa theo từng dòng

def tokenize_function(text_data):
    return tokenizer(text_data["text"], return_tensors="pt", padding=True, truncation=True, max_length=64)

# Tokenize in batches
tokenized_in_batches = train_data.map(tokenize_function, batched=True)

# Tokenize row by row tokenized_by_row = train_data.map(tokenize_function, batched=False)
Dataset({
    features: ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
    num_rows: 1563
})
Nhập môn LLMs trong Python

Mã hóa theo tiểu từ (subword)

  • Phổ biến trong tokenizer hiện đại
  • Tách từ thành các phần con có nghĩa

 

Unbelievably

Nhập môn LLMs trong Python

Mã hóa theo tiểu từ (subword)

  • Phổ biến trong tokenizer hiện đại
  • Tách từ thành các phần con có nghĩa

 

“Unbelievably” được tách thành un, believ, ably.

Nhập môn LLMs trong Python

Ayo berlatih!

Nhập môn LLMs trong Python

Preparing Video For Download...