회고할 내용
1. 개발문화정립
2. LLM경험
1. 개발문화정립
약 2주간의 토이프로젝트가 2월 4일 발표를 기점으로 끝이 났다. 이번 프로젝트에서 가장 인상깊었던 부분은 개발 문화에 대한 정립이었는데, 이전 프로젝트에서 개발 프로세스에 여러 문제점을 느낀 한 팀원분이 좋은 개발 문화를 정립하는데 큰 기여를 해주셨는다. 특히 그 부분이 프로젝트 진행에 있어 크나큰 도움이 됐다. 팀원 분께서 느낀 (전)프로젝트의 문제점은 세가지였다.
1. 한 PR의 많은 커밋
2. 잦은 충돌
3. 대기 / 병목으로 인한 효율 저하

이 문제점을 다음과 같이 수정했다.
1. 하나의 PR에는 최소한의 코드만 작성 / 변경
2. 개발하는 시간 이외에 충돌 문제를 해결하는 시간 줄이기
3. 목표를 수치화

스프링 부트 오픈소스나 다른 이름있는 프로젝트들의 깃헙 협업 방식을 참고하여 개발 협업과정이 원활히 진행 될 수 있도록 설계했다. 그 결과 사진에도 볼 수 있듯이 초반에는 복잡하고 여러개의 브랜치가 merge되었으나 후반부로 갈 수록 브랜치가 잘 정리되어있고 흐름이 단순화 되어있는것을 확인할 수 있었다.

2. LLM모델을 활용한 챗봇 서비스 개발
Fast API를 활용한 OpenAI 챗봇 개발이 주제였고 LLM을 활용한 챗봇서비스는 처음 접하는 주제였다. 여러 강사님께서 특강을 해주실때 RAG에 대한 부분을 언급해주셨고 할루시네이션을 일으키고 전문성이 부족한 LLM모델이 RAG와 결합될 때 기존에 발생하는 LLM의 문제를 어느정도 해소할 수 있다는 내용으로 받아들였다. 따라 나는 RAG를 기반으로한 LLM챗봇서비스를 개발하려했고 서비스 개발을 위해 youtube GPTers에 있는 이상연님의 영상에 나오는 RAG구조를 참고했다.
참고한 영상을 바탕으로 아래와 같은 RAG 기반 LLM application 구조를 설계했다.

잡화 쇼핑몰이 주제였기에 크롤링을 담당하신 팀원분께서 데이터를 스크랩해주셨고, 그 데이터를 바탕으로 벡터db에 저장시킬 docx파일을 만들었다. upstage는 회원가입을 하면 10달러짜리 api key를 제공해주기에 upstage를 사용했고 임베딩 모델과 ai 언어 모델은 upstage에서 제공해주는 모델을 사용했다. 구조에서 나와있듯이 쇼핑몰 데이터를 먼저 임베딩화 시켜 벡터db에 저장하고 사용자의 질문이 컨텍스트를 통해 입력되었을때 사용자의 질문을 임베딩해서 벡터화 되어있는 쇼핑몰 데이터 정보와 유사도 검색을 한다(코사인 유사도 검색으로 되어있다. 코사인 유사도 검색은 벡터의 각도로 유사도 측정하는 것이다.) 이렇게 사용자의 질문과 검색결과 N개(나는 4개로 설정했다.)를 포함해 AI 언어모델에 전달하고 모델은 입력 토큰과 검색 결과를 바탕으로 답변을 생성하게 된다.

'회고' 카테고리의 다른 글
패스트캠퍼스 중간회고(240928~250110) (0) | 2025.01.10 |
---|