/ Модель

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

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

codesage-base

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

CodeSage Base — энкодерная модель для создания эмбеддингов исходного кода и решения задач поиска и классификации кода.

85скачиваний за 30 дней4лайкавеса обновлены28 дек 2024

Бенчмарки

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

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

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

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

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

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

CodeSage Base — открытая модель для получения векторных представлений исходного кода, представленная авторами работы «Code Representation Learning At Scale». Это энкодерная модель семейства CodeSage с 453 млн параметров; README описывает извлечение эмбеддингов размерностью 1024, а метаданные указывают библиотеку Transformers и формат PyTorch. Модель обучена на данных The Stack и предназначена для задач понимания кода, включая поиск и классификацию.

Модель поддерживает девять языков программирования: C, C#, Go, Java, JavaScript, TypeScript, PHP, Python и Ruby. Максимальная длина контекста составляет 2048 токенов. Лицензия — Apache-2.0. README также упоминает CodeSage V2 как более позднее семейство с улучшенными результатами и гибкими размерами эмбеддингов; приведённые характеристики относятся к этому базовому чекпойнту.

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

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

Ограничения

Контекст ограничен 2048 токенами. README описывает эмбеддинги размерностью 1024; модель является базовым энкодером и не заявлена как генеративный помощник для программирования.

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

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

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

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

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

Открыть на Hugging Face

CodeSage-Base

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 (356M 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-base"
device = "cuda"  # "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-base", trust_remote_code=True)

BibTeX entry and citation info

@inproceedings{
    zhang2024codesage,
    title={CodeSage: Code Representation Learning At Scale},
    author={Dejiao Zhang* and Wasi 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
Ревизия весов
7612de6

0 моделей