Downloads · 30 days
7
14% of all-time downloads
PursuitOfDataScience/llama3.2-1b-dpo
llama3.2-1b-dpo is a text generation model from PursuitOfDataScience. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as other.
This repository contains a two-stage fine-tuned version of meta-llama/Llama-3.2-1B:
Downloads · 30 days
7
14% of all-time downloads
All-time downloads
51
Public
Parameters
1.2B
2.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors2.5 GB · 99%
From the Hugging Face model README
This repository contains a two-stage fine-tuned version of meta-llama/Llama-3.2-1B:
meta-llama/Llama-3.2-1Bmlabonne/orpo-dpo-mix-40k.HuggingFaceH4/ultrachat_200k.mlabonne/orpo-dpo-mix-40k.The model is trained in a chat-style setup. At inference time, prompts are built
as a list of messages and passed through the model's native chat_template
via tokenizer.apply_chat_template:
from transformers import AutoTokenizer, AutoModelForCausalLM
repo_id = "PursuitOfDataScience/llama3.2-1b-dpo"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForCausalLM.from_pretrained(
repo_id,
device_map="auto",
)
messages = [
{
"role": "system",
"content": (
"You are a helpful, concise assistant. "
"Write clear, well-structured answers that follow the user's constraints."
),
},
{
"role": "user",
"content": "Explain how someone can build a consistent daily learning habit.",
},
]
prompt_text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt_text, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=512,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
# Decode only the generated continuation (excluding the prompt tokens)
generated_tokens = outputs[0][inputs["input_ids"].shape[1]:]
response = tokenizer.decode(generated_tokens, skip_special_tokens=True)
print(response)
messages = [
{
"role": "system",
"content": (
"You are a helpful, concise assistant. "
"Write clear, well-structured answers that follow the user's constraints."
),
},
{
"role": "user",
"content": "Describe the main trade-offs between using small and large language models.",
},
{
"role": "assistant",
"content": "Small models are cheaper and faster, while large models are usually more capable...",
},
{
"role": "user",
"content": "Give me a bullet-point summary from the perspective of a startup.",
},
]
prompt_text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt_text, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=256,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
response = tokenizer.decode(
outputs[0][inputs["input_ids"].shape[1]:],
skip_special_tokens=True,
)
print(response)
Instruction SFT (Ultrachat):
messages.tokenizer.apply_chat_template.DPO finetuning (ORPO DPO Mix):
DPOTrainer, with prompts and
chosen/rejected continuations derived from the pre-tokenized data.dpo.py script used in this project for full configuration
(batch sizing, max length, etc.).