이번 4주차는 지금까지 배운 걸 바탕으로, 실제로 LLM을 어떻게 활용하는지에 집중한 시간이었다. 이전까지는 Transformer 구조나 MLP처럼 모델을 직접 짜보고 실험해보는 게 중심이었다면, 이번 주는 HuggingFace 같은 라이브러리를 통해 "어떻게 더 효율적으로 써먹을 수 있을까"를 고민하게 됐다.
HuggingFace 실습 - 직접 구현하지 않고도 모델을 다룰 수 있다는 점
이번 주 초반엔 HuggingFace 튜토리얼을 따라가면서 Transformer 계열 모델을 학습 없이도 불러와서 사용하는 방법을 익혔다. 사실 이전까지는 모델을 하나하나 짜는 것에 집중했는데, HuggingFace를 쓰니까 오히려 모델보다 데이터를 잘 준비하는 게 더 중요하다는 걸 느꼈다.
모델을 선택하고, Tokenizer를 통해 데이터를 전처리하고, Trainer를 활용해서 바로 학습까지 할 수 있는 구조라서, 실무에서도 굉장히 빠르게 프로토타입을 만들 수 있겠다는 생각이 들었다. 예를 들어, MNLI 데이터셋으로 두 문장의 관계를 분류하는 실습에서는 hidden size를 줄이고 학습해봤는데, 결과가 나쁘지 않아서 더 실험해보고 싶어졌다.
LLM 개념 정리와 벤치마크 지표
그 다음은 본격적으로 LLM에 대한 개념을 정리했다. 이전까지는 GPT라는 단어만 들어도 막연했는데, 이번에는 Open/Closed LLM을 비교하면서 실제로 어떤 모델을 어떤 상황에서 쓸 수 있는지를 고민하게 됐다.
특히 MMLU, MGSM, MATH 같은 벤치마크 지표는 그냥 성능이 좋은 모델을 고르는 게 아니라, 내가 필요한 작업에 적합한 모델을 고르기 위한 기준이 될 수 있다는 점이 인상 깊었다. 예를 들어, 추론을 많이 하는 문제는 MATH에서 성능이 높은 모델을 고르면 되고, 긴 문서 기반 요약은 ZeroScrolls에서 좋은 결과를 보여주는 모델이 적합할 거다.
LLM을 단순히 성능으로만 보는 게 아니라, 벤치마크를 통해 상황별로 구분해서 선택하는 기준을 배운 것 같다.
Zero-shot & Few-shot Classification 실습
이전에 공부한 Next Token Prediction 방식을 분류 문제에 적용해보는 실습도 재밌었다. Zero-shot은 학습 없이 바로 문장을 만들어서 logit으로 확률을 비교하는 방식이었고, Few-shot은 예시 몇 개를 넣어서 조금 더 모델이 잘 따라오게 만드는 구조였다.
여기서 내가 느낀 건, 생각보다 LLM이 많은 걸 알고 있다는 거다. 단순한 감정 분석 같은 건, 그냥 문장을 잘 만들어주는 것만으로도 꽤 정확하게 분류해낼 수 있다는 게 신기했다. 이게 가능한 이유는 결국 사전학습으로 이미 방대한 데이터를 학습했기 때문인데, 이걸 보면서 "기존 데이터를 잘 설계하면 학습 없이도 많은 걸 할 수 있다"는 확신이 들었다.
Prompting 기법(CoT, PAL, RAG)
이번 주 가장 재밌었던 부분은 Prompting이었다. 예전엔 그냥 ChatGPT에 질문 던지는 정도였는데, 이번엔 아예 의도적으로 프롬프트를 설계해서 모델이 더 똑똑한 답을 하게 만드는 방법을 배웠다.
특히 Chain of Thought(CoT)는 답만 요구하는 게 아니라, 풀이 과정을 설명하도록 유도하는 방식인데, 생각보다 효과가 좋았다. 그리고 PAL은 모델이 답을 예측하는 게 아니라 코드를 써서 계산하게 만드는 방식이라서, 숫자 계산이나 논리적인 추론에서 정확도가 훨씬 높았다.
RAG는 모델이 엉뚱한 소리를 하지 않도록, 검색된 문서나 자료를 같이 주고 그 안에서만 답을 하도록 하는 방식인데, 이건 문서 기반 QA 시스템을 만들 때 좋은 기법이라 이미 회사에 적용을 해놓았다. 사이드 프로젝트도 이 기술 기반으로 하려고 한다.
LLM 기반 개발 도구들 (Copilot, Cursor, v0)
마지막으로는 실제 개발 생산성을 높이는 LLM 기반 도구들을 살펴봤다. GitHub Copilot은 이제는 너무 유명해서 익숙하고 Cursor IDE도 이미 쓰고 있다. 특히 Agent 기능을 이용하면 프로젝트 전체 문맥을 이해하면서 답을 제안해주는 기능이 꽤 유용하다.
그리고 v0 by Vercel은 디자이너가 피그마로 만든 화면을 그냥 붙이면 코드로 바꿔주는 기능도 있어서, 나중에 프론트엔드 개발할 때 시간을 엄청 아낄 수 있을 것 같았다. 추가적으로 팀원분이 구글에서 나온 Firebase Studio도 알려주시면서 바로 네이버 화면을 생성하는것을 보여주셔서 나도 프로젝트에 한번 도입해보려고 했는데 잘 못쓰는건지 모르겠지만 아직 잘 모르겠다.
LLM을 활용하는 관점의 변화
사실 처음엔 모델을 잘 만들고 성능을 높이는 게 중요하다고 생각했다. 그런데 이번 주에 HuggingFace나 Prompting, 그리고 여러 도구들을 써보면서 느낀 건, 이제 중요한 건 기술을 활용해서 실제 문제를 얼마나 빠르게 해결하느냐라는 점이었다.
예를 들어, 어떤 기능을 구현할 때 직접 모델을 하나부터 학습시키기보단, 이미 잘 학습된 모델을 가져와서 내가 가진 데이터에 맞게 가볍게 fine-tuning 하거나, 아예 zero-shot/few-shot으로 결과를 바로 뽑는 게 더 빠르고 효율적일 수 있다는 걸 몸으로 느꼈다.
이런 변화는 결국 개발 방식도 바꾼다. 예전엔 기능 하나를 위해 백엔드, 프론트엔드, 모델까지 다 짜야 했다면, 지금은 오픈 모델이나 API를 조합하고, 프롬프트만 잘 설계해도 웬만한 MVP는 금방 만들 수 있게 됐다. 그래서 더더욱 '구현력'보다 '기획력과 활용력'이 중요하다는 말이 와닿는다.
느낀점
배운 걸 끝내지 않고 연결하고 싶다는 생각이 많이 들었다. 특히 지금 하고 있는 사이드 프로젝트나 업무에 이걸 어떻게 녹일 수 있을지 고민 중이다. 예를 들어, 사용자 리뷰를 자동 분류하거나, 입력 문서에서 키워드 추출하는 기능, RAG를 활용한 LLM 기반 챗봇은 이미 회사에 만들어 놓은게 있는데 더 확장해 볼 수 있을거 같다고 느껴졌다.
마지막으로 이제는 "나만의 모델을 만드는 것"보단, "주어진 모델을 가지고 문제를 얼마나 잘 풀 수 있느냐"가 더 중요한 시대라고 느꼈다. 그리고 이번 주는 그걸 구체적으로 실습하고 체감해볼 수 있는 좋은 기회였다.
'AI > 교육' 카테고리의 다른 글
[항해 플러스 AI] 5주차 WIL: 프로젝트 발판 마련 한 주 (0) | 2025.04.28 |
---|---|
[향해 플러스 AI] 3주차 WIL: LLM의 원리를 처음 이해 (0) | 2025.04.15 |
[항해 플러스 AI] 2주차 WIL: 딥러닝 이론과 자연어 처리 (0) | 2025.04.08 |
[항해 플러스 AI] 1주차 WIL: 선형 회귀부터 MLP, 과적합 해결까지 (0) | 2025.03.30 |
[항해 플러스 AI] WIL - 시작하는 마음 (0) | 2025.03.23 |