[SKN FAMILY AI CAMP]/주간

🐉 SKN FAMILY AI CAMP 13기 20주차 후기 (2025.08.04 ~2025.08.08)

ki-june 2025. 8. 10. 00:52

 

📍 간단 후기

 

🏷️ 최종 프로젝트

 

곧 최종프로젝트 중간발표다. 거창한 계획을 품고 문서작업하고 코드 짜고..... 얼마 안 된 것 같은데 중간발표다. 솔직히 시간이 너무 짧게 느껴졌다. 중간발표 때는 파인튜닝 전에 기존 모델을 활용할 예정이다. exaone과 Stable-Diffusion 모델이 우리 프로젝트 파이프라인을 통해 어떻게 구성되어 있는지 보여줄 예정이다. 과연 제대로 될지, 어떻게 될지는 다음 주에 제대로 설명할 수 있을 것 같다. 토요일인 오늘, 이 글을 적고 있는 순간까지 아직 미완성이다.

 

 


 

 

📍 좋았던 점

 

  • Runpod과 서버 연결

 

Runpod_vlm 연결 화면

MP 13기 19주차(4개월차) 후기 (2025.07.28 

uvicorn vlm_api:app --host 0.0.0.0 --port 8000

 

최종 결과 발표를 진행할 때는 runpod을 EC2와 연결해서 사용해야 한다. 서버 쪽을 맡았기 때문에, 로컬에서 돌려보는 연습을 해봤다. 역시 서버는 내 적성인가... 뭔가 연결되기까지 오기도 생겼고, 연결되니 짜릿한 기분은 말로 표현할 수 없었다.

 

 

 

 

  • LLM 파인튜닝

batch사이즈와 step 수, 에폭 수 등을 다시 한번 공부하면서 시작했다.

1 batch: 1번에 몇개의 데이터를 학습시킬지

1 step: batch size에 맞춰 학습이 끝나는 단위 / 모델의 가중치를 한 번 업데이트하는 주기

1 epoch: 모든 step이 끝난 후 모델이 보는 주기 / 총데이터가 학습되는 단위

 

  • pytorch와 safetensors 버전 호환 오류

 

최종 버전 호환성 결과

  • torch: 2.3.0+cu118
  • torchvision: 0.18.0+cu118
  • torchaudio: 2.3.0+cu118

 

 

sLLM 파인튜닝 작업을 맡아서 진행하고 있다. 버전 호환성 오류 때문에 애를 많이 먹었다. 결국 호환성 오류를 고쳤지만, 해당 오류를 만난 여러분들에게 조금이나마 도움이 되고자 성공한 버전을 올려본다(물론 이것도 다시 해보면 안 될 수도...?!).

 

파인튜닝 모델이 1.2B개의 파라미터 수를 가지고 있어서 그런지 몰라도, 큰 차이를 못 느꼈다. 그래서 고려해 본 방법이 몇 가지 있다.

 

  1. 하이퍼 파라미터 튜닝
  2. system prompt 정교화
  3. 데이터 QA쌍에 context값까지 붙여 정제

위 방법은 멘토님과 파인튜닝 결과가 확실하게 안 나온다는 결과를 공유드리며 고민해 본 방법들이다. 사실상 하이퍼 파라미터 튜닝은 이렇다 할 변화는 못 가져온다고 했다. 그래서 지금 테스트해보고 있는 방법은 2번과 3번이다. 결과가 잘 나와서 최종 프로젝트가 성공적으로 끝났으면 좋겠다.

 

 

 


 

 

📍 부족한 점

 

 

  • 파인튜닝

 

파인튜닝 모델 BERTScore

 

베이스 모델 BERTScore

 

 

위 자료를 보면 알 수 있듯이, 파인튜닝 결과가 미미하다. 다만 효과가 있다. 이 점은 높게 사도 될 것 같다.

그래도 이번에 깨달은 점이 있다면, 파인튜닝이 오래 걸린다는 건, 튜닝하는 시간이 오래 걸리는 게 아니라 효율성을 높이는 것이 오래 걸린다는 것이었다. 물론 당연한 소리겠지만, **효율을 올려야 되는 시간**이 중요하다는 것이다.

파인튜닝은 Full-Finetuning이 아니라 LoRA를 사용했기 때문에 시간이 많이 안 걸렸다.

 

LoRA 사용 코드

 

 

LoRA를 사용한 파인튜닝 시 target_modules 값들을 고려해야 한다. 어떤 모델인지에 따라 값들이 다르기 때문이다. 내가 사용한 모델은 (좀 많이 말하는 것 같네..) exaone4.0이다. 또 이 모델은 위 사진처럼 7가지의 target_modules가 존재한다. 혹여나 엑스원 모델을 쓸 분들은 이 코드 참고해서 LoRA 파인튜닝을 진행하길 바란다.

 

파인튜닝 과정

 

파인튜닝은 정말 걱정이 많이 되는 과정이다. 물론 평가할 때는 재밌다. 그러나 파인튜닝을 진행할 때는 '과연 이게 잘 나올까....'와 '하... runpod 돈 다 날아가겠네'라는 걱정뿐이다😂😂😂😂

 

***참고로 SK네트웍스 FAMILY AI 캠프는 Runpod(최대 300달러) 비용 및 AWS(최대 30만 원), OPENAI API(최대 300달러) 비용을 지원해 준다.

 

 

  • Django-React

 

프로토타입 화면

 

중간발표 때 보여줄 화면이다. 우리는 로컬에서 시연 내용을 보여줄 것이다. 위 Top Menu에 보이는 바와 같이 Prototype Lab이 챗봇 페이지이다. 그러나 아직 베이스 모델을 연동한 챗봇을 구현하지 못했다. 그래도 여전히 희망은 보인다. 그리고 현재는 mock-up 데이터를 두고 화면에서 보이는 것을 보여줄 것이고, 모델만 잘 연동된다면 우린 완벽하기 때문이었다. 그래서 이 글을 쓰고 얼른 다시 모델 연동에 집중하겠다.....

장고와 리엑트 연결 자체는 RestAPI를 사용한다. 또 이 과정에서 사용되는 문서는 API 정의서이다. 역시 문서 작업이 필요하고, 중요하다는 점을 다시 한번 상기하게 됐다.

 

 

 


 

 

📍 성찰 및 마무리

 

 

최종 프로젝트 3주 차다. 시간 없는 게 확 느껴진다. 이번 주도 다시 한번 느꼈다.

취업 빨리... 취업 빨리... 제발 취업 빨리.... 이제 그만...!!

물론 취업해도 또 비슷한 일을 할 것이다. 다만 실무에서는 '재미를 찾을 수도 있지 않을까'라는 생각과 **금융치료!!**라는 생각이 있다.

 

프로젝트의 규모가 꽤 크고 부가적으로 할 게 많다 보니 확실히 열심히 하고, 바쁘게 사는 내 모습을 볼 수 있었다. 그래도 그만큼 성장하고 있다는 느낌도 든다. 다양한 시각에서 보려고 노력해야 하고, 프로젝트가 어떻게 돌아가고 있는지도 확인해야 되고, 이번 주에 작성할 문서는 어떤 것이 있는지(그놈의 문서...!!) 확인해야 되니 성장은 무조건 되고 있다는 확신이 든다.

 

다음 주에는 중간발표가 있다. 중간발표 때 프로토타입을 보여줄 예정이다. 솔직히 과연 잘할 수 있을까?라는 생각과 동시에 확신이 안 든다. 그래도 문제가 부딪히더라도 "나는 할 수 있어."와 "하면 하지"라는 요즘 자주 쓰는 말도 속으로 되뇌어본다.

 

이 글을 읽는 여러분들도 긍정적으로 생각하고 꼭 지금 문제 해결하길 바란다.