Siapkan data untuk model berbobot terbuka - Amazon Bedrock

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

Siapkan data untuk model berbobot terbuka

Saat Anda menyempurnakan model bobot terbuka dengan penyetelan penguatan menggunakan OpenAI yang kompatibel dengan OpenAI APIs, berikan data pelatihan dengan membawa petunjuk Anda sendiri dalam format JSONL dengan tujuan tersebut. fine-tune

Format dan persyaratan data pelatihan

Data pelatihan harus mengikuti format penyelesaian obrolan OpenAI dengan contoh 100-20K. Setiap contoh pelatihan berisi:

  • messages: Di bidang ini, sertakan peran pengguna, sistem atau asisten yang berisi prompt input yang diberikan kepada model.

  • reference_answer: Di bidang ini, harus berisi output yang diharapkan atau kriteria evaluasi yang digunakan fungsi hadiah Anda untuk menilai respons model. Ini tidak terbatas pada output terstruktur—dapat berisi format apa pun yang membantu fungsi hadiah Anda mengevaluasi kualitas.

  • [Opsional] Anda dapat menambahkan bidang yang digunakan oleh grader Lambda untuk penilaian.

Persyaratan:

  • Format JSONL dengan petunjuk dalam format penyelesaian obrolan OpenAI (satu prompt per baris)

  • Tujuan harus diatur ke fine-tune

  • Minimal 100 catatan dalam dataset pelatihan

  • Amazon Bedrock secara otomatis memvalidasi format kumpulan data pelatihan

Example: General question-answering
{ "messages": [ { "role": "system", "content": "You are a helpful assistant" }, { role": "user", "content": "What is machine learning?"} ], "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed." }
Example: Math problem
{ "id": "sample-001", "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] } }

File API

Anda dapat menggunakan api file yang kompatibel dengan OpenAI untuk mengunggah data pelatihan Anda untuk pekerjaan fine-tuning. File disimpan dengan aman di Amazon Bedrock, dan digunakan saat membuat pekerjaan fine-tuning. Untuk detail API selengkapnya, lihat dokumentasi OpenAI File.

Untuk mengunggah file pelatihan, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Upload training file with open(TRAINING_FILE_PATH, 'rb') as f: file_response = client.files.create( file=f, purpose='fine-tune' ) # Store file ID for next steps training_file_id = file_response.id print(f"✅ Training file uploaded successfully: {training_file_id}")
HTTP request

Buat permintaan POST untuk/v1/files:

curl https://bedrock-mantle.us-west-2.api.aws/v1/files \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -F purpose="fine-tune" \ -F file="@training_data.jsonl"

Untuk mengambil detail tentang file tertentu, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Retrieve file details file_details = client.files.retrieve(training_file_id) # Print raw response print(json.dumps(file_details.model_dump(), indent=2))
HTTP request

Buat permintaan GET untuk/v1/files/{file_id}:

curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \ -H "Authorization: Bearer $OPENAI_API_KEY"

Untuk mencantumkan file yang diunggah, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List files files_response = client.files.list(purpose='fine-tune') # Print raw response print(json.dumps(files_response.model_dump(), indent=2))
HTTP request

Buat permintaan GET untuk/v1/files:

curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \ -H "Authorization: Bearer $OPENAI_API_KEY"

Untuk menghapus file, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Delete file delete_response = client.files.delete(training_file_id)
HTTP request

Buat permintaan DELETE ke/v1/files/{file_id}:

curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \ -H "Authorization: Bearer $OPENAI_API_KEY"

Karakteristik data pelatihan yang efektif

Data pelatihan RFT yang efektif membutuhkan tiga karakteristik utama:

  • Kejelasan dan konsistensi - Gunakan petunjuk yang jelas dan tidak ambigu dengan pemformatan yang konsisten. Hindari label yang kontradiktif, instruksi ambigu, atau jawaban referensi yang bertentangan yang menyesatkan pelatihan.

  • Keragaman — Sertakan beragam format input, kasus tepi, dan tingkat kesulitan yang mencerminkan pola penggunaan produksi di berbagai jenis dan skenario pengguna.

  • Fungsi hadiah yang efisien — Merancang fungsi yang dijalankan dengan cepat (detik, bukan menit), sejajar dengan AWS Lambda, dan mengembalikan skor yang konsisten untuk pelatihan hemat biaya.

Properti tambahan

Format data RFT mendukung bidang khusus di luar persyaratan skema inti (messagesdanreference_answer). Fleksibilitas ini memungkinkan Anda untuk menambahkan data tambahan apa pun yang dibutuhkan fungsi hadiah Anda untuk evaluasi yang tepat.

catatan

Anda tidak perlu mengonfigurasi ini dalam resep Anda. Format data secara inheren mendukung bidang tambahan. Cukup sertakan mereka dalam data pelatihan Anda JSON, dan mereka akan diteruskan ke fungsi hadiah Anda di metadata lapangan.

Properti tambahan umum

  • task_id— Pengidentifikasi unik untuk melacak

  • difficulty_level— Indikator kompleksitas masalah

  • domain— Bidang subjek atau kategori

  • expected_reasoning_steps— Jumlah langkah dalam solusi

Bidang tambahan ini diteruskan ke fungsi hadiah Anda selama evaluasi, memungkinkan logika penilaian canggih yang disesuaikan dengan kasus penggunaan spesifik Anda.

Contoh dengan properti tambahan

Chemistry problem
{ "id": "chem-001", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C" } ], "reference_answer": { "donor_bond_counts": 2, "acceptor_bond_counts": 4 } }

reference_answerBidang berisi output yang diharapkan atau kriteria evaluasi yang digunakan fungsi hadiah Anda untuk menilai respons model. Ini tidak terbatas pada output terstruktur—dapat berisi format apa pun yang membantu fungsi hadiah Anda mengevaluasi kualitas.

Math problem with metadata
{ "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] }, "task_id": "algebra_001", "difficulty_level": "easy", "domain": "algebra", "expected_reasoning_steps": 3 }