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

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, menjawab pertanyaan, dan banyak lagi. Kinerja mereka dapat dikaitkan dengan ukuran signifikan dan pelatihan ekstensif pada kumpulan data yang beragam 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 fine tuning berbasis instruksi dari pilihan model bahasa besar tujuan umum (LLM) yang didukung oleh. JumpStart

catatan

Model pembuatan teks yang mendukung fine-tuning 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.

Penyetelan model yang telah dilatih sebelumnya memerlukan kumpulan data spesifik dari instruksi yang jelas yang memandu model tentang cara menghasilkan output atau berperilaku untuk tugas itu. Model belajar dari kumpulan data, menyesuaikan parameternya agar sesuai dengan instruksi yang diberikan. Penyetelan berbasis instruksi melibatkan penggunaan contoh berlabel yang diformat sebagai pasangan respons prompt dan diungkapkan sebagai instruksi. Untuk informasi selengkapnya tentang fine-tuning, lihat Menyempurnakan model foundation.

Pedoman berikut menguraikan proses pembuatan pekerjaan Amazon SageMaker Autopilot sebagai percobaan percontohan untuk menyempurnakan LLM pembuatan teks menggunakan Referensi API. SageMaker

catatan

Tugas seperti klasifikasi teks dan gambar, peramalan deret waktu, dan penyempurnaan model bahasa besar tersedia secara eksklusif melalui API REST AutoML versi 2. Jika bahasa pilihan Anda adalah Python, Anda dapat merujuk ke AWS SDK for 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 API CreateAutoMLJobV2dalam bahasa apa pun yang didukung oleh Amazon Autopilot atau. SageMaker AWS CLI

Untuk informasi tentang cara 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 dari in. create_auto_ml_job_v2 AWS SDK for Python (Boto3)

catatan

Autopilot menyempurnakan model bahasa besar tanpa memerlukan banyak kandidat untuk dilatih dan dievaluasi. Alih-alih, menggunakan kumpulan data Anda, Autopilot secara langsung menyempurnakan model target Anda untuk meningkatkan metrik objektif default, kehilangan lintas entropi. Model bahasa fine-tuning di Autopilot tidak memerlukan pengaturan bidang. AutoMLJobObjective

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

Prasyarat

Sebelum menggunakan Autopilot untuk membuat eksperimen fine-tuning SageMaker, pastikan untuk mengambil langkah-langkah berikut:

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

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

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

  • Tempatkan kumpulan data Anda di bucket Amazon S3.

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

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

    • Untuk informasi tentang pemberian izin peran SageMaker eksekusi untuk mengakses satu atau beberapa bucket tertentu di Amazon S3, lihat Menambahkan Izin Amazon S3 Tambahan ke Peran Eksekusi di. SageMaker Buat peran eksekusi

  • Selain itu, Anda harus memberi peran eksekusi izin yang diperlukan untuk mengakses bucket Amazon S3 penyimpanan default yang digunakan oleh. JumpStart Akses ini diperlukan untuk menyimpan dan mengambil artefak model pra-terlatih di. JumpStart Untuk memberikan akses ke bucket Amazon S3 ini, Anda harus membuat kebijakan kustom inline baru pada peran eksekusi Anda.

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

    JumpStartnama bucket mengikuti pola yang telah ditentukan yang bergantung pada. Wilayah AWS Anda harus menyesuaikan nama ember 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 menelepon CreateAutoMLJobV2 untuk membuat eksperimen Autopilot untuk fine-tuning LLM, Anda harus memberikan nilai berikut:

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

  • Setidaknya AutoMLJobChannel salah satu training tipe di dalamAutoMLJobInputDataConfig. Saluran ini menentukan nama bucket Amazon S3 tempat dataset fine-tuning 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 Parket) untuk kumpulan data.

  • AutoMLProblemTypeConfigJenis TextGenerationJobConfig untuk mengonfigurasi pengaturan pekerjaan pelatihan Anda.

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

  • OutputDataConfigUntuk 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 fine-tuning Anda.

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

Setiap AutoMLJobChannelobjek (lihat parameter AutoML yang diperlukan JobInputDataConfig) 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 diatur ke secara training default dan harus memiliki nilai ini.

    • Jika ValidationFraction nilai dalam tidak AutoMLDataSplitConfigdisetel, 0.2 (20%) data dari sumber ini digunakan untuk validasi secara default.

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

  • Jika Anda memiliki dua sumber data, ChannelType salah satu AutoMLJobChannel objek harus diatur ketraining, nilai default. Sumber data lainnya harus diatur kevalidation. ChannelType Kedua sumber data harus memiliki format yang sama, baik CSV atau Parket, 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 fine-tuned Anda ke titik akhir. Untuk mengaktifkan penerapan otomatis untuk model yang disetel dengan baik, sertakan a dalam permintaan pekerjaan ModelDeployConfig AutoML. Hal ini memungkinkan penerapan model fine-tuned Anda ke titik akhir. SageMaker Di bawah ini adalah konfigurasi yang tersedia untuk kustomisasi.

Untuk model yang memerlukan penerimaan perjanjian lisensi pengguna akhir sebelum fine-tuning, Anda dapat menerima EULA dengan menyetel AcceptEula atribut to in saat mengonfigurasi. ModelAccessConfig True TextGenerationJobConfig AutoMLProblemTypeConfig

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

Autopilot memungkinkan pengaturan empat hiperparameter 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, lihatOptimalkan proses pembelajaran model pembuatan teks Anda dengan hyperparameters.

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

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