langchain ! pip install -q gptcache
다음은 두 어댑터와 함께 통합하는 방법입니다
Openai chatgpt api 가있는 gptcache
gptcache를 OpenAI와 통합하려면 캐시를 초기화하고 gptcache.adapter에서 OpenAi를 가져옵니다.
from gptcache import GPTCache
cache = GPTCache()
# keep the mode default
예제 코드를 실행하기 전에 echo $ openai_api_key를 실행하여 OpenAi_api_key 환경 변수를 설정하십시오.
아직 설정되지 않은 경우 export openai_api_key = your_api_key를 사용하여 Unix/Linux/MacOS 시스템을 사용하거나 Windows 시스템에서 OpenAi_api_key = Your_api_key를 설정하여 설정할 수 있습니다.
그러면 chatgpt에게 두 가지 정확한 질문을하면 chatgpt를 다시 요청하는 대신 캐시에서 두 번째 질문에 대한 답변을 검색합니다.
.
유사한 검색 캐시에 대한 예제 코드는 다음과 같습니다
출력에서 볼 수있는 내용은 다음과 같습니다
두 번째로, gpt는 같은 질문에 대답하는 데 거의 0 초가 걸렸습니다
langchain 가있는 gptcache
다른 LLM을 사용하려면 Langchain 어댑터를 사용해보십시오. gptcahe를 langchain과 통합하는 방법은 다음과 같습니다
langchain을 사용하여 LLM 응용 프로그램을 구축하는 방법을 배우십시오
프로젝트에서 gptcache를 사용하는
gptcache가 프로젝트를 지원할 수있는 방법을 살펴 보겠습니다
기본 작업
LLM은 LLM 쿼리의 고유 한 복잡성과 변동성으로 인해 효과가 없어서 캐시에 맞는 속도가 낮습니다.
이 제한을 극복하기 위해 GPTCache는 시맨틱 캐싱 전략을 채택합니다. 시맨틱 캐싱은 유사하거나 관련 쿼리를 저장합니다. 캐시 히트 확률을 높이고 전체 캐싱 효율을 향상시킵니다.
gptCache는 임베딩 알고리즘을 활용하여 쿼리를 임베딩이라는 수치 표현으로 변환합니다. 이러한 내장은 벡터 저장소에 저장되어 효율적인 유사성 검색을 가능하게합니다. 이 프로세스는 GPTCache가 캐시 스토리지에서 유사하거나 관련 쿼리를 식별하고 검색 할 수 있습니다.
모듈 식 설계를 사용하면 요구 사항에 따라 시맨틱 캐시 구현을 사용자 정의 할 수 있습니다.
그러나 - 아마도 거짓 캐시 히트 및 캐시 미스가 시맨틱 캐시에서 발생할 수 있습니다. 이 성능을 모니터링하기 위해 GPTCACHE는 세 가지 성능 메트릭을 제공합니다 :
적중률 는 요청 이행에서 캐시의 성공률을 측정합니다. 값이 높을수록 성능이 향상됩니다.
대기 시간 는 캐시에서 데이터를 검색하는 데 걸리는 시간을 나타냅니다.
리콜 는 올바르게 제공되는 캐시 쿼리의 비율을 보여줍니다. 높은 비율이 더 나은 정확도를 반영합니다
고급 기능
초기 쿼리, 프롬프트, 응답 및 액세스 타임 스탬프와 같은 모든 기본 데이터 요소는 '데이터 관리자'에 저장됩니다. GPTCACHE는 현재 다음 캐시 스토리지 옵션을 지원합니다
sqlite
mysql
PostgreSQL 데이터베이스
는 아직 'NOSQL'데이터베이스를 지원하지 않지만 곧 통합 될 예정입니다.
퇴거 정책을 사용하는
그러나 GPTCache는 지정된 한계 또는 수를 기반으로 캐시 스토리지에서 데이터를 제거 할 수 있습니다. 캐시 크기를 관리하려면 최근 가장 최근에 사용 된 (LRU) 퇴거 정책 또는 FIFO (First In, First Out) 접근 방식을 구현할 수 있습니다.
lru 퇴거 정책
최근에 가장 적은 액세스 항목을 비난합니다
한편, 는 가장 긴 기간 동안 존재했던 캐시 아이템을 버립니다.
응답 성능 평가
gptCache는 '평가'기능을 사용하여 캐시 응답이 사용자 쿼리를 처리하는지 여부를 평가합니다. 그렇게하려면 세 가지 입력이 필요합니다
사용자의 데이터 요청
캐시 된 데이터가 평가 중입니다
사용자 정의 매개 변수 (있는 경우)
당신은 또한 두 가지 다른 함수를 사용할 수 있습니다 :
‘ log_time_func ’은‘ 삽입 ’를 생성하거나 캐시를 수행하는 것과 같은 집중 작업의 지속 시간을 기록하고보고 할 수 있습니다.
‘ 유사성 _threshold, ’을 사용하면 두 임베딩 벡터 (텍스트 데이터의 고차원 표현 )시기를 결정하기 위해 임계 값을 정의 할 수 있습니다.
gptcache 모범 사례 및 문제 해결
이제 GPTCACHE 기능이 어떻게 기능하는지 알았으므로 다음은 혜택을 누릴 수있는 모범 사례와 팁이 있습니다.
GPTCACHE 성능 최적화
아래에 요약 된대로 gptcache의 성능을 최적화하기 위해 취할 수있는 몇 가지 단계가 있습니다.
1. 프롬프트를 명확히하십시오
LLM을 프롬프트하는 방법은 GPTCache가 얼마나 잘 작동하는지에 영향을 미칩니다. 따라서 캐시에 도달 할 가능성을 높이기 위해 문구가 일관되게 유지하십시오.
예를 들어 "내 계정에 로그인 할 수 없습니다"와 같은 일관된 문구를 사용하십시오. 이런 식으로 GPTCache는 "내 비밀번호 잊어 버린"또는 "계정 로그인 문제"와 같은 유사한 문제를보다 효율적으로 인식합니다. 2. 내장 추적 메트릭을 사용하십시오
캐시의 성능을 분석하기위한 적중률, 리콜 및 대기 시간과 같은 내장 메트릭을 모니터링합니다. 히트 비율이 높을수록 캐시가 저장된 데이터에서 요청 된 컨텐츠를보다 효과적으로 제공하여 효과를 이해하는 데 도움이됩니다.
3. 대규모 사용자베이스를 사용하여 LLM 애플리케이션을위한 gptcache 스케일
더 큰 LLM 애플리케이션을 위해 gptcache를 확장하려면 유사한 프로파일을 가진 사용자 그룹에 동일한 캐시를 사용하는 공유 캐시 접근 방식을 구현하십시오. 사용자 프로파일을 생성하고 비슷한 사용자 그룹을 식별하도록 분류하십시오.
동일한 프로파일 그룹의 사용자를위한 공유 캐시 활용은 캐시 효율 및 확장 성과 관련하여 좋은 수익을 얻습니다.
이것은 동일한 프로파일 그룹 내의 사용자가 캐시 된 응답의 혜택을받을 수있는 관련 쿼리를 갖는 경향이 있기 때문입니다. 그러나 올바른 사용자 프로파일 링 및 분류 기술을 사용하여 사용자를 그룹화하고 공유 캐싱의 이점을 정확하게 극대화해야합니다.
일반적인 GPTCACHE 문제를 해결하는 문제
gptcache로 어려움을 겪고 있다면 문제를 해결하기 위해 취할 수있는 몇 가지 단계가 있습니다.
1. 캐시 무효화
gptcache는 최신 캐시 응답에 의존합니다. 기본 LLM의 응답 또는 사용자의 의도가 시간이 지남에 따라 변경되면 캐시 된 응답이 부정확하거나 관련이 없을 수 있습니다.
이를 피하려면 LLM의 예상 업데이트 주파수를 기반으로 캐시 된 항목에 대한 만료 시간을 설정하고 캐시를 정기적으로 새로 고치십시오.
2. 캐시 된 응답에 대한 과도한 관계
gptcache는 효율성을 향상시킬 수 있지만 캐시 응답에 대한 과도한 관계는 캐시가 제대로 무효화되지 않으면 부정확 한 정보로 이어질 수 있습니다.
이 목적을 위해,이를 위해, 응용 프로그램이 때때로 유사한 쿼리에 대해서도 LLM에서 새로운 응답을 검색해야합니다. 이것은 비판적 또는 시간에 민감한 정보를 다룰 때 응답의 정확성과 품질을 유지합니다.
3. 캐시 품질 무시
캐시 된 응답의 품질과 관련성은 사용자 경험에 영향을 미칩니다. 따라서 사용자에게 제공하기 전에 캐시 된 응답의 품질을 평가하기 위해 평가 지표를 사용해야합니다. .
이러한 잠재적 인 함정과 해당 솔루션을 이해함으로써 GPTCache는 정확도 또는 사용자 경험을 손상시키지 않고 LLM 기반 애플리케이션의 성능 및 비용 효율성을 효과적으로 향상시킬 수 있습니다.
.
랩 업
LLM을 처음 접한다면 이러한 리소스가 도움이 될 수 있습니다
대형 언어 모델 개발
Langchain 및 Gpt 를 사용하여 LLM 애플리케이션을 구축합니다
Pytorch 로 llm을 훈련시킵니다
Cohere api 와 함께 llm을 사용하는
langchain 로 LLM 애플리케이션 개발
FAQS 캐시를 어떻게 초기화하여 GPTCACHE를 실행하고 OpenAI API를 가져 오는가?
캐시를 초기화하고 OpenAI API를 가져 오려면 gptcache.adapter에서 OpenAI를 가져옵니다. 이렇게하면 데이터 관리자가 정확한 캐시와 일치하도록 자동으로 설정됩니다. 이 작업을 수행 할 수있는 방법은 다음과 같습니다
chatgpt에 같은 질문을 두 번 요청하면 어떻게됩니까?
gptCache는 캐시의 이전 응답을 저장하고 API에 새 요청을하는 대신 캐시에서 답을 검색합니다. 따라서 두 번째 질문에 대한 답은 Chatgpt를 다시 요청하지 않고 캐시에서 얻을 것입니다.