/ Модель

Характеристики

Контекст
16 384 токена
Параметры
21,7 млрд
Размер весов
31,9 ГБ
Лицензия
bigcode-openrail-m
Архитектура
starcoder2 · dense
Базовая модель
starcoder2-15b
Библиотека
transformers
Опубликована
23 апр 2024

starcoder2-15b-instruct-v0.1

Генерация текстаТекст → текст9 профессий

StarCoder2-15B-Instruct-v0.1 — дообученная BigCode модель для генерации кода и ответов на инструкции по программированию в один ход.

1 937скачиваний за 30 дней106лайковвеса обновлены3 ноя 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки4

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

  • mbpp

    pass@1 · выше — лучше

    Результат

    78 %

    EvalPlus

    Публичная таблицаревизия не подтверждена

  • humaneval

    pass@1 · выше — лучше

    Результат

    67,7 %

    EvalPlus

    Публичная таблицаревизия не подтверждена

  • humaneval+

    pass@1 · выше — лучше

    Результат

    60,4 %

    EvalPlus

    Публичная таблицаревизия не подтверждена

  • mbpp+

    pass@1 · выше — лучше

    Результат

    65,1 %

    EvalPlus

    Публичная таблицаревизия не подтверждена

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

StarCoder2-15B-Instruct-v0.1 — языковая модель для генерации кода по инструкциям, созданная командой BigCode. Её дообучили на StarCoder2-15B на синтетических парах «инструкция — ответ», которые исходная модель сгенерировала и отфильтровала выполнением кода; человеческая разметка и данные дистилляции от крупных закрытых моделей не использовались.

Модель предназначена для одношаговых ответов на запросы, связанные с программированием: например, генерации функций, исправления и объяснения кода. Это плотная causal language model семейства StarCoder2 с 21,7 млрд параметров и контекстом 16 384 токена. Она принимает текстовые инструкции и генерирует текст, в том числе код; языковые коды естественных языков в метаданных не указаны.

Модель распространяется в формате Safetensors и рассчитана на использование через Transformers. Лицензия — BigCode OpenRAIL-M; перед использованием следует учитывать её условия и ограничения. В карточке отмечено, что инструкции не связанные с программированием могут давать менее точные ответы; заявленный сценарий — один ход, поэтому диалоговые возможности не следует считать подтверждёнными.

Сценарии применения

  • генерация кода по текстовому заданию
  • написание функций и алгоритмов
  • исправление ошибок в коде
  • ответы на вопросы о программировании
  • преобразование описания задачи в программный код

Ограничения

Лучше подходит для одношаговых инструкций по программированию; запросы в других стилях могут давать менее точные ответы. Карточка не подтверждает пригодность для многошагового диалога.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

StarCoder2-Instruct: Fully Transparent and Permissive Self-Alignment for Code Generation

Banner

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.

self-alignment pipeline

Citation

@article{wei2024selfcodealign,
  title={SelfCodeAlign: Self-Alignment for Code Generation}, 
  author={Yuxiang Wei and Federico Cassano and Jiawei Liu and Yifeng Ding and Naman Jain and Zachary Mueller and Harm de Vries and Leandro von Werra and Arjun Guha and Lingming Zhang},
  year={2024},
  journal={arXiv preprint arXiv:2410.24198}
}

Use

Intended use

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",
)

def respond(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

EvalPlus

LiveCodeBench and DS-1000

Training Details

Hyperparameters

  • Optimizer: Adafactor
  • Learning rate: 1e-5
  • Epoch: 4
  • Batch size: 64
  • Warmup ratio: 0.05
  • Scheduler: Linear
  • Sequence length: 1280
  • Dropout: Not applied

Hardware

1 x NVIDIA A100 80GB

Resources

Full Data Pipeline

Our dataset generation pipeline has several steps. We provide intermediate datasets for every step of the pipeline:

  1. Original seed dataset filtered from The Stack v1: https://huggingface.co/datasets/bigcode/python-stack-v1-functions-filtered
  2. Seed dataset filtered using StarCoder2-15B as a judge for removing items with bad docstrings: https://huggingface.co/datasets/bigcode/python-stack-v1-functions-filtered-sc2
  3. seed -> concepts: https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-concepts
  4. concepts -> instructions: https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-instructions
  5. instructions -> response: https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-responses-unfiltered
  6. Responses filtered by executing them: https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-exec-filter-500k-raw
  7. Executed responses filtered by deduplicating them (final dataset): https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-exec-filter-50k

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Starcoder2ForCausalLM
Ревизия весов
ffb8dd9

0 моделей