/ Модель

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

Контекст
1 024 токена
Лицензия
Apache 2.0
Архитектура
gpt2 · dense
Опубликована
22 июн 2024

NeyabAI-GPT2_version

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

Модель на архитектуре GPT-2 для генерации и продолжения английского текста, которую можно дообучать на собственных данных.

24скачиваний за 30 дней1лайквеса обновлены22 июн 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

XsoraS/NeyabAI-GPT2_version — языковая модель для генерации текста на основе архитектуры GPT-2, представленная автором XsoraS. README описывает её применение через Transformers и PyTorch и содержит пример настройки дообучения на пользовательском наборе данных. Модель принимает текст и продолжает его; контекст ограничен 1024 токенами, карточка указывает английский язык.

Модель подходит для экспериментов с генерацией текста и адаптации языковой модели к собственному корпусу. В репозитории указаны веса в формате safetensors. Лицензия — Apache-2.0. README использует для загрузки репозиторий XsoraS/NeyabAI, поэтому связь текущего репозитория с отдельным базовым чекпойнтом явно не установлена.

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

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

Ограничения

Контекст ограничен 1024 токенами. README не приводит оценок качества или результатов на бенчмарках, поэтому пригодность для конкретных задач требует проверки.

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

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

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

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

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

Открыть на Hugging Face

Using NeyabAI:

Direct Use:

import torch
from transformers import GPT2LMHeadModel, GPT2TokenizerFast

model = GPT2LMHeadModel.from_pretrained("XsoraS/NeyabAI")
tokenizer = GPT2TokenizerFast.from_pretrained("XsoraS/NeyabAI")
def generate_response(prompt):
    inputs = tokenizer(prompt, return_tensors='pt') # You can add .to(torch.device("cuda")) to use GPU acceleration.
    return tokenizer.decode(model.generate(inputs.input_ids, max_length=512, do_sample=True,top_p=0.8, temperature=0.7, num_return_sequences=1,attention_mask=None)[0],skip_special_tokens=True)

prompt = "Hello"
response = ' '.join(map(str, str(generate_response("### Human: "+prompt+" \n### AI:")).replace("</s>","").split()))
print(response)

Fine-Tuning:

This repository demonstrates how to fine-tune the NeyabAI(GPT-2) language model on a custom dataset using PyTorch and Hugging Face's Transformers library. The code provides an end-to-end example, from loading the dataset to training the model and evaluating its performance.

Requirements

  • Python 3.6+
  • PyTorch
  • Transformers (Hugging Face)
  • NumPy

You can install the required packages using pip:

pip install torch transformers numpy

Fine-Tuning Script

The following script outlines the steps for fine-tuning GPT-2 on a custom dataset:

from transformers import GPT2LMHeadModel, GPT2TokenizerFast, AdamW
import torch
from torch.utils.data import DataLoader, TensorDataset
import numpy as np

# Load pre-trained model and tokenizer
model_name = "XsoraS/NeyabAI"
model = GPT2LMHeadModel.from_pretrained(model_name)
tokenizer = GPT2TokenizerFast.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token

# Example dataset
dataset = ["Your custom dataset goes here."]  # Replace with your actual dataset

# Tokenization function
def tokenize_function(examples):
    return tokenizer(examples, padding='max_length', truncation=True, max_length=512)

# Tokenize the dataset
tokenized_inputs = [tokenize_function(text) for text in dataset]
input_ids = [input['input_ids'] for input in tokenized_inputs]
attention_masks = [input['attention_mask'] for input in tokenized_inputs]

# Convert to torch tensors
input_ids = torch.tensor(input_ids)
attention_masks = torch.tensor(attention_masks)
labels = input_ids.clone()

# Create DataLoader
batch_size = 8
dataset = TensorDataset(input_ids, attention_masks, labels)
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)

# Configure device
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
model = model.half()

# Set up optimizer
optimizer = AdamW(model.parameters(), lr=3e-5)

# Define accuracy calculation
def calculate_accuracy(preds, labels):
    pred_flat = np.argmax(preds, axis=-1).flatten()
    labels_flat = labels.flatten()
    return np.sum(pred_flat == labels_flat) / len(labels_flat)

# Training loop (simplified)
for epoch in range(3):  # Adjust the number of epochs as needed
    for batch in dataloader:
        batch = tuple(t.to(device) for t in batch)
        input_ids, attention_masks, labels = batch

        outputs = model(input_ids, attention_mask=attention_masks, labels=labels)
        loss = outputs.loss
        logits = outputs.logits

        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

        preds = logits.detach().cpu().numpy()
        label_ids = labels.to('cpu').numpy()
        acc = calculate_accuracy(preds, label_ids)

        print(f"Loss: {loss.item()}, Accuracy: {acc}")

print("Training complete!")

Notes

  • Dataset: Replace the dataset variable with your actual dataset.
  • Max Length: Adjust the max_length parameter in the tokenize_function as needed based on the length of your input texts.
  • Batch Size and Learning Rate: You may need to tune the batch_size and learning rate (lr) according to your dataset and hardware capabilities.
  • Epochs: Adjust the number of epochs based on your convergence criteria.

Acknowledgments

  • This project uses the Transformers library by Hugging Face.
  • Inspired by various fine-tuning examples and tutorials from the Hugging Face community.

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей