본문 바로가기

Log

2023 회고라고 쓰고 반성문이라고 읽는다.

  회사 업무

 

[기존 프로젝트 유지보수]

  • 임베딩 모델
    • 성능 향상을 위한 전처리 방식 변경 적용
    • redis / rdb 데이터 교체 적용하여 배포
    • API 스웨거 문서 생성
  • 연관검색어 추천
    • 매일 삭제되는 검색어를 추천에서 제외하도록 엘라스틱 서치 일간 동기화 작업
  • CDJ(고객구매여정) 분류 모델 성능 향상
    • 최대한 완성된 문장만 사용하도록 전처리 방식 수정
    • 데이터의 라벨 확인하여 애초에 잘못 분류된 데이터 보정

[분석 업무]

  • 서프 의미론적 임베딩
    • 서프 임베딩 기반 클러스터링 수행
    • 원본 / 차원축소 결과 비교(umap / tsne)
    • t-sne로 차원축소 및 텐서보드 시각화
  • 텍스트 내에서 검색어로서 가능성이 있는 명사구 추출
    • 검색결과 상위 페이지에서 검색어의 후보를 추출하기 위함
    • 검색어의 품사 패턴 분석 및 명사구 패턴 정의 (관련 작성 글)
      • 토큰화 방식: mecab 토크나이저에 사내 사용자 사전 추가
    • api 개발 및 워드 클라우드 기능으로 추가
    • 룰베이스 기반의 방식이며 해당 방식이 최선인가에 대한 의문점

[새 프로젝트]

  • 키워드 셋으로부터 토픽 및 토픽명 생성
    • 키워드 벡터로 밀도 기반 클러스터링 (관련 작성 글)
      • 밀도 기반 클러스터링 한계 보완을 위한 룰 베이스 아웃라이어 처리 방식 고안
      • 한계: 적절한 클러스터링 평가 방법을 찾지 못함
    • LLM기반 토픽명 생성
      • 하이퍼클로바 모델 테스트 및 튜닝
      • chatgpt와 가격 및 성능 비교 후 의사 결정
  • gpt 분석 기능 추가
    • 검색 페이지 요약 / 검색 결과 gpt 분석 / gpt기반 웹사이트 컨텐츠 생성 프롬프트 추가
    • 프롬프트 엔지니어링 관련 업무
      • 정보 손실을 최소화 하며 입력 토큰 한도 처리 방식 고안
      • promptlayer를 도입하여 사내 프롬프트 저장 및 이력 관리 (관련 작성 글)
      • 타 팀과 협업을 위한 사내 프롬프트 및 입력 변수 관리 패키지 개발 (관련 작성 글)
        • 프론트에서 해당 패키지를 사용하여 프롬프트를 생성하도록 함으로써 불필요한 중간 api요청 단계를 제거
    • 아쉬운 점:
      • gpt 답변의 안정성을 평가하는 방식에 대한 불완정성
      • 토큰 한계에 도달할 경우 이어쓰기 기능이 추가되지 않은 상태
  • 임베딩 서버 글로벌 서비스 준비 (일본)
    • 국가별 언어 특징을 반영하여 자연어 처리 파이프라인 구축 및 임베딩 모델 학습 및 서빙
    • 다국어 지원을 위한 코드 리팩토링
  • 웹 사이트의 유입 키워드 기반 카테고리 분류 모델 학습
    • 모델: fasttext
    • 카테고리 정의 (최종 126개의 라벨)
    • 라벨별 학습 데이터 반자동 구축 프로세스 고안
    • 데이터 중심 모델 개선 프로세스 적용
      • 라벨별 f1-score 확인 및 성능 불균형 조정
      • 성능 저하의 원인이 되는 불순한 입력 데이터 제거 후 성능 개선
    • 아쉬운점: 오버피팅 가능성 미확인, 학습 실험에 대한 이력 관리 미흡, 주기적 학습 프로세스를 구축하지 않아 멈춰있는 상태
  • 금융 데이터 프로젝트
    • 뱅킹, 보험, 카드, 증권 도메인 별 대>중>소 토픽 분류 및 CDJ 분류 모델 개발
    • 토픽 분류
      • 라벨수(약 300개 이상) 대비 데이터 수가 부족한 상황에서 성능 최적화를 위한 모델 고안
        • 벡터DB 기반 knn 매칭 알고리즘으로 적용
      • 아쉬운점: 키워드 내 수정자에 가중치 부여하는 방식이 미흡
    • streamlit 기반 모델 서빙
      • 대량의 키워드 추론시 페이지간 이동할 경우 중단된 지점부터 재개하도록 구현
      • 아쉬운점: 페이지 이동 시 이전 페이지에서의 예측이 백그라운드로 진행 가능한지 파악 미흡 → 기능 미완성

 

  기술적 발전

  • wandb 도입을 통한 실험 관리
  • langchain
  • pinecone
  • streamlit

 

  • MLOps를 위하여 사내 실험 관리를 위한 프로세스 구축을 위해 wandb를 도입하고자 하였지만 제대로 이루어지지 않은 것 같음
    • 팀 내에 전파하여 문화로 정착되도록 하고 싶었지만 아직 나조차도 익숙해지지 않아 혼자만 사용하는 상태..
    • 내년에는 팀내 전파를 목표
  • LLM기반 앱 구축을 위해 langchain을 적용하였지만 이 또한 아직 파악이 미흡하여 아직 내가 모르는 기능들에 대한 적용이 이루어지지 않은 상태
    • langchain의 강점인 chaining을 구현하지 않은 것 같은 찝찝함
    • real-world의 프로젝트들은 어떤 식으로 구현되어있는지 조사 및 공부가 더 필요
    • 내년에는 챗봇 기능도 추가해야하기 때문에 글또에서 제공받은 강의(Langchain으로 LLM기반 어플리케이션 개발하기)도 들으면서 더 깊이 공부해야할 필요가 있음

 

  기타 성장을 위한 노력

 

