이 포스팅은 도서 챗GPT API를 활용한 챗봇 만들기에 대한 리뷰를 담고 있습니다.
요약
챗GPT API를 활용한 챗봇 만들기는 챗GPT API를 이용하여 챗봇을 개발하는 과정을 이해하기 쉽게 안내하고 있습니다. 책은 단계별로 프롬프트 엔지니어링 기법을 설명하며, OpenAI API 호출부터 실제 카카오톡 챗봇 생성까지 상세하게 다루고 있습니다. 이를 통해 거대 모델이 나오면서 생긴 프롬프트 엔지니어링이 무엇인지 이 책을 읽고 제대로 이해할 수 있었습니다.
저는 이 책을 읽고 OpenAI에서 현재까지 출시한 서비스 - ChatGPT, Function Calling, Assistants API, 그리고 GPTs - 에 대한 전반적인 사항을 쉽게 이해할 수 있어서 좋았습니다. 또한 임베딩 공간과 벡터 DB에 대한 설명도 간결하고 이해하기 쉽게 되어 있는 부분이 인상적이었습니다. 텍스트, 이미지, 그리고 영상까지 거대 모델이 나오며 여러 분야에서 변화가 일어나고 있는데 그 흐름이 궁금하시다면 이 책을 추천합니다.
프롬프트 엔지니어링 (Prompt Engineering)
챗GPT API를 활용한 챗봇 만들기은 프롬프트 엔지니어링이 무엇인지 단계별로 설명하고 ChatGPT API를 활용하여 어떻게 구현할 수 있는지 설명하고 있습니다.
프롬프트 엔지니어링이란 거대 모델이 제공되는 정보를 바탕으로 추론하는 능력을 극대화 하기 위한 방법론입니다. 언어 모델 크기가 커지며 발견된 능력으로 덧셈을 따로 가르치거나 구현하지 않았지만 이를 할 수 있음을 발견했습니다. 구조를 쌓다보면 뜻하지 않은 효과가 발생하는 것을 창발성이라고 알고 있는데 LLM은 이런 면에서 창발적인 모델로 보입니다.
이 책에서 설명하는 프롬프트 엔지니어링은 다음과 같습니다.
- Few-shot Prompting
- Chain of Thought (CoT): 문제를 푸는 단계를 작은 단계로 나누고 순서대로 생각을 전개하면서 최종 답을 도출
- Zero-Shot CoT:
Let's think step by step
등의 구문을 통해 반복없이 CoT 효과가 생김 - Self-Consistency: CoT 여러 번 수행한 다음 그 중에서 가장 많이 나온답을 채택하는 방식
- Tree of Thoughts: DFS 및 BFS 를 통해 사고 전개 과정 중 다양한 탐색을 할 수 있도록 하는 방식
- ReAct: 추론 > 계획생성 > 행동 > 추론 > … 순환적인 과정을 프롬프트를 통해 구현
- Retrieval Augmented Generation (RAG): 실제 정보를 획득하여 정확한 정보 제공하는 것
챗봇
챗봇을 만들기 위해서는 여러 사항이 고려되어야 합니다. 답변을 자연스럽게 할 수 있어야 하고 그간의 대화도 기억할 수 있어야 하며 틀린 정보도 주어서는 안될 것 입니다.
챗GPT API를 활용한 챗봇 만들기에서는 MongoDB 및 벡터DB 등 다양한 시스템을 소개하며 어떻게 이러한 부분들을 해결할 수 있는지 제시하고 있습니다. 저는 기억을 불러오는 부분에 대한 구현 챕터가 아주 흥미로웠습니다. 임베딩 벡터에 대한 개념 설명이 필요한 만큼 적절히 되어 있었고 Pinecone 이라는 임베딩DB 서비스를 알 수 있었기 때문입니다.
저는 ChatGPT 생성한지 오래되어 처음 무료로 주는 API 토큰 크레딧이 만료되어 예제를 따라하진 못했지만 보는 것 만으로도 어떤 개념인지 잘 이해할 수 있었습니다. 처음 해보시는 분들이라면 따라해보면서 자신만의 챗봇을 만드실 수 있을 것 입니다.
이 책의 모든 예제는 아래 링크에서 확인하실 수 있습니다.
마무리
소프트웨어 엔지니어로 일하며 ChatGPT가 출현했을 때 꽤나 큰 두려움을 느꼈습니다. 바로 OpenAI에 가입하여 몇 가지 코딩를 생성해보고 프로덕트에 적용해보니 제가 생각하는 수준은 아니라서 사용을 멈췄었습니다. 이 책을 다 읽고 나니 제가 LLM을 제대로 활용하지 못했다는 생각이 듭니다. 프롬프트 엔지니어링의 개념을 알았으니 이를 통해 제가 하는 작업들에 좀 더 활용할 방안이 없는지 고민하고 적용해봐야겠습니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.