/ Модель

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

Контекст
2 048 токенов
Лицензия
bigcode-openrail-m
Архитектура
codegen · dense
Библиотека
transformers
Опубликована
30 дек 2022

fine-tuned-codegen-16B-Verilog

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

VeriGen — дообученная 16-миллиардная модель CodeGen для продолжения и генерации RTL-кода на Verilog.

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

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VeriGen — модель на 16 млрд параметров, дообученная Shailja Thakur на базе CodeGen-multi-16B для генерации кода на Verilog. Она предназначена для продолжения фрагментов Verilog и помощи при разработке RTL: модель лучше работает, если в запросе уже есть контекст, например начало заголовка модуля, и не рассчитана на выполнение инструкций в свободной форме. Архитектура — CodeGen с причинной языковой моделью и multi-query attention; доступная длина контекста составляет 2048 токенов.

Модель обучалась на Verilog-коде из GitHub и учебников, а в метаданных указан датасет shailja/Verilog_GitHub. Основной язык модели — Verilog; естественный язык комментариев и контекста преимущественно английский. Лицензия — BigCode OpenRAIL-M. Сгенерированный код может содержать ошибки, быть неэффективным или небезопасным и не гарантированно соответствует требованиям; возможное дословное воспроизведение обучающих примеров также требует проверки лицензии исходного кода.

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

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

Ограничения

Модель не является инструкционной и хуже работает с запросами-командами без контекста. Сгенерированный код может быть ошибочным, неэффективным или содержать уязвимости; возможное дословное воспроизведение обучающего кода требует проверки его лицензии.

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

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

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

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

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

Открыть на Hugging Face

VeriGen

Table of Contents

  1. Model Summary
  2. Use
  3. Limitations
  4. Training
  5. License
  6. Citation

Model Summary

The VeriGen model is 16B parameter models fine-tuned version of CodeGen-multi-16B trained on Verilog code dataset .

Use

Intended use

The model was trained on Verilog from GitHub and textbooks. As such it is not an instruction model and commands like "Write a module that implements a 2-to-1 Mux." do not work well. However, by additing a partial line of module header like "module mux" in addition with the text in the prompt turns it into a capable Verilog teaching assistant.

Feel free to share your generations in the Community tab!

Generation

# pip install -q transformers
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# Prompt
prompt = "//module half adder "
device='cuda'
# Load model and tokenizer
model_name = "shailja/fine-tuned-codegen-16B-Verilog"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to(device)

# Sample
input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
sample = model.generate(input_ids, max_length=128, temperature=0.5, top_p=0.9)

print(tokenizer.decode(sample[0], truncate_before_pattern=[r"endmodule"]) + "endmodule")

Attribution & Other Requirements

The pretraining dataset of the model was not filtered for permissive licenses only. Nevertheless, the model can generate source code verbatim from the dataset. The code's license might require attribution and/or other specific requirements that must be respected.

Limitations

The model has been trained on Verilog source code from open sources. The predominant natural language in source code is English, although other languages are also present. As such the model is capable of generating Verilog snippets provided some context but the generated code is not guaranteed to work as intended. It can be inefficient, contain bugs or exploits. See the paper for an in-depth discussion of the model limitations.

Training

Model

  • Architecture: GPT-2 model with multi-query attention
  • Pretraining steps: 150k
  • Pretraining tokens: ~72B
  • Precision: fp16

Hardware

  • GPUs: 4 Tesla A100
  • Training time: 15 days

License

The model is licensed under the BigCode OpenRAIL-M v1 license agreement. You can find the full agreement here.

Citation

@misc{https://doi.org/10.48550/arxiv.2212.11140,
  doi = {10.48550/ARXIV.2212.11140},
  url = {https://arxiv.org/abs/2212.11140},
  author = {Thakur, Shailja and Ahmad, Baleegh and Fan, Zhenxing and Pearce, Hammond and Tan, Benjamin and Karri, Ramesh and Dolan-Gavitt, Brendan and Garg, Siddharth},
  title = {Benchmarking Large Language Models for Automated Verilog RTL Code Generation},
  publisher = {arXiv},
  year = {2022},
  copyright = {arXiv.org perpetual, non-exclusive license}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей