View a markdown version of this page

Buat pekerjaan AutoML untuk menyempurnakan model pembuatan teks menggunakan API - Amazon SageMaker AI

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

Buat pekerjaan AutoML untuk menyempurnakan model pembuatan teks menggunakan API

Model bahasa besar (LLM) unggul dalam beberapa tugas generatif, termasuk pembuatan teks, ringkasan, penyelesaian, jawaban pertanyaan, dan banyak lagi. Kinerja mereka dapat dikaitkan dengan ukuran mereka yang signifikan dan pelatihan ekstensif tentang beragam kumpulan data dan berbagai tugas. Namun, domain tertentu, seperti layanan kesehatan dan keuangan, mungkin memerlukan penyesuaian khusus untuk beradaptasi dengan data unik dan kasus penggunaan. Dengan menyesuaikan pelatihan mereka dengan domain khusus mereka, LLM dapat meningkatkan kinerja mereka dan memberikan output yang lebih akurat untuk aplikasi yang ditargetkan.

Autopilot menawarkan kemampuan untuk menyempurnakan pilihan model teks generatif yang telah dilatih sebelumnya. Secara khusus, Autopilot mendukung penyetelan halus berbasis instruksi dari pilihan model bahasa besar (LLM) tujuan umum yang didukung oleh. JumpStart

catatan

Model pembuatan teks yang mendukung penyempurnaan di Autopilot saat ini dapat diakses secara eksklusif di Wilayah yang didukung oleh Canvas. SageMaker Lihat dokumentasi SageMaker Canvas untuk daftar lengkap Wilayah yang didukung.

Fine-tuning model pra-terlatih membutuhkan kumpulan data spesifik dari instruksi yang jelas yang memandu model tentang cara menghasilkan output atau berperilaku untuk tugas itu. Model belajar dari dataset, menyesuaikan parameternya agar sesuai dengan instruksi yang diberikan. Instruction-based penyempurnaan melibatkan penggunaan contoh berlabel yang diformat sebagai pasangan prompt-response dan diungkapkan sebagai instruksi. Untuk informasi selengkapnya tentang penyempurnaan, lihat model Fine-tune pondasi.

Panduan berikut menguraikan proses pembuatan pekerjaan Amazon SageMaker Autopilot sebagai percobaan percontohan untuk menyempurnakan LLM pembuatan teks menggunakan Referensi API. SageMaker https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html

catatan

Tugas seperti klasifikasi teks dan gambar, perkiraan deret waktu, dan penyempurnaan model bahasa besar tersedia secara eksklusif melalui versi 2 AutoML REST API. Jika bahasa pilihan Anda adalah Python, Anda dapat merujuk ke AWS SDK untuk Python (Boto3) atau objek AutoMLV2 dari Amazon SageMaker Python SDK secara langsung.

Pengguna yang lebih menyukai kenyamanan antarmuka pengguna dapat menggunakan Amazon SageMaker Canvas untuk mengakses model pra-terlatih dan model dasar AI generatif, atau membuat model khusus yang disesuaikan untuk teks tertentu, klasifikasi gambar, kebutuhan peramalan, atau AI generatif.

Untuk membuat eksperimen Autopilot secara terprogram untuk menyempurnakan LLM, Anda dapat memanggil CreateAutoMLJobV2 API dalam bahasa apa pun yang didukung oleh Amazon Autopilot atau. SageMaker AWS CLI

Untuk informasi tentang bagaimana tindakan API ini diterjemahkan ke dalam fungsi dalam bahasa pilihan Anda, lihat bagian Lihat Juga CreateAutoMLJobV2 dan pilih SDK. Sebagai contoh, untuk pengguna Python, lihat sintaks permintaan lengkap create_auto_ml_job_v2 di AWS SDK untuk Python (Boto3).

catatan

Autopilot menyempurnakan model bahasa besar tanpa memerlukan banyak kandidat untuk dilatih dan dievaluasi. Sebagai gantinya, menggunakan dataset Anda, Autopilot langsung menyempurnakan model target Anda untuk meningkatkan metrik objektif default, kehilangan entropi silang. Fine-tuning model bahasa di Autopilot tidak memerlukan pengaturan bidang. AutoMLJobObjective

