Views
No views yet
1{
2 "num_epochs": 5,
3 "batch_size": 16,
4 "learning_rate": 0.0002,
5 "warmup_ratio": 0.1,
6 "weight_decay": 0.01,
7 "gradient_accumulation_steps": 2,
8 "eval_steps": 50,
9 "save_steps": 100,
10 "logging_steps": 10
11}pip install transformers torch peft1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
4import json
5
6# Load model
7base_model = AutoModelForCausalLM.from_pretrained(
8 "microsoft/Phi-3-mini-4k-instruct",
9 torch_dtype=torch.bfloat16,
10 device_map="auto"
11)
12
13model = PeftModel.from_pretrained(base_model, "ovinduG/multi-domain-classifier-phi3")
14tokenizer = AutoTokenizer.from_pretrained("ovinduG/multi-domain-classifier-phi3")
15
16# Prepare input
17query = "Build a machine learning model to analyze sales data"
18
19prompt = f'''Classify this query: {query}
20
21Output JSON format:
22{
23 "primary_domain": "domain_name",
24 "primary_confidence": 0.95,
25 "is_multi_domain": true/false,
26 "secondary_domains": [{"domain": "name", "confidence": 0.85}]
27}'''
28
29# Generate
30inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
31outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.1)
32response = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
34# Parse result
35result = json.loads(response.split("Output JSON format:")[-1].strip())
36print(result)1{
2 "primary_domain": "data_analysis",
3 "primary_confidence": 0.92,
4 "is_multi_domain": true,
5 "secondary_domains": [
6 {"domain": "machine_learning", "confidence": 0.85},
7 {"domain": "business", "confidence": 0.72}
8 ]
9}1@misc{multi-domain-classifier-phi3,
2 author = {ovinduG},
3 title = {Multi-Domain Classifier based on Phi-3},
4 year = {2024},
5 publisher = {HuggingFace},
6 url = {https://huggingface.co/ovinduG/multi-domain-classifier-phi3}
7}