Fine-tuned SmolLM3-3B with enhanced general knowledge, coding, math, tool calling, reasoning, and instruction-following capabilities.
This model was trained using LoRA (Low-Rank Adaptation) fine-tuning with the following configuration:
1lora_r: 32
2lora_alpha: 64
3lora_dropout: 0.05
4lora_target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4# Load model and tokenizer
5model = AutoModelForCausalLM.from_pretrained(
6 "Kiy-K/Fyodor-Mini-3B",
7 torch_dtype=torch.bfloat16,
8 trust_remote_code=True,
9 device_map="auto"
10)
11
12tokenizer = AutoTokenizer.from_pretrained("Kiy-K/Fyodor-Mini-3B")
13
14# Generate text
15prompt = """### Instruction:
16Write a Python function to calculate Fibonacci numbers using dynamic programming.
17
18### Response:
19"""
20
21inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
22
23with torch.no_grad():
24 outputs = model.generate(
25 **inputs,
26 max_new_tokens=512,
27 temperature=0.7,
28 top_p=0.95,
29 do_sample=True,
30 pad_token_id=tokenizer.eos_token_id
31 )
32
33response = tokenizer.decode(outputs[0], skip_special_tokens=True)
34print(response)
1prompt = """### Instruction:
2Create a Python class for a binary search tree with insert and search methods.
3
4### Response:
5"""
6
7inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
8outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.2)
9print(tokenizer.decode(outputs[0], skip_special_tokens=True))
1prompt = """You have access to the following functions:
2
3[
4 {
5 "name": "get_weather",
6 "description": "Get current weather for a location",
7 "parameters": {
8 "location": {"type": "string", "description": "City name"}
9 }
10 }
11]
12
13User: What's the weather in Paris?
14Assistant:"""
15
16inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
17outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.3)
18print(tokenizer.decode(outputs[0], skip_special_tokens=True))
1prompt = """Question: A train travels 120 km in 2 hours. What is its average speed in km/h?
2Answer:"""
3
4inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
5outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.1)
6print(tokenizer.decode(outputs[0], skip_special_tokens=True))
1temperature=0.2
2top_p=0.95
3max_new_tokens=512
4do_sample=True
1temperature=0.8
2top_p=0.95
3max_new_tokens=1024
4do_sample=True
1temperature=0.1
2top_p=0.9
3max_new_tokens=512
4do_sample=True
1temperature=0.7
2top_p=0.95
3max_new_tokens=512
4do_sample=True
1@misc{fyodor-mini-2025,
2 author = {Khoi},
3 title = {Fyodor SmolLM3-3B v2 Instruct},
4 year = {2025},
5 publisher = {HuggingFace},
6 url = {https://huggingface.co/Kiy-K/Fyodor-Mini-3B}
7}