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 #2 본문

A/ML

LangChain #2

성남개발자 2024. 5. 21. 10:14

오늘은 간단하게 로컬에서 llm을 돌려보는 것을 해볼 예정이다. 잘모르는 초보 개발자를 대상으로 생각하고 진행 할예정이다. 사실 쓰다보면서 대상을 누구로 하냐에 따라서 난이도가 확 달라질것 같았다. 아에 개발이나 컴퓨터를 모르지 않는 대상이 봤으면 괜찮겠다 싶었다. 

 

1. LM Studio 

2. Ollama

 

1. LM Studio 

https://lmstudio.ai/?utm_source=pytorchkr

 

👾 LM Studio - Discover and run local LLMs

Find, download, and experiment with local LLMs

lmstudio.ai

여기에서 LM Studio 를 다운받는다. 각자의 환경에 맞는 버전을 다운 받는다. 나 같은 경우에는 m1 맥북을 사용 하고 있어서 해당 버전으로 다운 받았다.  

실행화면

 

 

실행하면 다음과 같은 화면이 뜬다. 편한게 최소로 필요한 메모리용량이라던지 쉽게 찾아 볼수 있게 지원을 해준다. 

심플하게 llma3 - 8B 를 다운 받도록 하겠다. 카드의다운로든 버튼을 누루면 다운 받아진다. 다운을 다 받은 후 오른쪽 텝에서 chat 모양을 누르면 다음과 같이 화면이 뜬다.

chat 화면

여기서 가운데 위에 모델 선텍 콤보에서 모델을 선택 하면 로드가된다. 

로드 후 간단하게 프롬프트를 입력해보면 응답이 오는 것을 확인 할 수 있다. 

모델 로드 후 응답 확인

 

 

OpenAI API형식으로 간단하게 서버로 띄어볼 수 도 있다. 

오른쪽 tab에서 맨아래 두번째를 누르면 (<-> 표시) 아래처럼 로컬api 서버를 띄울수 있는 화면이 나온다. 

여기서 [Start Server] 버튼을 누르면 서버가 실행 된다. 

서버실행 화면

서버를 실행시키고 langchain 을 이용한 간단한 예제 코드다 

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(base_url="http://localhost:1234/v1", api_key="ml_studio")
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)

 

지난 포스트 코드에서 url , api_key 만 바꿔졌다. 아무래도 작은 모델이여서 완벽하지 않고 , 로컬머신에서 돌리기 때문에 속도도 빠르진 않지만 간단한 테스트나 엔지니어링 작업을 하기에는 괜찮다. 

 

 

2. Ollama

https://ollama.com/

 

Ollama

Get up and running with large language models.

ollama.com

위의 사이트에서 환경에 맞게 다운로드한다.  맥같은경우 압축을 풀고 실행을 하면 끝난다. 

 

설치 후 아래와 같이 터미널에서 실행하고 간단하게 대화를 진행해봤다. 

 

지원하는 모델은 현재 기준 아래와 같다. 

 

langchain 을 이용하면 쉽게 사용도 가능 하다. 

 

 

from langchain_community.llms import Ollama

llm = Ollama(model="llama3")

print(llm.invoke("Tell me a joke"))

 

 

 

최근에 써본 것중 가장 유명한 llm 관련 툴이다. langchain 하고도 쉽게 연동이 가능하고 사용하기에도 어려움이 없을 것이라 판단된다. 

llm도 로컬에 띄어봤으니 , 다음에는 간단하게 rag를 구성해서 q&a를 진행 해볼 예정이다. 

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

LangChain #4  (1) 2024.06.10
LangChain #3  (0) 2024.05.24
임베딩 / 벡터 db  (0) 2024.05.15
LangChain #1  (0) 2024.05.14
LLM - intro  (0) 2024.05.13
Comments