Sempurnakan model bahasa besar (LLM) menggunakan instruksi prompt - Amazon SageMaker

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

Sempurnakan model bahasa besar (LLM) menggunakan instruksi prompt

Penyetelan berbasis instruksi menggunakan contoh berlabel untuk meningkatkan kinerja model pondasi yang telah dilatih sebelumnya pada tugas tertentu. Contoh berlabel diformat sebagai prompt, pasangan respons dan diungkapkan sebagai instruksi. Proses fine-tuning ini memodifikasi bobot model. Untuk informasi lebih lanjut tentang fine-tuning berbasis instruksi, lihat makalah MemperkenalkanFLAN: Model Bahasa yang Lebih Dapat Digeneralisasikan dengan Instruksi Fine-Tuning dan Scaling Instruction-Finetuned Language Models.

Model LAnguage Net (FLAN) yang disetel dengan baik menggunakan penyetelan instruksi untuk membuat model lebih setuju untuk menyelesaikan tugas hilir umum. NLP Amazon SageMaker JumpStart menyediakan sejumlah model pondasi dalam keluarga FLAN model. Misalnya, model FLAN -T5 adalah instruksi yang disetel dengan baik pada berbagai tugas untuk meningkatkan kinerja zero-shot untuk berbagai kasus penggunaan umum. Dengan data tambahan dan fine-tuning, model berbasis instruksi dapat lebih lanjut disesuaikan dengan tugas yang lebih spesifik yang tidak dipertimbangkan selama pra-pelatihan.

Untuk menyempurnakan tugas tertentu menggunakan instruksi tugas pasangan prompt respons: LLM

  1. Siapkan instruksi Anda dalam JSON file. Untuk informasi selengkapnya tentang format yang diperlukan untuk file pasangan prompt respons dan struktur folder data, lihat. Mempersiapkan dan mengunggah data pelatihan untuk fine-tuning berbasis instruksi

  2. Buat pekerjaan pelatihan fine-tuning Anda. Untuk petunjuk, silakan lihat Buat pekerjaan pelatihan untuk fine-tuning berbasis instruksi.

Anda dapat menemukan end-to-end contoh diNotebook contoh.

Hanya sebagian dari model JumpStart pondasi yang kompatibel dengan fine-tuning berbasis instruksi. Penyetelan berbasis instruksi tersedia dengan model pondasi berikut:

catatan

Beberapa model JumpStart dasar, seperti Llama 2 7B, memerlukan penerimaan perjanjian lisensi pengguna akhir sebelum menyempurnakan dan melakukan inferensi. Untuk informasi selengkapnya, lihat Perjanjian lisensi pengguna akhir.

  • Dasar Flan-T5

  • Flan-T5 Besar

  • Flan-T5 Kecil

  • Flan-T5 XL

  • Flan-T5 XXL

  • Llama 2 13B

  • Llama 2 13B Obrolan

  • Llama 2 13B Neuron

  • Llama 2 70B

  • Llama 2 70B Obrolan

  • Llama 2 7B

  • Llama 2 7B Obrolan

  • Llama 2 7B Neuron

  • Mistral 7B

  • RedPajama INCITEDasar 3B V1

  • RedPajama INCITEDasar 7B V1

  • RedPajama INCITEObrolan 3B V1

  • RedPajama INCITEObrolan 7B V1

  • RedPajama INCITEInstruksikan 3B V1

  • RedPajama INCITEInstruksikan 7B V1

Mempersiapkan dan mengunggah data pelatihan untuk fine-tuning berbasis instruksi

Data pelatihan untuk fine-tuning berbasis instruksi harus disediakan dalam format file teks JSON Lines, di mana setiap baris adalah kamus. Semua data pelatihan harus dalam satu folder. Folder dapat menyertakan beberapa file.jsonl.

Folder pelatihan juga dapat menyertakan JSON file template (template.json) yang menjelaskan format input dan output data Anda. Jika tidak ada file template yang disediakan, file template berikut digunakan:

{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }

Menurut template.json file, setiap entri .jsonl dari data pelatihan harus menyertakan{instruction},{context}, dan bidang. {response}

Jika Anda menyediakan JSON file template kustom, gunakan "completion" tombol "prompt" dan untuk menentukan bidang wajib Anda sendiri. Menurut JSON file template kustom berikut, setiap entri .jsonl dari data pelatihan harus menyertakan{question},{context}, dan bidang: {answer}

{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }

Pisahkan data untuk pelatihan dan pengujian

Anda dapat secara opsional menyediakan folder lain yang berisi data validasi. Folder ini juga harus menyertakan satu atau lebih file.jsonl. Jika tidak ada kumpulan data validasi yang disediakan, maka sejumlah data pelatihan disisihkan untuk tujuan validasi. Anda dapat menyesuaikan persentase data pelatihan yang digunakan untuk validasi ketika Anda memilih hyperparameters untuk menyempurnakan model Anda.

Unggah data fine-tuning ke Amazon S3

Unggah data yang sudah disiapkan ke Amazon Simple Storage Service (Amazon S3) untuk digunakan saat JumpStart menyempurnakan model foundation. Anda dapat menggunakan perintah berikut untuk mengunggah data Anda:

from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file = "train.jsonl" train_data_location = f"s3://{output_bucket}/dolly_dataset" S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")

Buat pekerjaan pelatihan untuk fine-tuning berbasis instruksi

Setelah data Anda diunggah ke Amazon S3, Anda dapat menyempurnakan dan menerapkan model foundation Anda. JumpStart Untuk menyempurnakan model Anda di Studio, lihat. Sempurnakan model di Studio Untuk menyempurnakan model Anda menggunakan SageMaker Python SDK, lihatSempurnakan model foundation yang tersedia untuk umum dengan kelasnya JumpStartEstimator.

Notebook contoh

Untuk informasi selengkapnya tentang fine-tuning berbasis instruksi, lihat contoh buku catatan berikut: