비전공자의 AI 부트캠프 일지 #10
딥러닝 프로젝트 회고
"최애야, 오늘 뉴스 읽어줘♥️"
_원티드 포텐업 데이터&AI 부트캠프 1기
프로젝트 아이디어 : 키워드에서 시작해 보기
프로젝트 아이디어는 늘 그렇듯, 하고 싶은 것을 중심으로 키워드를 나열하고 조합해 보는 방식에서 시작했다.
'일기', '회고', '시니어', '콘텐츠', '뉴스', '게임'.. 등등
그중에서 나와 팀원이 평소에 관심있던 키워드였던 ‘콘텐츠’, 그리고 실제로 내가 사용하고 있었던 ‘구글 알리미’가 중심이 되었다. 거기에 이번 딥러닝 파트에서 배운 텍스트와 음성 모델을 결합해보는 것으로 의견을 좁히게 되었다.
그렇게 조합된 키워드가 바로 콘텐츠 × 알리미 × 딥러닝 텍스트/음성 모델
그 과정에서 문제에 대한 부분도 자연스럽게 정의가 되었던 것 같다. 나의 경우에선 현재 구글 알리미를 쓰고 있지만 너무 많은 콘텐츠가 한 번에 쏟아지고, 정리되지 않아 결국 안 보게 된다.라는 부분이 있었고 팀원이 생각했던 포인트로는 “요즘은 콘텐츠가 너무 많아서 오히려 심심할 틈이 없다."라는 부분이었다.
그래서 떠올렸다.
‘‘내가 좋아하는 정보를 좀 더 편안하게 꾸준히 인풋할 수 있는 방법은 없을까?’’
"그렇다면, 내가 좋아하는 목소리로 내가 좋아하는 콘텐츠를 알려주는 것은 어떨까?"
딥러닝을 활용한 서비스 설계
프로젝트 컨셉이 정리된 이후, 기술적인 모델 선정과 구조 구현은 팀원이 맡고, 나는 “이 서비스가 실제로 어떻게 사용될지”에 대한 흐름을 기획하는 역할을 담당했다. 실제 사용자의 입장에서 생각했을 때, 이 서비스는 구글 알리미처럼 콘텐츠를 받아보는 경험이 필요하다고 생각했다. 그래서 사용자 흐름을 다음처럼 구상했다.
- 관심 있는 키워드를 선택하고
- 텍스트 콘텐츠 중에서 요약된 뉴스나 정보를 받고
- 선택한 음성으로 그 내용을 들을 수 있도록
- 매일 혹은 원하는 시간에 알림 형태로 받아본다
이 과정을 그려본 후, 팀원 분이 각 파트마다 어떤 AI 모델이 배치되어야 하는지 그리고 어떤 모델을 사용해야 할지 선정을 했다.
- 텍스트 요약 → KoBERT, Llama
- 음성 변환 → Coqui TTS
이번 프로젝트에서 내가 가장 중점을 둔 것은 MVP 개념이었다. 구현하고 싶은 기능은 많았지만 프로젝트 시간은 정해져 있었고 반드시 구현해야 할 핵심 기능과 팀의 목표를 정해야 한다고 생각했던 것 같다. 사실 이번 프로젝트는 ‘서비스 기획’보다 ‘딥러닝 모델을 실제로 적용해보는 것’이 핵심 교육 목표였기에 모델 학습과 적용하는 것을 우선 목표로 하게 되었다.
“텍스트를 요약하고, 사용자가 선택한 음성으로 콘텐츠를 들을 수 있게 한다.”
이 기능을 제대로 구현해내는 것을 프로젝트의 가장 중요한 목표로 설정했다.
그 외의 확장 기능(알림 설정, 감정별 음성 선택 등)은 이후 고도화 단계로 설정하게 되었다.
구현하면서 겪게 된 어려운 점들
프로젝트는 약 10일 안에 기획부터 최종 발표까지 마무리해야 했고, 두 명이 팀을 이루어 기능별로 역할을 나눠서 진행했다.
- 텍스트 요약 및 생성 파트 → 팀원 담당
- 음성 변환 파트 → 내가 담당
캐릭터 음성을 입히자는 아이디어가 나오면서 노션 페이지를 정리하는데 갑자기 "내 최애가 읽어주는 오늘의 뉴스"라는 카피가 떠올랐다. 그러면서 '그럼 어떤 캐릭터 음성을 사용할까?’ 하다가, 애니메이션 ‘최애의 아이’에 등장하는 ‘아이’ 캐릭터와 모두가 아는 명탐정 코난의 음성을 활용하기로 결정했다.
Youtube에서 음성 파일을 수집하고, Coqui TTS 학습용 데이터셋을 만들기 위해 전처리에 들어가려고 하니깐 여기서 처음 알게 된 사실은 텍스트 대본이 없으면 학습이 어렵다는 걸 그제야 알게 되었다.
다행히 이 과정은 OpenAI의 Whisper API를 활용해 음성을 텍스트로 전환(STT)하면서 빠르게 처리할 수 있었다. 그리고 전처리도 별도 프로그램을 사용해서 잡음을 제거하거나 음성 크기를 키우는 작업을 하였는데 나중에 보니깐 파이썬으로도 가능하다는 걸 알았다...
결과적으로 음성 모델 학습은 실패했다. 말을 제대로 하지 못했다. 아이라는 캐릭터의 음성이 일본어라는 것이 문제가 되었던 것 같다. 다행히도 팀원이 허깅페이스에서 Coqui TTS 공식 문서를 통해 API를 활용하는 방법을 찾아 코난 목소리로 최종 서비스는 만들어 볼 수 있었다.
이런 실패 경험 과정 속에서 얻었던 것으로
- 데이터를 어떻게 준비해야 모델이 잘 학습되는지
- 공식 문서 제대로 읽기
- 외부 API나 오픈소스 도구를 어떻게 빠르게 실전에 적용할 수 있는지
- 무엇보다, 실패했다고 끝나는 게 아니라 ‘완료된 결과’로 만드는 방법은 무엇인가?
- 아... 이래서 멀티모달로 가는구나
딥러닝 프로젝트를 통해 추가로 배운 것
이번 딥러닝 프로젝트를 하면서 느낀 건, 단순히 "모델을 만들었다."는 결과보다 "왜 잘 안 됐는지, 다음엔 어떻게 해야 할지를 배우는 과정" 이 훨씬 더 컸다는 것이다.
사실 이번 프로젝트에선 API 구현은 생각하지 못했었다. FastAPI 실습을 해본 적은 있지만, 서비스 전체 흐름에서 API를 어떻게 구조화해야 할지에 대한 고민까지는 닿지 못했다. 그래서 이 부분은 다음 프로젝트에서 꼭 짚고 넘어가야 할 학습 항목으로 남겨두었다.
또 하나 느낀 점은, 모델을 처음부터 다 만들려고 애쓰는 것보다 빠르게 써보고, MVP의 MVP를 구현해 보는 것으로 서비스를 확인해 보는 것이 오히려 나에게 더 맞는 방식일 수도 있을 것 같다는 점이다. 사실 요즘 좋은 API나 오픈모델이 많기 때문에, 처음부터 직접 만드는 것보다 빠르게 만들어보고, 필요한 부분만 커스터마이징하고 고도화하는 방식.
그게 나에게 맞는 전략이라는 걸 배운 시간이었다.
딥러닝 파트를 배우고 나서
딥러닝 파트를 배우고 나서 딥러닝을 배우면 처음 듣는 낯선 단어들이 많이 나온다. 노드, 퍼셉트론, 뉴런... 일상에서는 접하기 어려운 단어들이다. 처음엔 이 단어들을 말 그대로 외우려니깐 더 어렵게만 느껴졌다.
그런 과정을 거쳐서 내가 느낀 점은 내가 이해할 수 있는 언어로 정리하는 게 훨씬 더 중요하다는 점이었다. 그리고 더 중요한 것은 내가 원하는 커리어 방향에 따라 어느 수준까지 이해해 볼지 스스로 기준을 찾아 정하는 것도 필요하는 걸 알게 된 시간이었다.
나는 그동안 딥러닝 파트까지 배우면서 '나는 왜 파이썬을 아직도 검색하면서 코딩해야 하는 거지?', '왜 이런 수학적인 개념이 어렵지?' 하면서 자신감을 잃기도 했다.
하지만 곰곰이 생각해 보니, 나는 이제 막 배우는 시작한 단계라는 점, 한 번 듣고 넘어가는 상황에서 완벽히 이해하지 못할 수 있는 것도 당연한 일이었다. 그리고 무엇보다 중요한 건 내가 처음 이 과정을 시작할 때 내가 뭘 하고 싶어서 시작했는지를 검토하는 과정이 필요했던 시점이었다.
결국 이것을 통해서 나는 코딩을 잘하기보단, 모델을 만들기보단 어디에, 어떻게 활용하고 연결할 수 있는지를 고민하는 사람이라는 걸 알게 되었다. 이게 지금 나에게 잘 맞는 방향이라는 것을 생각하게 되었다.
📌 next is:“내가 직접 상상한 기능을 어떻게 구현할 수 있을까?”
이제 이다음 포스팅은 LLM(대형 언어 모델) 서비스 교육 파트에 대한 이야기의 시작이다.
'원티드 포텐업 부트캠프 기록' 카테고리의 다른 글
[비전공자의 AI 부트캠프 일지 #9] 딥러닝 실습하기 (0) | 2025.04.06 |
---|---|
[비전공자의 AI 부트캠프 일지 #8] 딥러닝 기초 개념 이해하기 (0) | 2025.03.30 |
[비전공자의 AI 부트캠프 일지 #7] 머신러닝 프로젝트 회고 (0) | 2025.03.23 |
[비전공자의 AI 부트캠프 일지 #6] 머신러닝 기초 정리_원티드 포텐업 부트캠프 (0) | 2025.03.02 |
[비전공자의 AI 부트캠프 일지 #5] part2 .ML(머신러닝) 시작_원티드 포텐업 부트캠프 (2) | 2025.02.23 |