포트폴리오 작업을 위해 로컬 LLM을 사용하면서 크게 깨달은게 몇가지가 있다.
첫번째로는 할루시네이션만 문제가 아니라 답변 문장 길이, 포맷도 문제였다.
json 형식의 답변을 통해 알잘딱 파싱하려고 했는데 깨진 json을 주거나 이스케이프문자를 이상하게 박아놓거나
문장사이에 아주 예쁘게 끼워놔서 json이 깨져버리거나
답변 문장 길이 제한때문에 json이 완성되지 않고 답변이 오거나
utf-8 이 아니라 아스키로 인코딩해서 주거나
답변 받는것 자체는 쉬웠지만 이후 처리하는 과정이 의외로 거쳐야 할게 많았다.
두번째로는 모델을 띄우는것도 관리하는것도 생각보다 어려웠다.
처음에 작동 방식을 몰랐어서 프로세스로도 해보고 도커로도 해보았지만 호출이 되지 않는 경우,
GPU 버전이 아닌 CPU로 굴려버리는 경우가 생겼다.
이에 docker compose 를 활용해서 yaml 파일에 모든 설정을 다 때려박고 도커 이미지로 쪄낸 후, 도커 데스크탑 애플리케이션으로 로컬 LLM을 딸깍으로 키고 끄는 방식으로 전환했다.
문제는 이제 호출을 http로 해야한다는게 문제인데
이게 왜 문제라고 생각을 했느냐면 당장은 로컬 환경이라 문제가 없지만 추후 배포를 했을땐 어떻게 해야하는가
해당 모델에 대한 API키는 어떻게 설정하고 어떻게 발급받는가.
문제를 마주쳤다.
해결해 나가야 할 문제이다.
당장은 일단 데이터셋 보강과 RAG 로직이 돌아는 가게 구현하는게 0차 목표이기 때문에 후순위로 미뤘다.
로컬로 묶어놔서 아직은 보안에 안전하니까...
근데 진짜 어디 이미지로 올려서 해당 이미지에 외부 접근 권한이 열린다면 진짜 조심해야만 한다.
비즈니스 로직 후딱 완성 해놓고 로컬이든 외부 서버든 LLM 모델 접근 권한 관련 보안이슈를 해결할 예정이다.
마지막으로 너무 덥다.
진짜 덥다.
이 프로젝트를 위해 퇴직금을 박아 5080을 샀다.
에어컨을 틀고 직빵으로 바람 잘 들어가게 했는데도 모델이 돌아가고 있으면 GPU온도가 60도 근처에 수렴한다.
이정도일줄은 알았지만 그래도 아찔하다;
진짜 마지막으로 LLM이 생성해내는 방식을 직접 눈으로 볼 수 있던건 참 좋았다.
감으로만, 텍스트로만, 지식으로만 알고있던 LLM의 생성 방식을 직접 눈으로 볼 수가 있었다.
진짜로 토큰 하나하나씩 찍어내서 확률을 예측해서 다음 토큰을 주루루루룩 수없이 반복해서 만든 후, 마지막에 내가 보낸 프롬프트, 설정들을 포함해서 respone 해준다.
이 방식을 알고는 있었지만 실제 로그에 확률 몇퍼인지 어떤 토큰인지 매 우 매 우 매우매우빠르게 토큰들을 주루루루룩 찍고 합쳐내는 모습을 보니까 가슴이 웅장해지더라.
실제로 딥다이브 하면 더 숨겨진 로직들이 많을것이지만 일단은.. 위에 얘기한 것처럼 비즈니스 로직을 완성 해놓고, 보안이슈에서 자유로워 진 후 결과값 튜닝 하면서 좀 더 알아봐야겠다.
그래픽카드를 혹사시키는건 진짜 순수 재미 원탑인것같다.
이정도로 효율적으로 GPU를 쓰게 만든 llama 제작자분들이 새삼 문득 대단하다고 생각이 된다.
즐 겁 다 !
'개인 프로젝트' 카테고리의 다른 글
| LLM + RAG 프로젝트 [7] 타율 0 해결을 위한 튜닝 (0) | 2025.09.04 |
|---|---|
| LLM + RAG 프로젝트 [6] End to End MVP 완성 (4) | 2025.09.01 |
| LLM + RAG 프로젝트 [3.1] 프론트 - 미들웨어 인증 로직 수정 (2) | 2025.08.19 |
| LLM + RAG 프로젝트 [4] 데이터 수집 (0) | 2025.08.08 |
| LLM + RAG 프로젝트 [3] Reverse Proxy 구성 (7) | 2025.07.29 |