informasi kontak saya
Surat[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
- Buatlah kumpulan Anjuran secara artifisial sebagai benih. (Dimulai dengan serangkaian tugas kecil yang ditulis manusia)
- Setiap kali, masukkan beberapa Perintah yang dihasilkan oleh benih ke dalam Input untuk membuat beberapa contoh, dan gunakan LLM untuk menghasilkan lebih banyak Perintah (Menggunakan LLM untuk menghasilkan instruksi baru berdasarkan tugas benih)
- Saring instruksi yang berkualitas buruk dan perbaiki instruksi yang diperlukan; (Menyaring dan menyempurnakan instruksi yang dihasilkan)
- Masukkan semua Prompt yang dihasilkan ke dalam LLM untuk mendapatkan hasil output; (Membuat instance input-output untuk instruksi baru)
- Input Output, membuat sampel pelatihan untuk LLM (Menggunakan kumpulan data yang dihasilkan untuk menyempurnakan LLM)
Langkah 2, LLM menghasilkan:
import random from transformers import AutoTokenizer, AutoModelForCausalLM # Load a pre-trained language model model_name = "bigcode/starcoderbase-1b" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) # Seed tasks (simplified for demonstration) seed_tasks = [ "Write a function to calculate the factorial of a number.", "Create a class to represent a bank account.", "Implement a binary search algorithm." ] def generate_instruction(prompt): inputs = tokenizer(prompt, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=50) return tokenizer.decode(outputs[0], skip_special_tokens=True) def self_instruct(num_iterations): generated_tasks = [] for _ in range(num_iterations): # Sample existing tasks sampled_tasks = random.sample(seed_tasks generated_tasks, min(3, len(seed_tasks) len(generated_tasks))) # Create a prompt for generating new instructions prompt = "Generate a new programming task based on these examples:nn" prompt = "n".join(sampled_tasks) prompt = "nnNew task:" # Generate a new instruction new_task = generate_instruction(prompt) # In practice, you would filter and refine the generated task here generated_tasks.append(new_task) return generated_tasks # Run Self-Instruct new_tasks = self_instruct(5) for i, task in enumerate(new_tasks, 1): print(f"Task {i}: {task}")
Langkah 3 Menyaring:
Tetapkan beberapa aturan secara manual dan saring aturan yang terlalu buruk (LLM juga dapat digunakan sebagai wasit)
Tujuan: untuk menjamin kualitas dan keragaman;
- Saring instruksi yang terlalu pendek atau terlalu panjang
- Saring instruksi yang berisi kata kunci yang tidak sesuai untuk model bahasa (misalnya "gambar", "grafik", "file", "plot")
- Saring instruksi yang dimulai dengan tanda baca
- Saring instruksi yang dimulai dengan karakter non-Inggris
- Saring instruksi yang memiliki kesamaan ROUGE-L tinggi (di atas 0,7) dengan instruksi yang ada di kumpulan tugas