-
-
GPT API를 활용한 인공지능 앱 개발 - 오픈AI o1, 랭체인, 라마인덱스로 만드는 AI 프로그램, 2판 ㅣ O'reilly 오라일리 (한빛미디어)
올리비에 케일린 외 지음, 이일섭 외 옮김 / 한빛미디어 / 2024년 12월
평점 :
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
리뷰어는 파이썬 지식이 거의 없는 프론트엔드 개발자입니다.
이 책을 선택한 이유
최근 프로젝트에서 TTS를 활용한 챗봇을 만들 뻔한 경험이 있어요. 당시 OpenAI API를 활용할 가능성이 언급되었지만, 결국 프로젝트는 무산되었죠. 하지만 그때부터 AI와 GPT API에 대한 호기심이 생겼고, 기회가 된다면 더 깊이 알아보고 싶다는 생각이 들었어요.
개발자로서 ChatGPT는 이미 필수적인 도구가 되었고, 저는 그 내부 원리가 어떻게 작동하는지 궁금했어요. 단순히 이론적인 지식만 습득하는 것이 아니라, 실제로 GPT API를 활용하여 인공지능 애플리케이션을 개발하는 과정을 경험해보고 싶었어요. 그리고 이 책의 제목이 그런 저의 기대를 정확히 반영하고 있었기에, 주저 없이 선택했어요.
목차
책의 목차는 다음과 같습니다.
1. GPT와 대규모 언어 모델(LLM)의 개념 이해
2. OpenAI API의 기본 사용법
3. GPT API를 활용한 다양한 프로젝트(뉴스 생성, 챗봇, 텍스트 요약 등)
4. 프롬프트 엔지니어링과 최적화 기법
5. 고급 활용: 파인 튜닝과 RAG(검색 기반 생성 모델)
6. 실전 프로젝트 개발 및 배포
사전 지식이 필요한 책
`파이썬`에 대한 기초 지식이 필요했어요. 사실 저도 충분히 알지는 못했기 때문에, 책을 읽으면서 ChatGPT에게 질문하며 예제를 해석했어요. 어떻게 보면 겸사겸사 파이썬 공부도 할 수 있어서 좋았어요! 그리고 이 책은 전체 예제를 깃허브 리포지토리로 제공했기 때문에 실습하는 데 도움이 많이 되었어요.
✅ 좋았던 점
1. GPT, LLM, OpenAI에 대한 기초 지식 이해
솔직히 그동안 ChatGPT를 매일 같이 사용하면서도, 각 모델이 어떤 변천사를 거쳐왔는지, 이 LLM에 대해 깊이 이해하지 못하고 있었어요. 그냥 "GPT-4가 더 강력하다더라" 정도로만 알고 있었지, 왜 강력한지, 어떤 구조적 차이가 있는지, 어떤 한계를 가지고 있는지는 제대로 몰랐죠.
이 책은 첫 장부터 **GPT-1부터 최신 GPT-4o까지의 발전 과정**을 상세하게 다룹니다.
특히 다음과 같은 개념을 명확하게 설명해 주었어요.
- GPT 모델의 구조와 학습 방식
- GPT 모델이 트랜스포머(Transformer) 아키텍처를 기반으로 한다는 점
- 모델이 수많은 데이터를 기반으로 사전 학습을 거치고, 이후에는 특정 도메인에 맞춰 미세 조정(Fine-Tuning)될 수 있다는 점
- 토큰(Token) 개념
- 우리가 GPT 모델에 입력하는 텍스트가 그대로 처리되는 것이 아니라, 내부적으로 **토큰 단위**로 변환되어 모델이 이해할 수 있는 형태로 전환된다는 점
- API를 사용할 때 토큰 수가 곧 비용과 직결되기 때문에, 토큰 최적화를 고려해야 한다는 점
그리고 무엇보다도 프롬프트 인젝션(Prompt Injection)이라는 개념을 처음 접하게 되었다는 것도 매우 인상적이었어요.
기본적으로 LLM은 사용자의 입력을 기반으로 답변을 생성하는데, 특정한 방식으로 입력을 설계하면 의도하지 않은 방식으로 모델이 동작할 수도 있다는 거죠. 보안적인 측면에서도 이러한 위협을 어떻게 방어할 수 있을지 고민해 볼 필요성을 느꼈습니다.
2. 실습 중심의 구성
이 책의 장점은 이론 중심이 아니라 실습 중심으로 구성되어 있다는 점이라 생각합니다.덕분에 단순히 "이렇게 하면 된다"가 아니라, 직접 해보면서 배우는 경험을 할 수 있었습니다.
책에서 다루는 5가지 프로젝트
1. 뉴스 생성 솔루션
- GPT API를 활용하여 특정 주제의 뉴스 기사를 자동 생성하는 프로젝트
- 프롬프트 엔지니어링을 활용해 원하는 형식으로 뉴스 기사를 구성하도록 설정
- 사용자 입력(예: "오늘의 경제 뉴스")에 따라 GPT가 관련 뉴스를 자동으로 생성
- 이를 웹 서비스로 배포하는 과정도 포함됨
2. 유튜브 동영상 요약
- 유튜브 자막 데이터를 분석하여 핵심 내용을 요약하는 프로젝트
- OpenAI의 Whisper API(음성 인식)를 활용하여 음성을 텍스트로 변환
- GPT API를 활용하여 주요 내용을 정리하고, 원하는 길이로 요약하는 기능 구현
3. 챗봇 개발
- 단순한 질문응답이 아니라 사용자의 문맥을 기억하고 대화 흐름을 유지하는 챗봇 구현
- 단순 API 호출이 아니라, 메모리 기능을 추가하여 보다 자연스러운 대화 흐름을 만드는 방법을 설명
4. 개인 어시스턴트 개발
- 일정 관리, 할 일(To-do) 목록, 이메일 초안 작성 등의 기능이 포함된 AI 비서 구현
- GPT API를 활용하여 다양한 입력을 처리하고, 사용자 맞춤형 답변을 생성하는 방식
5. 문서 정리 도구
- PDF 및 문서를 분석하고 요약하는 기능을 구현
- GPT API를 이용해 문서의 핵심 내용을 추출하고, 이를 정리하여 제공하는 방식
6. 감정 분석
- 자연어 처리 중 감정 분석은 대표 분야
- 텍스트가 긍정적인지, 부정적인지 파악하는 것
- GPT API를 이용하여 분류별 모델 평가를 통해 감정별 확률 확인
이 프로젝트들은 단순한 코드 예제가 아니라, 각각의 기능이 실전에서 어떻게 활용될 수 있는지 직접 체험할 수 있도록 구성되어 있어요.
덕분에 단순히 코드를 읽는 것이 아니라, 직접 실행하고, 수정하고, 실험하면서 GPT API의 활용법을 자연스럽게 익힐 수 있었습니다.
3. 프롬프트 엔지니어링, 파인 튜닝, RAG 학습
GPT API를 단순히 호출하는 것만으로 끝나는 것이 아니라, 어떻게 하면 더 나은 응답을 얻을 수 있는지에 대한 최적화 방법도 배울 수 있었습니다.
- 프롬프트 엔지니어링
- "간결하게 작성할수록 더 좋은 응답을 얻는다" 같은 기본 개념부터
- "역할(Role-based Prompting)" 기법을 활용해 특정한 스타일로 답변을 유도하는 방법
- 프롬프트 최적화에 따른 응답 차이를 실험할 수 있도록 구성
- 파인 튜닝(Fine-Tuning)
- 기본적으로 GPT API는 사전 학습된 모델을 그대로 사용하지만, 특정 도메인(예: 법률, 의료, 금융)에 맞게 모델을 최적화하는 방법도 다룹니다.
- 학습 데이터를 제공하여 모델이 특정한 스타일이나 도메인에 맞게 응답하도록 조정하는 방법을 실습할 수 있었어요.
- RAG(Retrieval-Augmented Generation)
- 기본적인 LLM은 훈련 데이터 내에서만 정보를 제공하기 때문에, 최신 정보가 반영되지 않는 한계가 있음
- 이를 해결하기 위해, 외부 데이터베이스나 검색 시스템과 연동하는 기법을 설명
- GPT 모델이 문서를 검색하고, 검색된 내용을 기반으로 답변을 생성하는 방식
4. 오픈AI 모델을 개선하는 다양한 전략과 최적화 작업의 흐름 제공
이 책에서는 오픈AI 모델을 개선하는 다양한 기법을 비교하는 내용을 체계적으로 정리해 주었어요.
비용과 성능을 고려할 때 처음부터 비싼 방법을 사용할 필요가 없다는 점도 배울 수 있었습니다.
실제로 모델을 개선하는 방법은 여러 가지가 있는데, 단순한 프롬프트 최적화부터 파인 튜닝, RAG까지 점진적으로 적용할 수 있는 전략이 있습니다.
책에서는 단순히 기법을 소개하는 것뿐만 아니라, 최적화가 이루어지는 전체 흐름을 시각적으로 정리한 자료도 제공했어요.
이 흐름을 보면서, 처음부터 비용이 많이 드는 방법을 선택할 필요 없이, 단계적으로 최적화하는 것이 중요하다는 점을 확실히 배울 수 있었어요.
5. AI 프레임워크 사용법(랭체인, 라마인덱스)
이 책에서는 GPT API를 활용할 때 유용한 AI 프레임워크들도 다루었어요.
- 랭체인 (LangChain)
- LLM을 보다 쉽게 활용할 수 있도록 도와주는 프레임워크
- 프롬프트 체이닝, 메모리 관리, API 호출을 간편하게 처리할 수 있도록 함
- 챗봇, 문서 요약, Q&A 시스템 등에 필수적인 기능들을 쉽게 구현할 수 있음
- 라마인덱스 (LlamaIndex, 구 GPT Index)
- 대용량 문서를 효과적으로 처리하고, 검색 기반 생성(RAG) 기능을 구현하는 데 활용
- GPT 모델이 문서를 효과적으로 검색하고, 중요한 정보를 추출하는 기능을 강화
이 프레임워크들을 활용하면 단순히 GPT API를 호출하는 것이 아니라, 더 강력하고 효율적인 AI 애플리케이션을 개발할 수 있다는 것을 알게되었습니다!
🤔 아쉬웠던 점
1. LLM 비즈니스 활용 사례가 다소 아쉬웠습니다.
LLM이 실제 서비스들에서 어떻게 사용되는지가 궁금했어요. 목차에 'LLM 비즈니스 활용 사례' 제목이 있는 것을 보고 혹한 이유도 있었죠! 목차에는 아래 기업들이 나열되어 있었어요.
- 비 마이 아이즈
- 모건 스탠리
- 칸 아카데미
- 듀오링고
- 야블
- 웨이마크
- 인월드 AI
제가 아는 기업은 '모건 스탠리', '칸 아카데미', '듀오링고'가 있었습니다. 어떤 서비스인지 알아야 어떻게 적용했다는 것인지 이해할 수 있을 거라 생각했어요.
- 모건 스탠리
- GPT-4를 사용하여 `챗봇` 구축 : 내부 금융 관련 콘텐츠에 관한 포괄적인 검색을 수행하고, 자사에 축적된 지식을 효율적으로 활용
- 칸 아카데미
- GPT-4를 사용하여 `칸미고` 개발: 학생들에게 수업하고 질문하며, 시험 문제 제작, 수업 계획, 학생 관리, 교재 제작 등을 수행하는 친근한 형태의 `AI 어시스턴스`
- 듀오링고:
- GPT-4를 사용하여 `역할극`(Roleplay)과 `내 답변 설명`(Explain My Answer) 기능 추가
하지만 막상 책장을 펼쳐보니 사례는 굉장히 단출하게만 소개되어 있었어요...! 모델을 사용하여 어떤 기능을 만들었다 정도였습니다. 상세하게는 아니더라도 어떤 필요성이 있었고, 어떤 기법을 이용하여 어떻게 구축이 되었고, 어떤 효과를 보았는지가 궁금했었죠. 이 궁금증은 해소하지 못하여 다소 아쉬웠습니다.
다만 오픈AI 웹사이트에서 기업들의 사례가 많다는 것은 알 수 있었어요.
2. LLM 애플리케이션의 개발 및 배포 과정 설명 부족
책의 "6.2 LLM 기반 애플리케이션 개발 과정" 챕터가 있긴 하지만, 실제로 LLM 애플리케이션을 처음부터 배포까지 구축하는 과정을 체계적으로 따라가기엔 부족한 점이 있었습니다.
1. LLM 애플리케이션 프로젝트 구조 가이드 부족
- LangChain, LlamaIndex 같은 프레임워크를 사용할 때 폴더 구조를 어떻게 설계하는지 설명 부족
2. 실제 서비스 개발 흐름 설명 부족
- LLM 애플리케이션의 주요 컴포넌트(예: 프롬프트 처리, 메모리 관리, 벡터DB 연동 등)를 어떻게 설계해야 하는지 설명이 부족
- 단순 API 호출 예제는 있지만, 대화 히스토리를 관리하거나, RAG를 적용하는 등의 실제 서비스 설계 과정이 빠져 있음
3. 배포 및 운영 전략 설명 부족
- 서버리스 환경(AWS Lambda, Cloudflare Workers 등)에서 GPT API를 어떻게 최적화해서 배포하는지 설명 없음
- Hugging Face Spaces, Vercel, FastAPI, Flask 등 어떤 배포 옵션이 적절한지 비교하는 내용이 부족
- LLM 모델을 사용할 때 API Rate Limit을 어떻게 관리하는지, 캐싱 전략, 비용 최적화 방법에 대한 설명 부족
4. 테스트 및 모니터링 관련 내용 부족
- API 호출 시 실제 서비스에서는 LLM 응답의 일관성을 테스트하는 방법이 중요할 것 같은데, 이에 대한 가이드가 없음
- LangSmith, Weights & Biases 같은 LLM 애플리케이션 모니터링 도구 활용법이 포함되지 않음
단순한 API 호출을 넘어서 실제 운영 가능한 형태로 애플리케이션을 만들려면 프로젝트 구조, 배포,테스트, 모니터링까지 고려해야 한다고 생각했어요. 또한, GPT API를 실무에서 어떻게 활용하는지 제대로 배우려면, 단순한 코드 조각이 아니라 하나의 완성된 서비스 구축 과정을 보여줄 필요가 있다고 생각했어요.
누가 읽으면 좋을까요?
이 책은 다음과 같은 분들에게 특히 추천해 드려요:
1. AI와 GPT API에 관심이 있는 개발자
2. 파이썬 기초 지식을 가진 프론트엔드 개발자
3. AI 서비스나 챗봇 개발을 시작하려는 분들
4. AI 관련 비즈니스 아이디어를 구상 중인 분들
5. 프롬프트 엔지니어링에 관심 있는 분들
파이썬 지식이 전혀 없는 분들은 기본적인 파이썬 문법을 먼저 학습한 후에 이 책을 접하시는 것이 좋을 것 같아요. 그래도 예제 코드가 비교적 간단하게 구성되어 있어서, 기초적인 프로그래밍 지식만 있다면 충분히 따라갈 수 있어요.
마치며
이 책을 읽으면서 GPT API에 대한 기본적인 이해를 높일 수 있었고, 실전 프로젝트를 따라 하면서 실제 개발에 적용할 수 있는 감각을 익힐 수 있었어요. 단순한 개념 학습을 넘어 직접 만들어보고 실행해보면서 AI 기술을 실무에 어떻게 적용할 수 있을지 고민할 기회가 되었어요.
앞으로는 책에서 다룬 내용을 바탕으로 간단한 챗봇이나 AI 기반 기능을 직접 만들어보려고 해요. 특히 프롬프트 엔지니어링과 API 최적화 기법을 실제로 실험해보고 싶습니다!