Stellen Sie sicher, dass Sie das Attribut decoder_start_token_id der Konfiguration des Modells festlegen. FehlerPython

Python-Programme
Anonymous
 Stellen Sie sicher, dass Sie das Attribut decoder_start_token_id der Konfiguration des Modells festlegen. Fehler

Post by Anonymous »

from transformers import AutoProcessor, MusicgenForConditionalGeneration, EncodecModel

model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("facebook/musicgen-small")
decoder_start_token = ""
model.config.decoder_start_token_id = tokenizer.convert_tokens_to_ids(decoder_start_token)
< /code>
Ich setze model.config.decoder_start_token_id hier aber. < /p>
from peft import LoraConfig, TaskType
import torch.nn as nn

target_modules = [
name for name, module in model.named_modules()
if isinstance(module, (nn.Linear))
]

peft_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
target_modules=target_modules,
inference_mode=False,
r=8,
lora_alpha=32,
lora_dropout=0.1
)
< /code>
from peft import get_peft_model

peft_model = get_peft_model(model, peft_config)

peft_model.print_trainable_parameters()
< /code>
from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
output_dir="./musicgen_results",
learning_rate=1e-3,
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
num_train_epochs=2,
weight_decay=0.01,
eval_strategy="epoch",
save_strategy="epoch",
load_best_model_at_end=True,
report_to="none"
)
< /code>
from transformers import EncodecModel
import torch

def preprocess_function(example):
audio = example["audio_path"]
encodec_model = EncodecModel.from_pretrained("facebook/encodec_32khz")

audio_array = example["audio_path"]["array"]
sampling_rate = 32000

audio_tensor = torch.tensor(audio_array, dtype=torch.float32)
audio_tensor = audio_tensor.unsqueeze(0).unsqueeze(0)

audio_inputs = encodec_model.encode(audio_tensor)
audio_tokens = audio_inputs.audio_codes
example["labels"] = audio_tokens
example.update(processor(
audio=audio["array"],
text=example["description"],
sampling_rate=32000
))
return example

< /code>
train_dataset = train_dataset.map(preprocess_function, remove_columns=["description", "audio_path"])
eval_dataset = eval_dataset.map(preprocess_function, remove_columns=["description", "audio_path"])
< /code>
from torch.nn.utils.rnn import pad_sequence
from transformers import DataCollatorForSeq2Seq

trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)

trainer.train()
< /code>
but in here,
/usr/local/lib/python3.10/dist-packages/transformers/models/musicgen/modeling_musicgen.py in shift_tokens_right(input_ids, pad_token_id, decoder_start_token_id)
102 shifted_input_ids[..., 1:] = input_ids[..., :-1].clone()
103 if decoder_start_token_id is None:
--> 104 raise ValueError("Make sure to set the decoder_start_token_id attribute of the model's configuration.")
105 shifted_input_ids[..., 0] = decoder_start_token_id
106
ValueError: Make sure to set the decoder_start_token_id attribute of the model's configuration.
from transformers import AutoProcessor, MusicgenForConditionalGeneration, EncodecModel

model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("facebook/musicgen-small")
decoder_start_token = ""
model.config.decoder_start_token_id = tokenizer.convert_tokens_to_ids(decoder_start_token)
< /code>
I set model.config.decoder_start_token_id here. But error occurs.
I don't understand why this is happening. I set model.config.decoder_start_token_id

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post