Post

[Boostcamp] 6주차 회고

Boostcamp AI Tech 7기 NLP Track - 6주차 회고

Main Events

팀 내 두런두런 질문 업로드

  • cue: 프로젝트를 시작하는 상황에서, 두런두런에서 나에 대한 이야기를 하는 시간이 추상적인 ‘나’에 대한 이해에 그칠게 아니라, 프로젝트 진행에 직접적인 도움이 될 수 있기를 바랬다. 프로젝트를 하며 서로의 성향과 서로 조심할 부분에 대한 힌트가 되면 좋겠다고 생각했다.
  • did: 이번 주 질문은 주로 팀플을 진행하면서 참고할 수 있는 내용을 중심으로 준비했다. (일, 관계, 프로젝트 중심)
    • 내가 생각하는 이상적인/싫은 일터는 어떤 모습인가요?
    • 내가 사람을 볼 떄 중점적으로 보는 것은 무엇인가요?
    • 이번 프로젝트를 통해 나는 무엇을 얻어가고 싶은가요?
    • 모르거나 막히는 부분은 어떤 방식으로 해결하나요?
    • 내가 잘하는 것은 무엇인가요?
  • felt: 나에 대해 이해하는 동시에, 다른 팀원들의 성향을 더 이해할 수 있었다. 아무래도 매일 있는 피어세션에서 보이는 모습들은 한정적이고, 이런 질문에 대해 매 번 의견을 나누는 것도 아니기 떄문에, 스스로 정리하면서 글로 쓴 생각들을 마주하니 팀원들에 대해 더 많은 면모를 발견할 수 있었다. 이런 서로에 대한 이해가 팀플 진행하면서 능률 향상으로 이어지기를 기대한다.
  • action plan: 다음주 질문도 잘 준비해보자!

‘함께 자라기: 애자일로 가는 길’ 책 읽기 시작

  • cue: 소프트웨어 개발자에게 있어 성장과 협업은 필수 내용이지만, ‘어떻게’ 이를 실천해야 하는지는 잘 모르는 경우가 많다. 부캠 두런두런 시간에 추천받은 책이기도 하고, 성장과 협업을 ‘잘’ 하고 싶은 욕구도 상당한 만큼ㅋㅋ 책을 읽어보기로 결심했다! 월요일에 이북을 구매했는데, 목요일에 분당으로 이동하는 길, 이 책을 집중해 읽어보기로 했다.
  • did: 지하철에서 시간 가는 줄 모르고 책을 읽었다. 덕분에 이동 시간이 알찼다.
  • felt: 와닿는 내용이 많았고, 내 삶에 당장 적용해보고 싶은 내용들도 많았다. 지금까지 잘 하고 있었구나, 이런 점을 더 노력해야 하는구나.. 생각이 계속 반복되었다.
  • action plan: 아직 완독하지는 못했는데, 이번 주 중에 다 읽고 기억하고 싶은 내용을 중심으로 블로그에도 정리해보려 한다.

(240909 월) TAG 구조 탐색, MLOps 실습 시작

  • cue: 아침에 랜덤하게 피어세션 순서를 정했는데, 월요일은 내가 당첨되었다. 수요일에 있을 MLOps 스터디에 대비해 MLOps for MLE 실습을 진행할 계획이었는데, 그 전에 우선 피어세션 발표를 준비하기로 했다. 최근에 기사에서 봤던 TAG라는 접근방법을 보고 호기심을 가졌던게 생각나서, 이 접근법의 작동 방식을 리뷰하기로 결정했다.
  • did: 기사 및 논문을 참고해 TAG의 구조를 정리했고, 이 방법이 기존의 Text2SQL 및 RAG와 어떤 점에서 차이를 갖는지를 중심으로 발표했다. 해당 글은 블로그에 업로드해두었다. (TAG (Table-Augmented Generation))
  • felt: TAG가 DB와 LM을 결합하는 새로운 패러다임임을 이해했고, 구체적으로 어떤 logic인지를 살펴보아 흥미로웠다. 한편 피어세션에서 RAG 및 Text2SQL과 TAG의 차이를 묻는 질문이 있었는데, 이 내용을 설명하면서 나도 더 명확하게 이해할 수 있었다. Text2SQL과 RAG가 TAG의 special case로 볼 수 있다며, TAG가 이들의 확장된 형태라는 주장이 논문에 있었는데, 구체적으로 TAG의 어떤 부분에 이 두 기존 접근법의 아이디어가 반영되어있는지를 입으로 설명하면서 나도 동시에 깨닫는 경험이었다.
  • action plan: 논문 리뷰가 목적은 아니었던 만큼 구체적인 수치를 보기보다는 모델의 흐름을 이해하고자 논문을 읽었다. 이후 만약 TAG 아이디어를 활용할 일이 생긴다면, 논문을 다시금 읽어보면서 코드도 돌려보면 좋을 것 같다.

(240910 화) 프로젝트 주제 발표

  • cue: 부스트캠프에서의 대망의 첫 프로젝트 내용이 발표되었다! 오전에 타운홀미팅에서 프로젝트의 주제 및 진행 방식, 서버 사용법 등에 대한 안내가 있었고, 저녁의 팀별 멘토링에서는 멘토님이 프로젝트 진행 관련 팁을 전달해주셨다. 프로젝트에 기대하는 바가 커서, 최대한 이 내용들을 소화하려고 했고, 이런 정리 내용을 공유하면 팀원들과 더 싱크를 맞춘 상태로 프로젝트 진행할 수 있지 않을까 생각했다.
  • did: 우선 데이터 및 baseline 코드를 확인했다. 서버는 일시적으로 생성에 장애가 생겨서 미뤄두고, 로컬 및 코랩 환경에서 데이터를 불러와 테스트해봤다. 데이터가 어떤식으로 생겼는지, baseline 코드는 어떤 흐름으로 구성됐는지 확인했고, 잘 돌아간다는 내용을 팀에게 공유했다. 한편 멘토링에서 전달받은 팀들을 구조화하고, 이로부터 todo 리스트까지 추출해 팀원들에게 전달했다. 뭘 해야 하는지를 명료하게 리스트업해두면, 의사결정이 훨씬 효율적이리라는 기대에서 공유했다.
  • felt: 서버가 준비되고, 본격적인 분석 일정이 나올 때까지 미뤄두고 기다리는게 아니라, 우선 할 수 있는 작업부터 가볍게 시작해보는 내 모습이 멋졌다! 전에 비해 실행력이 많이 올라온게 느껴져서 스스로가 뿌듯했다. 또한 팀에게 도움이 될만한 내용은 정리해서 노션 및 slack 채널에서 계속 공유하고 있는데, 이를 통해 공유하는 분위기가 잘 만들어졌으면 좋겠다 생각했다. 말로만 ‘적극적으로 공유해주세요’라는 얘기를 들어봤자 부담감만 커질 뿐이니, 직접 이렇게 행동으로 보이며 분위기를 만드는게 훨씬 훨씬 분위기 형성에 도움이 된다고 다시금 생각했다.
  • action plan: 목요일 쯤 구체적인 일정과 timeline을 설정하기로 논의되었다. 그 전까지 각자 세부 task를 리스트업해보기로 했다. 한편 업무 흐름에 대한 공유 툴로서 Jira를 사용하기로 얘기했다. 이름만 좀 들어봤지 써본적은 없었는데, 마침 이런 기회로 써보게 되어 기대된다. Jira 사용법도 확인해볼 예정이다.

(240904 수) AI 개발 기초 강의

  • cue: 프로젝트에 본격적으로 돌입하기에 앞서, 강의를 우선 수강하기를 권한다는 안내가 있었다. 학습이 목적인 이상, 이 안내를 따르는게 맞겠다고 생각했고 이에 안내된 순서에 따라 강의를 수강하기 시작했다.
  • did: AI 개발 기초 강의들을 수강했다. 실습이 중요한 내용들이 많아서, 조금 느리더라도 강의에서 나온 내용을 모두 내 손으로 직접 실행해보며 강의를 수강했다.
  • felt: 리눅스 사용법, streamlit 등을 이용한 프로토타입 제작, 파이썬 버전 관리 및 가상환경 관리, 디버깅 등 정말 중요하고 기초적인 내용인데 누군가 굳이 알려주지는 않는 내용들을 담은 강의였다. 모두 조금씩은 써봤고, 대충은 알고 있던 내용이지만 ‘이걸 이렇게 쓰는거구나..’, ‘이런 것도 할 수 있구나’를 느끼면서 암묵지를 정리하고 용례를 습득할 수 있는 경험이었다.
  • action plan: 이 내용들 TIL로서 잘 정리해두기. 필요할 때 꺼내 쓸 수 있도록 정리해두고, 손에 익히는 연습하기. 그런 면에서 이 강의에서 다룬 내용들을 프로젝트에 최대한 반영하면서 진행하면 좋을 것 같다. 마지막에 프로젝트 결과물을 정리할 때, streamlit을 이용해 데모 페이지를 만들어보면 좋을 것 같다.

(240904 수) 프로젝트 업무 목록 리스트업

  • cue: 프로젝트를 하면서, 뭘 해야 하는지에 대한 명확한 내용과 일정 설정은 중요하다고 느껴왔다. 뭘 해야 할 지에 대한 명확한 기준이 없으면, 일이 비효율적으로 흘러가면서 팀원들의 만족도도 떨어지기 마련임을 경험했었다. 특히 AI나 조금 복잡한 일들을 처리할 떄는 더더욱. 공모전 하면서 예선에서 작성한 구체적인 기획서가 일을 진행하는데 얼마나 훌륭한 가이드라인이 되는지를 경험했던 것도 있었다. 따라서 task 및 일정 수립이 중요한데, 이왕 정리할거면 공통 페이지에서 같이 정리하는게 효율적이라 생각했다. 이에 Jira 페이지에서 팀원들과 함께 task들을 전부 나열해보기로 했다.
  • did: 수요일 밤에 확인해보니 아직 다른 팀원들이 작성한 내용이 없길래 내가 업무들을 정리해서 baseline을 만들었다. 우선 큰 틀을 세우고, 각 단계에서의 하위 step들을 정의해 Jira에 작성했다. 이 내용을 기초로, 팀원들과 협의해가며 각 세부 단계들 조정해나갈 예정이다.
    1. 프로젝트 초기 설정: 프로젝트 일정 및 마일스톤 설정, 개발 환경 구축, 프로젝트 표준 정립, 기록 관리 체계 수립, 기타 팀 ground rule 수립, 리소스 할당 규칙 수립 (V100 4대를 6명이 나눠 써야 하는 상황)
    2. 데이터 분석 및 전처리: 데이터셋 분석, 통계 및 분포 파악, 데이터 전처리 방법 탐색 및 선정
    3. 베이스라인 모델 최적화: 모델 탐색, 비교, 후보 모델 선정, 학습 기법 선정, 하이퍼파라미터 최적화 전략 수립, 초기 실험 수행 (학습률, 배치 크기 등), 결과 비교 및 모델 선정, 결과 시각화
    4. 성능 개선: 모델 아키텍처 최적화, 개선 방법 탐색(전처리, DA, 모델, 기타 접근법), 실험 결과 비교 및 최종 모델 선정, 모델 경량화, 결과 시각화
    5. 결과 분석 및 보고서 작성: 최종 모델 평가, 성능 비교분석, 시도 별 개선 효과 분석, 실험 결과 종합 및 인사이트 도출, 비즈니스 임팩트 분석, 랩업 리포트 작성, github readme 작성, 프로토타입 개발(streamlit), 프로젝트 회고, 프로젝트 개선점 도출, 마스터클래스 발표자료 제작
    6. MLOps 관점의 추가 탐색 (optional): MLFlow 도입 및 테스트, 모델 모니터링 전략 수립, A/B 테스팅 시도, 확장성 고려해 아키텍처 재설계, 새로운 데이터셋 적용 실험
  • felt: ML 프로젝트의 전체 흐름을 경험하고 싶다고 했는데, 이런 식으로 직접 흐름을 작성하고 보니 어떻게 흘러가야 할 지가 더 명확해진 것 같다. 팀원들의 반응도 좋아서 다행이었다.
  • action plan: 이 내용들 기반으로 세부 내용 조정하고, 일정 수립하기. 목요일과 금요일 이틀간 진행하기로 논의했다.

(240905 목) 분당 수내에서의 오프라인 팀미팅!

  • cue: 분당 수내에서 제공되는 오프라인 교육장에서 팀끼리 회의를 진행할 수 있는데, 가능한 사람들끼리 오프라인으로 회의를 진행해보자는 제안이 있었다. 마침 궁금했고 본격적인 프로젝트 전, 서로 얼굴을 볼 필요가 있겠다 싶어서 참여하기로 했다.
  • did: 각자의 상황 상 6명 중 3명만 모였다. 각자 강의를 수강하고, 서버 세팅을 진행했으며 프로젝트 일정에 대해 논의했다.
  • felt: 팀원 모두가 모인게 아니라 아쉬웠지만, 확실히 온라인에 비해 논의가 편하다고 느꼈다. 모두 가까이 살았다면 더 자주 모였을텐데, 아쉽다는 생각이 들었다.
  • action plan: 다음주 월요일에는 팀원 모두가 모일 예정이다! 기대중><

