Tiền xử lý các phương thức khác nhau

Mô hình đa phương thức với Hugging Face

James Chapman

Curriculum Manager, DataCamp

Tiền xử lý văn bản

Một chuỗi văn bản ví dụ.

  • Tokenizer: ánh xạ văn bản → đầu vào mô hình
Mô hình đa phương thức với Hugging Face

Tiền xử lý văn bản

Sơ đồ luồng tiền xử lý văn bản đến bước chuẩn hóa

  • Tokenizer: ánh xạ văn bản → đầu vào mô hình
    • Chuẩn hóa: viết thường, loại ký tự đặc biệt, xóa khoảng trắng thừa
Mô hình đa phương thức với Hugging Face

Tiền xử lý văn bản

Tiếp nối sơ đồ đến bước tách token

  • Tokenizer: ánh xạ văn bản → đầu vào mô hình
    • Chuẩn hóa: viết thường, loại ký tự đặc biệt, xóa khoảng trắng thừa
    • (Tiền) tách token: tách văn bản thành từ/tiểu từ
Mô hình đa phương thức với Hugging Face

Tiền xử lý văn bản

Tiếp nối sơ đồ đến chuyển ID và đệm

  • Tokenizer: ánh xạ văn bản → đầu vào mô hình
    • Chuẩn hóa: viết thường, loại ký tự đặc biệt, khoảng trắng
    • (Tiền) tách token: tách văn bản thành từ/tiểu từ
    • Chuyển ID: ánh xạ token thành số nguyên bằng từ vựng
Mô hình đa phương thức với Hugging Face

Tiền xử lý văn bản

preprocessing_text5.jpg

  • Tokenizer: ánh xạ văn bản → đầu vào mô hình
    • Chuẩn hóa: viết thường, loại ký tự đặc biệt, khoảng trắng
    • (Tiền) tách token: tách văn bản thành từ/tiểu từ
    • Chuyển ID: ánh xạ token thành số nguyên bằng từ vựng
    • Đệm (padding): thêm token để có độ dài đồng nhất
Mô hình đa phương thức với Hugging Face

Tiền xử lý văn bản

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('distilbert/distilbert-base-uncased')

text = "Do you need more éclairs?"
print(tokenizer.backend_tokenizer.normalizer.normalize_str(text))
do you need more eclairs
tokenizer(text, return_tensors='pt', padding=True)
{'input_ids': tensor([[  101,  ..., 102]]), ...}
Mô hình đa phương thức với Hugging Face

Tiền xử lý ảnh

  • Chuẩn hóa: chuẩn cường độ điểm ảnh
  • Resize: khớp kích thước với lớp vào của mô hình
  • Quy tắc chung → dùng tiền xử lý của mô hình gốc

ảnh nhóm người nhảy trước và sau khi tiền xử lý ảnh

1 https://huggingface.co/datasets/nlphuji/flickr30k
Mô hình đa phương thức với Hugging Face

Tiền xử lý ảnh

Bài toán đa phương thức cần tiền xử lý nhất quán:

from transformers import BlipProcessor, BlipForConditionalGeneration

checkpoint = "Salesforce/blip-image-captioning-base"
model = BlipForConditionalGeneration.from_pretrained(checkpoint) processor = BlipProcessor.from_pretrained(checkpoint)

Mã hóa ảnh → chuyển thành mã hóa văn bản → giải mã văn bản

image = load_dataset("nlphuji/flickr30k")['test'][11]["image"]
inputs = processor(images=image, return_tensors="pt")

output = model.generate(**inputs)
print(processor.decode(output[0]))
[{'generated_text': 'a group of people jumping'}]
Mô hình đa phương thức với Hugging Face

Tiền xử lý âm thanh

Phổ âm thanh

  • Tiền xử lý âm thanh:
    • Mảng tuần tự → lọc/đệm
    • Tần số lấy mẫu → lấy mẫu lại

Trích xuất đặc trưng làm đầu vào mô hình (phổ thời tần/spectrogram)

spectro

Mô hình đa phương thức với Hugging Face

Tiền xử lý âm thanh

from datasets import load_dataset, Audio

dataset = load_dataset("CSTR-Edinburgh/vctk")["train"] dataset = dataset.cast_column("audio", Audio(sampling_rate=16_000))
  • Nên có bộ tiền xử lý đầy đủ theo mô hình:
from transformers import AutoProcessor
processor = AutoProcessor.from_pretrained("openai/whisper-small")
audio_pp = processor(dataset[0]["audio"]["array"], 
                     sampling_rate=16_000, return_tensors="pt")
  • Tần số lấy mẫu phải khớp yêu cầu đầu vào của mô hình
1 https://huggingface.co/datasets/CSTR-Edinburgh/vctk
Mô hình đa phương thức với Hugging Face

Hãy thực hành!

Mô hình đa phương thức với Hugging Face

Preparing Video For Download...