Langchain? 빠르게 AI 서비스 만들어보자

Knoa·2023년 11월 12일

Langchain ?

LangChain은 언어 모델로 구동되는 애플리케이션을 개발하기 위한 프레임워크다.

GPT3.5, 4 등 여러 LLM 모델이 있는데 그걸 인자로 넣어주기만 하면 간단하게 결과를 생성할 수 있다.

from dotenv import load_dotenv
load_dotenv()

from langchain.chat_models import ChatOpenAI
chat_model = ChatOpenAI()

title = "user input"
result = chat_model.predict(title + "에 대한 블로그 글을 써줘.")

print(result)

위 처럼 open ai chat model 가져와서 predict 메서드를 사용하면 결과를 생성해준다.

위와 같이 일종의 인터페이스를 제공해주기 때문에 빠르게 AI 서비스를 만들 수 있다.
아직은 langchain 의 장점이 부각되지 않는데 이제 문제를 만들어보자.

돈이 부족해

만약 돈이 없어서 LLM 기반의 OpenAI API 를 사용하지 못한다면 어떻게 할까?

앞서 말했듯이 langchain 은 LLM 기반의 거의 모든 Models 들을 커버하고 있다.
따라서 인자값만 바꿔준다면 간단하게 교체해주고 같은 결과를 낼 수 있다.

⚠︎ 물론 모델별로 성능상의 차이로 인한 결과값 차이가 생길 수 있다.

예시

Meta 에서 Llama2 라는 LLM 경량화 모델을 만들었다. GPT 보다 적은 파라미터로 비슷한 성능을 내는 것으로 유명해진 모델이다.

그래도 생각보다 큰 용량이다. 더 경량화된 버전이 나왔는데 C 계열 언어로 만들어진 모델이다.

해당 모델 중 가장 작은 모델의 총 용량은 2~3GB 정도다.

Hugging Face 사이트에서 바로 다운로드 가능하다.

그럼 이제 인터넷 없이 오프라인으로 LLM 모델을 사용할 수 있다.

이제 OpenAI API 를 사용하지 않고 내 컴퓨터에 직접 다운로드 받은 LLM 모델을 사용해보자.

from dotenv import load_dotenv
load_dotenv()

# from langchain.chat_models import ChatOpenAI
from langchain.llms import CTransformers

llm = CTransformers(
	model="llama-2-7b-chat.ggmlv3.q2_K.bin"
	model_type="llama"
)
# chat_model = ChatOpenAI()

title = "user input"
# result = chat_model.predict(title + "에 대한 블로그 글을 써줘.")

result = llm.predict("Create blog content about "+ title)

print(result)

위 코드와 같이 C계열로 된 LLM 모델을 사용할 수 있도록 CTransformers 를 import 해주고 다운로드 받은 파일의 경로와 모델 타입을 전달하면 아주 잘 동작한다!

물론 영어만 지원하는 모델이니 영어로 요청해야한다.

profile
SW 개발자

0개의 댓글