티스토리 뷰

반응형

https://product.kyobobook.co.kr/detail/S000211728983

[GPT-4를 활용한 인공지능 앱 개발]을 읽고

 

GPT/LLM에 대한 관심

ChatGPT가 공개되고 많이 사용되면서 여러 창의적인 서비스들이 등장했다.
무언가 익숙한 것들을 반복해 만들어내던 생태계에 GPT/LLM 한 스푼 넣음으로서 다채로워진 것 같다고 느꼈다.

더 나아가 유저 뿐 아니라 개발자들의 경험(DX) 측면에서도 많은 영향을 주었다.
코드 생성 및 리뷰, 기능 찾기, 커밋 메시지 생성기 등 개발 과정에 있어 사소한 부분부터 '이게 가능해?'라는 부분까지 말이다.

 

그렇기에 내 개발 패턴에 맞게 GPT/LLM을 이용한 서비스를 만들어봐야지 라는 생각을 시간 날때마다 했던 것 같다.

  • 나만의 '개발해볼만한 것' 목록을 작성할 때마다 맨날 들어가있는 녀석이다.

 

하지만 실상 개발하기는 어려웠다. 내부 개념도 아직 잘 모를 뿐더러 Open AI 라이브러리만 간단하게 이용해 볼 뿐, 어떤 데이터를 저장해야하고 어떤 프레임워크/라이브러리를 이용하는 것이 좋은 것인지 고민이 되었기 때문이다.

그래서 만들기보다는 일단 개발하며 도움을 받는 정도로만 GPT/LLM을 사용하고 있었다.
특히 잘 모르는 언어의 문법을 물어본다거나, 더 최적화 시켜달라고 제안해본다거나, 구현해야하는 기능이 이미 지원되고 있는지 물어보는 등 용도로 많이 활용했다.

그러다 이 책을 접하고, 모르는 부분을 메꿔보고자 읽게 되었다.

 

 

책에 대한 내용

책의 목차와 내용을 요약하면 다음과 같다.

    1. GPT-4, 챗GPT의 핵심요소
      • LLM 기초, GPT 역사, 활용사례
    1. GPT-4와 챗GPT의 API
      • 제공되는 API와 개념
    1. GPT-4와 챗GPT로 애플리케이션 구축하기
      • API를 이용한 간단한 애플리케이션 구축
    1. GPT-4와 챗GPT의 고급 기법
      • 프롬프트 엔지니어링(제로샷, 원샷, 퓨샷), 파인튜닝
    1. 랭체인과 플러그인으로 LLM 기능 향상하기
      • 랭체인 프레임워크, GPT-4 플러그인

 

챕터 1은 대략적으로 알고 있는 내용들이여서, 챕터 2~5에 집중해서 읽었다.

 

4~5번이 내가 궁금하던 부분이었다.

  • 프롬프트 엔지니어링이 중요하다는데, 프롬프트 하나만 잘 짜놓으면 되는 것 아닌가?
  • 잘 짜놓은 프롬프트란 무엇인가?
  • 프롬프트를 더 발전시키기 위해서는 어떠한 방법이 있는가?
  • 일단 모델이 아닌 나만의 데이터로 이루어진 모델은 없는가?
  • OpenAI를 이용한다면 내가 직접 밑바닥 부터 다 구현해야하는가?
  • 단순히 Chat을 통한 질의응답말고도 더 방대한 기능은 없을까?

이 질문들에 대한 답은 책을 통해 다 찾을 수 있었다.

 

인상깊던 부분들

위에서 언급한 질문들을 토대로 인상깊던 부분들은 다음과 같다.

  • 68p) 임베딩이란 무엇이고 어떻게 활용하는가?
  • 71p) 모더레이션. 이루다 논란 같은 문제를 어떻게 해결할 수 있을까?
  • 90p) 데이터가 많아 학습 토큰 양의 한계에 다 다르면, 청크로 나눠 작업 수행 후, 다시 합쳐 작업을 재수행하는 방향으로도 처리가 가능함 (맵리듀스)
  • 91~98p) 레디스를 이용해 임베딩 벡터를 저장/검색 구현
    • 레디스만을 이용한 것은 좀 아쉬웠다. 요즘 다양한 벡터 DB가 등장하고 꽤나 뜨거운 녀석들이 있는데, 이를 활용한 방법까지 알아보면 좋을 것 같다 (왜 다양한지? 어떤 것들이 다른지? 벡터DB만의 성능적 특성이 있을지?).

 

프롬프트 개선/여러가지 방법 소개

  • 109p) 프롬프트를 역할/컨텍스트/작업 이라는 문맥으로 나눠 하고자 하는 것을 명확히 표현.
  • 110p) 프롬프트 개선을 위해 직접 GPT에서 향상시킬 수 있는 방법을 물어보기. 컨텍스트 보완 방법.
  • 117p) ZeroShot-CoT (Chain of Thought) 방식 소개. Let's think step by step의 마법
  • 118p) FewShot/OneShot Learning

 

