LangChain을 활용한 LLM 캐싱 및 성능 최적화

언어 모델

다양한 LLM 제공자와 모델 활용법을 다룬다.

AI
RAG
LangChain
저자

Kwangmin Kim

공개

2025년 02월 02일

1 캐싱(Caching)

LangChain은 LLM을 위한 선택적 캐싱 레이어를 제공합니다.

이는 두 가지 이유로 유용합니다.

  • 동일한 완료를 여러 번 요청하는 경우 LLM 공급자에 대한 API 호출 횟수를 줄여 비용을 절감할 수 있습니다.
  • LLM 제공업체에 대한 API 호출 횟수를 줄여 애플리케이션의 속도를 높일 수 있습니다.

# API KEY를 환경변수로 관리하기 위한 설정 파일
from dotenv import load_dotenv

# API KEY 정보로드
load_dotenv()
True
# LangSmith 추적을 설정합니다. https://smith.langchain.com
# !pip install langchain-teddynote
from langchain_teddynote import logging

# 프로젝트 이름을 입력합니다.
logging.langsmith("CH04-Models")
LangSmith 추적을 시작합니다.
[프로젝트명]
CH04-Models

모델과 프롬프트를 생성합니다



from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate

# 모델을 생성합니다.
llm = ChatOpenAI(model_name="gpt-3.5-turbo")

# 프롬프트를 생성합니다.
prompt = PromptTemplate.from_template("{country} 에 대해서 200자 내외로 요약해줘")

# 체인을 생성합니다.
chain = prompt | llm

%%time 
response = chain.invoke({"country": "한국"})
print(response.content)
한국은 동아시아에 위치한 고도로 발전한 나라로, 역사적으로는 고조선, 삼국, 고려, 조선 등 다양한 왕조가 있었고, 현재는 대한민국으로 알려져 있다. 서울이 수도이며, 높은 경제력과 첨단 기술력을 보유하고 있다. 또한 한류와 K-pop을 통해 세계적으로 큰 인기를 얻고 있으며, 한국음식인 김치, 불고기, 라면 등도 세계적으로 유명하다. 한반도 북쪽에는 북한이 있으며, 남한과의 관계는 계속된 갈등과 논쟁이 있지만, 평화를 향한 노력도 계속되고 있다. 한국은 고대 역사와 현대 문화가 조화롭게 공존하는 매력적인 나라이다.
CPU times: user 48.6 ms, sys: 17.1 ms, total: 65.7 ms
Wall time: 2.88 s

2 InMemoryCache

인메모리 캐시를 사용하여 동일 질문에 대한 답변을 저장하고, 캐시에 저장된 답변을 반환합니다.

from langchain_community.cache import SQLiteCache
from langchain_core.globals import set_llm_cache
import os

# 캐시 디렉토리를 생성합니다.
if not os.path.exists("cache"):
    os.makedirs("cache")

# SQLiteCache를 사용합니다.
set_llm_cache(SQLiteCache(database_path="cache/llm_cache.db"))
한국은 동아시아에 위치한 고도로 발전한 현대화된 나라로, 경제적으로 선진국으로 분류되며 세계적으로 유명한 기업들을 많이 보유하고 있다. 또한 한류 열풍으로 한국의 문화와 엔터테인먼트 산업이 세계적으로 큰 인기를 끌고 있다. 한국은 높은 교육 수준과 혁신적인 기술력을 자랑하며, 고강도의 사회 경쟁과 열악한 교육 환경으로도 유명하다. 또한 한반도 분단 문제로 북한과의 관계가 여전히 긴장 상태에 있는 상황이며, 이러한 정치적인 문제와 함께 자연환경 보존과 과잉 소비 문제에도 집중적으로 대처하고 있는 나라이다.
CPU times: user 92 ms, sys: 14.2 ms, total: 106 ms
Wall time: 3.97 s
%%time 
# 체인을 실행합니다.
response = chain.invoke({"country": "한국"})
print(response.content)
한국은 동아시아에 위치한 고도로 발전한 현대화된 나라로, 경제적으로 선진국으로 분류되며 세계적으로 유명한 기업들을 많이 보유하고 있다. 또한 한류 열풍으로 한국의 문화와 엔터테인먼트 산업이 세계적으로 큰 인기를 끌고 있다. 한국은 높은 교육 수준과 혁신적인 기술력을 자랑하며, 고강도의 사회 경쟁과 열악한 교육 환경으로도 유명하다. 또한 한반도 분단 문제로 북한과의 관계가 여전히 긴장 상태에 있는 상황이며, 이러한 정치적인 문제와 함께 자연환경 보존과 과잉 소비 문제에도 집중적으로 대처하고 있는 나라이다.
CPU times: user 2.48 ms, sys: 1.21 ms, total: 3.69 ms
Wall time: 2.86 ms

3 SQLite Cache

from langchain_community.cache import SQLiteCache
from langchain_core.globals import set_llm_cache
import os

# 캐시 디렉토리를 생성합니다.
if not os.path.exists("cache"):
    os.makedirs("cache")

# SQLiteCache를 사용합니다.
set_llm_cache(SQLiteCache(database_path="cache/llm_cache.db"))
%%time 
# 체인을 실행합니다.
response = chain.invoke({"country": "한국"})
print(response.content)
한국은 동아시아에 위치한 고도 발전한 경제를 갖춘 선진국가이다. 수도는 서울이며, 인구는 약 5,100만 명으로 밀집된 도시들이 많이 있다. 한국은 고도로 발전한 IT 기술을 보유하고 있으며, 세계적으로 유명한 기업들이 많이 있다. 또한 K-pop, K-drama 등의 문화 콘텐츠로 인해 한류 열풍이 세계적으로 퍼지고 있다. 한국은 미세먼지와 같은 환경문제에 직면해 있지만, 정부와 시민들이 노력하여 지속가능한 발전을 추구하고 있다. 또한 한반도에 북한과의 관계가 긴장되어 있어 평화와 통일을 위한 노력도 계속되고 있다.
CPU times: user 50.6 ms, sys: 27 ms, total: 77.7 ms
Wall time: 76.2 ms

Subscribe

Enjoy this blog? Get notified of new posts by email: