StructureCoder
Collection
Alignment with Fill-In-the-Middle for Enhancing Code Generation • 4 items • Updated
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("SenseLLM/StructureCoder-7B")
model = AutoModelForCausalLM.from_pretrained("SenseLLM/StructureCoder-7B")
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]:]))Structure splits code snippets into smaller, granular blocks, creatingmore diverse DPO pairs from the same testcases. Additionally, we introduce the Abstract Syntax Tree (AST) splitting and curriculum training method to enhance the DPO training. Please refer to our paper for more details!
| Model | Checkpoint | Size |
|---|---|---|
| StructureCoder-1.5B | 🤗 HF Link | 1.5B |
| StructureCoder-3B | 🤗 HF Link | 3B |
| StructureCoder-7B | 🤗 HF Link | 7B |
We thank the following amazing projects that truly inspired us:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SenseLLM/StructureCoder-7B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)