运行代码后,代码报错,代码是根据textattack/bert-base-uncased-imdb模型适配代码改编的,现在代码要用于glue数据集,代码报错的原因是否和模型改变有关?请你分析代码后,帮我解决报错问题,我需要格式规范的完整代码。
报错日志如下:
2025-09-03 06:39:24,559 - __main__ [INFO] - 日志记录至: /workspace/src/log/run_1756881564_mode_search_hyperparameters_cola_train_with_fixed_hps.log (日志级别: INFO)
2025-09-03 06:39:24,559 - __main__ [INFO] - 运行模式: search_hyperparameters
2025-09-03 06:39:24,559 - __main__ [INFO] - 目标 GLUE 任务: cola
2025-09-03 06:39:24,560 - __main__ [INFO] - 解析的参数: {'glue_task': 'cola', 'mode': 'search_hyperparameters', 'seed': 42, 'batch_size': 32, 'num_workers': 0, 'max_length': 128, 'validation_split': 0.1, 'cache_dir': PosixPath('/workspace/pq_artifacts_cache'), 'faiss_search_bs': 1024, 'pq_d': 768, 'debug_log': False, 'block_pattern_regex': '\\.(layer|block|h)\\.(\\d+)\\.', 'run_error_analysis': True, 'yono_pq_k': 128, 'pq_m': 64, 'pq_block_size': 32, 'yono_lr': 2e-05, 'load_hps_from_json': 'src/best_hps.json', 'cluster_boundary_blocks': 'none', 'yono_initial_ft_epochs_search': 3, 'yono_initial_ft_epochs_final': 12, 'yono_initial_ft_patience_search': 1, 'yono_initial_ft_patience_final': 2, 'yono_epochs_per_step_search': 2, 'yono_epochs_per_step_final': 3, 'yono_patience_search': 1, 'yono_patience_final': 2, 'yono_max_iterations_search': 2, 'yono_max_iterations_final': 10, 'yono_target_error': 0, 'yono_use_heuristic': True, 'yono_use_scheduler': True, 'yono_scheduler_patience': 2, 'yono_scheduler_factor': 0.5, 'yono_min_lr': 1e-07, 'yono_scheduler_mode': 'max', 'yono_bs_trigger_patience_level': 1, 'yono_bs_warmup_iterations': 0, 'yono_scales_lr_multiplier': 0.1, 'yono_delay_scales_trainable_iters': 0, 'ga_population_size': 12, 'ga_generations': 3, 'ga_crossover_rate': 0.7, 'ga_mutation_rate_pq': 0.2, 'ga_mutation_rate_bp': 0.1, 'ga_num_elites': 2, 'ga_selection_method': 'roulette', 'bo_n_calls': 10, 'bo_n_initial_points': 5}
2025-09-03 06:39:24,560 - __main__ [INFO] - 运行时间戳: 1756881564
2025-09-03 06:39:24,560 - __main__ [INFO] -
==================== 通用设置 ====================
2025-09-03 06:39:24,560 - __main__ [INFO] - 找到当前任务 'cola' 的模型目录: /workspace/src/models_weights/bert/cola
2025-09-03 06:39:24,560 - __main__ [INFO] - 从 /workspace/src/models_weights/bert/cola 加载基础模型和 tokenizer...
2025-09-03 06:39:26,430 - __main__ [INFO] - 基础模型已以 torch.float16 类型加载到 cuda:0,CPU 副本已创建。Tokenizer 已加载。
2025-09-03 06:39:26,430 - __main__ [INFO] - 加载 GLUE 数据集: cola...
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - DataLoader 初始化:
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - 模式: 离线
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - 数据目录: /workspace/data/bert
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - 数据集组: glue_dataset
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - 任务名: cola
2025-09-03 06:39:26,430 - src.data.bert_data_loader_glue [INFO] - 分词器路径/名称: /workspace/src/models_weights/bert/cola
2025-09-03 06:39:26,431 - src.data.bert_data_loader_glue [INFO] - Batch Size: 32
2025-09-03 06:39:26,431 - src.data.bert_data_loader_glue [INFO] - Max Length: 128
2025-09-03 06:39:26,431 - src.data.bert_data_loader_glue [INFO] - 将直接使用预定义的 train/validation/test 划分,不额外切分数据。
2025-09-03 06:39:26,431 - src.data.bert_data_loader_glue [INFO] - 加载分词器: /workspace/src/models_weights/bert/cola
2025-09-03 06:39:26,459 - src.data.bert_data_loader_glue [INFO] - 分词器加载成功。
2025-09-03 06:39:26,459 - src.data.bert_data_loader_glue [INFO] - 从本地路径加载任务 'cola': /workspace/data/bert/glue_dataset/cola
2025-09-03 06:39:26,463 - src.data.bert_data_loader_glue [INFO] - 加载 train 分割,样本数: 8551
2025-09-03 06:39:26,465 - src.data.bert_data_loader_glue [INFO] - 加载 validation 分割,样本数: 1043
2025-09-03 06:39:26,467 - src.data.bert_data_loader_glue [INFO] - 加载 test 分割,样本数: 1063
2025-09-03 06:39:26,467 - src.data.bert_data_loader_glue [INFO] - 本地数据集加载成功。
2025-09-03 06:39:26,478 - src.data.bert_data_loader_glue [ERROR] - 加载和处理任务 'cola' 时发生严重错误: Column to remove ['sentence', 'idx'] not in the dataset. Current columns in the dataset: ['label', 'input_ids', 'token_type_ids', 'attention_mask']
Traceback (most recent call last):
File "/workspace/src/data/bert_data_loader_glue.py", line 195, in load_glue
tokenized_split = raw_split_data.map(
File "/opt/conda/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 557, in wrapper
out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2995, in map
raise ValueError(
ValueError: Column to remove ['sentence', 'idx'] not in the dataset. Current columns in the dataset: ['label', 'input_ids', 'token_type_ids', 'attention_mask']
2025-09-03 06:39:26,479 - __main__ [ERROR] - 加载数据失败: Column to remove ['sentence', 'idx'] not in the dataset. Current columns in the dataset: ['label', 'input_ids', 'token_type_ids', 'attention_mask']
Traceback (most recent call last):
File "/workspace/src/main_glue.py", line 572, in main
train_loader, test_loader, val_loader = data_loader_wrapper.load_glue()
File "/workspace/src/data/bert_data_loader_glue.py", line 247, in load_glue
raise e
File "/workspace/src/data/bert_data_loader_glue.py", line 195, in load_glue
tokenized_split = raw_split_data.map(
File "/opt/conda/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 557, in wrapper
out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2995, in map
raise ValueError(
ValueError: Column to remove ['sentence', 'idx'] not in the dataset. Current columns in the dataset: ['label', 'input_ids', 'token_type_ids', 'attention_mask']
2025-09-03 06:39:26,480 - __main__ [INFO] - 总运行时间: 1.92 秒。
修改代码时,请你严格遵守以下要求:
1.用中文回答我的问题并且我希望代码注释也是中文。明确哪些代码需要修改,告知我修改原因以及如何修改。
2.'yono_per_layer', 'yono_paper', 'search_hyperparameters'三种模式都要修改,修改代码的前提是保证代码的核心逻辑和代码兼容性不变,修改代码只是为了实现我的要求,要求代码不再自行划分数据集、训练集和验证集,请你不要删除或改变其他任何逻辑功能,并且不要轻易改变变量名或模块名以及导入路径,保存模型的回退逻辑也不要修改。
3.注意:修改代码时注意代码编写的格式规范(格式化遵循 PEP 8 规范,并采用业界广泛使用的 black 代码格式化工具的风格),注意规范使用缩进和空行。无需修改的代码文件不用给我重复提供。但是我不需要代码简洁!不要省略代码内容或函数体的任何内容,我需要复制粘贴后就能直接运行的完整正确代码!请你注意给我的每个代码文件最终内容的完整性和代码格式的规范性,即使代码内容或函数体无需修改也不要省略。
4.为我提供类似的运行命令代码:workspace# python src/main.py --mode search_hyperparameters --load_hps_from_json src/best_hps.json --yono_use_heuristic --run_error_analysis
最新发布