Instructions to use SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr") model = AutoModelForCausalLM.from_pretrained("SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr
- SGLang
How to use SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr with Docker Model Runner:
docker model run hf.co/SamsungSAILMontreal/Qwen3-4B-Instruct-2507-Fr
Qwen3-4B-Instruct-2507-Fr
This model is obtained by fine-tuning Qwen/Qwen3-4B-Instruct-2507 on the kurakurai/luth-sft dataset, specifically subsets luth_smoltalk2, luth_aya_dataset, luth_croissantllm and luth_tulu3_persona_instruct. The model is used in the experiments described in https://bknyaz.github.io/blog/2026/meta-merge/. Single A100 was used for fine-tuning and evaluation.
The following versions were used for train/eval:
- python >= 3.10
- torch : 2.9.0+cu128
- lm_eval : 0.4.9.1
- vllm : 0.11.1
- transformers : 4.57.6
- datasets : 3.2.0
- numpy : 2.2.6
Training
The TRL library was used with SFT/full-rank options:
python trl/scripts/sft.py --model_name_or_path Qwen/Qwen3-4B-Instruct-2507 --dataset_name kurakurai/luth-sft --dataset_config main --learning_rate 2e-5 \
--num_train_epochs 1 --per_device_train_batch_size 2 --gradient_accumulation_steps 8 --gradient_checkpointing --eos_token '<|im_end|>' --eval_strategy no \
--completion_only_loss True --report_to wandb --output_dir /path/to/the/finetuned/model
This is by far not the most compute and performance efficient fine-tuning, but it could be a good baseline.
The dataset was preprocessed to the conversational format:
# trl/scripts/sft.py
dataset = load_dataset(...)
trainer = SFTTrainer(
model=model,
args=training_args,
train_dataset=concatenate_datasets([dataset['luth_smoltalk2'], dataset['luth_aya_dataset'], dataset['luth_croissantllm'], dataset['luth_tulu3_persona_instruct']]),
eval_dataset=dataset[script_args.dataset_test_split] if training_args.eval_strategy != "no" else None,
peft_config=get_peft_config(model_args),
)
Evaluation
Evaluation was done with lm_eval on the test split of gsm8k, french_bench (avg score) and gsm8k-fr:
python -m lm_eval --model vllm --model_args pretrained=${model},tensor_parallel_size=1,dtype=auto,gpu_memory_utilization=0.9,data_parallel_size=1 \
--tasks gsm8k,french_bench,gsm8k-fr --batch_size 1 --apply_chat_template=True --confirm_run_unsafe_code --trust_remote_code
To evaluate on gsm8k-fr you can use my fork https://github.com/bknyaz/lm-evaluation-harness/tree/main/lm_eval/tasks/gsm8k.
Results
| Model | gsm8k | french | gsm8k-fr | avg |
|---|---|---|---|---|
| Qwen3-4B-Instruct-2507 | 80.4 | 43.1 | 66.0 | 63.2 |
| Qwen3-4B-Instruct-2507-Fr | 72.3 | 45.7 | 60.7 | 59.6 |
License
Please refer to the license of the original model Qwen/Qwen3-4B-Instruct-2507 and dataset kurakurai/luth-sft.
- Downloads last month
- 4