Safurai-Csharp: Harnessing Synthetic Data to improve language-specific Code LLM
Paper β’ 2311.03243 β’ Published β’ 1
How to use Safurai/Safurai-Csharp-34B with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="Safurai/Safurai-Csharp-34B") # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Safurai/Safurai-Csharp-34B")
model = AutoModelForCausalLM.from_pretrained("Safurai/Safurai-Csharp-34B")How to use Safurai/Safurai-Csharp-34B with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "Safurai/Safurai-Csharp-34B"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Safurai/Safurai-Csharp-34B",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker model run hf.co/Safurai/Safurai-Csharp-34B
How to use Safurai/Safurai-Csharp-34B with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "Safurai/Safurai-Csharp-34B" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Safurai/Safurai-Csharp-34B",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'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 "Safurai/Safurai-Csharp-34B" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Safurai/Safurai-Csharp-34B",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'How to use Safurai/Safurai-Csharp-34B with Docker Model Runner:
docker model run hf.co/Safurai/Safurai-Csharp-34B
π Article
π Paper

This is a codellama/CodeLlama-34b-hf model fine-tuned using QLoRA (4-bit precision) on 13B tokens of csharp evolved Q&A
We obtained state-of-the-art performance on the MultiPL-E code LLM benchmark for csharp, reaching 56% at pass@1 with n=5.
It was trained on 2 x NVIDIA A100 PCIe 80GB in 7h 40m with the following configuration file:
base_model: codellama/CodeLlama-34b-hf
base_model_config: codellama/CodeLlama-34b-hf
model_type: LlamaForCausalLM
tokenizer_type: CodeLlamaTokenizer
is_llama_derived_model: true
hub_model_id: "Safurai/Evol-csharp-v1"
load_in_8bit: false
load_in_4bit: true
strict: false
datasets:
- path: Safurai/EvolInstruct-csharp-16k-13B-Alpaca
type: alpaca
dataset_prepared_path: last_run_prepared
val_set_size: 0.01
output_dir: ./qlora-out
sequence_len: 4096
sample_packing: true
pad_to_sequence_len: true
adapter: lora
lora_model_dir:
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_linear: true
lora_fan_in_fan_out:
wandb_project: codellama-csharp
wandb_entity:
wandb_watch:
wandb_run_id:
wandb_log_model:
gradient_accumulation_steps: 4
micro_batch_size: 2
num_epochs: 3
optimizer: adamw_bnb_8bit
lr_scheduler: cosine
learning_rate: 0.0003
train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_steps: 40
eval_steps: 40
save_steps:
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
bos_token: "<s>"
eos_token: "</s>"
unk_token: "<unk>"
# pip install transformers accelerate
from transformers import AutoTokenizer
import transformers
import torch
model = "Safurai/Evol-csharp-full"
prompt = "User: \n {your question} \n Assistant: "
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
f'{prompt}',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=1024,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
docker model run hf.co/Safurai/Safurai-Csharp-34B