# train.py - train 시 발생 에러
File "data/ephemeral/home/minji_tmp/code/train.py", line 181, in prepare_train_features
end_char = start_char + len(answers["text"][0])
TypeError: can only concatenate str (not "int") to str
2. id 값이 저장되지 않아서 발생하는 에러
id 값도 같이 저장될 수 있도록 수정되어야 합니다.
# train.py - evaluation 시 발생 에러
File "/data/ephemeral/home/minji_tmp/code/train.py", line 259, in prepare_validation_features
tokenized_examples["example_id"].append(examples["id"][sample_index])
File "/opt/conda/lib/python3.10/site-packages/datasets/formatting/formatting.py", line 270, in __getitem__
value = self.data[key]
KeyError: 'id'
우선은 다음 코드로 처리해서 코드 돌렸더니, 학습 코드 잘 작동합니다:) 전처리 함수 수정 시 참고 부탁드립니다!
# answer_start를 정수로 변환
def convert_answer_start(example):
example['answers']['answer_start'] = [int(start) for start in example['answers']['answer_start']]
return example
Describe the bug
1. 전처리된 데이터에서 answers의 'answer start' 값들이 문자형으로 처리돼서 발생하는 에러
2.
id
값이 저장되지 않아서 발생하는 에러id
값도 같이 저장될 수 있도록 수정되어야 합니다.Error 1.
answer start
type errorCurrent data
Expected behavior
Possible Solution
'train'과 'validation' 데이터셋에 변환 적용
preprocessed['train'] = preprocessed['train'].map(convert_answer_start) preprocessed['validation'] = preprocessed['validation'].map(convert_answer_start)
결과 확인
print(preprocessed['train']['answers'][0]) print(preprocessed['validation']['answers'][0])
{'answer_start': [229], 'text': ['하원']}
{'answer_start': [281], 'text': ['한보철강']}
Expected behavior