StarCoder2-Instruct: Fully Transparent and Permissive Self-Alignment for Code Generation
Model Summary
We introduce StarCoder2-15B-Instruct-v0.1, the very first entirely self-aligned code Large Language Model (LLM) trained with a fully permissive and transparent pipeline. Our open-source pipeline uses StarCoder2-15B to generate thousands of instruction-response pairs, which are then used to fine-tune StarCoder-15B itself without any human annotations or distilled data from huge and proprietary LLMs.
The model is designed to respond to
coding-related instructions in a single turn
. Instructions in other styles may result in less accurate responses.
Here is an example to get started with the model using the
transformers
library:
import transformers
import torch
pipeline = transformers.pipeline(
model="bigcode/starcoder2-15b-instruct-v0.1",
task="text-generation",
torch_dtype=torch.bfloat16,
device_map="auto",
)
defrespond(instruction: str, response_prefix: str) -> str:
messages = [{"role": "user", "content": instruction}]
prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False)
prompt += response_prefix
teminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("###"),
]
result = pipeline(
prompt,
max_length=256,
num_return_sequences=1,
do_sample=False,
eos_token_id=teminators,
pad_token_id=pipeline.tokenizer.eos_token_id,
truncation=True,
)
response = response_prefix + result[0]["generated_text"][len(prompt) :].split("###")[0].rstrip()
return response
instruction = "Write a quicksort function in Python with type hints and a 'less_than' parameter for custom sorting criteria."
response_prefix = ""print(respond(instruction, response_prefix))
Here is the expected output:
Here's how you can implement a quicksort function in Python with type hints and a 'less_than' parameter for custom sorting criteria:
```python
from typing import TypeVar, Callable
T = TypeVar('T')
def quicksort(items: list[T], less_than: Callable[[T, T], bool] = lambda x, y: x < y) -> list[T]:
if len(items) <= 1:
return items
pivot = items[0]
less = [x for x in items[1:] if less_than(x, pivot)]
greater = [x for x in items[1:] if not less_than(x, pivot)]
return quicksort(less, less_than) + [pivot] + quicksort(greater, less_than)
```
Bias, Risks, and Limitations
StarCoder2-15B-Instruct-v0.1 is primarily finetuned for Python code generation tasks that can be verified through execution, which may lead to certain biases and limitations. For example, the model might not adhere strictly to instructions that dictate the output format. In these situations, it's beneficial to provide a
response prefix
or a
one-shot example
to steer the model’s output. Additionally, the model may have limitations with other programming languages and out-of-domain coding tasks.
The model also inherits the bias, risks, and limitations from its base StarCoder2-15B model. For more information, please refer to the
StarCoder2-15B model card
.
Evaluation on EvalPlus, LiveCodeBench, and DS-1000
starcoder2-15b-instruct-v0.1 huggingface.co is an AI model on huggingface.co that provides starcoder2-15b-instruct-v0.1's model effect (), which can be used instantly with this bigcode starcoder2-15b-instruct-v0.1 model. huggingface.co supports a free trial of the starcoder2-15b-instruct-v0.1 model, and also provides paid use of the starcoder2-15b-instruct-v0.1. Support call starcoder2-15b-instruct-v0.1 model through api, including Node.js, Python, http.
starcoder2-15b-instruct-v0.1 huggingface.co is an online trial and call api platform, which integrates starcoder2-15b-instruct-v0.1's modeling effects, including api services, and provides a free online trial of starcoder2-15b-instruct-v0.1, you can try starcoder2-15b-instruct-v0.1 online for free by clicking the link below.
bigcode starcoder2-15b-instruct-v0.1 online free url in huggingface.co:
starcoder2-15b-instruct-v0.1 is an open source model from GitHub that offers a free installation service, and any user can find starcoder2-15b-instruct-v0.1 on GitHub to install. At the same time, huggingface.co provides the effect of starcoder2-15b-instruct-v0.1 install, users can directly use starcoder2-15b-instruct-v0.1 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
starcoder2-15b-instruct-v0.1 install url in huggingface.co: