만세! 어제, 프로덕트를 엎어버렸습니다.
안녕하세요!
취업불경기입니다. 요즘 같은 어려운 시즌에는 취업/이직 한 번에 수십, 수백 회의 서류지원을 하게 되는데요. 매우 많이 지원하는 만큼 개별로 커스텀하는 경우는 극히 드뭅니다. Resumait, AI Resume Mate(이하 레쥬메이트)는 서비스로 AI로 쉽고 빠르게 이력서/커버레터/자기소개를 공고/회사에 맞게 커스텀하는 서비스 입니다.
초기 구상
몇 달 전, 이력서를 작성하고 있었는데 이력서를 관리하기가 귀찮았습니다. 회사별로 요구하는 부분이 조금씩 다른데 이걸 매번하자니 시간이 너무 많이 들어서 결국 대부분의 채용 공고에 같은 이력서를 제출했습니다. 막연하게 이걸 해결할 수 있는 서비스를 만들어봐야지 생각하다가 끝나가던 스터디에서 스터디원들에게 제안하여 프로젝트를 시작하게 되었습니다. 처음에는 링크드인, 원티드, 렐릿 등 다양한 채용 플랫폼 서비스를 참고했습니다. 간단 프로필, 경력사항, 학력, 자격증, 기타 정보로 이력서 스키마를 나누고 AI가 맥락(채용 공고, 회사)에 맞게 프로덕트를 기획했습니다.
LLM을 튜닝하기
LLM 서비스를 만드는 만큼 당연히도 LLM 튜닝이 필요합니다. 저희는 RAG와 프롬프트 엔지니어링으로 튜닝하기로 결정하고, 데이터를 모아 LLM 튜닝을 시작했습니다. 처음에는 일단 텍스트로 표현하기 쉬운 마크다운 형식을 입출력으로 정하고 튜닝했습니다. AI를 담당해준 팀원이 생각보다 빠르게 제법 만족할만한 결과물을 만들어주었습니다.
문제는 RDBMS에 저장하기 위해 만든 스키마로 json결과물을 얻으려는 데에서 나타났습니다. 마크다운으로 출력할 때보다 30초 정도 시간이 더 소모되고, 잘못된 결과물을 만들었습니다. 중첩된 스키마는 자꾸 망가지고, 날짜 형식을 제대로 변환하지 못했습니다. 스키마를 단순화해보고, 날짜 형식도 여러 번 바꿔봤습니다. yyyy-mm-dd 형태로 바꾸길 원했는데 자꾸 입력에 사용된 포맷을 그대로 사용하더라구요 :(
깨달음의 순간
결국 몇 시간째 문제를 해결하지 못하고 저녁먹으러 나가는 길에 불현듯이 깨달았습니다. 전혀 그렇게 할 필요가 없다는 사실을요. 우리 서비스는 채용 공고 검색, 추천을 할 생각이 없고, 개인 프로필 검색도 할 필요가 없습니다. 아무리 잘 스키마를 정의하고 데이터 모델링 해봤자 아무짝에도 쓸모가 없었습니다. LLM은 스키마가 정의되어 있으면 오히려 이해력이 떨어지고, 성능도 나빠졌습니다. RDBMS에 저장된 데이터를 LLM이 이해할 수 있는 텍스트로 변환하지 않아도 되고요. 내부적으로 json 변환은 결과물에 한 번 더 다른 모델을 적용하는 것 같았습니다. 마크다운 텍스트 그냥 저장하는 게 훨씬 좋았습니다. 저희는 하던 관성에 맞춰 데이터 모델링을 하고, 스키마를 정의하고 쓸모없는 곳에 굉장히 많은 시간을 낭비하고 있었던 것입니다.
만세! 새로 시작하자!
지금까지 작업한 코드가 아깝긴 하지만 엎기로 결정했습니다. 이력서 편집기 구현 때문에 고생했고 아직 수정할 부분이 남았는데 안 해도 됩니다. 마크다운 형식으로 LLM 결과물 생성하는 것은 검증했으니 LLM 튜닝한 부분은 그대로 쓸 수 있습니다! json 형태를 사용하지 않으니 LLM API 속도도 올라갑니다. 곰곰히 생각해보니 언젠가 엎을 것이 틀림없습니다. 지금 엎어버렸으니 아무리 보아도 너무 이득입니다. 만세!
혹시 레쥬메이트에 관심있으신가요?
다시 달리게 된 레쥬메이트는 베타 공개를 계획 중입니다. 프로덕트에 관심 있으신 분은 아래 폼에 이메일을 작성해주시면 공개 시 이메일 드리겠습니다. 감사합니다!
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.