LangChain | Python의 Pickle 직렬화 | 모델

박성문·2025년 1월 21일

LangChain | 모델

목록 보기
8/11

파이썬의 Pickle 직렬화

Python의 내장 직렬화 모듈이다.
모든 파이썬 객체를 바이너리 스트림으로 변환하는 프로세스
Python 전용 직렬화 포맷

저장 (직렬화)

  • pickle.dump(object, f) 에서는 Python 객체를 바이너리 형태로 파일에 저장한다.
    "wb" 모드는 바이너리 쓰기 모드를 의미하여, Pickle 파일 저장 시 필수이다.

로드 (역직렬화)

  • pickle.load(f)는 저장된 바이너리 데이터를 다시 Python 객체로 복원한다.
    "rb" 모드는 바이너리 읽기 모드로, Pickle 파일을 읽을 때 사용된다.

LangChain에서의 활용

  • dumpd(chain)을 통해 LangChain 체인을 먼저 딕셔너리 형태로 변환한다.
    변환된 딕셔너리를 Pickle로 저장하면 체인의 구조와 설정이 모두 보존된다.

  • JSON 형식 저장은 텍스트 기반이라 사람이 읽을 수 있는 형태로 저장된다.
    Pickle과 JSON 두 가지 방식을 모두 제공하여 사용 목적에 따라 선택할 수 있다.

모델 저장

  • 학습된 머신러닝 모델을 Pickle 형식으로 저장하면 모델의 가중치와 구조가 보존된다.
    바이너리 형식이라 저장 공간이 효율적이고 로딩 속도도 빠르다.
    모델의 모든 상태가 그대로 저장되어 나중에 완벽하게 복원 가능하다.

데이터 캐싱

  • 처리에 시간이 오래 걸리는 데이터를 중간 결과로 저장할 수 있다.
    다음 실행 시 저장된 캐시를 불러와 처리 시간을 단축할 수 있다.
    데이터프레임이나 복잡한 데이터 구조도 손실 없이 저장된다.

프로그램 상태 저장

  • 프로그램의 현재 상태를 모두 저장하여 나중에 이어서 실행할 수 있다.
    변수값, 설정, 진행 상황 등 모든 정보가 보존된다.
    프로그램 중단 시에도 데이터 손실을 방지할 수 있다.
profile
성문이

0개의 댓글