2024. 2. 6. 23:34ㆍ인공지능
안녕하세요. 쿠루가이입니다.
최근에 RTX8000이라는 그래픽카드를 사서 이것저것 돌리는 맛으로 하루하루를 살고 있는데요. 우바부가를 최신버전으로 설치했더니 extensions에 openai 가 있더라고요. 오늘은 python 코드로 우바부가와 통신해서 마치 openai가 대답하는것처럼 코드를 짜는걸 소개해볼까합니다.
Boolean command-line flags에 api를 체크하고 위의 openai를 체크한 다음 [Apply flags/extensions and restart]를 누르면 활성화 됩니다.
웹브라우저 주소창에서 'http://127.0.0.1:5000/v1' 를 입력하고 아래와 같이 출력되면 설정 성공입니다.
그리고 아래는 OPENAI 스타일 파이썬 코드인데 api_base를 'http://127.0.0.1:5000/v1'로 잡아주면 openai 스타일로 통신이 가능해집니다. 이게 왜 좋냐면...보통 우리는 제일 똑똑한 LLM인 chatGPT 3.5 or 4 를 사용하는데 로컬LLM으로 변환시 따로 코딩 수정이 필요없다는게 가장 큰 장점이지요!
# https://github.com/oobabooga/text-generation-webui/wiki/12-%E2%80%90-OpenAI-API
import openai
openai.api_key = 'sk-xxxx26o36e2345NK3245U2345bkF2345OBH2345d5AALzAk11'
openai.api_base = "http://127.0.0.1:5000/v1"
def get_message(question, history):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-16k",
temperature = 0.7,
messages=[
{
"role": "system",
"content": f"사용자의 물음에 적절한 말을 해주세요. 반드시 한국어로 대답해주세요."
},
{
"role": "user",
"content": f"이전 내용 : {history}\n{question}"
}
],
)
message = response["choices"][0]["message"]['content']
return message
history = ""
while True:
print(f"Q : ", end='')
question = input()
if question == 'exit':
break
answer = get_message(question, history)
history += f"Q : {question}"
history += f"A : {answer}"
print(f"A : {answer}\n")
실제로 구동을 해보겠습니다.
Q : 625전쟁은 왜 일어난거야? A : 625전쟁은 1962년 6월 25일 북한이 남한 경주 방위 지역에 대규모 전투를 진행하면서 일어난 전쟁입니다. 이 전쟁은 북 한이 남한의 방위 지역인 경주에 대규모 공격을 시작하여 전쟁이 발발하였습니다. 이 전쟁은 전세계에서 큰 주목을 받으면서, 남한과 연합국(미국, 대한민국, 대한민국 국민 등)이 북한의 공격에 대응하여 상황을 회복하였습니다. 이 전쟁은 남북 간 의 갈등과 냉전 시기에 대한 반영으로 볼 수 있습니다. Q : 6.25 전쟁(다른 나라에서는 한국전쟁이라고 부름) 과 내용이 다른거 같네. 다시한번 생각해서 대답해줘. A : 625전쟁과 한국전쟁은 같은 전쟁을 의미합니다. 그러나 625전쟁은 주로 한국에서 사용되는 용어이며, 한국전쟁은 외국에서 더 흔히 사용되는 용어입니다. 한국전쟁은 1950년 6월 25일 북한이 남한 경계지역에 대규모 공격을 시작한 이후 발발한 전쟁으로, 1953년 7월 27일에 공식적으로 전쟁이 종결된 것으로 알려져 있습니다. 이 전쟁은 남북 간의 갈등과 냉전 시기에 대한 반영으로 볼 수 있으며, 전 세계에서 큰 주목을 받았습니다. Q : 6.25 전쟁 시, 한국군과 연합군은 어느 도시까지 밀려내려갔어? A : 6.25 전쟁 시, 한국군과 연합군은 4.19 전투로 알려진 대전동 전투에서 북한군을 밀려내고 평양을 차지하였습니다. 이 전투는 1950년 8월 3일부터 8월 25일까지 진행되었으며, 이 후 한국군과 연합군은 평양을 중심으로 북한 지역을 점령하였습 니다. 그러나 이후 중국군의 참전으로 인해 전세계에서 큰 주목을 받은 전쟁이 계속되었습니다. Q : 그래 평양까지 점령했다가 중공군 개입해서 후퇴하게 되었는데 어디까지 후퇴했었지? A : 6.25 전쟁 시, 한국군과 연합군은 평양을 차지한 후 중국군의 참전으로 인해 후퇴하게 되었습니다. 이후 전쟁은 북한과 연합국 간의 대치 상태에서 진행되었으며, 1953년 7월 27일에 공식적으로 종결되었습니다. 이 전쟁으로 인해 전세계에서 큰 주목을 받았으며, 남북 간의 갈등과 냉전 시기에 대한 반영으로 볼 수 있습니다. |
보시다시피 LLM과 통신에는 문제 없습니다. 이건 openai사 LLM이 아니라 로컬로 돌아가는 놈이 대답했기 때문에 답변의 질은 좀 떨어지는것을 알 수 있습니다. 그러나 더 좋은 품질의 LLM을 우바부가에서 얼마든지 갈아끼울수 있기때문에 상관없어요^^
점점 LLM 구동 및 연동이 편해지는것 같습니다. 오늘은 여기까지....
'인공지능' 카테고리의 다른 글
axolotl 훈련한 결과와 일반 코드로 훈련한 결과가 다르다. (0) | 2024.04.01 |
---|---|
RTX 8000으로 Axolotl 훈련 시 꼭 변경해야되는 설정 (0) | 2024.03.09 |
axolotl 훈련 중 정보 해석하기 (0) | 2024.03.02 |
speculative decoding에대해서 (0) | 2024.02.26 |
RTX 8000를 사용해 LLM을 찍먹해보았습니다. (2) | 2024.01.27 |
F1 Score 측정하는 프로그램 (0) | 2023.10.30 |
Deepl API를 이용하여 영어를 한국어로 변환하기 (1) | 2023.09.20 |
github의 llama_cpp.server에 lora 기능을 추가해달라고 요청했다! (0) | 2023.09.19 |