Chatbot
챗봇은 텍스트나 음성으로 자연어 대화를 나누는 소프트웨어로, ELIZA 같은 키워드 매칭 스크립트부터 ChatGPT 같은 LLM 채팅 앱까지 다양합니다.
챗봇은 텍스트나 음성으로 자연어 대화를 나누는 컴퓨터 프로그램입니다. MIT에서 작성되어 1966년에 발표된 Joseph Weizenbaum의 ELIZA는 일반적으로 최초의 챗봇으로 인정받습니다. ELIZA의 DOCTOR 스크립트는 키워드를 찾아 사용자의 말을 질문으로 되돌리는 방식으로 심리치료사를 모방했습니다. Weizenbaum은 자신의 비서까지 포함한 사용자들이 ELIZA가 자신을 이해하는 것처럼 속마음을 털어놓는 모습을 보고 충격을 받았습니다. 이후 챗봇은 규칙 기반 스크립트에서 인텐트 기반 봇, 대규모 언어 모델(LLM)에 이르기까지 세 세대를 거쳤습니다. 2022년 11월 30일 출시된 OpenAI의 ChatGPT가 세 번째 세대를 대중화했으며, 이제 "챗봇"은 일반적으로 ChatGPT, Claude, Gemini와 같은 LLM의 채팅 인터페이스를 의미합니다.
챗봇 작동 방식#
- 규칙 기반 챗봇: 사용자의 말을 직접 작성한 패턴과 대조하고 템플릿에 따라 답변합니다. 예측 가능하고 비용이 저렴하지만, 작성자가 예상하지 못한 표현에는 대응하지 못합니다.
- 인텐트 기반 챗봇: 자연어 이해(NLU) 분류기가 각 메시지를 잔액 확인과 같은 인텐트에 매핑하고 계좌나 날짜 등의 세부 정보를 추출한 다음, 디자이너가 만든 대화 흐름에 따라 답변을 결정합니다. 은행, 항공사, 통신 회사는 모든 답변을 사전에 검토할 수 있다는 이유로 이런 방식의 고객 서비스 봇을 구축했습니다.
- LLM 챗봇: 지금까지의 대화를 바탕으로 한 번에 토큰 하나씩 답변을 생성합니다. 시스템 프롬프트가 봇의 역할과 규칙을 정하고, 모델은 누구도 예상하지 못한 표현도 처리합니다.
LLM 챗봇의 기반 모델은 대화에 맞게 트랜스포머를 학습시키고 지시 튜닝 및 인간 피드백 기반 강화 학습(RLHF)을 적용한 모델이며, 호출 간에는 메모리가 없습니다. 애플리케이션은 대화를 저장하고, 모델의 채팅 템플릿에 맞게 형식을 지정해 새 메시지가 들어올 때마다 전체 대화를 전송합니다:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M-Instruct")
# 챗봇은 대화를 저장하고 새 대화 차례가 올 때마다 전체 내용을 전송합니다
messages = [
{"role": "system", "content": "You are a support assistant for an online store."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Could you share your order number?"},
{"role": "user", "content": "It's 4417."},
]
# 채팅 템플릿은 대화 기록을 모델이 이어서 생성할 하나의 프롬프트로 펼칩니다
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(prompt)출력된 프롬프트는 각 대화 차례를 역할과 함께 <|im_start|> 및 <|im_end|> 마커로 감싸고, 열린 <|im_start|>assistant 줄로 끝납니다. 따라서 모델이 생성하는 다음 토큰이 답변이 되며, 앞선 질문이 같은 프롬프트에 들어 있기 때문에 "It's 4417"이라는 답변이 의미를 갖습니다. 대화가 이어질수록 프롬프트가 길어지므로, 컨텍스트 윈도우를 초과하기 전에 긴 대화는 잘라내거나 요약합니다. 또한 프롬프트 캐싱을 활용하면 각 대화 차례마다 변경되지 않은 기록을 다시 처리하지 않아도 됩니다.
그라운딩, 도구 및 이미지#
학습 데이터만으로 답변하는 고객 지원 챗봇은 잘못된 정책을 확신에 찬 어조로 말할 수 있습니다. 따라서 프로덕션 봇은 먼저 검색 증강 생성(RAG)으로 관련 문서와 계정 데이터를 가져오고, AI 가드레일로 입력과 초안을 확인하며, 답변을 뒷받침할 근거가 없으면 담당자에게 넘깁니다:
주문 조회와 같이 함수 호출로 도구를 사용하는 챗봇은 AI 에이전트로 발전하고 있으며, 멀티모달 챗봇은 비전-언어 모델(VLM)을 통해 대화 중 사진과 스크린샷을 받을 수 있습니다. Ultralytics LLM 인터페이스는 프롬프트, 이미지 또는 전체 대화 기록을 OpenAI 호환 채팅 모델에 전송하고 공급자가 반환한 응답 객체를 그대로 돌려줍니다. 따라서 YOLO26 파이프라인은 탐지 과정에서 사람을 찾은 경우에만 멀티모달 모델에 장면 설명을 요청할 수 있습니다.
위험 요소#
기업이 챗봇을 배포하면 환각이 법적 책임으로 이어질 수 있습니다. 2024년 2월 판결된 Moffatt v. Air Canada 사건에서 항공사 웹사이트 챗봇은 유족 승객에게 여행 후에도 경조 할인 요금을 신청할 수 있다고 안내했지만, 이는 항공사의 실제 정책과 달랐습니다. 브리티시컬럼비아주 민사분쟁재판소는 챗봇이 자체 발언에 책임이 있다는 Air Canada의 주장을 기각하고 항공사에 차액을 지급하라고 명령했습니다. 챗봇은 프롬프트 인젝션과 탈옥 시도에도 노출되며, 사용자를 기쁘게 하도록 튜닝된 모델은 거짓 주장을 바로잡지 않고 동조하는 AI 아첨으로 치우칠 수 있습니다.










