/ Модель

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

Контекст
2 048 токенов
Параметры
1 млрд
Лицензия
Apache 2.0
Опубликована
16 авг 2023

DeciCoder-1b

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

DeciCoder 1B — компактная модель Deci для автодополнения и заполнения пропусков в коде Python, Java и JavaScript.

487скачиваний за 30 дней247лайковвеса обновлены15 фев 2024

Бенчмарки

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

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

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

В подключённых источниках результатов для этой модели пока нет.

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

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

DeciCoder 1B — авторегрессионная модель для автодополнения кода, разработанная Deci. Это трансформерный декодер с Grouped Query Attention и Rotary Position Embeddings; модель содержит около 1,1 млрд параметров и обучена с целью Fill-in-the-Middle на наборах кода Python, Java и JavaScript из StarCoder Training Dataset. Размер контекста — 2048 токенов.

Модель предназначена для продолжения фрагментов кода, в том числе заполнения пропусков внутри него. Она не обучалась как модель для следования инструкциям: для получения результата задачу лучше задавать через комментарий, сигнатуру функции или docstring, а не обычной командой на естественном языке. В опубликованной оценке pass@1 на MultiPL HumanEval указаны 19,1% для Python, 18,4% для JavaScript и 16,6% для Java.

Модель может генерировать неработающий или неоптимальный код, содержащий ошибки или уязвимости. Контрольные точки распространяются по лицензии Apache 2.0.

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

  • автодополнение кода Python по контексту
  • заполнение тела функции по сигнатуре и docstring
  • восстановление пропущенного фрагмента кода в стиле Fill-in-the-Middle
  • продолжение кода Java и JavaScript

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

Model Card for DeciCoder 1B

DeciCoder 1B is a 1 billion parameter decoder-only code completion model trained on the Python, Java, and Javascript subsets of Starcoder Training Dataset. The model uses Grouped Query Attention and has a context window of 2048 tokens. It was trained using a Fill-in-the-Middle training objective. The model's architecture was generated by Deci's proprietary Neural Architecture Search-based technology, AutoNAC.

Model Details

  • Developed by: Deci
  • Model type: DeciCoder is an auto-regressive language model based on the transformer decoder architecture, using Grouped Query Attention.
  • Language(s): Python, Java, JavaScript
  • License: Model checkpoints are licensed under the Apache 2.0

Model Architecture

ParametersLayersHeadsSequence LengthGQA num_key_value_headsHidden Size
1.1B2032204842048

Uses

The model is intended to do single/multiline code completion from a context window of up to 2048k tokens. It is not an instruction model and commands like "Write a function that computes the absolute value of an integer," won't yield the desired results. A more effective approach is to frame instructions in the style of source code comments (e.g. # this function calculates the absolute value of an integer) or to present a function signature and docstring, enabling the model to complete the function's body.

How to Use

# pip install -q transformers
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "Deci/DeciCoder-1b"
device = "cuda" # for GPU usage or "cpu" for CPU usage

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, torch_dtype=torch.bfloat16, trust_remote_code=True).to(device)

inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

Attribution

DeciCoder was trained on StarCoder Training Dataset, filtered for Python, Java, and Javascript code. For additional information, please refer to https://huggingface.co/datasets/bigcode/starcoderdata.

Limitations

The model has undergone training with source code from Python, Java, and JavaScript. While the primary language in the source is English, it does contain other languages. Therefore, the model can produce code snippets given some context. However, there's no assurance that the resulting code will function as expected. It might be suboptimal, contain bugs, or even exploits.

Training Details

Training Data

DeciCoder was trained on the Python, Java, and Javascript subsets of Starcoder Training Dataset

Training Procedure

  • Warm-Up Steps: 9000
  • Total Training Steps: 284k
  • Total Tokens: 446B
  • Global Batch Size: 768
  • Optimizer: AdamW
  • Optimizer Parameters: beta1=0.9, beta2=0.95
  • Weight Decay: 0.1
  • Learning Rate: 4e-4
  • Learning Rate Schedule: cosine

Evaluation

Below are DeciCoder's pass@1 on MultiPL HumanEval scores

PythonJavaScriptJava
19.1%18.4%16.6%

Runtime Benchmarks

Inference Tool/HardwareA10 (tokens/sec)A100 (tokens/sec)
PyTorch1,364.23,244.4
Infery LLM3,889.311,676.8
  • Throughput (tokens/sec) - Measured with optimal batch size per hardware - A10 on BS 128, A100 on BS 512
  • Infery-LLM, Deci's optimization and inference SDK's features a suite of optimization techniques, including selective quantization, optimized beam search, continuous batching, and custom CUDA kernels. To explore the full capabilities of Infery-LLM, we invite you to book a demo with our experts.

Documentation

How to Cite

Please cite this model using this format.

@misc{DeciFoundationModels,
title = {DeciCoder},
author = {DeciAI Research Team},
year = {2023}
url={[https://huggingface.co/deci/decicoder-1b](https://huggingface.co/deci/decicoder-1b)},
}

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

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

GPU в ailist

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

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

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

0 моделей