/ Модель

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

Контекст
4 096 токенов
Лицензия
BigScience OpenRAIL-M
Архитектура
gpt_refact · dense
Библиотека
transformers
Опубликована
20 июл 2023

Refact-1_6-base

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

Базовая модель Refact AI для дополнения и заполнения пропусков в программном коде, также способная работать в экспериментальном чате.

347скачиваний за 30 дней5лайковвеса обновлены19 янв 2024

Бенчмарки

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

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

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

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

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

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

Refact-1.6B-base — базовая авторегрессионная модель для генерации кода от Refact AI. Её основное назначение — дополнение и заполнение пропусков в коде с помощью формата Fill-in-the-Middle (FIM); модель также поддерживает экспериментальный чат в роли программного ассистента.

Модель построена на архитектуре GPTRefact с multi-query attention, ALiBi и LayerNorm. Она обучена на 1,2 трлн токенов: примерно поровну на программном коде и английских текстах, включая материалы по информатике. Контекст — 4096 токенов; доступны веса PyTorch, библиотека Transformers.

Практическое применение ограничено склонностью FIM-режима к повторениям; качество на естественных языках, кроме английского, ниже. Карточка отмечает возможные проблемы с FIM-форматом. Лицензия — BigScience OpenRAIL-M.

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

  • дополнение кода по контексту вокруг пропуска
  • заполнение пропусков в коде в формате Fill-in-the-Middle
  • получение ответов на вопросы по программированию в чате
  • генерация фрагментов кода по запросу

Ограничения

Модель может повторять фрагменты в режиме Fill-in-the-Middle, а качество на естественных языках, кроме английского, ниже. В карточке также указаны возможные проблемы с FIM-форматом и экспериментальный характер чата.

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

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

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

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

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

Открыть на Hugging Face

image/png

Refact-1.6B-base

Finally, the model we started training with our blog post is ready 🎉 The model might contain some problems, especially with the FIM format

It Works As a Chat

The primary application of this model is code completion (infill) in multiple programming languages. But it works as a chat quite well.

Example

Fill-in-the-middle uses special tokens to identify the prefix/middle/suffix part of the input and output:

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

checkpoint = "smallcloudai/Refact-1_6B-fim"
device = "cuda" # for GPU usage or "cpu" for CPU usage

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

prompt = '<fim_prefix>def print_hello_world():\n    """<fim_suffix>\n    print("Hello world!")<fim_middle>'

inputs = tokenizer.encode(prompt, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_length=100, temperature=0.2)
print("-"*80)
print(tokenizer.decode(outputs[0]))

Chat Format

The same model works as chat (experimental).

prompt_template = "<empty_output>SYSTEM {system}\n" \
                  "<empty_output>USER {query}\n" \
                  "<empty_output>ASSISTANT"
prompt = prompt_template.format(system="You are a programming assistant",
                                query="How do I sort a list in Python?")

Architecture

As described in more detail in the blog post, we used:

We also used LiON, flash attention, early dropout. It's not that innovative that you can't run it, in fact you can -- see an example below.

Training

For the base model, we used our own dataset that contains code with permissive licenses only, and open text datasets. Filtering is the key to success of this model:

  • We only used text in English
  • Only topics related to computer science
  • Applied heavy deduplication

The text to code proportion was 50:50, model trained for 1.2T tokens.

We don't release the base model, because its Fill-in-the-Middle (FIM) capability likes to repeat itself too much, so its practical use is limited. But if you still want it, write us a message on Discord.

Limitations and Bias

The Refact-1.6B model was trained on text in English. But it has seen a lot more languages in code comments. Its performance on non-English languages is lower, for sure.

Model Stats

  • Architecture: LLAMA-like model with multi-query attention
  • Objectives Fill-in-the-Middle, Chat
  • Tokens context: 4096
  • Pretraining tokens: 1.2T
  • Finetuning tokens: 40B
  • Precision: bfloat16
  • GPUs 64 NVidia A5000
  • Training time 28 days

License

The model is licensed under the BigScience OpenRAIL-M v1 license agreement

Citation

If you are using this model, please give a link to this page.

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

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

GPU в ailist

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

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

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

Класс архитектуры
GPTRefactForCausalLM
Ревизия весов
1ff9414

0 моделей