2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
- बीजरूपेण प्रॉम्प्ट्-समूहस्य कृत्रिमरूपेण निर्माणं कुर्वन्तु । (मानवलिखितकार्यस्य लघुबीजसमूहात् आरभ्य)
- प्रत्येकं समये, कतिपय-शॉट्-उदाहरणानि निर्मातुं बीजेन उत्पन्नानि कानिचन Prompts-इत्येतत् Input मध्ये स्थापयन्तु, अपि च अधिकानि Prompts-जननार्थं LLM-इत्यस्य उपयोगं कुर्वन्तु (बीज-कार्यानाम् आधारेण नूतनानि निर्देशानि जनयितुं LLM-इत्यस्य उपयोगः);
- दुर्गुणवत्तायुक्तानि छानयन्तु, येषां आवश्यकता भवितुम् अर्हति तान् सम्यक् कुर्वन्तु (जनितनिर्देशान् छानयित्वा परिष्कृत्य);
- आउटपुट् परिणामान् प्राप्तुं LLM मध्ये सर्वाणि उत्पन्नानि Prompts प्रविशन्तु (नवीननिर्देशानां कृते input-output instances निर्मातुं);
- Input Output, LLM कृते प्रशिक्षणनमूनानि करणम् (LLM इत्यस्य सूक्ष्म-समायोजनाय उत्पन्नस्य आँकडा-समूहस्य उपयोगः)
चरण 2, LLM जनयति:
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}")
Step 3 फ़िल्टर: 1.1.
केचन नियमाः हस्तचलितरूपेण परिभाषयन्तु, ये अतिदुष्टाः सन्ति तान् छानयन्तु (LLM रेफरीरूपेण अपि उपयोक्तुं शक्यते)
उद्देश्यम् : गुणवत्तां विविधतां च सुनिश्चितं कर्तुं;
- अतिलघुः अतिदीर्घः वा निर्देशाः छानन्तु
- भाषाप्रतिरूपस्य कृते अनुपयुक्ताः कीवर्डयुक्ताः निर्देशाः छानयन्तु (उदा. "चित्रम्", "ग्राफः", "सञ्चिका", "प्लॉट्")
- विरामचिह्नात् आरभ्य निर्देशान् छानयन्तु
- अ-आङ्ग्लवर्णैः आरभ्य निर्देशान् छानयन्तु
- कार्यपूले विद्यमानस्य कस्यचित् निर्देशस्य सह उच्चतरं ROUGE-L सादृश्यं (0.7 उपरि) येषां निर्देशानां फ़िल्टरं कुर्वन्तु