나름개발블로그
LangChain #2 본문
오늘은 간단하게 로컬에서 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 모양을 누르면 다음과 같이 화면이 뜬다.

여기서 가운데 위에 모델 선텍 콤보에서 모델을 선택 하면 로드가된다.
로드 후 간단하게 프롬프트를 입력해보면 응답이 오는 것을 확인 할 수 있다.

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
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 |