Files
ModelHub XC add890b166 初始化项目,由ModelHub XC社区提供模型
Model: Prathamesh25/smollm2-1.7b-aptitude-qa-v1
Source: Original Platform
2026-07-04 02:46:17 +08:00

2.8 KiB
Raw Permalink Blame History

license, base_model, tags, datasets, language, pipeline_tag
license base_model tags datasets language pipeline_tag
apache-2.0 HuggingFaceTB/SmolLM2-1.7B-Instruct
text-generation-inference
transformers
lora
trl
smollm2
aptitude
Prathamesh25/aptitude-qa-dataset
en
text-generation

SmolLM2 1.7B Aptitude QA

This model is a fine-tuned version of HuggingFaceTB/SmolLM2-1.7B-Instruct optimized for technical aptitude question-answering tasks, including basic programming concepts (C, Python, loops) and fundamental AI/ML reasoning logic.

It was trained using LoRA parameters in pure Float16 precision on a free Google Colab T4 GPU node to handle the target dataset schema formatting seamlessly.

Model Description

Training Information & Hyperparameters

  • Precision: Pure Float16 (fp16=True)
  • Optimizer: adamw_torch
  • Learning Rate: 2e-4
  • Per Device Train Batch Size: 4
  • Gradient Accumulation Steps: 4
  • LoRA Configuration: Rank (r)=16, Alpha (lpha)=32, Dropout=0.05
  • Target Modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj

Loss Progression Metrics

The training process showed highly stable optimization across epochs:

  • Step 10: 1.955
  • Step 30: 0.709
  • Step 100: 0.412
  • Step 200: 0.323
  • Step 330: 0.281

How to Use

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Prathamesh25/smollm2-1.7b-aptitude-qa-v1"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, 
    torch_dtype=torch.float16, 
    device_map="auto"
)

test_prompt = [
    {
        "role": "user", 
        "content": "subject: 06 technical aptitude (basic programming and aiml concepts)\nlevel: 01 basic\ncategory: loops\nquestion: what is the output of this c code: `int sum = 0; for(int i=1; i<=3; i++) { sum += i; } printf(\"%d\", sum);`?"
    }
]

text_prompt = tokenizer.apply_chat_template(test_prompt, tokenize=False, add_generation_prompt=True)
model_inputs = tokenizer([text_prompt], return_tensors="pt").to("cuda")
input_token_len = model_inputs.input_ids.shape[1]

with torch.no_grad():
    generated_ids = model.generate(
        input_ids=model_inputs.input_ids,
        attention_mask=model_inputs.attention_mask,
        max_new_tokens=150, 
        temperature=0.1, 
        do_sample=True,        
        eos_token_id=tokenizer.eos_token_id,
        pad_token_id=tokenizer.eos_token_id
    )

final_tokens = generated_ids[0][input_token_len:]
print(tokenizer.decode(final_tokens, skip_special_tokens=True))