Как обучать модели GPT в трансформаторах с нуля? [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обучать модели GPT в трансформаторах с нуля? [закрыто]

Сообщение Anonymous »

Учитывая набор входов, которые я хочу использовать для обучения модели GPT-подобной из трансформаторов, как мне правильно настроить обучающую цель (рядом с прогнозом токена) в модели / токенизаторе? Это не текстовый домен, но в принципе мои входные данные имеют длину 500-600 токенов, и я хочу, чтобы модель позже генерировала что-то из подсказок различной длины, например, Только 1 токен, 10 токенов и т. Д. Чтобы быть ясным, модели исключительно целью является завершение подсказки. Результаты несколько имеют смысл, но трудно оценить.input_tokens = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for i in range(len(input_tokens)):
prediction = model.predict(input_tokens[0:i]
label = input_tokens

< /code>
Некоторый псевдо-код, чтобы дать больше контекста: < /p>
alphabet_size = 30
# some pseudo data, already tokenized => n=2 here
# each entry should be used by the model to do the NTP
# 10 = BOS token
# 0 = padding
# 2 = EOS
input_data = [[1, 15, 21, 10, 13, 0, 2], [1, 5, 18, 21, 5, 7, 2]]

# we want to use a GPT-like model
from transformers import GPT2Model, GPT2Config

# custom wrapper
class Model(LightningModule):
def init():
self.gpt_model = GPT2Model(config) # could be any decoder model
self.output = nn.Linear(hidden_size, vocab_size)
def forward():
outputs = self.gpt_model(input_ids)
hidden_states = outputs.last_hidden_state
logits = self.output = self.output(hidden_states)
def training_step(self, batch, batch_idx):
input_ids, labels = batch
logits = self(input_ids)
loss = cross_entropy(logits.view(-1, vocab_size), labels.view(-1), ignore_padding)

# is this a valid tokenizer?
class Loader:
def __get_item__(self, idx):
# randomly cut data here?
input_ids = self.data[idx]
labels = self.data[idx]
# or something like this
input_ids = self.data[idx][0: rnd]
labels = self.data[idx][rnd:rnd+1]
return (input_ids, labels)
# or
input_ids = self.data[idx][:-1]
labels = self.data[idx][1:]

model = Model()
trainer = Trainer(model)
trainer.fit(model, train_loader)


Подробнее здесь: https://stackoverflow.com/questions/797 ... om-scratch
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обучать модели GPT в трансформаторах с нуля?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как постепенно обучать модель распознавания лиц без переобучения с нуля?
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как исправить «Тренер: оценка требует eval_dataset» в трансформаторах Huggingfice?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Кто помогает мне обучать ML [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как обучать GNN на огромных наборах данных?
    Гость » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»