-
[Llama3] Ollama와 Llama-Index로 Llama3 쉽게 시작하기(ubuntu)Data & ML & AI/LLM 2024. 6. 29. 15:59반응형
1. 사전 세팅
1) Ollama 준비
# ollama 설치 curl -fsSL https://ollama.com/install.sh | sh # ollama app 실행 ollama serve
# 정상 작동여부 확인 (새 터미널에서) ollama run llama3
- 모델을 처음 돌릴 때는 해당 모델 설치를 진행합니다.
- 8B외, 타 모델을 돌리고 싶다면 ollama run llama3:70b와 같이 입력하면 됩니다.
2) llama-index 설치
pip install llama-index
2. Llama3 사용하기
- Ollama app 실행상태(Ollama serve) 상태여야 합니다.
1) 단순 1회성 대화
from llama_index.llms.ollama import Ollama llm = Ollama(model="llama3:70b") # 모델설정 # 단순 1회성 대화 response = llm.complete("안녕, 넌 누구니?") print(response.text)
2) 단순 1회성 프롬프트 템플릿 설정 및 대화: PromptTemplate
from llama_index.llms.ollama import Ollama from llama_index.core import PromptTemplate llm = Ollama(model="llama3:70b") # 모델설정 # template template = ( "We have provided context information below. \n" "---------------------\n" "{context_str}" "\n---------------------\n" "Given this information, please answer the question: {query_str}\n" "Please answer Korean.\n" ) qa_template = PromptTemplate(template) # context with open("context.txt","r",encoding='utf-8') as f: context = f.read() # 위키백과 [세종대왕] 문서 텍스트로 테스트 # question query = "세종대왕이 누구야?" # 단순 1회성 프롬프트 템플릿 설정 및 대화 prompt = qa_template.format(context_str=context, query_str=query) response = llm.complete(prompt) print(response.text)
3) 연속성 있는 프롬프트 설정 및 대화: ChatPromptTemplate
from llama_index.llms.ollama import Ollama from llama_index.core.llms import ChatMessage, MessageRole from llama_index.core import ChatPromptTemplate llm = Ollama(model="llama3:70b") # 모델설정 messages = [ ChatMessage(role=MessageRole.SYSTEM, content="당신은 한국어로만 말하는 친절한 어시스턴트 입니다."), ] # chat 함수 def chat(messages, query): # messages copy dummy_messages = messages.copy() # 유저의 쿼리 -> message new_message = ChatMessage(role=MessageRole.USER, content="{query}") dummy_messages.append(new_message) # messages -> prompt template custom_chat_prompt = ChatPromptTemplate.from_messages(dummy_messages) formatted_prompt = custom_chat_prompt.format(query=query) # assistant 응답 결과 response = llm.complete(prompt=formatted_prompt) print(response.text) # 응답 결과 -> message response_message = ChatMessage(role=MessageRole.ASSISTANT, content=response.text) dummy_messages.append(response_message) return dummy_messages query = "안녕, 나랑 끝말잇기 하자" messages = chat(query)
반응형'Data & ML & AI > LLM' 카테고리의 다른 글
[LlamaIndex] Llama-Index와 DB 연동하기(DatabaseReader, feat. agent) (3) 2024.10.08 [Ollama] 모델 저장위치 변경하기 (0) 2024.07.26 ChatGPT API로 서비스 구축하기 #3-2. Evaluate Inputs: Moderation (프롬프트 주입 방지하기) (2) 2023.11.28 ChatGPT API로 서비스 구축하기 #3-1. Evaluate Inputs: Moderation (윤리성 검토하기) (0) 2023.11.26 ChatGPT API로 서비스 구축하기 #2. Evaluate Inputs: Classification (0) 2023.06.13