/ Модель

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

Контекст
2 048 токенов
Параметры
151 млн
Лицензия
Apache 2.0
Библиотека
transformers
Опубликована
6 фев 2024

codesage-small

Заполнение пропусковТекст → текст4 профессии

CodeSage Small — энкодер для создания эмбеддингов исходного кода и задач семантического поиска и сопоставления кода.

2 000скачиваний за 30 дней6лайковвеса обновлены28 дек 2024

Бенчмарки

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

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

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

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

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

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

CodeSage Small — открытая модель для получения векторных представлений исходного кода, представленная авторами работы Code Representation Learning At Scale. Это энкодерная модель на 151 млн параметров, обученная на наборе The Stack Dedup; README указывает размер энкодера 130 млн параметров и эмбеддинги размерности 1024. Модель рассчитана на задачи понимания кода, включая поиск и сопоставление фрагментов кода по смыслу.

Поддерживаются C, C#, Go, Java, JavaScript, TypeScript, PHP, Python и Ruby. Контекст модели составляет 2048 токенов. Репозиторий содержит веса PyTorch и использует библиотеку Transformers. Лицензия — Apache-2.0.

Модель выдаёт эмбеддинги кода, которые можно применять для семантического поиска и сравнения фрагментов. Карточка не описывает конкретные метрики качества или ограничения по использованию; размер контекста ограничивает длину обрабатываемого фрагмента.

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

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

Ограничения

Контекст ограничен 2048 токенами. Карточка не приводит метрик качества или подробных ограничений применимости.

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

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

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

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

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

Открыть на Hugging Face

CodeSage-Small

Updates

  • [12/2024] We are excited to announce the release of the CodeSage V2 model family with largely improved performance and flexible embedding dimensions! Please check out our models and blogpost for more details.
  • [11/2024] You can now access CodeSage models through SentenceTransformer.

Model description

CodeSage is a new family of open code embedding models with an encoder architecture that support a wide range of source code understanding tasks. It is introduced in the paper:

Code Representation Learning At Scale by Dejiao Zhang*, Wasi Uddin Ahmad*, Ming Tan, Hantian Ding, Ramesh Nallapati, Dan Roth, Xiaofei Ma, Bing Xiang (* indicates equal contribution).

Pretraining data

This checkpoint is trained on the Stack data (https://huggingface.co/datasets/bigcode/the-stack-dedup). Supported languages (9 in total) are as follows: c, c-sharp, go, java, javascript, typescript, php, python, ruby.

Training procedure

This checkpoint is first trained on code data via masked language modeling (MLM) and then on bimodal text-code pair data. Please refer to the paper for more details.

How to Use

This checkpoint consists of an encoder (130M model), which can be used to extract code embeddings of 1024 dimension.

  1. Accessing CodeSage via HuggingFace: it can be easily loaded using the AutoModel functionality and employs the Starcoder Tokenizer.
from transformers import AutoModel, AutoTokenizer

checkpoint = "codesage/codesage-small"
device = "cuda"  # for GPU usage or "cpu" for CPU usage

# Note: CodeSage requires adding eos token at the end of each tokenized sequence 

tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True, add_eos_token=True)

model = AutoModel.from_pretrained(checkpoint, trust_remote_code=True).to(device)

inputs = tokenizer.encode("def print_hello_world():\tprint('Hello World!')", return_tensors="pt").to(device)
embedding = model(inputs)[0]
  1. Accessing CodeSage via SentenceTransformer
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("codesage/codesage-small", trust_remote_code=True)

BibTeX entry and citation info

@inproceedings{
    zhang2024code,
    title={{CODE} {REPRESENTATION} {LEARNING} {AT} {SCALE}},
    author={Dejiao Zhang and Wasi Uddin Ahmad and Ming Tan and Hantian Ding and Ramesh Nallapati and Dan Roth and Xiaofei Ma and Bing Xiang},
    booktitle={The Twelfth International Conference on Learning Representations},
    year={2024},
    url={https://openreview.net/forum?id=vfzRRjumpX}
}

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

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

GPU в ailist

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

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

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

Класс архитектуры
CodeSage
Ревизия весов
4d2a4f3

0 моделей