Setelah LLM Anda disesuaikan, Anda dapat mengevaluasi kinerjanya dengan mengakses berbagai ROUGE skor melalui BestCandidate saat melakukan panggilan DescribeAutoMLJobV2 API. Model ini juga memberikan informasi tentang kehilangan pelatihan dan validasi serta kebingungan. Untuk daftar lengkap metrik untuk mengevaluasi kualitas teks yang dihasilkan oleh model yang disetel dengan baik, lihatMetrik untuk menyempurnakan model bahasa besar di Autopilot.

Prasyarat

Sebelum menggunakan Autopilot untuk membuat eksperimen penyempurnaan di SageMaker AI, pastikan untuk mengambil langkah-langkah berikut:

  • (Opsional) Pilih model pra-terlatih yang ingin Anda sesuaikan.

    Untuk daftar model pra-terlatih yang tersedia untuk penyempurnaan di Amazon SageMaker Autopilot, lihat. Model bahasa besar yang didukung untuk penyempurnaan Pemilihan model tidak wajib; jika tidak ada model yang ditentukan, Autopilot secara otomatis default ke model FALCON7BINstruct.

  • Buat dataset instruksi. Lihat Jenis file dataset dan format data input untuk mempelajari tentang persyaratan format untuk kumpulan data berbasis instruksi Anda.

  • Tempatkan dataset Anda di bucket Amazon S3.

  • Berikan akses penuh ke bucket Amazon S3 yang berisi data input Anda untuk peran eksekusi SageMaker AI yang digunakan untuk menjalankan eksperimen Anda.

    • Untuk informasi tentang mengambil peran eksekusi SageMaker AI Anda, lihatDapatkan peran eksekusi Anda.

    • Untuk informasi tentang pemberian izin peran eksekusi SageMaker AI Anda untuk mengakses satu atau lebih bucket tertentu di Amazon S3, lihat Men ambahkan Izin Amazon S3 Tambahan ke Peran SageMaker Eksekusi AI diBuat peran eksekusi.

  • Selain itu, Anda harus memberikan peran eksekusi Anda dengan izin yang diperlukan untuk mengakses bucket penyimpanan default Amazon S3 yang digunakan oleh JumpStart. Akses ini diperlukan untuk menyimpan dan mengambil artefak model yang telah dilatih sebelumnya di. JumpStart Untuk memberikan akses ke bucket Amazon S3 ini, Anda harus membuat kebijakan kustom sebaris baru pada peran eksekusi Anda.

    Berikut adalah contoh kebijakan yang dapat Anda gunakan di editor JSON saat mengonfigurasi pekerjaan penyempurnaan AutoML di: us-west-2

    JumpStartnama bucket mengikuti pola yang telah ditentukan yang bergantung pada Wilayah AWS. Anda harus menyesuaikan nama bucket yang sesuai.

    { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-us-west-2", "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*" ] }

Setelah ini selesai, Anda dapat menggunakan ARN dari peran eksekusi ini dalam permintaan API Autopilot.

Parameter yang diperlukan

Saat memanggil CreateAutoMLJobV2 untuk membuat eksperimen Autopilot untuk penyetelan LLM, Anda harus memberikan nilai berikut:

  • A AutoMLJobName untuk menentukan nama pekerjaan Anda. Nama harus tipestring, dan harus memiliki panjang minimal 1 karakter dan panjang maksimum 32.

  • Setidaknya satu AutoMLJobChannel dari training jenis di dalamAutoMLJobInputDataConfig. Saluran ini menentukan nama bucket Amazon S3 tempat kumpulan data penyempurnaan Anda berada. Anda memiliki opsi untuk menentukan validation saluran. Jika tidak ada saluran validasi yang disediakan, dan a ValidationFraction dikonfigurasi di AutoMLDataSplitConfig, fraksi ini digunakan untuk membagi kumpulan data pelatihan secara acak menjadi set pelatihan dan validasi. Selain itu, Anda dapat menentukan jenis konten (file CSV atau Parquet) untuk dataset.

  • AutoMLProblemTypeConfigJenis TextGenerationJobConfig untuk mengonfigurasi pengaturan pekerjaan pelatihan Anda.

    Secara khusus, Anda dapat menentukan nama model dasar untuk menyempurnakan di BaseModelName lapangan. Untuk daftar model pra-terlatih yang tersedia untuk penyempurnaan di Amazon SageMaker Autopilot, lihat. Model bahasa besar yang didukung untuk penyempurnaan

  • An OutputDataConfig untuk menentukan jalur keluaran Amazon S3 untuk menyimpan artefak pekerjaan AutoML Anda.

  • A RoleArn untuk menentukan ARN dari peran yang digunakan untuk mengakses data Anda.

Berikut ini adalah contoh format permintaan lengkap yang digunakan saat membuat panggilan API CreateAutoMLJobV2 untuk menyempurnakan model (Falcon7BInstruct).

{ "AutoMLJobName": "<job_name>", "AutoMLJobInputDataConfig": [ { "ChannelType": "training", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<bucket_name>/<input_data>.csv" } } } ], "OutputDataConfig": { "S3OutputPath": "s3://<bucket_name>/output", "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>" }, "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>", "AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7BInstruct" } } }

Semua parameter lainnya adalah opsional.

Parameter opsional

Bagian berikut memberikan rincian beberapa parameter opsional yang dapat Anda berikan ke pekerjaan AutoML yang menyempurnakan.

Anda dapat menyediakan kumpulan data validasi Anda sendiri dan rasio pemisahan data khusus, atau membiarkan Autopilot membagi kumpulan data secara otomatis.

Setiap AutoMLJobChannel objek (lihat parameter yang diperlukan AutoMLJobInputDataConfig) memilikiChannelType, yang dapat diatur ke salah satu training atau validation nilai yang menentukan bagaimana data akan digunakan saat membangun model pembelajaran mesin.

Setidaknya satu sumber data harus disediakan dan maksimal dua sumber data diperbolehkan: satu untuk data pelatihan dan satu untuk data validasi. Bagaimana Anda membagi data menjadi kumpulan data pelatihan dan validasi tergantung pada apakah Anda memiliki satu atau dua sumber data.

  • Jika Anda hanya memiliki satu sumber data, ChannelType disetel ke training secara default dan harus memiliki nilai ini.

    • Jika ValidationFraction nilai di tidak AutoMLDataSplitConfig disetel, 0,2 (20%) data dari sumber ini digunakan untuk validasi secara default.

    • Jika ValidationFraction disetel ke nilai antara 0 dan 1, dataset dibagi berdasarkan nilai yang ditentukan, di mana nilai tersebut menentukan fraksi dataset yang digunakan untuk validasi.

  • Jika Anda memiliki dua sumber data, ChannelType salah satu AutoMLJobChannel objek harus disetel ketraining, nilai default. Sumber data lainnya harus disetel kevalidation. ChannelType Kedua sumber data harus memiliki format yang sama, baik CSV atau Parquet, dan skema yang sama. Anda tidak boleh menetapkan nilai untuk ValidationFraction dalam kasus ini karena semua data dari setiap sumber digunakan untuk pelatihan atau validasi. Menyetel nilai ini menyebabkan kesalahan.

Dengan Autopilot, Anda dapat secara otomatis menerapkan model yang disesuaikan ke titik akhir. Untuk mengaktifkan penerapan otomatis untuk model yang disetel dengan baik, sertakan a ModelDeployConfig dalam permintaan pekerjaan AutoML. Ini memungkinkan penyebaran model Anda yang disetel dengan baik ke titik akhir SageMaker AI. Di bawah ini adalah konfigurasi yang tersedia untuk penyesuaian.

Untuk model yang memerlukan penerimaan perjanjian lisensi pengguna akhir sebelum menyempurnakan, Anda dapat menerima EULA dengan menyetel AcceptEula atribut to True in TextGenerationJobConfig saat mengonfigur ModelAccessConfig asi Anda. AutoMLProblemTypeConfig

Anda dapat mengoptimalkan proses pembelajaran model pembuatan teks Anda dengan menyetel nilai hyperparameter di TextGenerationHyperParameters atribut TextGenerationJobConfig saat mengonfigurasi AndaAutoMLProblemTypeConfig.

Autopilot memungkinkan pengaturan empat hyperparameter umum di semua model.

  • epochCount: Nilainya harus berupa string yang berisi nilai integer dalam kisaran 1 to10.

  • batchSize: Nilainya harus berupa string yang berisi nilai integer dalam kisaran 1 to64.

  • learningRate: Nilainya harus berupa string yang berisi nilai floating-point dalam kisaran to. 0 1

  • learningRateWarmupSteps: Nilainya harus berupa string yang berisi nilai integer dalam kisaran 0 to250.

Untuk detail lebih lanjut tentang setiap hyperparameter, lihatHyperparameter untuk mengoptimalkan proses pembelajaran model pembuatan teks Anda.

Contoh JSON berikut menunjukkan TextGenerationHyperParameters bidang yang diteruskan ke TextGenerationJobConfig tempat keempat hyperparameter dikonfigurasi.

"AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7B", "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"} } }