본문 바로가기

개발일지/디스코드 봇

디스코드 봇 개발 일지 2024-01-19 - 로컬에서 LLM 돌려보기 대실패

 

 

※ 작성자가 작성한 내용이 일부 틀릴 수도 있음 주의

 

※ 직접 하면서 알게된 것을 모두 써서 사족이 많음

 

※ 리빙 포인트) 일하고 퇴근하면 피곤하다

 

 

 

오랜 시간이 지났다

 

2학기 수업을 빡세게 보내고

 

팀 프로젝트에서 3명 중 갑자기 1명이 10월 이후로 기여하는 게 없다가 제출 이틀 전에 와서야 포기 선언 때리고

 

지금은 모 회사에서 인턴을 하고 있다

 

어딘지, 언제까진지 등은 모두 비밀

 

어쨌든 퇴근하면 피곤해서 아무것도 하기 싫다

 

 

 

그렇지만...

 

그래도 계속 운영은 하고 싶기도 하고

 

나의 일기를 적어놓는 공간이기도 하기에 오랜만에 글을 하나 써보려 한다

 

사실 그동안 블로그에 올리고 싶었던 것들을 시도해봤는데

 

모두 다 여러 이유로 실패를 했다

 

뭔가 진행이 되면 그걸 주제로 쓰고 싶었는데

 

너무 안돼서 이렇게라도 뭘 했는지 간단하게라도 이야기하고자 한다

 

 

 

 

로컬에서 한국어 LLM 도입해보기

 

LLM(Large Language Model)이 무엇인지 모르는 사람에게 설명하자면

 

그냥 ChatGPT류를 말한다.

 

이걸 가지고 뭐할려고?

 

디스코드 챗봇을 API로 따로 돈 내지 않고

 

로컬에서 돌려서 내 전기료로 대체하려고 생각했다.

 

게다가 한국어에 더 맞는 모델을 도입하려고 시도했다.

 

 

 

 

정보 수집

 

https://domdom.tistory.com/622

 

[GPT] 한국어버전 GPT, beomi/KoAlpaca-Polyglot 사용해보기

chatGPT 데이터 학습 및 사용 방법은 아래 링크를 눌러주세요! [chatGPT] GPT 3버전 fine-tuning으로 데이터 학습 및 사용 방법 [chatGPT] GPT 3버전 fine-tuning으로 데이터 학습 및 사용 방법 이전 글을 보시려면

domdom.tistory.com

 

이 블로그의 정보에서 시작해서 진행을 해보았다

 

 

일단

 

https://github.com/Beomi/KoAlpaca

 

GitHub - Beomi/KoAlpaca: KoAlpaca: 한국어 명령어를 이해하는 오픈소스 언어모델

KoAlpaca: 한국어 명령어를 이해하는 오픈소스 언어모델. Contribute to Beomi/KoAlpaca development by creating an account on GitHub.

github.com

 

KoAlpaca가 가장 적당할 것 같아서 이용해보기로 했다

 

종류가 몇 개 있는데 일단은 가장 위에 진한 글씨로 되어있는 것을 이용해보기로 했다

 

개인 컴에서 얼마나 돌아갈지 모르기 때문에 한 번 해보고 생각해보자

 

일단 진한 글씨를 이용

 

 

링크를 따라 이동하면

 

허깅 페이스. AI 모델 쪽 깃허브 비스무리한 그런 사이트라고 생각하면 될 것 같다.

 

허깅 페이스 페이지로 가는데, 오른쪽 위 Use in Transformers 누르기

 

참고 블로그에서는 하나만 있었는데 지금은 2개다

 

일단은 두 방법의 차이점을 알아보기 위해 같은 LLM 중에서 (구)최고존엄 ChatGPT에 물어봤다.

 

요약하자면, 간단하고 편리한 방법으로 pipeline,

 

사용자 커스텀을 원하면 AutoTokenizer 쪽을 쓰라고 하신다.

 

 

일단은 AutoTokenizer를 써보자

 

아래 꺼를 그대로 복사해서 파이썬에서 돌려본다

 

뭔가 다운로드를 엄청한다

 

좀 오래걸리길래 친구들하고 디코에서 노닥거리는데 갑자기 컴퓨터가 버티지를 못한다

 

사진은 안 남겼지만 대충 다운로드 다 되어서 LLM이 돌아가는데...

 

작업 관리자 겨우 켜보니 메모리 혼자 다 먹어버리는 것을 보았다.

 

CUDA로 GPU 돌려도 GPU 메모리도 혼자 다 먹어버리는데 답변을 안 한다 이놈

 

참고로 내 GPU는 RTX 2070이다. 슈퍼도 아니다.

 

너무 Large 했다. 버틸 수가 없다ㅏㅏㅏㅏㅏㅏ

 

 

 

 

나중에 약간 방법을 바꾸어서...

 

저번에가 12.8B짜리였는데 이번엔 최대한 가벼운 1.5B를 데려와보았다

 

휴 드디어 GPU 메모리의 절반만 쓴다.

 

흠 근데 왜 이리 오래걸리나... 하고 10초를 기다렸더니 드디어 답을 얻었다!!!!!!???????????????????

 

또 캡쳐하는걸 까먹었다.

 

질문은 대충 저녁 메뉴 추천이었는데

 

답변은 대충 이런 식이었다.

 

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고, 그리고,

 

나름대로의 기억으로 재구성했다.

 

제정신이 아니구만

 

망 했 다 !

 

 

 

음......

 

대략 이런 범위 내에서 시도를 했는데

 

그냥 API를 돈 주고 쓰는게 낫겠다라는 판단이 나왔다

 

지금의 나는 안정적인 수입이 없기 때문에(인턴은 결국 임시직이니까)

 

나중에 다시해야겠다...

 

 

 

그래서...

 

그동안 진행된 것이 없었다.

 

나름대로 '기술 블로그'라는 그런 폼을 유지하려고 했는데

 

기술 진행에 너무 진척이 없어서 답답해서 그냥 일지로 올린다

 

흑흑 재밌는거 많이 만들고 싶었는데

 

728x90