Bagikan melalui


Menyiapkan data untuk menyempurnakan model Hugging Face

Artikel ini menunjukkan cara menyiapkan data Anda untuk menyempurnakan sumber terbuka model bahasa besar dengan Memeluk Face Transformers dan Memeluk Himpunan Data Wajah.

Persyaratan

Memuat data dari Hugging Face

Memeluk Face Datasets adalah pustaka Hugging Face untuk mengakses dan berbagi himpunan data untuk tugas audio, visi komputer, dan pemrosesan bahasa alami (NLP). Dengan Hugging Face datasets , Anda dapat memuat data dari berbagai tempat. Pustaka datasets memiliki utilitas untuk membaca himpunan data dari Hugging Face Hub. Ada banyak himpunan data yang dapat diunduh dan dapat dibaca dari Hugging Face Hub dengan menggunakan fungsi .load_dataset Pelajari selengkapnya tentang memuat data dengan Memeluk Himpunan Data Wajah di dokumentasi Hugging Face.

from datasets import load_dataset
dataset = load_dataset("imdb")

Beberapa himpunan data di Hugging Face Hub menyediakan ukuran data yang diunduh dan dihasilkan saat load_dataset dipanggil. Anda dapat menggunakan load_dataset_builder untuk mengetahui ukuran sebelum mengunduh himpunan data dengan load_dataset.

from datasets import load_dataset_builder
from psutil._common import bytes2human

def print_dataset_size_if_provided(*args, **kwargs):
  dataset_builder = load_dataset_builder(*args, **kwargs)

  if dataset_builder.info.download_size and dataset_builder.info.dataset_size:
    print(f'download_size={bytes2human(dataset_builder.info.download_size)}, dataset_size={bytes2human(dataset_builder.info.dataset_size)}')
  else:
    print('Dataset size is not provided by uploader')

print_dataset_size_if_provided("imdb")

Lihat buku catatan Unduh himpunan data dari Praktik terbaik Hugging Face untuk panduan tentang cara mengunduh dan menyiapkan himpunan data di Azure Databricks untuk ukuran data yang berbeda.

Memformat data pelatihan dan evaluasi Anda

Untuk menggunakan data Anda sendiri untuk penyempurnaan model, Anda harus terlebih dahulu memformat data pelatihan dan evaluasi Anda ke dalam Spark DataFrames. Kemudian, muat DataFrames menggunakan pustaka Hugging Face datasets .

Mulailah dengan memformat data pelatihan Anda ke dalam tabel yang memenuhi harapan pelatih. Untuk klasifikasi teks, ini adalah tabel dengan dua kolom: kolom teks dan kolom label.

Untuk melakukan penyempurnaan, Anda perlu menyediakan model. Pustaka Hugging Face Transformer AutoClasses memudahkan pemuatan model dan pengaturan konfigurasi, termasuk berbagai Auto Models macam untuk pemrosesan bahasa alami.

Misalnya, Hugging Face transformers menyediakan AutoModelForSequenceClassification sebagai pemuat model untuk klasifikasi teks, yang mengharapkan ID bilangan bulat sebagai label kategori. Namun, jika Anda memiliki DataFrame dengan label string, Anda juga harus menentukan pemetaan antara label bilangan bulat dan label string saat membuat model. Anda dapat mengumpulkan informasi ini sebagai berikut:

labels = df.select(df.label).groupBy(df.label).count().collect()
id2label = {index: row.label for (index, row) in enumerate(labels)}
label2id = {row.label: index for (index, row) in enumerate(labels)}

Kemudian, buat ID bilangan bulat sebagai kolom label dengan Pandas UDF:

from pyspark.sql.functions import pandas_udf
import pandas as pd
@pandas_udf('integer')
def replace_labels_with_ids(labels: pd.Series) -> pd.Series:
  return labels.apply(lambda x: label2id[x])

df_id_labels = df.select(replace_labels_with_ids(df.label).alias('label'), df.text)

Memuat himpunan data Hugging Face dari Spark DataFrame

Hugging Face datasets mendukung pemuatan dari Spark DataFrames menggunakan datasets.Dataset.from_spark. Lihat dokumentasi Hugging Face untuk mempelajari selengkapnya tentang metode from_spark().

Misalnya, jika Anda memiliki train_df dan test_df DataFrames, Anda dapat membuat himpunan data untuk masing-masing dengan kode berikut:

import datasets
train_dataset = datasets.Dataset.from_spark(train_df, cache_dir="/dbfs/cache/train")
test_dataset = datasets.Dataset.from_spark(test_df, cache_dir="/dbfs/cache/test")

Dataset.from_spark cache himpunan data. Contoh ini menjelaskan pelatihan model pada driver, sehingga data harus tersedia untuk driver tersebut. Selain itu, karena materialisasi cache diparalelkan menggunakan Spark, yang disediakan cache_dir harus dapat diakses oleh semua pekerja. Untuk memenuhi batasan ini, cache_dir harus berupa volume akar atau titik pemasangan Databricks File System (DBFS).

Volume akar DBFS dapat diakses oleh semua pengguna ruang kerja dan hanya boleh digunakan untuk data tanpa batasan akses. Jika data Anda memerlukan kontrol akses, gunakan titik pemasangan alih-alih akar DBFS.

Jika himpunan data Anda besar, menulisnya ke DBFS dapat memakan waktu lama. Untuk mempercepat proses, Anda dapat menggunakan working_dir parameter untuk membuat Hugging Face datasets menulis himpunan data ke lokasi sementara pada disk, lalu memindahkannya ke DBFS. Misalnya, untuk menggunakan SSD sebagai lokasi sementara:

import datasets
dataset = datasets.Dataset.from_spark(
  train_df,
  cache_dir="/dbfs/cache/train",
  working_dir="/local_disk0/tmp/train",
)

Penembolokan untuk himpunan data

Cache adalah salah satu cara datasets meningkatkan efisiensi. Ini menyimpan semua himpunan data yang diunduh dan diproses sehingga ketika pengguna perlu menggunakan himpunan data perantara, mereka dimuat ulang langsung dari cache.

Direktori cache default himpunan data adalah ~/.cache/huggingface/datasets. Ketika kluster dihentikan, data cache juga hilang. Untuk mempertahankan file cache pada penghentian kluster, Databricks merekomendasikan untuk mengubah lokasi cache ke DBFS dengan mengatur variabel HF_DATASETS_CACHElingkungan :

import os
os.environ["HF_DATASETS_CACHE"] = "/dbfs/place/you/want/to/save"

Menyempurnakan model

Saat data Anda siap, Anda dapat menggunakannya untuk menyempurnakan model Hugging Face.

Notebook: Mengunduh himpunan data dari Hugging Face

Contoh notebook ini menyediakan praktik terbaik yang direkomendasikan untuk menggunakan fungsi Hugging Face load_dataset untuk mengunduh dan menyiapkan himpunan data di Azure Databricks untuk berbagai ukuran data.

Mengunduh himpunan data dari buku catatan praktik terbaik Hugging Face

Dapatkan buku catatan