대화형 AI에 대한 수요가 계속 증가함에 따라 인간과 유사한 개인화된 상호작용을 제공할 수 있는 고급 챗봇 기술에 대한 필요성도 커지고 있습니다. 최근 몇 년 동안 GPT-4 및 ChatGPT와 같은 생성 모델과 LLaMA 3 및 Mixtral 8x7b와 같은 오픈 소스 대안이 자연어 입력을 전례 없이 정확하고 정교하게 이해하고 응답할 수 있는 챗봇 구축에 유망한 도구로 부상하고 있습니다.
이 문서에서는 제너레이티브 모델의 기본 사항과 이를 사용하여 챗봇을 구축하는 방법을 살펴봅니다.
ChatGPT와 GPT-4는 OpenAI에서 개발한 두 가지 고급 언어 모델입니다. 채팅 생성 사전 학습 트랜스포머의 줄임말인 ChatGPT는 학습 데이터를 기반으로 사람과 유사한 텍스트를 생성할 수 있는 대규모 언어 모델입니다. 2022년 11월에 도입되어 사용자와 대화 방식으로 상호 작용하고, 질문에 답하고, 정보를 제공하고, 다양한 작업에 참여할 수 있는 능력으로 빠르게 널리 주목을 받았습니다.
GPT-4, 즉 '생성적 사전 학습 트랜스포머 4'는 GPT-3의 후속 버전으로 2023년 3월 OpenAI에서 발표했습니다. 이전 버전에 비해 훨씬 더 큰 규모와 향상된 기능을 자랑하며 AI 언어 모델 분야에서 큰 도약을 이뤘습니다. GPT-4는 자연어 처리, 컴퓨터 프로그래밍, 창작 작문 등 광범위한 영역에서 매우 상세하고 정확한 텍스트를 생성할 수 있습니다.
ChatGPT와 GPT-4는 모두 비지도 학습을 통해 방대한 양의 데이터를 학습하여 놀라운 정확도와 유창함으로 인간의 언어를 이해하고 생성할 수 있습니다. 이러한 모델은 고객 서비스, 교육, 엔터테인먼트와 같은 산업 분야에서 대화형 AI, 콘텐츠 생성 및 기타 다양한 애플리케이션 개발에 새로운 가능성을 열어주었습니다.
그 후 얼마 지나지 않아 Meta에서 LLaMA 3을 출시했고, 프랑스의 AI 스타트업인 미스트랄 AI에서 Mixtral 8x7b를 출시했습니다. 이러한 생성 모델은 ChatGPT와 GPT-4의 오픈 소스 대안입니다. 고급 챗봇을 구축하려는 경우 매우 좋은 후보입니다. 자체 서버에 LLaMA 3 및 Mixtral을 배포하거나 NLP 클라우드 API를 통해 쉽게 사용할 수 있습니다.
하지만 이러한 모든 생성형 AI LLM은 약간의 연습이 필요합니다. 먼저 이러한 모델이 예상대로 작동하려면 올바른 프롬프트를 제공해야 하기 때문입니다. 또한 "상태 비저장형"이기 때문에 대화 기록을 보관하지 않기 때문입니다.
이러한 모델에 약간의 컨텍스트와 형식 없이 순진하게 요청을 보내면 응답에 실망하게 될 것입니다. 이러한 모델은 매우 다재다능하기 때문입니다. 챗봇을 만드는 데 도움이 될 뿐만 아니라 질문 답변, 요약, 의역, 분류, 엔티티 추출, 제품 설명 생성 등과 같은 다른 많은 애플리케이션에도 활용할 수 있습니다. 따라서 가장 먼저 해야 할 일은 모델에 어떤 '모드'를 채택해야 하는지 알려주는 것입니다.
다음은 보낼 수 있는 요청 예시입니다:
This is a discussion between a [human] and an [ai].
The [ai] is very nice and empathetic.
[human]: I broke up with my girlfriend...
[robot]:
이 예제에서는 두 가지 사항을 확인할 수 있습니다.
먼저 모델이 대화 모드에 있음을 이해할 수 있도록 간단한 서식을 추가했습니다: ([human], [ai], ...).
둘째, 모델이 무엇을 하고 있는지, 어떤 어조를 사용해야 하는지 이해할 수 있도록 상단에 컨텍스트를 추가했습니다.:
이 프로세스를 더 간단하게 만들기 위해 OpenAI와 NLP Cloud는 이 형식을 대신 처리하는 전용 챗봇 API 엔드포인트를 제안합니다.
때로는 컨텍스트만으로는 충분하지 않을 때가 있습니다. 예를 들어 매우 특정한 어조와 성격을 가진 챗봇을 만들고 싶다고 가정해 보겠습니다. 이 경우 자체 생성 모델을 미세 조정하고 싶을 것입니다. OpenAI 및 NLP Cloud에서 생성 AI를 기반으로 자체 챗봇을 미세 조정할 수 있습니다.
또 다른 시나리오는 특정 도메인 지식에 대한 질문에 답변하는 챗봇을 만들고자 하는 경우입니다. 이 경우 미세 조정은 해결책이 아닙니다. 대신 시맨틱 검색을 기반으로 하는 자체 검색 증강 생성(RAG) 시스템을 만들어야 합니다. RAG와 시맨틱 검색에 관한 전용 문서를 참조하세요.
생성형 AI 모델은 '상태 저장소 없는' 모델로, 사용자가 요청할 때마다 새로운 요청이 발생하며 AI는 이전 요청에 대해 아무것도 기억하지 않습니다.
많은 사용 사례(요약, 분류, 의역 등)에서는 문제가 되지 않지만, 챗봇에 관한 한 챗봇이 보다 관련성 높은 응답을 하기 위해 토론 기록을 기억하기를 원하기 때문에 확실히 문제입니다.
예를 들어, AI에게 자신이 프로그래머라고 말하면 다음 응답에 영향을 미칠 수 있으므로 이를 메모리에 저장해두는 것이 좋습니다.
이를 달성하는 가장 좋은 방법은 모든 AI 응답을 로컬 데이터베이스에 저장하는 것입니다. 예를 들어, PostgreSQL 데이터베이스는 긴 텍스트 저장을 지원하며 효율성이 매우 뛰어납니다.
그런 다음 챗봇에 새 요청을 할 때마다 다음을 수행해야 합니다:
이 시스템은 다재다능하고 강력한 시스템으로, GPT-4, ChatGPT, LLaMA 3, Mixtral과 같은 생성 모델의 성능을 완벽하게 활용할 수 있으며 수고가 거의 필요하지 않습니다.
각 모델마다 기록에 전달할 수 있는 텍스트의 양을 결정하는 고유한 컨텍스트 크기가 있다는 점에 유의해야 합니다. 예를 들어, GPT-4의 현재 컨텍스트 크기는 8천 토큰(즉, 7천 단어 이상)이고, NLP Cloud에서 Mixtral 8x7b의 현재 컨텍스트 크기는 16천 토큰(즉, 14천 단어 이상)입니다. 따라서 대화 기록이 이를 초과하는 경우, 기록에서 가장 오래된 부분을 잘라내거나 토론에서 가장 중요한 부분만 유지해야 할 수 있습니다.
OpenAI는 AI가 생성한 텍스트가 해당 가이드라인을 준수할 수 있도록 ChatGPT 및 GPT-4에 콘텐츠 제한을 구현했습니다. OpenAI는 챗봇이 생성하는 콘텐츠를 모니터링하고 규제함으로써 보다 긍정적이고 신뢰할 수 있는 사용자 경험을 만드는 것을 목표로 합니다. 여기에는 특정 주제에 대한 정보 요청을 차단하거나 사전 심사를 거친 신뢰할 수 있는 정보만 제공하는 것이 포함됩니다.
하지만 이러한 제한이 없는 생성 모델을 선호하며 응답의 품질이 더 다양하고 정확하다고 생각하는 사람들도 있습니다. LLaMA 3 및 Mixtral 8x7b에는 이러한 제한이 없습니다. 이러한 AI 모델을 사용할 때는 개발자가 책임감 있게 AI를 사용할 책임이 있습니다. 필요한 경우 챗봇에 적합한 프롬프트를 만들거나 자체 챗봇을 미세 조정하거나 사용자 요청이 AI 모델에 도달하기 전에 필터링하여 제한을 구현할 수 있습니다.
GPT-4, ChatGPT, LLaMA 3, Mixtral 8x7b와 같은 생성형 AI 모델은 챗봇과 대화형 AI의 수준을 한 단계 끌어올렸습니다. 이러한 고급 모델은 사용자의 컨텍스트를 이해하고 이에 적응하는 데 매우 능숙합니다. 대부분의 경우 올바른 컨텍스트를 설정하는 것으로 충분하지만 고급 사용 사례의 경우 가장 좋은 해결책은 자체 AI 모델을 학습/조율하는 것입니다(이러한 모델은 매우 작은 데이터 세트가 필요하므로 상당히 쉽습니다).
NLP Cloud에서는 다른 모델 중에서도 LLaMA 3 및 Mixtral 8x7b를 쉽게 사용해 볼 수 있습니다. 또한 클릭 한 번으로 모델을 미세 조정하고 나만의 개인 생성 AI 모델을 배포할 수도 있습니다. 아직 완료하지 않았다면 NLP Cloud를 무료로 사용해 보세요.
나만의 챗봇을 구현하는 방법에 대해 궁금한 점이 있으면 언제든지 문의해 주세요!
François