본문 바로가기
Engineering/에러 해결 모음

[Error] EOFError : Ran out of input

by Hyen4110 2022. 12. 12.

유사문서 매칭 모델 서비스에서
문서 텍스트를 BERT 계열 언어모델을 사용하여 embedding vector로 전환한 후,
faiss 라이브러리를 통해 유서 문서 검색 기능을 제공하고 있다.

좀 더 자세히말하자면, faiss index를 생성한 후,
검색 대상 문서(Document Pool)에 embedding vector를 추가하는데
저장해놓은 pickle파일 형태의 벡터를 불러온다.
이때, EOFError : Ran out of input 에러가 발생

원인을 파악한 결과,
새로운 문서가 추가 되거나 인코더 역할을 하는 언어모델을 교체하여
새로운 인덱싱을 진행한 후 파일을 다시 저장할때,
즉, 아래처럼 with open을 'wb'로 실행할 때 비정상적으로 기능이 종료가되어
파일이 손상된 것이 원인이었다.

filename = 'embedding_vectors.pkl'
with open(filename, 'wb') as f:
    embedding_vectors = pickle.load(f)

돌발상황은 언제나 발생하므로
backup 파일을 미리 생성해서
문제 시 교체할 수 있도록 하기

댓글