1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/paddlepaddle-PaddleNLP

 / Детали:

Пример использования `save_pretrained` для сохранения модели в `examples/information_extraction/waybill_ie/run_bigru_crf.py` вызывает...

Предстоит сделать
Владелец
Создано  
08.03.2025

ошибку.

Понял, вот текст с выполненными изменениями:

"在使用过程中,如果遇到错误信息“无法连接到服务器”,请检查您的网络设置。如果有问题,请联系技术支持团队。“

Перевод:

"В процессе использования, если вы столкнетесь с ошибкой "невозможно подключиться к серверу", проверьте свои сетевые настройки. Если возникнут проблемы, обратитесь в службу технической поддержки."```markdown
Для локального использования я изменил код: сделал ErnieCrfForTokenClassification наследником от ErniePretrainedModel

class ErnieCrfForTokenClassification(ErniePretrainedModel):
    def __init__(self, ernie, crf_lr=100):
        super(ErnieCrfForTokenClassification, self).__init__()
        self.num_classes = ernie.num_classes
        self.ernie = ernie  # позволяет ernie быть конфигом
        self.crf = LinearChainCrf(
            self.num_classes, crf_lr=crf_lr, with_start_stop_tag=False)
        self.crf_loss = LinearChainCrfLoss(self.crf)
        self.viterbi_decoder = ViterbiDecoder(
            self.crf.transitions, with_start_stop_tag=False)

Затем при сохранении модели использовал model.save_pretrained('./ernie_crf_ckpt') для сохранения модели, код:

step = 0
best_f1 = 0
for epoch in range(3000):
    for input_ids, token_type_ids, lengths, labels in train_loader:
        loss = model(input_ids, token_type_ids, lengths=lengths, labels=labels)
        avg_loss = paddle.mean(loss)
        avg_loss.backward()
        optimizer.step()
        optimizer.clear_grad()
        step += 1
        print("[TRAIN] Epoch:%d - Step:%d - Loss: %f" %
              (epoch, step, avg_loss))
    f1_score = evaluate(model, metric, dev_loader)
    if f1_score >= best_f1:
        best_f1 = f1_score
        paddle.save(model.state_dict(), 'ernie_crf_ckpt/model_state.pdparams')
        # paddle.save(model, 'ernie_crf_ckpt/model_state.pdmodel')
        tokenizer.save_pretrained('./ernie_crf_ckpt')
        model.save_pretrained('./ernie_crf_ckpt')

Появилась следующая ошибка:

Traceback (most recent call last):
File "/home/user/Desktop/on_going_projects/sgaqfh/PaddleNLP/examples/information_extraction/waybill_ie/run_ernie_crf.py", line 135, in <module>
model.save_pretrained('./ernie_crf_ckpt')
File "/home/user/Desktop/on_going_projects/sgaqfh/PaddleNLP/paddlenlp/transformers/model_utils.py", line 386, in save_pretrained
self.save_model_config(save_dir)
File "/home/user/Desktop/on_going_projects/sgaqfh/PaddleNLP/paddlenlp/transformers/model_utils.py", line 374, in save_model_config
f.write(json.dumps(model_config, ensure_ascii=False))
File "/home/user/anaconda3/envs/paddle_2.1/lib/python3.9/json/__init__.py", line 179, in dumps
return JSONEncoder(*args, **kwargs).encode(obj)
return cls().encode(obj)

При проверке выяснилось, что ошибка возникает при сохранении файла model_config.json, и её невозможно решить самостоятельно. Прошу помощи в решении данной проблемы.```plaintext
Произошла ошибка при попытке сериализовать объект типа ErnieModel в JSON. Объект типа ErnieModel не является JSON-сериализуемым.

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/paddlepaddle-PaddleNLP.git
git@api.gitlife.ru:oschina-mirror/paddlepaddle-PaddleNLP.git
oschina-mirror
paddlepaddle-PaddleNLP
paddlepaddle-PaddleNLP