ChatGPT 4
요약
OpenAI의 GPT-4를 활용한 티켓 분류 봇 구축 사례와 기술적 도전 과제를 다룹니다. 모델의 지연 시간, 비용 문제, 환각 현상을 해결하기 위해 Redis 캐시와 Pinecone 기반의 벡터 스토어를 결합한 검증 프로세스를 적용한 경험을 공유합니다.
핵심 포인트
- GPT-4 기반 서비스 구축 시 토큰 제한 및 지연 시간 관리의 중요성
- Redis 캐시와 키워드 분류기를 통한 비용 및 성능 최적화
- Pinecone 벡터 스토어를 활용한 환각(Hallucination) 억제 전략
- 코사인 유사도 임계값을 이용한 오정보 필터링 프로세스
원래 lavkesh.com에서 게시되었습니다.
저는 OpenAI가 구축한 언어 모델인 ChatGPT를 실험해 왔습니다. ChatGPT는 Chat Generative Pre-Trained Transformer의 약자로, 텍스트를 입력으로 받아 인간처럼 들리는 응답을 생성하며, 방대한 양의 텍스트로 학습되고 인간의 피드백을 통해 정교해진 GPT-4 엔진을 기반으로 작동합니다.
ChatGPT를 구축하는 과정은 사전 학습 (pre-training)과 미세 조정 (fine-tuning)의 두 단계로 이루어집니다. 모델은 인터넷 텍스트의 거대한 데이터셋으로부터 문법, 사실, 추론 방식 등을 학습하며, 그 후 인간 검토자들이 지시 사항을 적절히 따르고 안전성에 대해 더 신중하게 생각하도록 가르치기 위한 예시들을 제작합니다.
ChatGPT는 문맥을 이해하고 일관된 응답을 생성하여 채팅 및 고객 지원에 유용하며, 문서 요약, 언어 간 번역, 창의적인 콘텐츠 작성도 가능합니다. 심지어 코드 작성을 도와 코드 스니펫 생성, 디버깅, 개념 설명까지 수행할 수 있습니다.
저는 처음에 Azure OpenAI 엔드포인트를 사용하여 중소 규모의 SaaS 기업을 위한 티켓 분류 (ticket triage) 봇에 ChatGPT를 연결했습니다. 모델은 FastAPI 레이어 뒤에 배치되었고, 4k 제한을 넘지 않도록 각 요청을 2k 토큰으로 제한했으며, 반복되는 쿼리를 위해 Redis 캐시를 추가했습니다. 실제로 일반적인 사용자 메시지에 대한 지연 시간 (latency)은 약 350ms 수준이었으나, 페이로드 (payload)가 제한치에 가까워지면 최대 1.2s까지 급증하는 것을 확인했고, 이로 인해 꼬리 부분 (tail)의 요청에 대해서는 키워드 기반 분류기로 전환해야 했습니다. 표준 티어 기준 1M 토큰당 비용은 약 $15였으며, 따라서 바쁜 지원 채널은 한 달에 $2k를 소모했고, 이 수치는 기업이 자유 형식 쿼리의 양을 재고하게 만들었습니다.
ChatGPT의 인상적인 점 중 하나는 복잡한 주제를 설명하거나 학습을 돕는 교육 능력입니다. 텍스트로 설명할 수 있다면, GPT-4는 텍스트 생성부터 질문 답변에 이르기까지 무엇이든 시도해 볼 수 있습니다.
하지만 ChatGPT는 긴 대화에서 문맥을 놓치거나 학습 데이터의 편향 (bias)을 반영하는 데 어려움을 겪으며, 때로는 사실을 지어내거나 실제로 알지 못하는 내용에 대해 자신 있게 말하기도 합니다. 그렇기 때문에 독립적인 검증 없이 중요한 정보를 위해 ChatGPT를 절대 신뢰해서는 안 됩니다.
환각 (hallucination) 현상을 억제하기 위해, 우리는 Pinecone을 기반으로 구축된 벡터 스토어 (vector store)를 호출하는 검증 단계를 모델에 결합했습니다. 프롬프트 (prompt)는 먼저 모델에게 간결한 답변을 생성하도록 요청한 다음, 해당 답변을 임베딩 (embed)하여 선별된 지식 베이스 (knowledge base)를 대상으로 유사도 검색 (similarity search)을 수행합니다. 만약 가장 높은 일치 항목이 0.78의 코사인 임계값 (cosine threshold) 미만으로 떨어지면, 해당 응답을 인간의 검토를 위한 플래그 (flag)로 표시합니다. 우리의 배포 환경에서 이 필터는 조작된 진술의 약 42%를 최종 사용자에게 도달하기 전에 잡아냈으며, 전체 왕복 시간 (round-trip)에는 약 120ms를 추가했습니다.
오정보 생성부터 딥페이크 (deepfakes) 제작에 이르기까지 오용의 위험 또한 존재하며, 이는 반드시 해결해야 할 과제입니다. OpenAI는 편향을 줄이고 모델의 성능을 개선하기 위해 노력하고 있습니다.
앞으로의 목표는 문맥 처리 능력을 개선하고, 환각을 줄이며, 편향을 최소화하는 것입니다. ChatGPT는 비록 마법은 아니며 실질적인 한계가 있음에도 불구하고, 우리가 텍스트 및 코드와 상호작용하는 방식을 근본적으로 변화시키며 사람들이 일하는 방식을 이미 바꾸어 놓았습니다.
모니터링 (monitoring)이 가장 어려운 부분임이 드러났습니다. 우리는 요청 횟수, 에러율, 토큰 소비량을 측정하기 위해 API 게이트웨이에 Prometheus 메트릭 (metrics)을 설치했으며, 이를 Grafana 대시보드에 연결하여 환각 플래그가 트래픽의 5%를 초과할 때 PagerDuty 알림이 발생하도록 설정했습니다. 이 알림 창 (alerting window) 덕분에 모델의 과잉 일반화 (over-generalize) 경향을 의도치 않게 증가시켰던 최근의 프롬프트 템플릿 (prompt template) 변경 사항을 롤백 (roll back)할 수 있는 충분한 시간을 확보할 수 있었습니다. 이러한 피드백 루프 (feedback loop)가 없었다면 우리는 해당 문제가 며칠 동안 지속되도록 방치했을 것입니다.
저는 ChatGPT가 글쓰기나 디버깅 (debugging)과 같은 작업에 어떻게 도움이 될 수 있는지 직접 목격해 왔습니다. 비록 이것이 인간의 판단을 대체할 수는 없지만, 우리의 능력을 증강 (augment)하고 더 효율적으로 일할 수 있도록 도와주는 강력한 도구입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기