Downloads · 30 days
34
9% of all-time downloads
jpacifico/Chocolatine-Cook-3B-combined-SFT-DPO-v0.1
Chocolatine-Cook-3B-combined-SFT-DPO-v0.1 is a text generation model from jpacifico. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as mit.
Chocolatine-3B version specialized in French culinary language, fine-tuning of microsoft/Phi-3.5-mini-instruct. This model is based on 283 specific terms and definitions of French cuisine.
Downloads · 30 days
34
9% of all-time downloads
All-time downloads
380
Public
Parameters
3.8B
7.6 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors7.6 GB · 100%
From the Hugging Face model README
Chocolatine-3B version specialized in French culinary language, fine-tuning of microsoft/Phi-3.5-mini-instruct.
This model is based on 283 specific terms and definitions of French cuisine.
For this version of the model I experimented a training method with a double fine-tuning, SFT then DPO.
I generated two datasets exclusively for this model, with GPT-4o deployed on Azure OpenAI.
The challenge was to achieve a consistent alignment between the two fine-tuning methods.
SFT to teach the terms and DPO to reinforce the understanding achieved during the first learning.
Fine tuning done efficiently with Unsloth, with which I saved processing time on a single T4 GPU (AzureML compute instance).
The recommended usage is by loading the low-rank adapter using unsloth:
from unsloth import FastLanguageModel
from transformers import TextStreamer
import torch
model_name = "jpacifico/Chocolatine-Cook-3B-combined-SFT-DPO-v0.1"
model, tokenizer = FastLanguageModel.from_pretrained(
model_name,
max_seq_length=2048,
dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
load_in_4bit=False
)
FastLanguageModel.for_inference(model)
model.eval()
def generate_response(user_question: str):
messages = [
{"role": "system", "content": "Tu es un assistant IA spécialisé dans le langage culinaire français. Une question te sera posée. Tu dois générer une réponse précise et concise."},
{"role": "user", "content": "En cuisine "+user_question},
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
).to("cuda")
attention_mask = (inputs != tokenizer.pad_token_id).long()
text_streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
with torch.no_grad():
_ = model.generate(
input_ids=inputs,
attention_mask=attention_mask,
max_new_tokens=128,
use_cache=True,
streamer=text_streamer,
do_sample=False,
temperature=0.7,
)
The Chocolatine model series is a quick demonstration that a base model can be easily fine-tuned to achieve compelling performance.
It does not have any moderation mechanism.