Tiền xử lý ảnh và âm thanh cho huấn luyện

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Dennis Lee

Data Engineer, Amazon

Chuẩn bị ảnh và âm thanh

Ứng dụng ảnh

  • Phân loại ảnh để nhận diện đối tượng
  • Chia mảnh dữ liệu (sharding)

 

Hình ảnh một ứng dụng phát hiện đối tượng hiển thị ô tô trên đường. Ứng dụng chạy trên điện thoại đang được cầm trước khung cảnh con phố.

Ứng dụng âm thanh

  • Cung cấp lệnh giọng nói
  • Ví dụ: "Giảm âm lượng"

 

Hình ảnh công nghệ hỗ trợ dựa trên âm thanh giúp người khiếm thị dùng lệnh giọng nói trên điện thoại.

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Xử lý một tập dữ liệu ảnh mẫu

print(dataset)
Dataset({
    features: ['img', 'label'],
    num_rows: 1000
})
print(dataset[0]["img"])
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=720x480>
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Chuẩn hóa định dạng ảnh

  • Định dạng ảnh: rộng, cao
  • Chuẩn hóa điểm ảnh: trung bình, độ lệch chuẩn
  • AutoImageProcessor tải sẵn các bước tiền xử lý
from transformers import AutoImageProcessor
model = "microsoft/swin-tiny-patch4-window7-224"

image_processor = AutoImageProcessor.from_pretrained(model)
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Chuẩn hóa định dạng ảnh

dataset = dataset.map(
    lambda examples: {

"pixel_values": [
image_processor(image, return_tensors="pt").pixel_values for image in examples["img"] ]}, batched=True)
print(dataset)
Dataset({
    features: ['img', 'label', 'pixel_values'],
    num_rows: 1000
})
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Xử lý một tập dữ liệu âm thanh mẫu

print(dataset)
DatasetDict({
    train: Dataset({

features: ['file', 'audio',
'label'], num_rows: 1000 }), ... })
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Chuẩn hóa định dạng âm thanh

  • Chuẩn hóa số mẫu
  • Tốc độ lấy mẫu: số mẫu mỗi giây
  • Thời lượng tối đa: số giây âm thanh
sampling_rate = 16000  # 16 kHz

max_duration = 1 # 1 second
max_length = sampling_rate * max_duration
print(f"max_length = {max_length:,} samples")
max_length = 16,000 samples
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Chuẩn hóa định dạng âm thanh

from transformers import AutoFeatureExtractor

model = "facebook/wav2vec2-base"
feature_extractor = AutoFeatureExtractor.from_pretrained(model)


def preprocess_function(split_data):
audio_arrays = [x["array"] for x in split_data["audio"]]
inputs = feature_extractor(audio_arrays,
sampling_rate=feature_extractor.sampling_rate, max_length=int(feature_extractor.sampling_rate * max_duration),
truncation=True) return inputs
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Áp dụng hàm tiền xử lý

  • Ánh xạ preprocess_function vào dataset
  • remove_columns: loại cột audiofile
  • batched: xử lý dataset theo lô
dataset = dataset["train"].map(preprocess_function,

remove_columns=["audio", "file"],
batched=True)
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Áp dụng hàm tiền xử lý

print(dataset)
DatasetDict({
    train: Dataset({
        features: ['label', 'input_values'],
        num_rows: 1000
    })
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Chuẩn bị dữ liệu cho huấn luyện phân tán

  • DataLoader: chuẩn bị dữ liệu để nạp và lặp khi huấn luyện
  • accelerator.prepare(): đặt dữ liệu lên CPU hoặc GPU tùy khả dụng
  • Chia mảnh dữ liệu: mỗi GPU xử lý một phần dữ liệu huấn luyện, như chia lát pizza
  • accelerator.prepare() dùng với PyTorch DataLoaders (torch.utils.data.DataLoader)
from accelerate import Accelerator
from torch.utils.data import DataLoader

dataloader = DataLoader(dataset, batch_size=32, shuffle=True)


accelerator = Accelerator() dataloader = accelerator.prepare(dataloader)
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Passons à la pratique !

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Preparing Video For Download...