본문 바로가기
  • 컴공생의 공부 일기
  • 공부보단 일기에 가까운 것 같은
  • 블로그
Club|Project/카카오테크 부트캠프 | AI

🍍카부캠 18조 기획/AI계획

by 정람지 2024. 9. 27.

카카오 멘토링을 받았따

넘조앗따

멘토님이 밥도 사주신다고 했띠


🍍멘토링 내용 정리

# 멘토님 피드백

### 프로젝트 평가와 방향성:

1. **프로젝트 목적**:
    - 프로젝트를 **취업을 위한 도구**로 삼을 것인지, 아니면 **사업성**을 가지고 추진할 것인지에 대해 명확한 고민이 필요함.
    - 단순히 "남들이 쓰니까" 특정 기술을 사용하는 것과 **학습을 목적으로** 오버스펙 기술을 사용하는 것은 큰 차이가 있음.
2. **애자일 방식으로 개발**:
    - 배포 계획을 길게 잡지 않고, 작은 기능 단위로 완성해 나가며 **짧은 주기의 반복적인 배포**를 통해 프로젝트를 점진적으로 완성해 나감.
    - 최종 완성 목표는 12월이지만, 그 전에 단계별로 기능을 완성하는 방식으로 진행.

---

### 콜 포비아 프로젝트:

1. **콜포비아 극복을 위한 서비스**:
    - WebRTC 등을 활용한 **말하기 훈련** 서비스를 통해 콜포비아를 극복할 수 있도록 도움을 주는 형태로 기획.
    - 특정 문장을 반복해서 말하게 하며 **사용자의 말하는 습관을 개선**하는 방식.
    - 콜포비아 뿐만 아니라 일반 사용자들도 사용할 수 있는 **말하기 훈련** 도구로 발전 가능성.
2. **타겟 대상 및 사업성**:
    - 서비스의 **타겟 대상**이 명확해야 함. 콜포비아 사용자들이 실제로 이 서비스를 사용할 가능성이 높은지 고민 필요.
    - **AI 의존도가 높아지는** 부분이나, 기능 확장에 따른 기술적 난이도를 고려.
    - 장애인을 대상으로 하여 **음성 인식률을 높이는** 기능도 추가 가능성.

---

### 기술 선택과 프로젝트 관리:

1. **기술 선택의 이유**:
    - 기술을 선택했을 때, 그 기술을 사용하는 **명확한 이유**와 **학습 목표**가 있어야 함.
    - 사용한 기술에 대해 얼마나 알고 있는지, 그리고 **동작 원리**나 **기본 개념**에 대해 물어볼 수 있으니 학습 필요.
2. **애자일하게 프로젝트 진행**:
    - **큰 목표**를 세우지 말고, 기능을 작게 쪼개서 스텝 바이 스텝으로 프로젝트를 완성해 나가는 것이 중요함.
    - 짧은 기간에 완성품을 만들어 **실제 사용자가 사용할 수 있는 형태**로 배포하는 것이 핵심.

---

### 주요 요약:

- 프로젝트의 목적성과 방향성을 명확히 하고, 기술을 선택하는 이유를 학습과 성능 향상 등 **분명한 이유**로 설명할 수 있어야 함.
- 애자일 방식으로 **짧은 주기**로 프로젝트를 배포하고, **사용 가능한 최소 기능**부터 완성해나가는 방식으로 진행.
- 콜포비아 프로젝트의 **타겟 대상**과 **기술적 실현 가능성**을 명확히 해야 함

🍍기획 확정

  • '콜포비아'를 가진 사람이 전화 통화를 할 때, 상대방은 음성으로 계속 대화를 이어가고, '콜포비아'인 사람은 말을 하지 않고 문자로 편하게 답변을 입력합니다. 그러면 그 문자가 AI에 의해 음성으로 변환되어 상대방에게 전달됩니다. 상대방은 일반적인 전화 통화를 하는 것처럼 느끼지만, '콜포비아'인 사람은 문자만으로 모든 대화를 처리합니다. 이 과정에서 AI는 대화의 맥락을 실시간으로 파악하여 적절한 답변 예시를 제시해 주어, '콜포비아'인 사람이 당황하지 않고 더 편안하게 대화를 이어갈 수 있도록 돕는 서비스입니다.

🍍TODO

## [5번째 회의 노션 링크](https://www.notion.so/5-d85acf2e4e694908bee24727936f848e?pvs=4)

 

9월 30일 월요일 회의 준비할 내용
1. 클라우드 - 앱 쿠버네티스 배포, 서버 구성 방향
2. 풀스택 - 웹(오스틴), 앱(로키) 결정
3. 풀스택 - 통신 어떤 기술 사용할지
4. ai - 대화데이터 활용 및 모델 결정

=> 9/30 월요일 ~13시  기술 구현가능성 회의 전까지 조사해오기 
 
9월 30일 14시 회의 시작 
회의 주제: 각 파트별 기술구현 브리핑, 기획보완, mvp, 디자인 컨셉

* 추가회의(다 못 끝낸 경우): 9/30 오후 6시부터~~ 끝나면 퇴근!

 


🍍AI 기획

맥락 파악 후 답변 예시 추천 AI
• 대화의 맥락을 파악하고 적절한 답변을 제시하여, ‘콜포비아’ 사용자가 더욱 편하게 대화를 이어갈 수 있도록 돕는 기능

전체 개발 아키텍처

모델 유형:

경량화된 sLLM (BERT, DistilBERT, MiniLM 등) 모델 기반의 특정 태스크에 맞는 파인튜닝  
NLP 태스크: 

맥락 이해, 답변 예시 생성, 사용자 의도 분석  
핵심 모듈:  

  • 맥락 추적 모듈: 이전 대화 흐름 파악 및 기억을 통한 다음 대화의 컨텍스트 유지  
  • 답변 추천 모듈: 학습된 모델을 통한 대화 주제에 맞는 예시 답변 생성 및 추천  
  • 사용자 피드백 학습 모듈: 사용자가 선택한 답변 분석 및 향후 추천 품질 향상을 위한 강화 학습 적용  


기술 스택 선정

모델 프레임워크  
Hugging Face Transformers: 다양한 경량화된 NLP 모델(BERT, DistilBERT, MiniLM 등) 제공 및 손쉬운 파인튜닝, 파인튜닝 및 전이 학습을 위한 Trainer API 지원  
PyTorch: BERT 및 DistilBERT와 같은 NLP 모델 파인튜닝의 주요 딥러닝 프레임워크, 학습 시 세부적인 파라미터 튜닝 용이성  

추천 모델  
DistilBERT: BERT의 경량화 버전, 60%의 모델 크기와 97%의 성능 유지, 60% 더 빠른 응답 속도 제공  
MiniLM: BERT 기반의 초경량 모델, 지식 증류를 통한 학습, 실시간 대화 응답에 적합  
TinyBERT: 감정 분석 및 문장 의미 파악 같은 짧은 텍스트 이해에 특화된 모델  

모델 경량화 및 최적화  
지식 증류: 큰 모델(GPT-3, BERT 등)의 압축을 통한 응답 속도 및 메모리 사용량 최적화  
Pruning: 불필요한 파라미터 제거를 통한 모델 크기 감소  
Quantization: 모델 파라미터의 정수형 변환을 통한 메모리 사용 최적화  

데이터셋 준비 및 전처리  

데이터셋 종류  
대화형 데이터셋: MultiWOZ, Persona-Chat 등 다양한 대화 주제를 포함한 데이터셋 활용  
FAQ 기반 데이터셋: 사용자 질문-답변 데이터셋을 통한 답변 예시 추천 기능 학습  


전처리 및 데이터 증강  
Sentence Tokenization: 문장 분할을 통한 맥락 단위 이해  
Contextual Embedding: 이전 대화의 문맥 분석 및 현재 대화 반영  
Data Augmentation: Synonym Replacement, Back-Translation 등을 통한 다양한 대화 예시 생성  

모델 학습 및 파인튜닝 방법론  
모델 파인튜닝  
전이 학습: 기존 사전 학습된 BERT, MiniLM 등의 특정 태스크(맥락 추적, 대화 흐름 이해)를 위한 추가 학습  
문맥 기반 학습: 사용자 패턴이나 응답을 맥락으로 추가하여 정교한 답변 생성 유도  

모델 평가  
BLEU, ROUGE, F1 Score: 모델 답변의 적절성 평가  
Perplexity: 언어 모델의 문장 생성 능력 평가 지표  
Human Evaluation: 사용자 피드백을 통한 응답 평가 및 품질 개선  

Continuous Learning  
Reinforcement Learning: 특정 답변 선택 시 모델에 긍정적 강화 신호 제공을 통한 향후 추천 품질 향상  
Few-Shot Learning: 예시 몇 개만으로도 새로운 맥락의 빠른 학습  


실시간 시스템 배포 및 서비스  

API 서버 구축  
FastAPI: 실시간 응답 처리 및 비동기 요청 관리 최적화, 모델 예측 및 데이터베이스 업데이트의 빠른 처리  

모델 서빙 및 최적화  
ONNX Runtime: 모델을 ONNX 형식으로 변환하여 빠른 추론 및 경량화된 배포, PyTorch나 TensorFlow 모델의 ONNX 변환을 통한 CPU에서의 고성능 추론  
TensorRT: NVIDIA GPU 기반의 모델 최적화 및 대규모 응답 처리 가속  

대화 데이터베이스  
Elasticsearch: 대화 데이터의 실시간 검색 및 텍스트 분석  




<기타 기능>

1. STT (Speech-to-Text) - 음성 인식
- 상대방이 말한 내용을 실시간으로 텍스트로 변환하여 '콜포비아' 사용자가 문자로 볼 수 있도록 하는 기능
라이브러리 및 서비스
  - Google Cloud Speech-to-Text: 정확도 높은 음성 인식
  - AWS Transcribe: 다양한 포맷 지원 및 실시간 변환 기능
  - Microsoft Azure Speech API: 60개 이상의 언어 지원 및 커스터마이징 가능
  - Vosk: 오픈소스 라이브러리로, 로컬 환경에서 사용 가능

2. TTS (Text-to-Speech) - 텍스트 음성 변환
- '콜포비아' 사용자가 입력한 텍스트를 자연스러운 음성으로 변환하여 상대방에게 전달하는 기능
라이브러리 및 서비스
  - Google Cloud Text-to-Speech: 다양한 목소리 스타일 선택 가능.
  - AWS Polly: 음성 샘플을 선택하거나 커스터마이징 가능.
  - Microsoft Azure TTS: 감정 표현이 가능한 자연스러운 음성 제공.
  - Coqui TTS: 오픈소스, 커스터마이징 가능한 텍스트 음성 변환 라이브러리.

+
Customization - 감정 및 말투 설정
- '콜포비아' 사용자가 입력한 텍스트의 감정을 분석하고, 그에 맞는 톤으로 TTS를 변환하여 전달하는 기능을 추가하면 더 자연스러운 대화가 가능
추천 라이브러리 및 서비스
  - AWS Polly: 감정 기반 목소리 조정 가능.
  - Microsoft Azure Emotion Recognition API: 텍스트의 감정 인식.
  - NVIDIA Riva: 음성의 억양, 강세, 감정 표현 커스터마이징.