[사내 스터디 참여]

고통스러운 8시 출근의 서막

  • 오픈소스 분석

작지만 소중해..ㅋ

  • 라이브러리 톺아보기
    • pinecone
    • ray
    • wandb
    • pytorch-lightning
  • 논문구현 코드 분석
  • 리팩토링 서적
  • 알고리즘 스터디 (중도 중단)
    • 미래의 이직 상황을 위한 코테 준비를 2022년부터 올해 초까지 했지만 올해 중단됨
    • 원인: 이직에 대한 생각의 변화 및 알고리즘 실력에 대한 스트레스
    • 2024부터는 하루 한 문제씩 다시 풀도록 다시 강제적 환경을 조성해야할듯

 

[기타 활동]

  • 글또 8기, 9기 참여
    • 8기 활동이 끝난 후에도 지속적 글쓰기가 이루어지지 못함
    • 올해는 9기가 끝나도 습관화를 위해 다음 기수 시작 전 활동할 스터디에 참여해야 할듯하다
  • 헬스
    • 건강 및 체중관리를 위해 등록하였으나 출석률 36%밖에 못미치는 저조한 성적..
    • 최근에는 강제적 출석 환경을 만들기 위해 친구를 섭외하여 함께 운동하기 시작

 

 

  반성, 그리고 앞으로는요

 

  • 항상 기능 구현에만 급급해서 개발한 것 같음
    • 보여주기식 성능 리포트, 모델 배포 후 나몰라라 했던 과거의 나날들에 대해 반성함
    • 실제 환경에서의 성능 체크, 모델 배포 후 트래픽, 속도, 내 프로세스가 얼마나 많은 리소스를 잡아먹는지 모니터링하고 유지보수하도록 해야한다!
  • 여러가지 프로젝트를 진행하면서 새 프로젝트가 진행되면 이전 프로젝트에 신경을 못 쓰게 되는 것 같음
    • 이런 상황에서 이전 개발사항에 대해 문제가 발생하면 컨텍스트 확인을 해야하는데 나 혼자 맡은 프로젝트에 대해 github 이슈 등 관리가 제대로 안되어있어 기억을 더듬느라 시간 소요가 많이 됨
    • 앞으로는 미래의 나를 위해서 모든 것은 기록하는 습관을 들이자
    • 혼자서만 하는 프로젝트라도 컨벤션에 대해 공부하고 이를 지켜서 개발하도록 해보자
  • 내년엔..
    • MLOps 엔지니어가 되기 위해 아직 자동화되지 않은 부분을 자동화하도록 프로세스를 개선해보자
    • 팀 내의 문화가 없으면 내가 문화를 만들어보도록 하자
    • 시키는 일만 하는것이 아닌 필요할 일을 주체적으로 만들어서 하자
    • 동시에 NLP에 대한 기본기를 닦자
    • 누군가에게 설명할 수 있을때까지는 모르는 것임을 인지하자

'Log' 카테고리의 다른 글

글또 8기를 마치며  (0) 2023.07.16
글쓰는 개발자 모임 글또 8기를 시작하며  (0) 2023.02.11
연어의 삶의 지도  (0) 2023.01.15