오복이는 대학교 4학년 졸업작품 수업에 의해 탄생하게 되었다.
개인 프로젝트로 진행했는데, 기왕이면 재미있고 비개발자도 이용해 볼 수 있는 서비스를 만들고 싶었고 회사에서 만드는 챗봇 말고 내가 만든 챗봇 서비스를 배포해보고 싶었다.
이렇게 오복이 v1.0 이 탄생하게된다.
그 후 졸업을 한 뒤에도 나는 이 프로젝트를 계속 이어가고있다...

이름 : 오복이
직업 : 심리상담사
종류? : 물범
TMI : 오복이는 이름 지을 당시 고깃집에서 "오복 가위"를 들고있어서 탄생하게 되었다.
소개글 :
"위로봇 오복이"는 인공지능 비서가 아닙니다.
오복이는 내가 한 질문에 대해 위로로 답변해주는 감성 대화 챗봇입니다.
오복이는 정해진 시나리오로 답변하지 않습니다.(룰 기반이 아닙니다)
(직접구현한 API를 통해 답변합니다.)
직접 구현한 API + Generative AI 를 통해 답변합니다.
오복이의 기본 알고리즘은 검색을 통해 질문과 가장 유사한 질문을 찾아
그의 해당하는 답변을 해줍니다
캐릭터 이미지는 Open-AI의 인공지능 “DALL-E”가 생성한 이미지입니다.
다른이미지를 쓰려다 저작권 문제가 있어 직접생성한 이미지를 사용했습니다.
위로봇 : 카카오톡 채널 홈
http://pf.kakao.com/_BNZRb
2023.03.29 AWS 예약 인스턴스로 교체
*계속 서비스할 생각으로 예약 인스턴스(1년치)를 사비로 구매하였습니다.
33만원 비용발생 ㅠㅠ
EC2 인스턴스 : t3a-medium
CPU : 2-core , 메모리 : 4GB
Storage(EBS) : 20GB
OS : Amazon Linux
선정 이유 :
1. Python 기반 웹 프레임 워크
2. 다른 프레임워크에 비해 속도가 가장빠른(Python 기준)
3. 회사에서 사용하기 때문에 익숙함.
4. ORM 지원
오복이 v1.0 배포 ( 2022.11.30 )
: 엘라스틱 서치 기반 키워드 검색 알고리즘
: nori 형태소 분석기 사용
: 10만개의 답변 후보 사용
Pingpong API 연동 (2022.12.10)
: 스캐터랩의 pingpong 챗봇 빌더를 만들어 오복이 패르소나 연결
: 일상적인 질문을 대체함
: 10만개에서 찾지못한 질문은 핑퐁AI가 처리하도록 설계
오복이 v2.0 배포 (2023.02.10)
: 엘라스틱 서치 -> 딥러닝 기반(Sbert) 검색으로 변경
: Sparse Vector -> Dense vector
: 키워드 기반 검색 알고리즘에서 문장 임베딩 기반 검색 알고리즘으로 변경
: klue/roberta-base 의 korSTS/NLI를 파인튜닝한 sbert 모델
임베딩 모델 변경 (2023.03.05)
: klue/roberta-base -> snunlp/KR-SBERT-V40K-klueNLI-augSTS
: 데이터 증량기법을 사용해 재학습한 모델로 변경
인스턴스 내 RDB PostgreSQL 구축 (2023.03.06)
: csv 데이터를 Pandas로 불러와서 답변을 찾는 방식에서 PostgreSQL RDBMS 를 통해 답변 Table을 만들어 fetch 해서 사용하게 변경 - 시간이 조금 늘어나지만 메모리 절약(답변 DB를 메모리에서 계속 들어있지 않음)
: 사용자가 질문한 내용과 "오복이"가 답변한 답변 로그를 DB에 수집
Top-K sampling 적용(2023.03.11)
AWS 예약 인스턴스로 교체(2023.03.29)
: GCP 3개월 무료 크레딧 만료 -> AWS 예약 인스턴스 구매
벡터 검색 최적화(2023.04.10)
(1).Faiss 유사도 검색 알고리즘 적용
(2).Faiss PQ 벡터 양자화 적용
: 임베딩 벡터 메모리 1/4로 감소
: 유사도 계산 속도 향상
(3). 핑퐁 답변 유무의 따른 임계치 때문에 유클리디언 거리가 아닌 벡터의 내적으로 계산함.
임베딩 모델 최적화(2023.04.10)
(1). Torch 모델에서 -> ONNX 모델 uint8 양자화 모델로 변경
: 임베딩 속도 7배 향상
: 모델 크기 1/4로 감소
: 서버 CPU 부하 감소
: 정확도 차이 거의 없음 dot score +- 0.02 이하
생성 AI 도입(2023.05.01)
: Naver Hyper Clova API 연동
: Open AI ChatGPT 연동 *카카오톡 채널 적용 불가