/ Модель

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

Контекст
16 384 токена
Параметры
6,6 млрд
Размер весов
13,5 ГБ
Лицензия
Apache 2.0
Архитектура
llama · dense
Опубликована
13 мая 2024

CodeLlama-7B-KStack

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

Дообученная JetBrains на Kotlin-коде модель CodeLlama-7B для генерации и дополнения программ на Kotlin.

125скачиваний за 30 дней9лайковвеса обновлены22 мая 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CodeLlama-7B-KStack — языковая модель JetBrains, дообученная на наборе Kotlin-кода KStack с фильтрацией данных. Это плотная модель семейства Llama с архитектурой LlamaForCausalLM, примерно 6,6 млрд параметров; она распространяется в формате Transformers с весами safetensors и поддерживает контекст до 16 384 токенов. Модель предназначена прежде всего для генерации и дополнения кода на Kotlin, в том числе в формате заполнения пропусков FIM.

При оценке на Kotlin HumanEval модель достигла pass rate 29,19 против 26,09 у исходной CodeLlama-7B. Данные для дообучения отбирались из публичных репозиториев Kotlin и очищались: удалялись не-ASCII символы и строки пакетов, а половина строк импортов исключалась. Эти решения и специализация на Kotlin могут ограничивать качество на других языках и задачах; сгенерированный код требует проверки. Лицензия модели — Apache-2.0.

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

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

Ограничения

Модель специализирована на Kotlin и формате задач программирования; при отклонении от этого формата качество может снижаться. Возможны неточные или нежелательные ответы, поэтому сгенерированный код следует проверять.

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

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

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

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

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

Открыть на Hugging Face

Model description

This is a repository for the CodeLlama-7b model fine-tuned on the KStack dataset with rule-based filtering, in the Hugging Face Transformers format. KStack is the largest collection of permissively licensed Kotlin code, and so the model is fine-tuned to work better with Kotlin code.

How to use

from transformers import AutoModelForCausalLM, AutoTokenizer

# Load pre-trained model and tokenizer
model_name = 'JetBrains/CodeLlama-7B-KStack'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to('cuda')

# Create and encode input
input_text = """\
This function takes an integer n and returns factorial of a number:
fun factorial(n: Int): Int {\
"""
input_ids = tokenizer.encode(
    input_text, return_tensors='pt'
).to('cuda')

# Generate
output = model.generate(
    input_ids, max_length=60, num_return_sequences=1, 
    pad_token_id=tokenizer.eos_token_id,
)

# Decode output
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)

As with the base model, we can use FIM. To do this, the following format must be used:

'<PRE> ' + prefix + ' <SUF> ' + suffix + ' <MID>'

Training setup

The model was trained on one A100 GPU with following hyperparameters:

HyperparameterValue
warmup5%
max_lr1e-6
num_epochs1
'attention_dropout'0.1
schedulercosine
total_batch_size128 (~65K tokens per step)
num_epochs1

More details about fine-tuning can be found in the technical report (coming soon!).

Fine-tuning data

For tuning the model, we used the KStack dataset, the largest collection of permissively licensed Kotlin code. To increase the quality of the dataset and filter out outliers, such as homework assignments, we filter out the dataset entries according to the following rules:

  • We filter out files, which belong to low-popular repos (the sum of stars and forks is less than 6)
  • Next, we filter out files, which belong to repos with less than 5 Kotlin files
  • Finally, we remove files which have fewer than 20 SLOC

We clean the content of the remaining dataset entries according to the following rules:

  • We remove all non-ASCII entries
  • We remove all package lines, such as package kotlinx.coroutines.channels
  • We remove half of the import lines

We removed half of the imports to avoid potential hallucinations by the model, where it might attempt to import unnecessary libraries. Additionally, packages were removed because this information is only useful at the project level and may introduce additional noise during the learning process.

Evaluation

For evaluation, we used the Kotlin HumanEval dataset, which contains all 161 tasks from HumanEval translated into Kotlin by human experts. You can find more details about the pre-processing necessary to obtain our results, including the code for running, on the datasets's page.

Here are the results of our evaluation:

Model nameKotlin HumanEval Pass Rate
CodeLlama-7B26.09
CodeLlama-7B-KStack29.19

Ethical Considerations and Limitations

CodeLlama-7B-KStack is a new technology that carries risks with use. The testing conducted to date has not covered, nor could it cover all scenarios. For these reasons, as with all LLMs, CodeLlama-7B-KStack's potential outputs cannot be predicted in advance, and the model may in some instances produce inaccurate or objectionable responses to user prompts. The model was fine-tuned on a specific data format (Kotlin tasks), and deviation from this format can also lead to inaccurate or undesirable responses to user queries. Therefore, before deploying any applications of CodeLlama-7B-KStack, developers should perform safety testing and tuning tailored to their specific applications of the model.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
6c11656

0 моделей