2023년 회고
나는 이제 나의 미래를 예측하는 것을 포기하였다(….) 분명 나는 전 회사에서 존버해서 임원까지 달 생각도 했었고, 특히나 이직을 한다면 다른 대기업이지 스타트업에, 그것도 극극극초반 스타트업에 이직할 거란 생각은 안하고 있었기 때문이다. 업무는 완전히 만족하고 있어서 내 선택을 후회하고 있지는 않지만, 아직도 좀 오락가락끼릭까락한 그런 상태이다.
무슨 회사?
감정기록을 하는 iOS 어플을 운영하는 회사이다. 특이한 점은, 감정을 기록하면 감정에 대응되는 색깔의 구슬이 화면에 도르륵 떨어져 시각적으로 귀엽다는 점이다. 하루하루 구슬을 모으는 재미가 있는 어플이다. 팀은 나 포함 단 3명. 대표이자 iOS개발자, 백엔드 개발자, 그리고 데이터 사이언티스트(나) 로 구성되어있다. 나머지 부분은 파트타이머를 고용해 해결한다.
작년 회고에는 전 회사를 ‘대기업 향 1% 첨가된 중소기업’ 이라는 느낌이 든다고 했었다. 지금 회사는… 뭐랄까, 진짜 스타트업 느낌이다. 약간 괴짜들이 모여가지곤 차고지에서 뭔가 만들어내는 그런 느낌. 3명밖에 없기 때문에 데이터, AI, ML 관련된 모든 일들을 내가 하고 있다. 7월 말에 이직을 해서 이제 이 회사에서는 단 5개월차인데, 그 5개월 동안 많은 일들을 했고, 또 새로운 것도 많이 배웠기 때문에 정리를 해보고자 한다.
무엇을 했나
1. 챗봇 개발
그야말로 굉장히 중대하고 재미있는 일이 아닐 수가 없었다. 사실 이거 하려고 퇴사한 거랑 다름이 없을 정도로(….) 나는 챗봇 개발에 진심이었는데, OpenAI 사마가 열일해주신 덕에 빠르게 결과물을 내서 뿌듯하기도 하고 긴장되기도 했다. 텔레그램 데모는 내가 이직하기 직전인 7월 중순쯤 기능 개발을 해놓았고, 수많은 테스트와 수정을 거치고 API를 개발해 11월에 앱 내에 기능을 추가할 수 있었다. 만들면서 신경썼던 부분들은 다음과 같다. 자세한 방법은 포스트 내용이 너무 길어질 것 같아서 생략한다. 궁금하면 우리 회사 입사 ㄱㄱ
-
장기 기억 구현 : 친구같은 상담사를 표방하고 있기 때문에 장기 기억이 필요했다. 이건 너무 뻔하게도 vector database 로 구현을 했다. 다만 어떤 DB 를 쓸지 좀 오래 고민했었다. 속도랑 비용이랑 이런저런거 비교해보고 현재는 milvus 를 사용하고 있는데 이것도 나중에 갈아끼워버릴 수도 있음.
-
토큰 사용량 조절 : 또 너무 뻔하게도 GPT API 를 사용해 구현되어있기 때문에 비용 최적화가 중요하다. 특히 고민 상담을 하는 경우 대화의 길이가 굉장히 길어지기 때문에, 무지성으로 이걸 누적해 넣으면 토큰 사용량이 말도 안되게 많아질 것이다. 최소한의 토큰을 사용하면서 대화가 부드럽게 이어질 수 있도록 여러 방식을 고민하고 적용하였다.
-
일관성 : ChatGPT 도 그렇지만 새로운 대화를 시작하면 갑자기 좀 다른 녀석이 된 느낌이 들 때가 있다. 자아 연속성을 구현하기 위해 프롬프트 단에서도 고민을 많이 했다. 나랑 대표님은 거의 프롬프트 깎는 노인마냥 프롬프트를 수정하고 수정하고 수정했다…
그리고 이 챗봇을 개발하면서 내가 아예 배우지 않았던 부분들에 대해 배울 수 있는 기회가 되었다. 나는 굳이 따지자면 데이터 분석가였던지라 모르는 게 너무 많았었는데, 좋은 기회가 되어 이것저것 써보고 익힐 수 있어 좋았다.
7월까지는 제대로 몰랐던 부분이지만 이제는 내용을 알게 되었고 일상적으로 쓸 수 있게 된 것들은 아래와 같다.
- Vector DB
- Mongo DB
- 비동기처리
- Git (예전에는 Fetch pull push 만 할 줄 알았음…)
- Azure 이나 AWS 같은 클라우드 서비스
지금의 챗봇은 대표님의 피드백도 그렇고, 간혹 오는 유저 피드백을 보면 충분히 제 기능을 하는 것으로 보인다. 하지만 디테일을 빼보면 생각보다 되게 뻔한 방식으로 구현된 챗봇이고, 금방 비슷하거나 더 나은 것들이 와장창 나오는 것이 추세이기 때문에… 도태되지 않으려면 끊임없이 개선시켜야하겠다는 생각이 드는 요즘이다. 그래서 심리학이나 인지과학을 얕게나마 공부하고 있는 중이고, 기존에 이미 만들어져 있는 GPT Agent 들의 소스코드와 논문들을 참고하고 있다. Generative Agents: Interactive Simulacra of Human Behavior는 볼 때마다 새롭고 그렇다. 저자님 존경합니다.
2. 자연어 처리 태스크들
이 회사 데이터의 특장점은 텍스트와 감정 라벨이 이미 대응되어서 데이터가 저장된다는 점이다. 심지어 2주에 한번씩 유저에게 PSS, RSES, PHQ, GAD 테스트를 해보도록 시켜 그 점수도 저장해둔다. 데이터 분석가로서 이런 아름다운 데이터를 무시하고 지나갈 수는 없는 것이다. 처음 이 회사 일을 무상으로 도와주기 시작했던 것도 그런 이유에서였다. 그리고 대표님도 데이터 기반의 서비스에 관심이 많으셔서, 희망하시는 많은 기능들이 내가 해볼 만한 것들이었다.
- 텍스트로 감정 라벨 예측하기
- 감정 트렌드로 4종 테스트 점수 예측하기
- 일주일 간의 텍스트에서 긍정, 부정 키워드 추출하기
- 등등…
일부는 글창사의 지원으로 컨설팅 업체와 협업하여 PoC 를 진행했지만, 여전히 이 문제들은 풀어가고 있는 중이다. 아름다운 공정 데이터만 보다가 인간 세상 데이터를 보니까 탄식을 금하지 않을 수 없지만, 문제는 어렵기 때문에 재미있는 것 아니겠는가! (나한테만 어려울 수 있음 주의)
3. 유저 데이터 분석
기획 과정에서나 평가 과정에서 유저 데이터를 분석하는 것은 불가피하다. 나는 기획에 대해 한개도 모르는 관계로 올해는 대표님이 요청하는 부분에 대해 데이터를 시각화해서 보고드리는 역할을 했다. 보통 챗봇 유료화 방식을 고민하기 위해 비용분석을 해서 드리기도 하고, IR 자료에 넣을 내용을 시각화하거나 구독 유저와 미구독 유저들의 차이를 확인하기 위해 EDA 를 하거나… 그 정도였다. 내 배움이 짧은 관계로 그랬다. 전 회사에서는 그 정도면 충분했겠지만… B2C 회사에서는 그렇지가 않다.
미루고 미뤘던 Growth Hacking 의 방법론을 배워야 할 때가 왔다. AARRR? Aha moment? 내 귀에는 다 너무 오묘하고 애매한 느낌의 단어라 ‘이걸 분석을 어떻게 하라는거야’ 싶었지만, 또 열심히 찾아보니 정형화된 방법이 있더라. 내년 초에는 이런 방법론들을 공부하고, 내가 알고 있는 통계학이나 머신러닝 지식과 결합해 의미있는 의사결정에 도움이 될 수 있으면 좋겠다.
회사 밖에서 한 일
심리학 입문 코세라 수업을 듣고 있다. 재미있다.
이직 직전에 번아웃 비슷한 감정을 느꼈던 터라, 지금은 일 외적으로는 최대한 인생 즐기기 모드로 살고 있다. 포켓몬 고를 다시 시작했고, 영화도 잔뜩 보고, 맛있는 것도 많이 먹고, 그러고 있다. 아, 일본 여행을 두번이나 갔다. 한번은 교토를 갔고, 한번은 후쿠오카를 갔다. 여행이 스트레스를 푸는 데 꽤 도움이 된다.
하고 있는 일이 재미있는데다가 일주일에 한번 빼면 재택근무라 약간 나 일 하고 있는 거 맞나 싶을 때가 있긴 한데, 이렇게 회고 적다 보니 한 것도 많고 배운 것도 많아 나름 뿌듯한 5개월이었다.
2024년에는…
아무것도 몰라요 응애 라고 주장하기에는 벌써 업무 경력이 3년이 넘었더라. 그래봐야 주니어긴 하지만(….) 그런데 여전히 나는 나 자신을 정의하지 못한다. 나는 누구지? 나는 뭐 하는 사람이지…? 한때는 통계학 전공생이었고, 한때는 데이터 사이언티스트였는데, 지금은… 상담 챗봇의 엄마가 됐다… (실제로 그렇게 소개를 한다) 딱 두 가지 확실한 건, 나는 무언가 만드는 걸 좋아하고, 내가 만든 것이 사회에 작게나마 좋은 영향을 끼친다면, 그래서 세상이 날 필요로 해준다면 그게 참 뿌듯한 사람이라는 것이다. 2024년에도 아마 챗봇을 개선시키고, 그로스해킹을 해보고, 못 다 했던 자연어 처리 태스크들을 해보겠지만, 그러면서도 내가 누군지, 뭘 하고 싶은건지 계속 고민하는 한 해가 될 거라고 생각한다.
Leave a comment