LangChain과 함께 Google의 PaLM 2 API를 사용하는 방법

CChatGPT8
3 Min Read

[ad_1]

LLM(대규모 언어 모델)이 소프트웨어 스택의 필수적인 부분으로 등장했습니다. Cohere, Google Cloud, OpenAI와 같은 제공업체의 API를 통해 또는 Hugging Face에서 호스팅되는 오픈 소스 모델로 사용할 수 있습니다.

그러나 LLM을 활용하는 것은 단순히 프롬프트를 보내는 것만이 아닙니다. 개발자는 매개변수 조정, 신속한 강화, 응답 조정과 같은 측면을 고려해야 합니다. LLM은 상태 비저장이므로 개발자는 장기간 저장을 위해 데이터베이스를 사용하여 상황에 맞는 대화 기록을 유지해야 합니다.

게다가 보편적인 LLM 솔루션도 없습니다. 애플리케이션에는 다양한 특수 모델이 필요할 수 있으며, 이로 인해 통합이 복잡해지고 개발 복잡성이 증가할 수 있습니다.

LangChain은 LLM으로 구동되는 프로덕션급 애플리케이션을 구축하는 개발자가 선택하는 도구가 되고 있습니다. Google의 PaLM2 대규모 언어 모델을 포함하여 다양한 공급자를 한 지붕 아래로 모으는 다양하고 활기찬 생태계를 갖추고 있습니다.

이 튜토리얼에서는 Google PaLM 2 모델이 지원하는 LangChain 애플리케이션을 구축하는 단계를 안내합니다.

환경 설정

Google MakerSuite를 방문하여 PaLM용 API 키를 만드세요.

팜 2 랭체인 01 IDG

터미널에서 Python 가상 환경을 생성하고 활성화합니다.

python -m venv venv
source venv/bin/activate

PaLM API 키를 저장할 환경 변수를 만듭니다.

export GOOGLE_API_KEY=YOUR_API_KEY

다음 Python 모듈을 설치합니다.

pip install google-generativeai
pip install langchain
pip install pypdf
pip install jupyter

PaLM API에 액세스

새 Jupyter Notebook(로컬 워크스테이션 또는 Google Colab에서)을 시작하고 다음 코드를 실행합니다.

import google.generativeai as palm
import os

google_api_key=os.getenv('GOOGLE_API_KEY')
palm.configure(api_key=google_api_key)

prompt="Explain the difference between effective and affective with examples"

completion = palm.generate_text(
    model="models/text-bison-001",
    prompt=prompt,
    temperature=0.1
)

print(completion.result)

프로그램은 Python 모듈을 가져오는 것으로 시작한 다음 환경 변수에서 API 키를 가져옵니다. 이는 generate_text 모델을 설정하여 방법 models/text-bison-001 프롬프트 변수를 전달합니다.

그만큼 temperature 변수는 모델의 예측 가능성을 정의합니다. 0에 가까운 값은 출력을 결정적이고 예측 가능하게 만듭니다.

다음과 같은 출력이 생성됩니다.

팜 2 랭체인 02 IDG

프롬프트에서는 모델에게 예를 들어 차이점을 설명하라고 지시했기 때문에 모델은 자세한 답변으로 응답했습니다.

이제 LangChain을 사용하여 동일한 연습을 반복해 보겠습니다.

새로운 Jupyter Notebook을 시작하고 아래 코드를 실행하세요.

from langchain.embeddings import GooglePalmEmbeddings
from langchain.llms import GooglePalm
import google.generativeai
import os

google_api_key=os.getenv('GOOGLE_API_KEY')

llm = GooglePalm(google_api_key=google_api_key)
llm.temperature = 0.1

prompts = ['Explain the difference between effective and affective with examples']
llm_result = llm._generate(prompts)

print(llm_result.generations[0][0].text)

코드는 더 깔끔할 뿐만 아니라 이해하기 쉽습니다. 초기화합니다 llm Google PaLM 모델을 가리켜 변수를 지정합니다. 그런 다음 temperature 변하기 쉬운.

랭체인에서는 prompts 매개변수는 Python 목록입니다. 한 번에 여러 메시지를 보내고 여러 세대를 되돌릴 수 있습니다.

프롬프트 하나만 전달했으므로 1세대의 text 속성에 액세스했습니다.

팜 2 랭체인 03 IDG

보시다시피 출력은 이전 프로그램과 동일합니다.

이 튜토리얼의 목적은 PaLM API와 LangChain과의 원활한 통합을 소개하는 것이었습니다. 이 접근 방식의 장점은 코드를 최소한으로 변경하면서 LLM을 교체할 수 있다는 것입니다. LangChain을 사용하면 LLM은 쉽게 교체할 수 있는 체인의 “링크” 중 하나가 됩니다.

이 시리즈의 다음 부분에서는 맞춤형 PDF 문서를 기반으로 LangChain Q&A 프로그램을 구축할 것입니다. 계속 지켜봐 주시기 바랍니다.

저작권 © 2023 IDG Communications, Inc.

Share this Article
Leave a comment

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다