It's First iteration of this model. For testing purpose its just trained on 10k rows.
It performed very well than expected. It do first reasoning and than generate response on based on it but it do like o1.
It do reasoning separately (Just like o1), no tags (like reflection).
Below is inference code.
1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3MAX_REASONING_TOKENS = 4096
4MAX_RESPONSE_TOKENS = 1024
5
6model_name = "KingNish/Reasoning-Llama-3b-v0.1"
7
8model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
9tokenizer = AutoTokenizer.from_pretrained(model_name)
10
11prompt = "Which is greater 9.9 or 9.11 ??"
12messages = [
13 {"role": "user", "content": prompt}
14]
15
16# Generate reasoning
17reasoning_template = tokenizer.apply_chat_template(messages, tokenize=False, add_reasoning_prompt=True)
18reasoning_inputs = tokenizer(reasoning_template, return_tensors="pt").to(model.device)
19reasoning_ids = model.generate(**reasoning_inputs, max_new_tokens=MAX_REASONING_TOKENS)
20reasoning_output = tokenizer.decode(reasoning_ids[0, reasoning_inputs.input_ids.shape[1]:], skip_special_tokens=True)
21
22# print("REASONING: " + reasoning_output)
23
24# Generate answer
25messages.append({"role": "reasoning", "content": reasoning_output})
26response_template = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
27response_inputs = tokenizer(response_template, return_tensors="pt").to(model.device)
28response_ids = model.generate(**response_inputs, max_new_tokens=MAX_RESPONSE_TOKENS)
29response_output = tokenizer.decode(response_ids[0, response_inputs.input_ids.shape[1]:], skip_special_tokens=True)
30
31print("ANSWER: " + response_output)
This llama model was trained 2x faster with
Unsloth and Huggingface's TRL library.