Dieser Blog-Beitrag befasst sich mit dem PHI-2-Sprachmodell von Microsoft, verglichen seine Leistung mit anderen Modellen und detailliert des Trainingsprozesses. Wir werden auch mithilfe der Transformers Library und eines umarmenden Gesichts-Rollenspieldatensatzes auf das Zugriff auf das PHI-2 auf und fein abteilen.
Phi-2, ein Modell von 2,7 Milliarden Parametern aus der "Phi" -Serie von Microsoft, zielt trotz seiner relativ geringen Größe auf eine modernste Leistung. Es verwendet eine Transformatorarchitektur, die auf 1,4 Billionen Token aus synthetischen und Webdatensätzen ausgebildet ist und sich auf NLP und Codierung konzentriert. Im Gegensatz zu vielen größeren Modellen ist PHI-2 ein Basismodell ohne Befehlsfeinabstimmung oder RLHF.
Zwei wichtige Aspekte machten die Entwicklung von PHI-2:
Für Erkenntnisse in den Aufbau von ähnlichen LLMs betrachten Sie den Master LLM -Konzeptenkurs.
PHI-2 übertrifft 7B-13b-Parametermodelle wie LLAMA-2 und Mistral über verschiedene Benchmarks (Argumentation des gesunden Menschenverstandes, Sprachverständnis, Mathematik, Codierung). Bemerkenswerterweise übertrifft es die deutlich größeren Lama-2-70b bei mehrstufigen Argumentationsaufgaben.
Bildquelle
Dieser Fokus auf kleinere, leicht abgestimmte Modelle ermöglicht die Bereitstellung auf mobilen Geräten und erzielt die Leistung, die mit viel größeren Modellen vergleichbar ist. PHI-2 übertrifft Google Gemini Nano 2 sogar auf Big Bank Hard, Boolq und MBPP-Benchmarks.
Bildquelle
Erforschen Sie die Funktionen von PHI-2 über die umarmenden Gesichtsräume Demo: PHI 2 Streaming auf GPU. Diese Demo bietet grundlegende Funktionen zur Eingabeaufforderung.
neu in KI? Die KI -Fundamentals -Skill -Track ist ein guter Ausgangspunkt.
transformers
verwenden wir die transformers
-Pipeline für Inferenz (stellen Sie sicher, dass Sie die neueste accelerate
und
!pip install -q -U transformers !pip install -q -U accelerate from transformers import pipeline model_name = "microsoft/phi-2" pipe = pipeline( "text-generation", model=model_name, device_map="auto", trust_remote_code=True, )
max_new_tokens
Text mit einer Eingabeaufforderung generieren und Parameter wie temperature
und
from IPython.display import Markdown prompt = "Please create a Python application that can change wallpapers automatically." outputs = pipe( prompt, max_new_tokens=300, do_sample=True, temperature=0.7, top_k=50, top_p=0.95, ) Markdown(outputs[0]["generated_text"])
Die Ausgabe von
PHI-2 ist beeindruckend und generiert Code mit Erklärungen.
PHI-2 ermöglicht die Verwendung auf Laptops und mobilen Geräten für Q & A, Codegenerierung und grundlegende Gespräche.
Dieser Abschnitt zeigt mit PEFT hieunguyenminh/roleplay
!pip install -q -U transformers !pip install -q -U accelerate from transformers import pipeline model_name = "microsoft/phi-2" pipe = pipeline( "text-generation", model=model_name, device_map="auto", trust_remote_code=True, )
from IPython.display import Markdown prompt = "Please create a Python application that can change wallpapers automatically." outputs = pipe( prompt, max_new_tokens=300, do_sample=True, temperature=0.7, top_k=50, top_p=0.95, ) Markdown(outputs[0]["generated_text"])
%%capture %pip install -U bitsandbytes %pip install -U transformers %pip install -U peft %pip install -U accelerate %pip install -U datasets %pip install -U trl
Umarmung des Gesichtsanmeldes
from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, TrainingArguments, pipeline, logging, ) from peft import ( LoraConfig, PeftModel, prepare_model_for_kbit_training, get_peft_model, ) import os, torch from datasets import load_dataset from trl import SFTTrainer
Laden des Datensatzes
base_model = "microsoft/phi-2" dataset_name = "hieunguyenminh/roleplay" new_model = "phi-2-role-play"
Lademodell und Tokenizer
# ... (Method to securely retrieve Hugging Face API token) ... !huggingface-cli login --token $secret_hf
Adapterschichten
hinzufügendataset = load_dataset(dataset_name, split="train[0:1000]")
Training
bnb_config = BitsAndBytesConfig( load_in_4bit= True, bnb_4bit_quant_type= "nf4", bnb_4bit_compute_dtype= torch.bfloat16, bnb_4bit_use_double_quant= False, ) model = AutoModelForCausalLM.from_pretrained( base_model, quantization_config=bnb_config, device_map="auto", trust_remote_code=True, ) model.config.use_cache = False model.config.pretraining_tp = 1 tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True) tokenizer.pad_token = tokenizer.eos_token
Speichern und Schieben des Modells
model = prepare_model_for_kbit_training(model) peft_config = LoraConfig( r=16, lora_alpha=16, lora_dropout=0.05, bias="none", task_type="CAUSAL_LM", target_modules=[ 'q_proj', 'k_proj', 'v_proj', 'dense', 'fc1', 'fc2', ] ) model = get_peft_model(model, peft_config)
Bildquelle
Modellbewertung
training_arguments = TrainingArguments( output_dir="./results", # Replace with your desired output directory num_train_epochs=1, per_device_train_batch_size=2, gradient_accumulation_steps=1, optim="paged_adamw_32bit", save_strategy="epoch", logging_steps=100, logging_strategy="steps", learning_rate=2e-4, fp16=False, bf16=False, group_by_length=True, disable_tqdm=False, report_to="none", ) trainer = SFTTrainer( model=model, train_dataset=dataset, peft_config=peft_config, max_seq_length= 2048, dataset_text_field="text", tokenizer=tokenizer, args=training_arguments, packing= False, ) trainer.train()
Schlussfolgerung
Dieses Tutorial bot einen umfassenden Überblick über Microsofts PHI-2, seine Leistung, Schulung und Feinabstimmung. Die Fähigkeit, dieses kleinere Modell effizient zu optimieren, eröffnet die Möglichkeiten für maßgeschneiderte Anwendungen und Bereitstellungen. Weitere Untersuchungen zum Bau von LLM -Anwendungen unter Verwendung von Frameworks wie Langchain werden empfohlen.Das obige ist der detaillierte Inhalt vonErste Schritte mit PHI-2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!