AutoGluon-Tabular - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AutoGluon-Tabular

AutoGluon-Tabular adalah kerangka kerja AutoML open-source populer yang melatih model pembelajaran mesin yang sangat akurat pada kumpulan data tabular yang belum diproses. Tidak seperti kerangka kerja AutoML yang ada yang terutama berfokus pada pemilihan model dan hiperparameter, AutoGluon -Tabular berhasil dengan menyamarkan beberapa model dan menumpuknya dalam beberapa lapisan.

Cara menggunakan SageMaker AutoGluon -Tabular

Anda dapat menggunakan AutoGluon -Tabular sebagai algoritma SageMaker bawaan Amazon. Bagian berikut menjelaskan cara menggunakan AutoGluon -Tabular dengan Python SageMaker SDK. Untuk informasi tentang cara menggunakan AutoGluon -Tabular dari Amazon SageMaker Studio Classic UI, lihat. Melatih, menyebarkan, dan mengevaluasi model yang telah dilatih sebelumnya dengan SageMaker JumpStart

  • Gunakan AutoGluon -Tabular sebagai algoritma bawaan

    Gunakan algoritma bawaan AutoGluon -Tabular untuk membangun wadah pelatihan AutoGluon -Tabular seperti yang ditunjukkan pada contoh kode berikut. Anda dapat secara otomatis melihat URI image algoritma bawaan AutoGluon -Tabular menggunakan SageMaker image_uris.retrieve API (atau get_image_uri API jika menggunakan Amazon SageMaker Python SDK versi 2).

    Setelah menentukan URI image AutoGluon -Tabular, Anda dapat menggunakan container AutoGluon -Tabular untuk membuat estimator menggunakan Estimator API dan memulai pekerjaan pelatihan SageMaker . Algoritma bawaan AutoGluon -Tabular berjalan dalam mode skrip, tetapi skrip pelatihan disediakan untuk Anda dan tidak perlu menggantinya. Jika Anda memiliki pengalaman luas menggunakan mode skrip untuk membuat pekerjaan SageMaker pelatihan, maka Anda dapat memasukkan skrip pelatihan AutoGluon -Tabular Anda sendiri.

    from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "autogluon-classification-ensemble", "*", "training" training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type ) # Retrieve the training script train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope ) train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope ) # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/tabular_binary/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train" validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tabular-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" from sagemaker import hyperparameters # Retrieve the default hyperparameters for training the model hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version ) # [Optional] Override default hyperparameters with custom values hyperparameters[ "auto_stack" ] = "True" print(hyperparameters) from sagemaker.estimator import Estimator from sagemaker.utils import name_from_base training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") # Create SageMaker Estimator instance tabular_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location ) # Launch a SageMaker Training job by passing the S3 path of the training data tabular_estimator.fit( { "training": training_dataset_s3_path, "validation": validation_dataset_s3_path, }, logs=True, job_name=training_job_name )

    Untuk informasi selengkapnya tentang cara mengatur AutoGluon -Tabular sebagai algoritma bawaan, lihat contoh notebook berikut. Bucket S3 apa pun yang digunakan dalam contoh ini harus berada di AWS Region yang sama dengan instance notebook yang digunakan untuk menjalankannya.

Antarmuka Input dan Output untuk algoritma AutoGluon -Tabular

Peningkatan gradien beroperasi pada data tabular, dengan baris mewakili pengamatan, satu kolom mewakili variabel target atau label, dan kolom yang tersisa mewakili fitur.

SageMaker Implementasi AutoGluon -Tabular mendukung CSV untuk pelatihan dan inferensi:

  • Untuk Pelatihan ContentType, input yang valid harus teks/csv.

  • Untuk Inferensi ContentType, input yang valid harus teks/csv.

catatan

Untuk pelatihan CSV, algoritme mengasumsikan bahwa variabel target ada di kolom pertama dan CSV tidak memiliki catatan header.

Untuk inferensi CSV, algoritme mengasumsikan bahwa input CSV tidak memiliki kolom label.

Format input untuk data pelatihan, data validasi, dan fitur kategoris

Perhatikan cara memformat data pelatihan Anda untuk masukan ke model AutoGluon -Tabular. Anda harus menyediakan jalur ke bucket Amazon S3 yang berisi data pelatihan dan validasi Anda. Anda juga dapat menyertakan daftar fitur kategoris. Gunakan saluran training dan validation saluran untuk memberikan data input Anda. Atau, Anda hanya dapat menggunakan training saluran.

Gunakan kedua validation saluran training dan

