විශාල භාෂා ආකෘතිය මුල සිට පුහුණු කිරීම සඳහා ඩොලර් මිලියන ගණනක් හා පරිගණක කාලය මාස ගණනාවක් විය හැකිය.ඔබ බොහෝ විට එය කළ යුතු නැත.Fine-tuning ඔබට පෙර පුහුණු භාෂා ආකෘති ඔබේ අවශ්යතා වලට පැය හෝ දිනවල, මාසවල නොව, සම්පත් කොටසක් සමඟ අනුකූල කර ගත හැකිය. මේ tutorial එකෙන් ඔයාට : ඔබ පුහුණු කිරීම සඳහා මූලික ක්රම හතරක් ඉගෙන ගනු ඇත, Python හි සම්පූර්ණ පුහුණු පයිප්ලයින් කේතය, හා මිල අධික අත්හදා බැලීම් වලින් නිෂ්පාදන සූදානම් ආකෘති වෙන් කරන ක්රම ඉගෙන ගනු ඇත. from theory to practice LLM Fine-Tuning යනු කුමක්ද? Fine-tuning ඔබගේ දත්ත මත පවතින භාෂා ආකෘතිය පුහුණු කරයි පෙර පුහුණු ආකෘති ශක්තිමත් Generalists, නමුත් ඔවුන් ප්රකාශ ඔබේ භාවිතය සඳහා විශේෂඥයන් බවට පරිවර්තනය කළ හැකිය. performance on specific tasks focused examples මුල සිට ආකෘතිය ගොඩනැගීම වෙනුවට (මෙය විශාල පරිගණක සහ දත්ත අවශ්ය වන), ඔබ දැනටමත් හැකියාව ඇති ආකෘතියට ඔබ වැදගත් වන්නේ කුමක්ද, එය වෛද්ය ප්රතිකාර, පාරිභෝගික සහාය ස්වයංක්රීය කිරීම, හැඟීම් විශ්ලේෂණය හෝ වෙනත් ඕනෑම විශේෂ කාර්යයක්. කොහොමද LLM Fine-Tuning වැඩ කරන්නේ? Fine-tuning ඔබේ විශේෂිත දත්ත සමුදාය භාවිතා කිරීමෙන් පෙර පුහුණු භාෂා ආකෘති මත පුහුණු ක්රියාවලිය දිගටම කරයි.The model processes your provided examples, compares its own outputs to the expected results, and පරාජය සහ අඩුපාඩු අවම කිරීමට. updates internal weights මෙම ප්රවේශය ඔබේ මත පදනම්ව වෙනස් විය හැක , සහ සමහර ව්යාපෘති සඳහා සම්පූර්ණ මෘදු සැකසුම් අවශ්ය වන අතර, ඔබ සියලුම ආකෘති ප්රමාණයන් යාවත්කාලීන කරන අතර, අනෙකුත් ප්රමාණශීලී ක්රමයන් සමඟ වඩා හොඳින් වැඩ කරයි. එය කුඩා කොටසක් පමණක් වෙනස් කරයි. goals available data computational resources ලෝරා LLM Fine-Tuning ක්රම නිරීක්ෂණය Fine-Tuning SFT උගන්වන්නේ නිවැරදි ප්රශ්න පිළිතුරු යුගලයේ ආකෘති ඉගෙන ගැනීමට සහ එම පිළිතුරු නිවැරදිව ගැලපෙන පරිදි ආකෘති බර අනුකූල කරයි. JSON ආකෘතිය සෑම විටම ප්රතිචාර කරන ආකාරය, ඔබේ පාරිභෝගික සේවා ස්කයිප් එක අනුගමනය කරන ආකාරය හෝ ඔබේ සමාගමේ තොන්වල ඊ-තැපැල් ලියන ආකාරය වැනි නිශ්චිත ප්රතිඵල අවශ්ය විට මෙය භාවිතා කරන්න. (Prompt, Ideal Response) නොසැලකිලිමත් Fine-Tuning මෙම ආකෘතිය නිශ්චිත මාතෘකාව පිළිබඳ වචන හා ආකෘති ඉගෙන ගැනීමට අවශ්ය නොතිබුණු ප්රශ්න හෝ ලියාපදිංචි දත්ත (අවශ්ය) ආකෘතිය ටොන්ස් රූ ලේඛන සපයයි. මෙම තාක්ෂණිකව දිගටම පෙර පුහුණු (CPT) ලෙස හඳුන්වන පෙර පුහුණු ක්රියාවලිය වන අතර, එය සාමාන්යයෙන් ආරම්භක පෙර පුහුණු පියවරෙන් පසුව සිදු වේ. Direct Preference Optimization ප් රමුඛතාවය DPO එම ප්රශ්නයට හොඳ සහ නරක ප්රතිචාර උදාහරණ පෙන්වමින් හොඳ ප්රතිචාර ප්රවේශ කිරීමට ආකෘතියට උගන්වයි. ප්රධාන පුහුණු කිරීමෙන් පසු DPO භාවිතා කරන්න, ආකෘතියට දේවල් හදන්න නවත්වන්න, ඉතා වචනීය වීම හෝ අනාරක්ෂිත පිළිතුරු ලබා දීම වැනි කරදරකාරී හැසිරීම් නිවැරදි කරන්න. (Prompt, Good Response, Bad Response) Fine-Tuning ශක්තිමත් කිරීම RLHF හිදී, ඔබ මුලින්ම මිනිසුන් විසින් වර්ගීකරණය කරන ලද ප්රතිචාර කිහිපයක් සහිත ප්රශ්න මත ප්රතිලාභ ආකෘතිය පුහුණු කරන අතර, එය ජනතාව කැමති ප්රතිචාර මොනවාද යන්න අනාවැකි කිරීමට උගන්වනවා. එවිට, ඔබ ප්රතිචාර නිර්මාණය කරන ආකෘතිය හොඳින් පරිශීලනය කිරීම සඳහා සහ ප්රතිලාභ ආකෘතිය නිවැරදි කිරීම සඳහා ශක්තිමත් අධ්යාපනය භාවිතා කරයි. මෙම ක්රියාවලිය මෙම ආකෘතිය තුළ දත්ත සමුදාය අවශ්ය වේ: එය පරිපූර්ණ උදාහරණ නිර්මාණය කිරීමට වඩා ගුණාත්මකව විනිශ්චය කිරීම පහසු වන කාර්යයන් සඳහා හොඳම වේ, වෛද්ය පරීක්ෂණ, නීතිමය පර්යේෂණ සහ අනෙකුත් සංකීර්ණ ක්ෂේත්ර සංකීර්ණ සාක්ෂි වැනි. (Prompt, [Response A, Response B, ...], [Rankings]) Step-by-Step Fine-Tuning පාඨමාලාව අපි ඔබට සෑම පියවරක් හරහා ගමන් කරමු කුඩා පෙර පුහුණු ආකෘතිය විසඳීමට වචන පදනම් සංඛ්යාත ප්රශ්න, එය පෙට්ටිය පිටතට සටන් කරන දෙයක්. ප්රවේශය : ආකෘති විශේෂාංගය ඉගැන්වීම, විශේෂිත කාර්යයන් මත ආකෘති කාර්ය සාධනය වැඩි දියුණු කිරීම, හෝ එය ඔබේ ප්රදේශයට අනුකූල කිරීම. works for virtually any use case of fine-tuning LLMs කොන්දේසි මෙම පුහුණු පාඨමාලාවේ දී අපි භාවිතා කරනු ලබන කිහිප දෙනෙකුගේ Python පැකේජයක් ස්ථාපනය කරන්න.නව ව්යාපෘති ගොනුවකදී, Python වෘත්තීය පරිසරයක් නිර්මාණය සහ ක්රියාත්මක කරන්න, පසුව මෙම පුස්තකාලයන් ස්ථාපනය කරන්න. ඔබගේ ප්රියතම පැකේජ කළමනාකරණය: pip pip install requests datasets transformers 'transformers[torch]' Get & Load the Dataset - දත්ත එකතු කිරීම දත්ත සකස් කිරීමේ ක්රියාවලිය ආරම්භ වන්නේ දත්ත සමුදාය තෝරා ගැනීමෙන්, එය බොහෝ විට වැදගත්ම තීරණයකි. . reflect the task you want your model to perform හැඟීම් විශ්ලේෂණය වැනි සරල කාර්යයන් සඳහා මූලික input-output යුගල අවශ්ය වේ. instruction-following හෝ question-answering වැනි සංකීර්ණ කාර්යයන් kontext, උදාහරණ සහ විවිධ ආකෘති සහිත වඩාත් පොහොසත් දත්ත සමුදායක් අවශ්ය වේ. වඩාත් පහසු ආරම්භය වන්නේ දහස් ගණනක් විවෘත මූලාශ්ර දත්ත රැස්වීම් සඳහා විවිධ ප්රදේශ සහ කාර්යයන් සඳහා ගබඩා වන දත්ත රැස්වීම් පුස්තකාලය. හෝ විවෘතව ලබා ගත හැකි දත්ත Hugging Face Purchase specialized datasets build your own by scrap එක scrap එක උදාහරණයක් ලෙස, ඔබ ඇමේසන් නිෂ්පාදන සමාලෝචන සඳහා හැඟීම් විශ්ලේෂණය ආකෘතිය ගොඩනඟා ගැනීමට අවශ්ය නම්, ඔබ සැබෑ සමාලෝචන වලින් දත්ත එකතු කිරීමට අවශ්ය විය හැක. : වෙබ් Scraper API import json import requests # Web Scraper API parameters. payload = { "source": "amazon_product", # Query is the ASIN of a product. "query": "B0DZDBWM5B", "parse": True, } # Send a request to the API and get the response. response = requests.post( "https://realtime.oxylabs.io/v1/queries", # Visit https://dashboard.oxylabs.io to claim FREE API tokens. auth=("USERNAME", "PASSWORD"), json=payload, ) print(response.text) # Extract the reviews from the response. reviews = response.json()["results"][0]["content"]["reviews"] print(f"Found {len(reviews)} reviews") # Save the reviews to a JSON file. with open("reviews.json", "w") as f: json.dump(reviews, f, indent=2) For this tutorial, let’s keep it simple without building a custom data collection pipeline. Since we're teaching the base model to solve word-based math problems, we can use the openai/gsm8k dataset. It’s a collection of grade-school math problems with step-by-step solutions. Load it in your Python file: from datasets import load_dataset dataset = load_dataset("openai/gsm8k", "main") print(dataset["train"][0]) 2.Tokenize දත්ත ප්රතිකාර සඳහා ආකෘති සෘජුවම පෙළ තේරුම් නොගනිති; ඔවුන් සමඟ වැඩ .Tokenization ඔබගේ පණිවිඩය ටොක්න් බවට පරිවර්තනය කරයි (මාර්ගික ප්රදර්ශන) මෙම ආකෘතිය ක්රියාත්මක කළ හැකිය. සෑම ආකෘතියකටම එහි සමීපව පුහුණු කර ඇත, එබැවින් ඔබේ පදනම ආකෘතිය සමඟ ගැලපෙන එකක් භාවිතා කරන්න: numbers from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B") tokenizer.pad_token = tokenizer.eos_token අපි අපේ දත්ත ආකෘති මොනවද අපේ ආකෘතිය ඉගෙන ගන්නේ. maths ප්රශ්න සඳහා, අපි ඉගෙන ගන්නේ කෙසේද ආකෘතිය සාර්ථක කිරීමට අවශ්ය ප්රශ්න, ඒවා සකස් නොකරන්න.මේ ක්රමය මෙන්න: ප්රශ්න සහ ප්රශ්න තනිව ටෙක්නිනීස්, පසුව masking තාක්ෂණය භාවිතා කරන්න. පිළිතුරු ප් රශ්නය ටොක්ස් පරාජය ගණනය කරන විට ඒවා නොසලකා බැලිය යුතු බව පුහුණු ක්රියාවලිය පවසයි.මෙම ආකෘතිය ප්රතිචාර වලින් පමණක් ඉගෙන ගනී, පුහුණු වඩාත් අවධානය යොමු හා ඵලදායී කරයි. -100 def tokenize_function(examples): input_ids_list = [] labels_list = [] for question, answer in zip(examples["question"], examples["answer"]): # Tokenize question and answer separately question_tokens = tokenizer(question, add_special_tokens=False)["input_ids"] answer_tokens = tokenizer(answer, add_special_tokens=False)["input_ids"] + [tokenizer.eos_token_id] # Combine question + answer for input input_ids = question_tokens + answer_tokens # Mask question tokens with -100 so loss is only computed on the answer labels = [-100] * len(question_tokens) + answer_tokens input_ids_list.append(input_ids) labels_list.append(labels) return { "input_ids": input_ids_list, "labels": labels_list, } මෙම tokenization ක්රියාකාරිත්වය පුහුණු හා පරීක්ෂණ දත්ත සමුදා දෙකම සඳහා යොදා ගන්න.අපි 512 ටොක්න් වඩා දිගු උදාහරණ ප්රවේශ කර මතකය භාවිතය කළමනාකරණය කළ හැකි තබා ගැනීම සහ ආකෘතිය සම්පූර්ණ තොරතුරු ක්රියාත්මක කිරීමෙන් තොරව සහතික කිරීම සඳහා. පුහුණු දත්ත Shuffling ආකෘතිය වඩාත් ඵලදායීව ඉගෙනීමට උපකාරී වේ: train_dataset = dataset["train"].map( tokenize_function, batched=True, remove_columns=dataset["train"].column_names, ).filter(lambda x: len(x["input_ids"]) <= 512) .shuffle(seed=42) eval_dataset = dataset["test"].map( tokenize_function, batched=True, remove_columns=dataset["test"].column_names, ).filter(lambda x: len(x["input_ids"]) <= 512) print(f"Samples: {len(dataset['train'])} → {len(train_dataset)} (after filtering)") print(f"Samples: {len(dataset['test'])} → {len(eval_dataset)} (after filtering)") Optional: සම්පූර්ණ පුහුණු ක්රියා කිරීමට පෙර මුළු පයිප්ලයින් ඉක්මනින් පරීක්ෂා කිරීමට අවශ්යද? ඔබ දත්ත අංගයක් මත ආකෘතිය පුහුණු කළ හැකිය. එබැවින්, සම්පූර්ණ 8.5K දත්ත අංගය භාවිතා කිරීම වෙනුවට, ඔබ එය මුළු 3K දක්වා අවම කළ හැකි අතර, ක්රියාවලිය වඩාත් වේගවත් කර ගත හැකිය: train_dataset = train_dataset.select(range(2000)) eval_dataset = eval_dataset.select(range(1000)) කුඩා දත්ත රැස්වීම් වැඩිකිරීමේ අවදානම වැඩි වන අතර, ආකෘතිය සාමාන්ය පාඩම් ඉගෙන ගැනීම වෙනුවට පුහුණු දත්ත මතක් කරයි. Keep in mind: Basic Model ආරම්භ කිරීම ඊළඟට, පෙර පුහුණු මූලික ආකෘතිය උඩුගත කිරීමෙන් එය ප්රශ්න විසඳීමේ හැකියාවන් වැඩිදියුණු කිරීමෙන් හොඳින් සකසන්න: from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-0.5B") model.config.pad_token_id = tokenizer.pad_token_id Fine-Tune පුහුණු ක් රමය භාවිතා කිරීම TrainingArguments ඔබේ ආකෘතිය ඉගෙන ගන්නේ කෙසේද යන්න පාලනය කරයි (ඔබේ අවසාන ප්රතිඵලයේ ගුණාත්මකභාවය තීරණය කරන ප්රතිඵලයක් ලෙස එය සිතන්න).මේ සැකසුම් සහ hyperparameters ඔබේ දෘෂ්ටි තක්සේරු කිරීම සිදු කළ හැකිය, එබැවින් ඔබගේ භාවිතය සඳහා වැඩ කරන දේ සොයා ගැනීමට විවිධ අගය සමඟ අත්හදා බැලීම. Key parameters explained: · වැඩි කාලගුණයන් වැඩි ඉගෙනුම් අවස්ථා සමාන වේ, නමුත් වැඩිපුරම ප්රමාණයට හේතු වේ. Epochs: · මතක භාවිතය හා පුහුණු වේගය බලපායි.ඔබේ උපාංගය මත පදනම්ව මෙය අනුකූල කරන්න. Batch size: · ආකෘතිය කොපමණ වේගයෙන් අනුකූල වේදිකාව පාලනය කරයි.සෑහෙන්න උස සහ එය හොඳම විසඳුම නැති විය හැකි, ඉතා අඩු සහ පුහුණු සදාකාලිකව ගත වේ. Learning rate: · ඕනෑම තනි ආකෘතියකට වඩා වැඩි ප්රශංසා කිරීමෙන් ආකෘතිය අවහිර කිරීමෙන් ආකර්ෂණය කිරීම ප්රතිරෝධනය කිරීමට උපකාරී විය හැකිය.When weight decay is too large, it can lead to underfitting by preventing the model from learning the necessary patterns. Weight decay: පහත දැක්වෙන පරිගණක පුහුණු කිරීම සඳහා විශේෂාංගයක් වන පරිගණක පුහුණු කිරීම (Use_cpu=True remove if you have a GPU): from transformers import TrainingArguments, Trainer, DataCollatorForSeq2Seq training_args = TrainingArguments( output_dir="./qwen-math", # Custom output directory for the fine-tuned model use_cpu=True, # Set to False or remove to use GPU if available # Training duration num_train_epochs=2, # 3 may improve reasoning at the expense of overfitting # Batch size and memory management per_device_train_batch_size=5, # Adjust depending on your PC capacity per_device_eval_batch_size=5, # Adjust depending on your PC capacity gradient_accumulation_steps=4, # Decreases memory usage, adjust if needed # Learning rate and regularization learning_rate=2e-5, # Affects learning speed and overfitting weight_decay=0.01, # Prevents overfitting by penalizing large weights max_grad_norm=1.0, # Prevents exploding gradients warmup_ratio=0.1, # Gradually increases learning rate to stabilize training lr_scheduler_type="cosine", # Smoother decay than linear # Evaluation and checkpointing eval_strategy="steps", eval_steps=100, save_strategy="steps", save_steps=100, save_total_limit=3, # Keep only the best 3 checkpoints load_best_model_at_end=True, # Load the best checkpoint at the end of training metric_for_best_model="eval_loss", greater_is_better=False, # Logging logging_steps=25, logging_first_step=True, ) # Data collator handles padding and batching data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer, model=model) # Initialize trainer trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, data_collator=data_collator, ) # Fine-tune the base model print("Fine-tuning started...") trainer.train() Once training completes, save your fine-tuned model: trainer.save_model("./qwen-math/final") tokenizer.save_pretrained("./qwen-math/final") 5 – ආකෘතිය පරික්ෂා කිරීම මෘදු සැකසුම් කිරීමෙන් පසු, ඔබගේ ආකෘතිය ක්රියාත්මක කරන්නේ කෙසේදැයි ප්රමාණවත් ප්රමාණයන් දෙකක් භාවිතා කරන්න: · ආකෘති අනාවැකි ඉලක්ක ප්රතිඵල වලින් කොපමණ දුරකථන වේද යන්න ප්රමාණවත් වන අතර, අඩු අගය වඩා හොඳ ප්රතිඵල පෙන්වා දෙයි. Loss: · එම තොරතුරු වඩාත් ස්වයංක්රීය මට්ටමේ දී පෙන්වයි, අඩු වටිනාකම නිසා ආකෘතිය එහි අනාවැකිවලට වඩාත් විශ්වාසදායක වේ. Perplexity (the exponential of loss): නිෂ්පාදන පරිසරය සඳහා, එවැනි උපායමාර්ග එකතු කිරීම ගැන සැලකිලිමත් වන්න හෝ ප්රවේශ ප්රතිචාර ප්රවේශ ප්රවේශ ප්රවේශ ප්රවේශ ප්රතිචාර කෙතරම් සමීපව සකස් කරන ආකාරය. BLEU ROUGE import math eval_results = trainer.evaluate() print(f"Final Evaluation Loss: {eval_results['eval_loss']:.4f}") print(f"Perplexity: {math.exp(eval_results['eval_loss']):.2f}") F1 වැනි අනෙකුත් ප්රමාණයන් ඇතුළත් කළ හැකිය, එය නිවැරදිව තබාගෙන වැදගත් දේ අල්ලා ගැනීමට ඔබේ ආකෘතිය කොතරම් හොඳද යන්න ප්රමාණවත් වේ. Transformers පුස්තකාලය භාවිතා කිරීම සඳහා අත්යවශ්යතා ඉගෙන ගැනීමට හොඳ ආරම්භක ස්ථානයකි. මුහුණු කියවීම Full fine-tuning code උදාහරණයක් මෙම පියවර පහෙන් පසු, ඔබට පහත දැක්වෙන කේතය එක් එක් Python ගොනුවක් බවට පත් විය යුතුය: import math from datasets import load_dataset from transformers import ( AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer, DataCollatorForSeq2Seq, ) dataset = load_dataset("openai/gsm8k", "main") tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B") tokenizer.pad_token = tokenizer.eos_token # Tokenization function adjusted for the specific dataset format def tokenize_function(examples): input_ids_list = [] labels_list = [] for question, answer in zip(examples["question"], examples["answer"]): question_tokens = tokenizer(question, add_special_tokens=False)["input_ids"] answer_tokens = tokenizer(answer, add_special_tokens=False)["input_ids"] + [tokenizer.eos_token_id] input_ids = question_tokens + answer_tokens labels = [-100] * len(question_tokens) + answer_tokens input_ids_list.append(input_ids) labels_list.append(labels) return { "input_ids": input_ids_list, "labels": labels_list, } # Tokenize the data train_dataset = dataset["train"].map( tokenize_function, batched=True, remove_columns=dataset["train"].column_names, ).filter(lambda x: len(x["input_ids"]) <= 512) .shuffle(seed=42) eval_dataset = dataset["test"].map( tokenize_function, batched=True, remove_columns=dataset["test"].column_names, ).filter(lambda x: len(x["input_ids"]) <= 512) print(f"Samples: {len(dataset['train'])} → {len(train_dataset)} (after filtering)") print(f"Samples: {len(dataset['test'])} → {len(eval_dataset)} (after filtering)") # Optional: Use a smaller subset for faster testing # train_dataset = train_dataset.select(range(2000)) # eval_dataset = eval_dataset.select(range(1000)) model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-0.5B") model.config.pad_token_id = tokenizer.pad_token_id # Configuration settings and hyperparameters for fine-tuning training_args = TrainingArguments( output_dir="./qwen-math", use_cpu=True, # Training duration num_train_epochs=2, # Batch size and memory management per_device_train_batch_size=5, per_device_eval_batch_size=5, gradient_accumulation_steps=4, # Learning rate and regularization learning_rate=2e-5, weight_decay=0.01, max_grad_norm=1.0, warmup_ratio=0.1, lr_scheduler_type="cosine", # Evaluation and checkpointing eval_strategy="steps", eval_steps=100, save_strategy="steps", save_steps=100, save_total_limit=3, load_best_model_at_end=True, metric_for_best_model="eval_loss", greater_is_better=False, # Logging logging_steps=25, logging_first_step=True, ) data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer, model=model) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, data_collator=data_collator, ) # Fine-tune the base model print("Fine-tuning started...") trainer.train() # Save the final model trainer.save_model("./qwen-math/final") tokenizer.save_pretrained("./qwen-math/final") # Evaluate after fine-tuning eval_results = trainer.evaluate() print(f"Final Evaluation Loss: {eval_results['eval_loss']:.4f}") print(f"Perplexity: {math.exp(eval_results['eval_loss']):.2f}") ක්රියාත්මක කිරීමට පෙර, ඔබගේ යන්ත්රය සැබවින්ම කළ හැකි දේ මත පදනම්ව ඔබේ පුහුණුකරු සැකසුම් සහ hyperparameters අනුකූල කිරීම සඳහා මොහොතක් ගත කරන්න. ඔබට සැබෑ ලෝකයේ ප්රවේශයක් ලබා දීම සඳහා, M4 චිප් සහ 16GB RAM සහිත MacBook Air හි අප වෙනුවෙන් සාර්ථකව ක්රියා කරන දේ මෙන්න. · : 7 Batch size for training · 7 Batch size for eval: · 5 Gradient accumulation: ඔබේ මෝටර් රථය දුම්රිය කරන විට, ඇස් දෙස බලන්න උපාධි පරාජය අඩු වන අතර එය ඉහළ ගියහොත්, ආකෘතිය වැඩිපුර ගැලපෙනු ඇත. එවැනි අවස්ථාවලදී, යුගයන් සකස් කිරීම, ඉගෙනීමේ වේගය අඩු කිරීම, බර අහිමි වීම සහ අනෙකුත් hyperparameters වෙනස් කිරීම. පහත උදාහරණයේදී, අපි eval පරාජය අඩු වීම සමග සෞඛ්ය ප්රතිඵල දකිමු දෙකක් අන්තිම ප් රශ්නය - Perplexity of . evaluation loss 0.496 0.469 1.60 Fine-Tuned Model පරීක්ෂා කිරීම දැන් යථාර්ථය මොහොත සඳහා – අපගේ මෘදු සැකසුම් සැබවින්ම සාර්ථක විය හැකිද? ඔබ මෙම Python කේතය සමඟ එය ප්රවේශ කිරීමෙන් මෑතව මෘදු සැකසුම් ආකෘතිය පරීක්ෂා කළ හැකිය: from transformers import pipeline generator = pipeline( "text-generation", # Use `Qwen/Qwen2.5-0.5B` for testing the base model model="./qwen-math/final" ) output = generator( "James has 5 apples. He buys 3 times as many. Then gives half away. How many does he have?", return_full_text=False ) print(output[0]["generated_text"]) මෙම සසඳන විට, ඔබ දකිනවා පෙර සහ පසු ආකෘති එකම ප්රශ්නයකට ප්රතිචාර කරන ආකාරය (වැරදි පිළිතුර 10 වේ): සාම්පල සකස් කිරීම ක්රියාකාරී වන විට, දෙකම ආකෘති සමහර වෙලාවට නිවැරදි හෝ වැරදි නිසා. මෙම කාර්යය ඔවුන්ගේ සැබෑ විශ්වාසය හෙළි කරයි: ආකෘතිය සෑම විටම ඉහළම අවදානම පිළිතුර තෝරා ගනී. විශ්වාසවන්තව ප් රතිඵල (අපේ ) අතරතුර විශ්වාසවන්තව ප් රතිඵල (අපේ ඒ තමයි වැඩට යන සුපිරි කමෙන්ට් එක. do_sample=False in the generator() base model -2 වැරදි fine-tuned model 10 නිවැරදි Fine-Tuning හොඳම ක් රියාවන් ආකෘතිය තෝරා ගැනීම · Domain-specific models and appropriate context windows save you from fighting against the model's existing knowledge ඔබගේ ආකෘතිය පිළිබඳ දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැනට දැන Choose the right base model: · සංකේතකය පමණක් වූ ආකෘති (විශේෂ වශයෙන් BERT වැනි) සංඛ්යාත කිරීමේ කාර්යයන් තුළ විශිෂ්ට වන අතර, පරිවර්තනය හෝ සම්මත කිරීම වැනි පරිවර්තනය කිරීමේ කාර්යයන්වලදී ලේඛන නිෂ්පාදනය කිරීමේදී decoder-only ආකෘති (විශේෂයෙන් GPT වැනි) සහ encoder-decoder ආකෘති (විශේෂයෙන් T5) වැනි පරිවර්තනය කිරීමේ කාර්යයන් තුළ විශිෂ්ට වේ. Understand the model architecture: · ඔබගේ පදනම ආකෘතිය සංකීර්ණ ප්රවේශ ආකෘති සමඟ පුහුණු කර තිබේ නම්, එම ආකෘතිය භාවිතා කරන්න. Match your model's input format: දත්ත සූදානම · පිරිසිදු සහ නිවැරදි උදාහරණ සෑම අවස්ථාවකදීම විශාල හා ශබ්ද දත්ත රැස්වීම් පරාජය කරයි. Prioritize data quality over quantity: · ඔබේ ආකෘතිය පුහුණු කාලය තුළ විශ්ලේෂණය දත්ත දැකීමට ඉඩ නොදෙන්න.මේක ඔබට ඔබේ ආකෘතිය විනාශ කිරීමට පෙර ආකෘතිය අල්ලන්න ඉඩ සලසයි. Split training and evaluation samples: · අවුල්භාවය වැනි ස්වයංක්රීය දර්ශක ඔබගේ ආකෘතිය සැබවින්ම උපදෙස් අනුගමනය කරන්නේද නැත්නම් සංඛ්යාත වශයෙන් වචන අනාවැකි කරන්නේද යන්න ඔබට පවසන්නේ නැත. Establish a "golden set" for evaluation: පුහුණු ක ් රමය · ඔබ කුඩා අනුකූල කිරීම් සිදු කරන්නේ, එය මුල සිට ඉගැන්වීමට නොවේ, එබැවින් ආක් රමණික වේගයන් පෙර පුහුණු කිරීමේදී ඉගෙන ගත් දේ අතුරුදන් කළ හැකිය. Start with a lower learning rate: · 90%+ ප්රතිලාභ ලබා ගැනීමට ප්රමාණයන් 1% ක් පමණක් පුහුණු කිරීම සහ අඩු මතකය සහ කාලය භාවිතා කිරීම. Use parameter-efficient fine-tuning (LoRA/PEFT): · සියලුම ප්රතිඵල ( එපමණක් නොව, වඩාත් හොඳින් අදහස් කරන ආකෘති නිෂ්පාදනය කරයි, ආකෘතිය අනුකූල කිරීම පමණක් නොවේ. Target all linear layers in LoRA: q_proj, k_proj, v_proj, o_proj, · embeddings හි අසාමාන්ය හඩක් regularization ලෙස ක්රියා කරයි, එය මතක තබා ගැනීමට හා සංවාද ගුණාත්මකභාවය 35 + ප්රතිශත ප්රතිශත ප්රතිශත ප්රමාණවත් විය හැක. Use NEFTune ( ): සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි සුපිරි · SFT කතා කරන්නේ කෙසේද යන්න ඉගැන්වීම්; DPO උගන්වන්නේ කුමක්ද යහපත් උගන්වන්නේ කැමැත්තෙන් යුගලයන්ගෙන්. After SFT, Run DPO: LLM Fine-Tuning වල සීමා මොනවාද? · Fine-tuning existing neural patterns overwrites, which can erase valuable general knowledge the model learned during pre-training. Multi-task learning, where you train on your specialized task alongside general examples, can help preserve broader capabilities. Catastrophic forgetting: · ආකෘතිය ඉගෙනුම් ආකෘති වෙනුවට ඔබේ පුහුණු උදාහරණ මතක තබා ගත හැකි අතර, එය ටිකක් වෙනස් ආදායම් මත අසාර්ථක විය හැකිය. Overfitting on small datasets: · බිලියන ගණනක් ප්රමාණයන් හොඳින් අනුකූල කිරීම සඳහා මිල අධික GPUs, විශාල මතකය, සහ පැය දින හෝ සති පුහුණු කාලය අවශ්ය වේ. High computational cost: · පෙර පුහුණු ආකෘති දැනටමත් ඔවුන්ගේ පුහුණු දත්ත වලින් පැතිරෙන අතර, ඔබේ දත්ත සමුදාය පරිස්සමින් කූඩාරම් නොකළහොත් දත්ත පැතිරීම මෙම පැතිරෙන බව වැඩි දියුණු කළ හැකිය. Bias amplification: · නව හා බාහිර දැනුම සම්පූර්ණ ආකෘතිය නැවත පුහුණු කිරීම හෝ Retrieval-Augmented Generation (RAG) ක්රියාත්මක කිරීම අවශ්ය විය හැක, නැවත වරක් පුහුණු කිරීම බොහෝ විට ප්රතිඵලදායී වේ. Manual knowledge update: ප් රතිඵල Fine-tuning ක්රියා කරයි, නමුත් ඔබේ දත්ත පිරිසිදු වන අතර ඔබේ hyperparameters ඇතුළත් වේ නම් පමණක්.Combine it with prompt engineering for the best results, where fine-tuning handles the task specialization while prompt engineering guides the model's behavior at inference time. ඔබගේ භාවිතය සඳහා ඔබගේ භාවිතය සඳහා ගැලපෙන Hugging Face සිට ආකෘතිය අල්ලමින් දිගටම, ඔබගේ කාර්යය සඳහා ගුණාත්මක දත්ත සමුදායක් ගොඩනැගීම හෝ ගොඩනැගීම සහ කුඩා කොටස් සමුදාය මත ඔබේ පළමු දත්ත සමුදාය ක්රියාත්මක කිරීම. ඔබ පොරොන්දු වන ප්රතිඵල දකින විට, LoRA, DPO, හෝ NEFTune සමඟ අත්හදා බැලීමට වඩා හොඳ ප්රතිඵල ලබා ගැනීමට.