파인튜닝

  • 123p) 파인튜닝에 대한 기본적인 내용
  • 131~138p) 파인튜닝 모델은 어떻게 만들까? 직접 만들어보기
  • 아쉬웠던 것은 이런 모델 구성에 있어서 ChatGPT(OpenAI) 모델과 방법을 이용하기 때문에 학습시키고자 하는 데이터가 OpenAI 측으로 넘어갈 수 있다는 것이다.
    • 즉, 회사 및 개인적인 정보를 학습시키고자 할 땐 이 방법 대신 자사 및 로컬 모델을 이용해 구현해야하는 것으로 보인다.

 

랭체인

  • 142p~) 랭체인의 다양한 모듈에 대한 내용들
    • 직접 이용하기보다는 어떤 모듈이 있고, 어떤 기능을 담당하는지만 살펴보았다. 계속해서 발전하고 있는 라이브러리이기 때문에 공식문서를 보고 따라하는게 더 정확한 구성이 가능할 것 같았기 때문이다 (아래 사진도 공식문서에 나와있다)
    • 모델, 프롬프트, 인덱스, 체인, 메모리, 에이전트 등 모듈에 대한 내용이 등장한다.
      ![[Pasted image 20240322110739.png]]
  • 147p) agent/tool을 이용하면 기존의 한계인 숫자/실시간 데이터 등 문제를 해결할 수 있다. 더욱이 '이런 tool이 있어'를 소개만 해주는 것으로 알아서 GPT 단에서 원하는 tool을 골라 조회 및 활용한다 (대박)
  • 149p) 특정 기능 지원을 위해 랭체인 만의 prompt가 미리 들어가 있는 경우가 있다. verbose 옵션을 활용하다보면 출력되는 것을 확인할 수 있음.
  • 151p) 임베딩 또한 손쉽게 만들어내고 이를 DB에 저장할 수 있다.
  • 153p) 벡터DB로 부터 찾은 데이터를 바탕으로 사용자의 초기 질문을 결합해 올바른 답변을 생성한다
    • 이게 제일 궁금하던 부분인데, 프로세스와 그 방법까지 제안해줘서 너무 좋았다. 벡터DB를 왜 사용하고, 이를 통한 답변을 어떻게 생성하는지 해결되었다.
    • 1) 쿼리 > 쿼리 임베딩 > 벡터 DB 저장 > 유사도 검색을 통한 최적의 페이지 조회
    • 2) 조회된 페이지를 통한 상황 학습/컨텍스트 생성 > LLM > 답변

 

GPT-4 플러그인

  • 156p) 플러그인은 랭체인의 tool과 비슷하다. 이것도 자동으로 모델에서 플러그인을 사용할지/말지 알아서 결정한다. 호출여부가 결정되면 플러그인을 호출해 결과를 가져오고 이를 컨텍스트에 통합해 자연어 기반으로 사용자에게 답변하게 된다.
  • 158~160p)
    • 위 내용만 보면 '그럼 플러그인 정보/호출 데이터 등은 어떻게 알고 있는거지?'라는 생각이 든다. 이는 GPT 단에 이미 들어가있는 정보이긴 한데, 플러그인 마다 정보를 다 다른 스펙으로 주면 통합이 어려우니 이를 integration 해놓았다.
    • Plugin manifest(/.well-known/ai-plugin.json)을 통해 플러그인의 대략적인 기능 및 내용, API spec (OpenAPI 주소)들을 알 수 있다.
    • 플러그인을 안다고만 해서 플러그인의 모든 데이터가 필요하지는 않다. 모델은 현재 질문에 대해 필요한 정보만 조회하길 원하는데, 이는 ai-plugin.json plugin manifest에 명시된 OpenAPI 주소를 이용한다.
    • OpenAPI 주소를 조회해서 각 노출된 endpoint들과 그 목적들을 조회할 수 있다. 현재 목적에 제일 부합한 endpoint들을 조회해 필요한 정보만을 조회해 오는 것이다.

 

마치며

개발서적을 읽다보면 집중이 떨어져서 흐름을 놓칠 때가 많다.
이 이유는 내가 정말 현재 궁금하지 않은 내용이거나, 내용이 이해가 가지 않아서인 것 같다.
이 책은 내가 정말 궁금했던 것들을 포함하고 있어서 그런지 술술 읽혀, 얼마 안걸려 다 읽었던 것 같다.

  • 책도 짧다. 약 180p.

 

GPT/LLM에 대해 잘 알지 못한다면, 입문서로는 완벽한 책이지 않을까 싶다.

  • 대략적인 내용들을 다 포함하고 있으면서도, 이를 활용한 프레임워크까지 설명해주고 있으니 말이다.
  • 괜히 모든 것을 다 풀어 설명해서 페이지를 채우지 않고, 간략한 설명을 바탕으로 필요하다면 더 찾아볼 수 있게끔 키워드들을 제공해줘서 너무 좋았다. 필요한 부분/정말 궁금했던 부분들을 바탕으로 더 깊게 찾아보며 배울 수 있었다.
  • 더 발전된 AI 서비스 개발이라는 다음 Step으로 넘어가기 위해 적합한 책이다.

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함