Anda dapat memberikan data input Anda melalui dua jalur S3, satu untuk training saluran dan satu untuk validation saluran. Setiap jalur S3 dapat berupa awalan S3 atau jalur S3 lengkap yang menunjuk ke satu file CSV tertentu. Variabel target harus berada di kolom pertama file CSV Anda. Variabel prediktor (fitur) harus berada di kolom yang tersisa. Data validasi digunakan untuk menghitung skor validasi di akhir setiap iterasi peningkatan. Penghentian awal diterapkan ketika skor validasi berhenti membaik.

Jika prediktor Anda menyertakan fitur kategoris, Anda dapat memberikan file JSON bernama categorical_index.json di lokasi yang sama dengan file data pelatihan Anda. Jika Anda menyediakan file JSON untuk fitur kategoris, training saluran Anda harus menunjuk ke awalan S3 dan bukan file CSV tertentu. File ini harus berisi kamus Python di mana kuncinya adalah string "cat_index_list" dan nilainya adalah daftar bilangan bulat unik. Setiap bilangan bulat dalam daftar nilai harus menunjukkan indeks kolom dari fitur kategoris yang sesuai dalam file CSV data pelatihan Anda. Setiap nilai harus berupa bilangan bulat positif (lebih besar dari nol karena nol mewakili nilai target), kurang dari Int32.MaxValue (2147483647), dan kurang dari jumlah kolom. Seharusnya hanya ada satu file JSON indeks kategoris.

Gunakan hanya training saluran:

Sebagai alternatif, Anda dapat memberikan data input Anda melalui jalur S3 tunggal untuk training saluran tersebut. Path S3 ini harus menunjuk ke direktori dengan subdirektori bernama training/ yang berisi file CSV. Anda dapat secara opsional menyertakan subdirektori lain di lokasi yang sama yang disebut validation/ yang juga memiliki file CSV. Jika data validasi tidak disediakan, maka 20% data pelatihan Anda diambil sampelnya secara acak untuk dijadikan data validasi. Jika prediktor Anda menyertakan fitur kategoris, Anda dapat memberikan file JSON bernama categorical_index.json di lokasi yang sama dengan subdirektori data Anda.

catatan

Untuk mode input pelatihan CSV, total memori yang tersedia untuk algoritme (jumlah instance dikalikan dengan memori yang tersedia diInstanceType) harus dapat menampung kumpulan data pelatihan.

SageMaker AutoGluon-Tabular menggunakan autogluon.tabular.TabularPredictor modul untuk membuat serial atau deserialisasi model, yang dapat digunakan untuk menyimpan atau memuat model.

Untuk menggunakan model yang dilatih dengan SageMaker AutoGluon -Tabular dengan kerangka kerja AutoGluon
  • Gunakan kode Python berikut:

    import tarfile from autogluon.tabular import TabularPredictor t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = TabularPredictor.load(model_file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)

Rekomendasi instans Amazon EC2 untuk algoritme AutoGluon -Tabular

SageMaker AutoGluon-Tabular mendukung pelatihan CPU satu instans dan GPU instans tunggal. Meskipun biaya per instans lebih tinggi, GPU berlatih lebih cepat, membuatnya lebih hemat biaya. Untuk memanfaatkan pelatihan GPU, tentukan jenis instans sebagai salah satu instance GPU (misalnya, P3). SageMaker AutoGluon-Tabular saat ini tidak mendukung pelatihan multi-GPU.

AutoGluon-Notebook sampel tabel

Tabel berikut menguraikan berbagai contoh notebook yang membahas berbagai kasus penggunaan algoritma Amazon SageMaker AutoGluon -Tabular.

Judul Notebook Deskripsi

Klasifikasi tabel dengan algoritma Amazon SageMaker AutoGluon -Tabular

Notebook ini menunjukkan penggunaan algoritma Amazon SageMaker AutoGluon -Tabular untuk melatih dan menjadi tuan rumah model klasifikasi tabel.

Regresi tabular dengan algoritma Amazon -Tabular SageMaker AutoGluon

Notebook ini menunjukkan penggunaan algoritma Amazon SageMaker AutoGluon -Tabular untuk melatih dan menjadi tuan rumah model regresi tabular.

Untuk petunjuk tentang cara membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh, lihat. SageMaker Instans SageMaker Notebook Amazon Setelah Anda membuat instance notebook dan membukanya, pilih tab SageMakerContoh untuk melihat daftar semua SageMaker sampel. Untuk membuka buku catatan, pilih tab Use dan pilih Create copy.