(240905 금) 팀 프로젝트 기획

  • cue: 목요일에 대략적인 일정들만 설정했고, 구체적인 기타 결정사항들(ground rule, 결과물 기록 방법 및 양식, 레포 사용법 등)을 금요일 중에 마무리해 정하기로 했다. 1시간 피어세션으로는 시간이 부족할 것 같아, 2시부터 5시까지 약 3시간 동안 논의하기로 얘기했다.
  • did: TBU
  • felt: TBU
  • action plan: TBU

주간 회고

[+] Positive

  • 프로젝트를 잘 진행하기 위해 선행되어야 할 내용들을 고민했고, 팀에게 적극적으로 공유한 한 주였다. 우리 팀의 두런두런 페이지에서 질문을 통해 서로에 대한 이해도를 끌어올렸고, 프로젝트 진행하며 유의해야 할 사항들을 구조화해 정리해 공유했다. 또한 Jira에서 프로젝트 세부 업무들을 리스트업하면서 팀 내 신속한 의사결정에도 기여할 수 있었다.
  • 단순히 프로젝트 성과에 집착하기보다, 공부가 우선순위임을 인지하고 부스트캠프에서 제공되는 자료를 소화하기 위해 노력했다. 권장되는 커리큘럼에 맞춰 강의를 빠르게 들었고, 이번 주 중에 강의 내용 및 과제는 모두 정리할 수 있을 것으로 보인다. 이런 학습 내용을 바탕으로 다음주부터는 프로젝트를 통해 실무 능력을 향상시킬 수 있을텐데, 초석을 잘 닦고 있다고 생각한다.

[-] Negative

  • 기록할 내용들이 이번주도 많았는데, 놓친 부분이 많다. 강의에서 리눅스 명령어들이나 개발 환경 관리에 대한 팁들이 쏟아졌는데, 우선 강의 내용 소화하기에 급해 이런 내용들을 잘 정리해두지 못했다.
  • 코딩테스트 공부가 부족했다. 내가 매일 시간내서 하기로 다짐한 부분이다보니, 바쁘다는 핑계로 미루기 시작하면 한없이 미뤄지는 부분이다.. 좀 더 일찍 일어나서, 의식적으로 매일 아침 코테 문제 풀이를 계속 하자! 코딩 잘 하고 싶다며? 그럼 그만큼 노력해라 나 자신~~

[!] To Try

  • github의 TIL 레포지토리에 공부한 내용을 대략적으로라도 업로드해야겠다. 옵시디언에서는 1차 초안 또는 지극히 개인적인 기록들을 저장하고, 기술적으로 공부한 내용들은 모두 github에 업로드하도록 해야겠다. 블로그에는 TIL에서 좀 더 구조화한 내용들이나 회고를 중심으로 기록해서, 블로그 글의 품질을 유지하도록 해야겠다. 이런 기록물 퀄리티 별 작성 규칙들을 나름대로 구상해봤으니, 이제 실천해봐야지.
  • 잘 적용해서 유의미한 결과를 만들어내려 공부하고 있는데, 정작 ‘이 기술을 통해 뭘 하려고?’에 답하기 위한 노력은 부족하다고 느낀다. 내가 혼자서 상상할 수 있는 활용 사례에 한계가 있기도 하고. 따라서 AI 기술의 Use case들을 더 많이, 자주 살펴보려 한다. 혼자 하면 흐지부지되기 쉽고 확인할 수 있는 사례에 한계가 있어서, 부스트캠프에서 스터디를 모집해볼 생각이다. 이름하여 use case study study랄까?ㅎㅎ
  • 프로젝트가 본격적으로 시작되는데, 정말 몰입해서 깊게 파볼 생각이다. 추석 기간동안 가족과의 시간 물론 중요하지만, 그러면서도 다양한 모델들을 탐색하고 적용해보는 시간으로 만들어보자.

[?] Question

  • 어떻게 하면 우리 팀의 팀원들이 고르게, 적극적으로 프로젝트에 참여할 수 있을까? 단순히 의지에 맡기고 ‘알아서 잘 참여하세요’ 말하기보다는 자연스럽게 모두가 몰입하고 편하게 소통할 수 있는 분위기를 유도하고 싶다.

[.] Takeaway

본격적인 프로젝트 주제와 일정이 발표되면서, 프로젝트 및 협업에 대해 많이 생각했던 한 주였다. 개인적으로는 배운 내용들을 잘 기록해서, ML을 이용한 문제 해결 과정에 익숙해질 수 있기를 바라고, 팀에게는 모두가 열린 마음으로 새로운 시도를 하며 즐거운 기억으로 이 프로젝트가 기억될 수 있었으면 좋겠다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.