/ Модель

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

Контекст
1 024 токена
Лицензия
MIT
Архитектура
gpt2 · dense
Библиотека
transformers
Опубликована
6 апр 2023

advertisement-description-generator

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

Дообученная GPT-2, которая составляет короткие рекламные описания товаров по связанным с ними ключевым словам.

45скачиваний за 30 дней2лайкавеса обновлены5 июл 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модель NihalSrivastava/advertisement-description-generator разработана Nihal Srivastava и представляет собой дообученную GPT-2 для генерации коротких рекламных описаний товаров. На вход подаются ключевые слова о товаре, на выходе — описание длиной в одну-две строки; пример в карточке показывает описание умной колонки Echo Dot.

Модель дообучена на собственном наборе из 328 пар «ключевые слова — текст». Архитектура — GPT-2, формат весов — PyTorch и Safetensors, контекст — до 1024 токенов. В карточке заявлена поддержка английского языка. Лицензия — MIT.

Небольшой объём обучающего набора может ограничивать разнообразие и качество формулировок, а результаты следует проверять на точность характеристик товара и соответствие рекламным требованиям.

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

  • создание короткого описания товара по набору ключевых слов
  • подготовка рекламного текста для карточки товара
  • генерация нескольких вариантов описания товара

Ограничения

Модель обучена на небольшом наборе из 328 примеров, поэтому формулировки могут быть однообразными. Проверяйте, что сгенерированный текст не добавляет неподтверждённых характеристик товара.

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

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

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

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

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

Открыть на Hugging Face

Advertisement-Description-Generator gpt2 finetuned on product descriptions

Model Details

This model generates a 1-2 line description of a product given the keywords associated with it. It is a fine-tuned version of GPT-2 model on a custom dataset consisting of 328 rows in the format: (keyword, text)
Example:
[Echo Dot,smart speaker,Alexa,improved sound,sleek design,home], Introducing the all-new Echo Dot - the smart speaker with Alexa. It has improved sound and a sleek design that fits anywhere in your home.

  • Developed by: Nihal Srivastava
  • Model type: Finetuned GPT-2
  • License: MIT
  • Finetuned from model [optional]: GPT-2

Uses

Inital Imports of the model and setting up helper functions:
from transformers import AutoTokenizer, AutoModelForCausalLM

def join_keywords(keywords, randomize=True):
  N = len(keywords)
  if randomize: 
      M = random.choice(range(N+1))
      keywords = keywords[:M]
      random.shuffle(keywords)
      
  return ','.join(keywords)

SPECIAL_TOKENS  = { "bos_token": "<|BOS|>",
                    "eos_token": "<|EOS|>",
                    "unk_token": "<|UNK|>",                    
                    "pad_token": "<|PAD|>",
                    "sep_token": "<|SEP|>"}

device = torch.device("cuda")
tokenizer = AutoTokenizer.from_pretrained("NihalSrivastava/advertisement-description-generator")
model = AutoModelForCausalLM.from_pretrained("NihalSrivastava/advertisement-description-generator").to(device)

keywords = ['laptop', 'fast', 'gaming', 'great graphics', 'affordable']
kw = join_keywords(keywords, randomize=False)
prompt = SPECIAL_TOKENS['bos_token'] + kw + SPECIAL_TOKENS['sep_token']
generated = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0)
device = torch.device("cuda")
generated = generated.to(device)
model.eval();
To generate a single best description:
# Beam-search text generation:
sample_outputs = model.generate(generated, 
                                do_sample=True,   
                                max_length=768,                                                      
                                num_beams=5,
                                repetition_penalty=5.0,
                                early_stopping=True,      
                                num_return_sequences=1
                                )
for i, sample_output in enumerate(sample_outputs):
    text = tokenizer.decode(sample_output, skip_special_tokens=True)
    a = len(','.join(keywords))    
    print("{}: {}\n\n".format(i+1,  text[a:]))

Output:

1: The gaming laptop has a fast clock speed, high refresh rate display, and advanced connectivity options for unparalleled gaming performance.

To generate top 10 best descriptions:
# Top-p (nucleus) text generation (10 samples):
sample_outputs = model.generate(generated, 
                                do_sample=True,   
                                min_length=50, 
                                max_length=MAXLEN,
                                top_k=30,                                 
                                top_p=0.7,        
                                temperature=0.9,
                                repetition_penalty=2.0,
                                num_return_sequences=10
                                )

for i, sample_output in enumerate(sample_outputs):
    text = tokenizer.decode(sample_output, skip_special_tokens=True)
    a = len(','.join(keywords))    
    print("{}: {}\n\n".format(i+1,  text[a:]))

Output: Will generate 10 best outouts of product description as above.

Training Hyperparameters

DEBUG           = False  
USE_APEX        = True  
APEX_OPT_LEVEL  = 'O1'  
MODEL           = 'gpt2' #{gpt2, gpt2-medium, gpt2-large, gpt2-xl}  
UNFREEZE_LAST_N = 6 #The last N layers to unfreeze for training  
SPECIAL_TOKENS  = { "bos_token": "<|BOS|>",  
                    "eos_token": "<|EOS|>",  
                    "unk_token": "<|UNK|>",                    
                    "pad_token": "<|PAD|>",  
                    "sep_token": "<|SEP|>"}  
MAXLEN          = 768  #{768, 1024, 1280, 1600}   
TRAIN_SIZE      = 0.8  
if USE_APEX:  
    TRAIN_BATCHSIZE = 4  
    BATCH_UPDATE    = 16  
else:  
    TRAIN_BATCHSIZE = 2  
    BATCH_UPDATE    = 32  
EPOCHS          = 20  
LR              = 5e-4  
EPS             = 1e-8  
WARMUP_STEPS    = 1e2  
SEED            = 2020  
EVALUATION_STRATEGY=epoch  
SAVE_STRATEGY=epoch  

Model Card Contact

Email: nihal.srivastava05@gmail.com Github: https://github.com/Nihal-Srivastava05 LinkedIn: https://www.linkedin.com/in/nihal-srivastava-7708a71b7/

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей