Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 오블완
- AI
- SRE
- CloudWatch
- Spring
- minikube
- golang
- go
- 바이브코딩
- CKA 기출문제
- kotlin
- AWS EKS
- APM
- CKA
- 컨텍스트 엔지니어링
- Java
- Kubernetes
- 기록으로 실력을 쌓자
- kotlin querydsl
- kotlin coroutine
- 정보처리기사 실기 기출문제
- 티스토리챌린지
- 코틀린 코루틴의 정석
- aws
- Pinpoint
- PETERICA
- 공부
- Linux
- MySQL
- tucker의 go 언어 프로그래밍
Archives
- Today
- Total
피터의 개발이야기
[AI] IntentFlow - 기술 요소 목록 본문
반응형
ㅁ 들어가며
IntentFlow는 다음 5개 블록으로 구성된 음성 기반 Intent 추론 엔진이다:
음성(STT) → 텍스트 → 임베딩 → 벡터 검색(Vector DB) → 템플릿 or LLM → TTS
아래는 각 단계에서 기술적으로 이해해야 하는 핵심 개념 목록이다.
1️⃣ STT (Speech-to-Text)
✔ 무엇을 알아야 하나?
| 항목 | 설명 |
| Whisper 모델 구조 | encoder–decoder 방식, transformer 기반 음성 인식 |
| 음성 전처리 | wav(s16le), sample rate(16kHz), chunking |
| 모델 크기 | small, medium, large-v3, large-v3-turbo |
| 연산 방식 | float16, int8, int8_float16 (성능/속도 트레이드오프) |
| latency 관리 | p95 기준, chunk inference |
2️⃣ 텍스트 임베딩 (Embedding)
✔ 왜 필요한가?
→ 텍스트를 의미 공간에서 비교하기 위해 수치형 벡터로 변환
✔ 무엇을 알아야 하나?
| 항목 | 설명 |
| 임베딩 모델 | text-embedding-3-small (OpenAI), sentence-BERT류 |
| 임베딩 차원 | 512, 768 등 모델마다 상이 |
| 임베딩 특징 | 의미 기반 거리 비교 가능 |
| 정규화(Normalization) | L2 normalization → 코사인 유사도 안정화 |
| 입력 제한 | 최대 토큰 수, 빈 문자열 방어 로직 |
3️⃣ 벡터(Vector) & 유사도 검색(Vector DB)
✔ 어떤 개념을 이해해야 하나?
| 항목 | 설명 |
| 벡터 공간 | 텍스트 의미가 다차원 공간에 매핑 |
| 유사도 측정 방식 | 코사인 유사도(cosine), dot-product |
| ANN(Approximate Nearest Neighbor) | 빠른 검색을 위한 HNSW / IVF 기술 |
| Vector DB 종류 | Weaviate (IntentFlow 사용), Pinecone, Milvus |
| Top-K 검색 | 가장 가까운 의도 후보 K개 추출 |
| 임계값(Threshold) | 의도 매칭 판단 기준 (0.85 기본) |
→ IntentFlow에서 활용되는 튜닝:
INTENT_TOPKINTENT_THRESH
4️⃣ 의도(Intent) 매칭 로직
✔ 핵심 기술 요소
| 항목 | 설명 |
| utterance → embedding vector | 사전에 정의된 발화 패턴의 벡터화 |
| threshold 기반 매칭 | 특정 점수 이상이면 “의도 매칭 성공” |
| fallback 조건 | 미달 시 LLM 백업 호출 |
| 템플릿 렌더링 | {{변수}} 규칙 기반 reply_template format |
5️⃣ LLM Fallback (의도가 불분명한 경우)
✔ 이해해야 할 점
| 항목 | 설명 |
| 백업 조건 | score < threshold |
| temperature | 응답 창의성 조절 |
| max tokens | 응답 길이 제한 |
| 프롬프트 가이드 | 시스템 톤, 사용자 질문, 맥락 구성 |
6️⃣ 텍스트 → 음성 변환 (TTS)
✔ 핵심 기술 요소
| 항목 | 설명 |
| TTS 모델 | FastSpeech, VITS, Kakao / Google TTS |
| 입력 처리 | 텍스트 normalization |
| 출력 포맷 | wav(base64), pcm |
| 오디오 품질 | clipping 방지, 출력 샘플레이트(22kHz/24kHz) |
7️⃣ 전체 Orchestration 기술
✔ API 설계
/voice/infer- STT → Embedding → Vector Search → Template → TTS 조합
- latency 관리: p95 ≤ 1500ms 목표
✔ Config 운용
.env,config.yamlWHISPER_MODEL,INTENT_TOPK,LLM_TEMPERATURE
✔ 에러/예외 처리
- STT 실패 → fallback
- Embedding 빈값 → 기본 응답
- Vector Search 무결성 체크
- TTS 실패 → 텍스트 응답 fallback
8️⃣ Intent 설계 기술
✔ 필요 개념
- utterance 다양성(동의어, 말투, 변형)
- 템플릿 변수 처리
- 액션 스키마 구조
- 회귀 테스트 작성 (D2)
9️⃣ 성능/지표 이해
✔ 모니터링 지표
| 지표 | 설명 |
|---|---|
| p95 응답속도 | 전체 end-to-end 딜레이 |
| Intent 매칭 정확도 | threshold 조정 영향 |
| Fallback 비율 | 임베딩 품질 지표 |
| STT 정확도 | LLM 사용량 증가 요인 |
🔟 DevOps & ML-System 관점에서 알아야 할 것
✔ 배포/운영 측면
- GPU/CPU 선택 기준
- Whisper → GPU 최적화
- Vector DB 인덱싱 비용
- 로그/트레이스 구조 (STT/Embedding/TTS latency 분리)
📌 IntentFlow를 설명하려면 필요한 기술 전체 목록
필수:
- STT 개념 (Whisper)
- Embedding (임베딩 모델, 의미 벡터)
- Vector DB (HNSW/유사도/Top-K/Threshold)
- 템플릿 렌더링
- LLM fallback 구조
- TTS 변환
- Orchestration / latency 관리
보너스(있으면 설명 수준이 올라감):
- ANN 검색 구조 (HNSW)
- Embedding 차원 축소·정규화
- LLM temperature/tokens 영향
- 음성 chunking 전략
반응형
'AI > AI코딩 | 실습' 카테고리의 다른 글
| [AI] IntentFlow 프로젝트 회고 및 소개 (0) | 2025.11.12 |
|---|---|
| [AI] IntentFlow 개발 완료 회고 (0) | 2025.10.26 |
| [AI] 한시간 안에 V0를 이용한 웹페이지 만들기(feat. 헤커톤) (0) | 2025.09.30 |
| [AI] Cursor에서 토큰 사용량을 획기적으로 줄이는 실전 방법 (0) | 2025.09.11 |
| [AI CE] Task 관리와 도구 역할 분리 (0) | 2025.09.08 |
Comments