저희 팀 “빅뱅”은 AI를 활용해 수많은 회의를 효과적으로 관리하자는 목표로 활동하였습니다. 주된 기능으로는 음성 파일에 STT 모델을 이용하여 자동 전사할 수 있고, 전사된 문서에서 질의응답 기능을 통해 원하는 정보를 빠르게 찾을 수 있습니다.
기업 내, 기업 간 회의가 많아지면서 회의를 효과적으로 관리할 수 있는 AI 회의록 서비스가 등장하고 있지만 음성에서 텍스트로 변환하면서 오차가 많이 발생했으며 문서를 찾아보는 데 시간이 걸린다는 문제점들이 존재했습니다. 따라서 저희 “빅뱅”은 아래와 같은 방식으로 기존 서비스들의 문제점을 보완하여 회의를 효과적으로 관리하며 찾아볼 수 있도록 도움이 되고자합니다.
기존 서비스들과의 차별점
- 사용자에게
음성 파일
을 입력으로 받아STT된 회의록
을 전달 - 회의록 내용 중 특정 정보를 빠르게 찾을 수 있도록
질의응답
기능 추가 한국어에 특화
되어 보다 정확한 회의록 전사 서비스Retriever 모델
을 기반으로LLM Generation
의 환각 축소
구희찬 | 김민석 | 이상수 | 최예진 |
---|---|---|---|
이름 | 역할 |
---|---|
구희찬 | Git Repository 관리, FastAPI로 Back-End 개발, 챗봇용 Chat Completion 클래스 구현, 벡터 데이터베이스 탐색 및 Retrieval 구현, MongoDB CRUD 구현, 음성 및 텍스트 분할 구현, STT 파인튜닝 코드 작성, MLflow 로깅 코드 작성, API 요청 테스트 코드 작성 |
김민석 | FastAPI로 Back-End 개발, Gradio-FastAPI 통신, 680GB 데이터 라벨링/전처리, STT 모델 파인튜닝 및 허깅페이스 업로드 자동화, 평가지표 기반 모델 테스트 코드 작성, FAISS vectorDB CRUD 구현 |
이상수 | Gradio로 Front-End 개발, Gradio-FastAPI 통신, 한국어 음성 데이터셋 탐색 및 구축, 음성 데이터 샘플링 레이트 전처리, 발화자를 자동으로 분리하여 발화자 기반 회의록 작성, STT 모델 파인튜닝, Retrieval(DPR) & Reader 모델 구현, RAG |
최예진 | Project Manager, 산출물 제작, 협업 툴 관리, 테스트 데이터셋 구축, 학습 데이터셋 전처리,모델 테스트 ,Gradio로 Front-End 개발, STT 모델 파인튜닝 |
프로젝트는 Gradio와 FastAPI를 사용하여 프론트엔드와 백엔드를 구축했습니다. 사용자는 Gradio를 통해 음성 파일을 업로드 할 수 있으며 STT 모델로 전사된 Text에서 질의응답 챗봇을 통해 원하는 정보를 빠르게 검색할 수 있습니다. DB는 Text의 원문을 저장하는 MongoDB와 Text가 청킹된 문서를 임베딩하여 벡터 형태로 저장하는 FAISS를 사용하였습니다. 이를 통해 사용자는 빠르고 편리하게 저장된 문서를 찾아볼 수 있습니다.
- 음성 파일을 업로드합니다.
- 긴 음성 파일은 STT가 어려우므로 10초 내외의 길이로 나누게 됩니다.
- 이 과정에서 대화가 오가지 않는 침묵이 흐르는 부분은 포함되지 않습니다.
- 따라서 분할된 음성 파일의 총합은 원본 파일보다 짧습니다.
- STT를 진행하고 결과로 회의 전문 텍스트가 나오게 됩니다.
- 이 텍스트와 기타 메타데이터를 기반으로 MongoDB에 저장되어 관리됩니다.
- 그리고 텍스트를 임베딩하는 과정이 필요한데 긴 텍스트는 임베딩이 어려우므로 적절하게 다시 분할합니다.
- 임베딩은 사람이 이해할 수 있는 개체를 기계가 이해할 수 있는 벡터의 형태로 바꾸는 것입니다.
- 임베딩된 벡터를 FAISS 벡터 데이터베이스에 저장합니다.
- FAISS는 Facebook AI팀에서 개발한 유사도 검색을 위한 벡터 저장소입니다. CUDA 가속을 사용할 수 있어서 빠른 유사도 검색이 가능하다는 특징을 가지고 있습니다.
- 위의 모든 준비 과정을 마치게 되면 사용자의 질문을 입력받습니다.
- 입력된 사용자의 질문 또한 임베딩하여 벡터 데이터베이스에 있는 문서와 유사도가 높은 k개의 문서를 찾습니다.
- 클로바 모델이 검색된 문서를 기반으로 사용자의 질문을 답변을 생성합니다.
1️⃣ STT fine-tuning
- 허깅페이스에 업로드된
openai/whisper-small
모델을 한국어에 맞게 fine-tuning한SungBeom/whisper-small-ko
모델에 추가적으로 fine-tuning한 모델을 사용
- AI Hub에서 회의와 관련된 음성데이터를 api를 활용해 약 1TB 다운받고, 한 분야에 편향되지 않도록 섞어주었으며, Whisper 모델이 학습했던 샘플링 레이트 16kHz로 전처리 하여 학습 데이터셋 구축.
- STT 모델이 전사한 Text 데이터를 HyperClova X의 청킹 클래스를 활용하여 맥락에 맞는 문서로 분리해주어 Retriever에 활용
2️⃣ Generation Model
-
한국어에 특화된 네이버의 HyperClova X 사용
-
Langchain을 이용하여 텍스트 분할 → 임베딩 → FAISS 벡터 데이터 베이스 관리
-
Prompt Engineering 활용
✅ RAG
- FAISS Vector Database를 사용하여 사용자의 질의(query)에 유사도가 높은 Top-K의 문서를 검색
✅ LLM
- HyperClova X 모델은 검색된 문서를 기반으로 prompt에 맞게 답변 생성