Notice
Recent Posts
Today
Total
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
관리 메뉴

나름개발블로그

LangChain #1 본문

A/ML

LangChain #1

성남개발자 2024. 5. 14. 15:08

처음에는 간단하게 설치하고 실행해 보는 걸로 하겠다. 

 

  1. Langchain 이란
  2. 설치 
  3. 실행 

 

1.  LangChain 이란 

랭체인(LangChain)은 llm을 사용하여 애플리케이션 생성을 단순화하도록 설계된 프레임워크이다.  쉽게 llm을 이용해서 애플리케이션 제작, 테스트등을 할 수 있도록 도와준다. 

 

랭체인에서 vectordb , embedding 단어들이 자주 등장한다. 

임베딩이란 단어 ,문장등을 기계가 이해할 수 있도록 숫자 벡터로 표현한 것이다. 이러한 임베딩을 저장하고 있는 DB가 벡터 db이다. 

자세한 설명은 추후에 블로그로 정리를 하도록 하겠다. 

 

아마 렝체인을 들어본 사람들은 RAG 또한 많이 들어봤을 것이다.  RAG(Retrieval-Augmented Generation)는 대규모 언어 모델(LLM)의 한계를 극복하기 위해 제안된 새로운 자연어 처리 기술로 , langchain을 이용하면 쉽게 정리 구현 가능 하다.  

 

2.  설치 

OpenAI의 key를 이용하면 바로 튜토리얼을 따라 할 수 있다.  langchain을 설치한다. pip를 이용하면 바로 설치가 가능하다. 콘다를 이용해도 되고 , 편한 대로 설치하면 된다. 

 

pip install langchain
pip install langchain-openai

 

 

참고로 간단하게 llm을 로컬에서 돌려볼 수 있는 툴이 있어 해당 툴을 이용 하면 된다. 추후에 이툴을 사용하는 법을 정리할 예정이다.

 

LM studio

 

3.  실행 

설치 후 bash에서 해당 openai API key를 환경변수에 집어넣어주고 아래 스크립트를 실행하면 결과를 볼 수 있다. 

export OPENAI_API_KEY="..."
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://localhost:1234/v1"
)
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a world class technical documentation writer."),
    ("user", "{input}")
])

chain = prompt | llm
response = chain.invoke({"input": "how can langsmith help with testing?"})
print(response)

 

 

소스 설명을 간단하게 하면 openai chat api를 이용하여 llm을 정의하고 , 프롬프트를 가져와 llm에거 역할에 대해서 설명 후 체인으로 만든다. 그런 후에 체인에다가 질문을 넣고 질문에 대한 답을 프린트하는 코드이다. 

 

여기에서 체인이란  각각의 기능을 하나로 묶어서 처리한다라고 이해하면 편할 것이다. 풀어서 보면 llm 기능과 프롬프트를 설정하는 기능을 하나로 묶어서 하나의 기능으로 (체인으로) 만든 다는 소리다. 그 후에 질문을 하면 내 질문을 가지고 답변을 할 때 프롬프트와 같이 입력으로 들어가서 답이 나오게 되는 순서이다. 

 

오늘은 간단하게 langchain을 돌려보는 수준으로 마무리를 하려고 한다. 하다 보니까 중간중간 설명하거나 정리해야 할게 보이는데 하나씩 정리하면서 도장 깨기처럼 진행할 예정이다. 

 

아마도?

'A > ML' 카테고리의 다른 글

LangChain #2  (2) 2024.05.21
임베딩 / 벡터 db  (0) 2024.05.15
LLM - intro  (0) 2024.05.13
Hands-ON ML 15장  (0) 2020.10.04
Hands-On ML 14장  (0) 2020.09.27
Comments