Spaces:
Runtime error
Runtime error
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # SECUREPYTHO با Unsloth — 100% امن + توکن مخفی | |
| # فقط Run All بزن — توکن رو ازت میگیره و هیچ جا نشون نمیده | |
| # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| # ۱. نصب Unsloth | |
| import subprocess | |
| print("نصب Unsloth و کتابخونهها...") | |
| subprocess.run([ | |
| "pip", "install", "-q", | |
| "unsloth[colab-new]@git+https://github.com/unslothai/unsloth.git" | |
| ], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) | |
| subprocess.run([ | |
| "pip", "install", "-q", "--no-deps", | |
| "xformers<0.0.27", "trl", "peft", "accelerate", "bitsandbytes" | |
| ], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) | |
| # ۲. گرفتن توکن از کاربر (کاملاً مخفی!) | |
| from getpass import getpass | |
| from huggingface_hub import login | |
| token = getpass("🤫 توکن Hugging Face (Write) رو وارد کن و Enter بزن (هیچ جا نشون داده نمیشه): ") | |
| login(token=token) | |
| print("✅ لاگین شدی داداش!") | |
| # ۳. آپلود دیتاست | |
| from google.colab import files | |
| print("دیتاست JSONL یا CSV رو آپلود کن...") | |
| uploaded = files.upload() | |
| # ۴. فاینتیون با Unsloth | |
| from unsloth import FastLanguageModel | |
| import torch | |
| from datasets import load_dataset | |
| from trl import SFTTrainer | |
| from transformers import TrainingArguments | |
| repo_name = "alikayh/SecurePytho" # عوض کن اگه خواستی | |
| # مدل 8B اما فقط 6 گیگ رم! | |
| model, tokenizer = FastLanguageModel.from_pretrained( | |
| model_name = "unsloth/llama-3-8b-bnb-4bit", | |
| max_seq_length = 2048, | |
| dtype = None, | |
| load_in_4bit = True | |
| ) | |
| model = FastLanguageModel.get_peft_model( | |
| model, | |
| r = 64, | |
| target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", | |
| "gate_proj", "up_proj", "down_proj"], | |
| lora_alpha = 128, | |
| lora_dropout = 0.05, | |
| bias = "none", | |
| use_gradient_checkpointing = "unsloth", | |
| random_state = 42, | |
| ) | |
| # دیتاست | |
| filename = list(uploaded.keys())[0] | |
| if filename.endswith(".csv"): | |
| dataset = load_dataset("csv", data_files=filename)["train"] | |
| else: | |
| dataset = load_dataset("json", data_files=filename)["train"] | |
| trainer = SFTTrainer( | |
| model = model, | |
| tokenizer = tokenizer, | |
| train_dataset = dataset, | |
| dataset_text_field = "text", | |
| max_seq_length = 2048, | |
| args = TrainingArguments( | |
| per_device_train_batch_size = 4, | |
| gradient_accumulation_steps = 8, | |
| warmup_steps = 10, | |
| learning_rate = 2e-4, | |
| fp16 = True, | |
| logging_steps = 10, | |
| output_dir = repo_name, | |
| optim = "adamw_8bit", | |
| seed = 42, | |
| num_train_epochs = 3, | |
| push_to_hub = True, | |
| hub_model_id = repo_name, | |
| report_to = "none", | |
| ), | |
| ) | |
| print("شروع فاینتیون با Unsloth — فقط ۸–۱۰ دقیقه صبر کن داداش!") | |
| trainer.train() | |
| print("تموم شد! SecurePytho آمادهست و روی HF آپلود شد:") | |
| print(f"https://huggingface.co/{repo_name}") | |
| print("توکنت هیچ جا ذخیره نشد — 100% امن!") |