LangChain | 직렬화 (Serialization) | 모델

박성문·2025년 1월 21일

LangChain | 모델

목록 보기
6/11

직렬화(Serialization) 란

모델이나 객체를 저장 / 전송 가능한 형식으로 변환하는 과정
LangChain에서는 체인, 모델 등의 객체를 JSON 형식으로 변환하는 것을 의미

언제 사용하나

  • LangChain 애플리케이션을 개발하고 배포하는 과정에서
  • 모델을 저장하고 재사용할 때
  • 다른 환경으로 모델을 배포할 때
  • 모델을 공유할 때
  • 버전 관리가 필요할 때

어떻게 사용하나

  • is_lc_serializable() 클래스 메서드로 실행하여
    LangChain 클래스가 직렬화 가능한지 확인할 수 있다.

왜 필요한가

프로그램 종료 시 문제

  • 프로그램을 종료하면 메모리의 모든 것이 사라짐
    다시 시작하면 처음부터 다시 만들어야 함

다른 환경으로 이동 시 문제

  • 다른 컴퓨터나 서버로 옮길 수 없음
    매번 새로 만들어야 함

시간과 자원 낭비

  • 학습된 모델을 매번 다시 학습해야 함
    컴퓨팅 리소스 낭비

직렬화의 종류

Python Pickle 직렬화

  • Python 전용 바이너리 형식
    빠른 처리 속도
    모든 Python 객체 지원

JSON 직렬화

  • 텍스트 기반 형식
    언어 독립적
    웹 통신에 적합

LangChain Chain 직렬화

  • LangChain 전용
    dumps: JSON 문자열 변환
    dumpd: 딕셔너리 변환

직렬화 플로우

직렬화 방식 비교

주의사항

Pickle: 신뢰할 수 없는 파일 로드 주의
JSON: 데이터 타입 제한 확인
LangChain: API 키 등 민감 정보 관리

직렬화는

재사용을 위한 저장이다.
만든 모델이나 체인을 파일로 저장했다가
나중에 다시 꺼내서 쓸 수 있게 하는 것이다.

profile
성문이

0개의 댓글