/ Модель

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

Контекст
2 048 токенов
Лицензия
CC BY-SA 4.0
Архитектура
replit_lm · dense
Опубликована
25 мая 2023

camlcoder

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

camlcoder — дообученная модель ReplitLM на 2,7 млрд параметров для автодополнения кода на OCaml.

235скачиваний за 30 дней7лайковвеса обновлены15 авг 2023

Бенчмарки

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

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

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

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

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

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

camlcoder — авторская донастройка причинной языковой модели ReplitLM размером 2,7 млрд параметров для автодополнения кода на OCaml. Она дообучена на подмножестве The Stack Dedup v1.2 и актуальных версиях пакетов Opam, совместимых с OCaml 5.0, поэтому подходит для продолжения и дополнения исходного кода с учётом экосистемы языка. Репозиторий содержит веса в формате safetensors; для запуска в README перечислены PyTorch и Transformers.

Модель распространяется по лицензии CC BY-SA 4.0. Карточка не сообщает длину контекста и не приводит оценки качества; модель специализирована на коде OCaml и не предназначена для общего диалога.

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

  • автодополнение исходного кода на OCaml
  • предложение продолжения функции или модуля OCaml
  • подсказки при работе с пакетами Opam, совместимыми с OCaml 5.0

Ограничения

Модель специализирована на OCaml и обучена на указанном подмножестве данных, поэтому её применимость к другим языкам программирования не подтверждена. В карточке не приведены результаты оценки качества и длина контекста.

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

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

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

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

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

Открыть на Hugging Face

camlcoder

Model Description

camlcoder is a 2.7B Causal Language Model focused on Code Completion for OCaml. It is a fine-tuned version of replit-code-v1-3b. The model has been trained on a subset of the Stack Dedup v1.2 dataset and the most recent version of all packages in Opam that compile on OCaml 5.0.

License

The model checkpoint and vocabulary file are licensed under the Creative Commons license (CC BY-SA-4.0).

Contact

For questions and comments about the model, please post in the community section.

How to Use

First of all, you need to install the latest versions of the following dependencies:

einops
sentencepiece
safetensors
torch
transformers

You can then use the model as follows:

from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig, StoppingCriteria, StoppingCriteriaList
import torch

max_length = 256

tokenizer = AutoTokenizer.from_pretrained('sadiqj/camlcoder', trust_remote_code=True, max_length=max_length, use_safetensors=True)
model = AutoModelForCausalLM.from_pretrained('sadiqj/camlcoder', trust_remote_code=True, use_safetensors=True).to(device='cuda:0', dtype=torch.bfloat16)

input_ids = tokenizer.encode('(* Return the middle element of the list *)\nlet get_middle l =', return_tensors='pt').to(device='cuda:0')

newline_id = tokenizer.encode('\n\n', return_tensors='pt')[0][0].item()
class StopOnNewlines(StoppingCriteria):
    def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
        return newline_id in input_ids

output = model.generate(input_ids, max_length=max_length, stopping_criteria=StoppingCriteriaList([StopOnNewlines()]), use_cache=True)

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

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

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

GPU в ailist

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

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

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

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

0 моделей