GPT API를 활용한 인공지능 앱 개발 - 오픈AI o1, 랭체인, 라마인덱스로 만드는 AI 프로그램, 2판 O'reilly 오라일리 (한빛미디어)
올리비에 케일린 외 지음, 이일섭 외 옮김 / 한빛미디어 / 2024년 12월
평점 :
장바구니담기


1장은 일반인도 알아야 할 기본 개념을 설명하고 있다. 만일 GPT가 처음이라면 1장은 꼭 읽고 넘어가면 좋겠다. LLM은 계속 발전하고 있기 때문에 지금 리뷰를 쓰고 있는 이 순간에도 새로운 모델, 새로운 기능이 나오고 있다고 해도 과언이 아니다. 강의날 새벽까지 작성한 강의자료를 강의시간 직전까지도 수정해야 한다는 것이 이 분야 강사들의 고충이니까. 항상 최신 정보, 최신 모델에 대한 소식을 접할 수 있는 커뮤니티 하나 정도 가입해 두는 것도 좋다.



2장은 오픈AI의 API 활용법을 설명하기 전에 playground에서 코딩 없이 오픈AI의 언어모델을 사용하는 법을 알아 본다. (https://platform.openai.com/playground - 나의 경우에는 현재 gpt-4o 모델을 기본으로 사용하도록 뜬다)


그리고 API키 발급법, 키를 환경변수로 설정하고 관리하는 법, 호출하는 법을 찬찬히 설명하고 있다.


첫 코드를 실행해 봤다. 한국어로 '안녕!'하고 인사하면 한국어로 대답하고, 영어로 'Hello World!'라고 인사했더니 영어로 대답한다. (똘똘하다) 이제 본격적으로 개념 설명, 함수 호출에 필요한 매개변수 설명, 출력의 각 필드가 의미하는 것이 무엇인지, 멀티모달 LLM 예시, 토큰, 임베딩에 관한 설명이 이어진다. 토큰은 비용과 관계 있기 때문에라도 중요하다. 그리고 텍스트를 음성으로 변환하기(TTS, Text-to-Speech), 음성 인식, 이미지 생성, 이미지 편집, 이미지 변형의 예시를 보여준다. 놀라운 것은 소스코드가 굉장히 짧다는 것. 이쯤 오면 초보자도 자신감을 얻지 않을까.



3장에서 본격적인 프로젝트

  • 뉴스 생성 솔루션 구축

  • 유튜브 동영상 요약

  • <젤다의 전설> 챗봇

  • 개인 어이스턴트

  • 문서 정리

  • 감성 분석 (감정 분석)

이 중에 유튜브 동영상 요약하는 코드를 이용해서 <GPT API를 활용한 인공지능 앱 개발> 책에 대한 출판사 리뷰 내용을 요약해 보았다.


API를 사용한다는 것은 결국 비용을 지불할 수 밖에 없다는 뜻이기 때문에 비용을 관리하는 방법에 대해서도 설명하고 있다.



4장에서는 GPT-4o 및 챗GPT 활용 고급 기법을 다루고 있다. 모델을 개선하는 것이다.

프롬프트를 효과적으로 설계하는 방법. 단계별 사고, 퓨삿 러닝, 사용자 피드백을 통한 반복적인 개선 등에 관한 내용이다. 간단하게 나와있기는 하지만 도움이 된다. 파인 튜닝에 대해서도 설명하고 있는데, 지금까지 오픈소스 모델을 다운로드 해서 나의 데이터를 넣고 파인튜닝 하는 방법에 대해서만 고민했지, 코드나 오픈AI 웹페이지(https://platform.openai.com/finetune)를 통해서 오픈AI 모델을 파인튜닝 하는 방법은 생각해 본 적이 없었기에 신기했다.


GPTs와는 어떻게 다른지 챗GPT에게 물어보니 다음과 같은 답을 줬다. 코드로 호출해서 사용할 수 있는지 없는지가 나에겐 가장 큰 차이점이다. 필요한 기능을 GPTs로 만들었지만 파이썬 코드로 자동화 할 수가 없어서 불편했기 때문이다.

Fine-tuning이 적합한 경우

✅ 대규모 데이터셋을 기반으로 특정 도메인 AI를 개발할 때

✅ 기업용 고객 서비스 챗봇, 법률/의료 문서 분석 AI 등 전문성을 강화할 때

✅ 기본 GPT 모델보다 특정 스타일이나 브랜드에 최적화된 응답이 필요할 때

GPTs가 적합한 경우

✅ 비개발자도 쉽게 맞춤형 AI를 만들고 싶을 때

✅ 프롬프트 엔지니어링과 지침 설정만으로 간단한 AI 커스터마이징을 원할 때

✅ ChatGPT 인터페이스에서 특정 역할(예: AI 멘토, 여행 가이드)을 수행하는 AI를 원할 때


요즘 Langchain과 RAG를 열공 중이다. 4.3 RAG파트도 개괄적인 내용이긴 하지만 흐름을 이해하는 데는 도움이 된다.



5장은 프레임워크로 LLM 기능 높이기이다.

랭체인 개념, 라이브러리, 프롬프트, 에이전트, 도구, 메모리, 임베딩, 그리고 라마인덱스, GPTs, 어시스턴트 API 등에 대해 설명한다. 사실 나는 <GPT API를 활용한 인공지능 앱 개발>이라는 제목에서 '앱 개발'에 방점을 찍고 이 책을 골랐는데, 이 '앱'이 내가 생각했던 앱과는 차이가 있었다. 이 아쉬움을 달래기 위해서인가 Appendix A에서는 GPT의 활용도를 높이는 도구로 streamlit을 소개한다. 사실 요즘 gradio를 더 많이 쓰고 있긴 한데....


전체적으로 기본 개념과 흐름을 이해하고, LLM으로 무엇을 할 수 있는지 생각해보고, 내가 필요한 것을 어떻게 구현할 수 있을지 설계하는데 도움이 되는 책이다.


대상 독자는 LLM의 잠재성을 탐구하고 싶은 일반인, GPT 개념을 배우고 실습을 통하여 실력을 쌓고 싶은 학생, AI를 활용한 파이썬 애플리케이션 개발에 관심이 있는 프로그래머입니다.

이 출판사 리뷰에서처럼 대상도 명확한 책이다. 나는 또 심화학습을 위해 이 책에서 소개해 준 사이트들을 집중탐구하러 가야지.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
[전자책] 전문가를 위한 파이썬(2판) - 간단하고, 명료하고, 효율적인 파이썬 프로그래밍, 2판 O'reilly 오라일리 (한빛미디어)
루시아누 하말류 / 한빛미디어 / 2024년 12월
평점 :
장바구니담기


따끈한 책을 받았다.

일단 두께를 보고 놀랐다. 우아. 저걸 언제 다 보나. 오래전 <터보 C 정복>을 봤을 때의 그 느낌... (첨부사진은 로지텍 마우스의 뒷태와 함께 찍은 모습)




 

사실 나는 파이썬을 이틀만에 배웠다. C를 오래 썼었는데, 그렇다고 C를 아주 잘 하는 것은 아니었다.

그래도 하던 가닥이 있어서 print("Hello")를 시작한 다음날 공공데이터를 받아서 matplotlib로 시각화하는 것까지 마쳤으니....이렇게 저렇게 다양하게 시각화 해보면서 '파이썬 재밌구만' 했던 기억이 새록새록...

그래도 사람들이 "파이썬이 배우기 쉽다면서요?", "파이썬이 쉽다고 해서 배워요." 이런 말을 할 때 덧붙이는 말이 있다. "다들 일본어가 쉽다고 하잖아요... 처음 배울 땐 쉬울지 몰라도 일본어 잘하려고 하면 엄청 어려워요. 그래도 외국어잖아요." 이게 파이썬에도 적용될 것이다.

ㅎㅎㅎ 나의 파이썬 실력은 그때로부터 크게 늘지는 않았다. 항상 쓰던 것들만 쓰게 되고 깊이 써볼 기회도 많지 않아서...책 두께를 보고 "아니, 파이썬으로 할 말이 이렇게 많단 말야?"하고 놀란 건 이상한 일이 아니다. '파이썬답게'라는 말의 깊은 뜻을 아직 다 파악하지 못하고 있는 상태이다.

베타리더 강O재님의 한마디가 인상적이었다. 기대된다. 나도 아름다움을 느껴보고 싶다. 처음 파이썬을 접했을 때 재밌었던 것처럼.


이 책은 초보를 위한 책은 아니다. 제목 그대로 전문가를 위한 책이다. 기본 문법 설명같은 건 나오지 않는다. 책에 가장 먼저 등장하는 코드가 이렇게 생겼다. 왕초보가 이 책을 만나면...이 책이 내 의지와 상관 없이 베개로 변하는 마법을 보실 수도 있다. (뭐 그렇다고 절대사지마라! 이런 건 아닙니다~)


각 장을 시작할 때마다 이 장은 1판에 비해서 무엇이 달라졌는지를 설명하고 있는 저자의 친절함 덕문에 1판을 이미 본 사람들은 변경사항만 처음부터 끝까지 죽 훑어봐도 좋겠다. (3판이 나올 때도 이런 친절함을 버리진 않겠지)


이런 내용들은 그 이유를 깊이 생각해본 적은 없는데, 강의할 때 수강생들에게 설명하는 멘트가 그대로 나와있네. (뇌피셜로 헛소리 한 게 아니라서 다행이다.)


이 책을 처음부터 끝까지 다 봤다고 하면 너무 뻔한 거짓말이고...파이썬을 잘 다루고 싶은 사람이라면 한쪽에 두고

1. 궁금한 게 있을 때 사전처럼 찾아보는 용도

2. 옛날에(?) 영어공부 할 때 사전을 한 장씩 외워서 찢어 먹었듯이 하루에 하나씩 새로운 것을 익히는 용도로

아주 유용하게 사용할 수 있을 것 같다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
Do it! 코드 없이 배우는 데이터 분석 with 오렌지3 Do it! 시리즈
권서림 지음 / 이지스퍼블리싱 / 2024년 12월
평점 :
장바구니담기


이지스퍼블리싱 서평단으로 선정되어 도서를 지원받아 쓴 글입니다


오렌지에 남다른 애정을 갖고 있어서 오렌지 책이 나올 때마다 모두 살펴본다. 그런데 지금까지 마음에 들었던 책은 딱 한 권 뿐이었다. "오렌지 쉬워요. 이렇게만 따라만 하면 결과가 짜잔 나와요" 식의 책은 항상 부족했다. 오렌지는 그렇게 쉽지만은 않다.

애정하는 이지스퍼블리싱에서 나온 책이라서 꼼꼼하게 봤다. 우선은 분량이나 어투에서 "쉽죠? 날 따라해봐요 요렇게~"가 아니라서 안심이 되었다. 그런 책은 이미 많이 나와 있으므로 또 나올 필요는 없을 것 같다.




목차는 데이터 분석의 필요성, 분석 절차, 오렌지 설치하기, 데이터 전처리, 탐색적 데이터 분석으로 흐름을 그대로 따라가고, 오렌지의 장점이라고 할 수 있는 회귀, 분류, 군집화, 이미지 분석, 텍스트 분석으로 이어진다. 익숙한 흐름이다. 처음부터 차근차근 따라서 공부하기 좋은 구성으로 되어 있다. 설명도 비교적 친절한 편이다. [질문 있어요] 코너를 통해 조금 자세히 알아야 할 내용에 대해서 설명을 붙였고, 단원마다 퀴즈를 통해 복습을 하게 되어 있다. 그래도 풀리지 않는 의문들은 [Do it! 스터디룸] 카페를 통해 해결할 수 있다.



단순히 위젯을 "이렇게 이렇게 연결하면 이런 결과가 나와요" 하고 보여주지 않고 알고리즘들에 대한 설명도 적절한 그림과 함께 제시되어 있다. 이런 점들은 오렌지로 머신러닝에 대한 기초를 다지고 텍스트코딩으로 넘어가려는 목적을 가진 독자들에게도 도움이 될 것이다.


한편 아쉬운 점도 보인다. 모델을 학습시킨 후, 실제로 적용할 때는 Predictions 위젯을 사용하게 되고, 적용 시에 입력되는 데이터에는 타깃값이 없다. 타깃값을 모르기 때문에 그 값을 예측하는 목적으로 이 모델을 사용하기 때문이다. 따라서 Predictions 결과창에는 평가지표가 나오지 않는 것이 보통이다. 평가지표는 타깃값을 이미 알고 있어야만 구할 수 있는 값이므로... 그런 내용에 대해서는 처음에 아주 살짝 설명하고, 이후에는 끝까지 Test and Score로 대체한 것은 좀 아쉽다. 그리고 오렌지에서 이미지를 다룰 때에는 embedding 과정을 거치며 이는 픽셀의 RGB값을 사용하기 보다는 보다 고차원적인 측징을 추출해 낸다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
월 20달러로 고용하는 데이터 분석가 with 챗GPT - 코드 한 줄 없이 기초 통계부터 분석, 예측까지 누구나 프로처럼, 생활 AI
테리엇.Bob Lee 지음 / 한빛미디어 / 2024년 10월
평점 :
장바구니담기


이번 달에 읽은 책은 <월 20달러로 고용하는 데이터 분석가 with 챗GPT>이다.

데이터분석 강의를 하는 나로서는 제목이 끌려서 고른 책.

기존의 AI와 생성 AI의 차이점은 이제 많은 사람들이 알고 있을 것 같다. 할루시네이션을 주의해야 한다는 것도.

이 책은 챗GPT를 사용하기 위해 계정을 만드는 것부터 하나 하나 알려준다.

기본적인 프롬프트를 입력하는 방법부터 Data Analyst를 이용하는 방법, GPTs를 만들고 활용하는 방법도 차근차근 설명한다. 다음은 Data Analyst를 활용하는 사례이다.

PDF파일의 내용을 요약하고, PPT개요를 구성해서 다운로드 할 수 있는 파일 형태로 저장해주도록 할 수도 있다. 물론 다시 손보지 않아도 될 정도로 예쁘게 만들어 주는 것은 아니고 가장 기본적인 내용들을 채워준다. 내용을 다듬거나 더 풍성하게 하는 것은 사용자의 몫.

일단 책의 진행이 처음부터 두 사람의 대화로 이루어져 있는데, 두께가 좀 있는 책인데 계속 대화식으로 진행되니 나는 읽으면서 좀 답답한 면이 있었다. 앞부분은 대부분이 이미 알고 있는 내용들이라서 일단 큰 제목들만 훑었다. 하지만 아주 많은 사람들이 챗GPT를 한 번도 사용해 본 적이 없고, 어디에서 사용하는 건지, 어떻게 사용하는 건지조차 알기가 어려워서 그렇다는 말도 들었다. 그런 사람들에게는 친구나 상사가 옆에 딱 달라붙어 하나하나 가르쳐주는 것 같은 느낌을 받을 수도 있겠다. 즉, 챗GPT를 단 한 번도 사용해 본 적이 없는 사람에게도 진입 장면이 없다.

 

1/3 지점부터는 본격적으로 데이터 분석에 관한 이야기가 나온다. 용어에 대한 설명도 깨알같이 하고, 데이터의 종류, 그래프의 종류, 데이터 샘플링에 관한 이야기. 이 책에서 언급하고 있는 기능들을 다 사용해 보려면 제목처럼 '월 20달러(부가세 포함 22달러)'를 지불해야 하는 부담은 있다.^^

 

분석의 절차에 대해서도 알려주기는 하지만 사실 독자는 챗GPT에게 분석 절차나 주의할 점 등을 물어볼 수 있다. 챗GPT는 항상 친절하다. 어떤 때는 기대했던 것 이상의 답변을 준다. (수다스럽다) 이때 필요한 것이 프롬프트를 잘 쓰는 능력이다. 그리고 또 하나 앞에서도 언급했던 할루시네이션을 잘 구별해 내는 능력이다. 데이터 분석의 초보자에게는 할루시네이션의 늪에 빠지지 않기 위해 좋은 책이 필요한 것 아닐까. 비록 할루시네이션이 있다고 해도 때로는 챗GPT가 내가 생각하지 못했던 새로운 관점을 보여주기 때문에 충분히 활용할 가치는 있다. 게다가 이제는 '검색' 기능이 추가되지 않았나.

 

데이터를 파일 형태로 업로드하고 기술 통계량 확인, 중복 데이터 처리, 결측값 처리, 이상치 처리, 데이터 샘플링 등 전처리를 한 결과를 파일 형태로 다운로드 할 수도 있다.

본격적인 데이터 분석이 시작되는 부분부터는 본인이 관심 있는 데이터세트를 가지고 직접 실습을 따라하면 된다. 앞에서도 얘기했듯이 두 사람의 대화 형태로 계속 이어가기 때문에 내 입장에서는 읽기에 조금 답답한 면이 있었다.

내가 생각하는 챗GPT를 이용한 데이터 분석의 가장 큰 미덕은, 원시데이터로부터 기술통계량을 뽑아내는 것이 프롬프트 한 줄이면 된다는 것, 각 항목이 무엇을 의미하는지 모르면 대화형으로 바로 다시 질문할 수 있다는 것, 전체 데이터를 다 읽지 않아도 데이터로부터 인사이트를 뽑아준다는 것, 파이썬, AWS, MySQL, Django 등이 뭔지 전혀 몰라도 분석과 예측이 가능하다는 것이 아닐까 싶다. 물론 이보다 장점이 더 많다. 단, 결과를 사용하는 것은 사용자의 몫이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
일잘러의 비밀, 엑셀 대신 파이썬으로 업무 자동화하기 - 엑셀 반복 업무로 지친 직장인, 파이썬으로 칼퇴하자!, 개정판 일잘러의 비밀
포스코인재창조원 지음 / 한빛미디어 / 2024년 9월
평점 :
장바구니담기



평소에 엑셀을 많이 쓰지는 않는다. 매달 쓰는 가계부나 매년 종합소득세 신고용으로 반복적으로 정리할 때 사용하는 것이 거의 다라고 할 수도 있다(이미 수식화+서식화 되어 있어서 수입금액만 적으면 얼마쯤 환급받을 수 있는지까지 다 계산해준다). 한때는 엑셀/파워포인트 강의도 했었는데...(한참 전 일이다)

그런데 엑셀에는 기대했던 것보다 많은 기능이 있고, 내가 그 기능을 안 쓰는 것이 아니라 뭐가 있는지 몰라서 못 쓰는 걸 수도 있다는 생각이 들었다. 이 책을 고른 것은 엑셀을 엄청 잘 쓰고 싶다거나 파이썬으로 내가 쓰고 있는 기능들을 자동화하기 위해서라기 보다는, "우선 어떤 기능들이 있는지 알아보고 적용할만한 부분이 있는지 찾아보자"는 이유에서였다. 게다가 요즘 파이썬을 배우고 있는 꼬맹이가 엑셀도 좀 가르쳐 달라고 해서 파이썬 자동화를 가르치면 파이썬에 속도가 붙지 않을까 하는 기대도 있다.


파이썬 설치와 기본 문법


시작은 파이썬이다. 전체의 1/4 살짝 넘는 분량이다. 이 부분은 파이썬을 모르는 사람에게는 꼭 필요한 부분이기도 하지만 나는 그냥 건너 뛰었다. 복잡한 내용은 빼고 가장 기본이 되는 내용들을 담았다. 왕초보용 간략한 기초 파이썬 교재 정도라고 봐도 될 것 같다. 파이썬 개요, 자료형, 제어문, 함수를 다룬다.


데이터를 다루는 파이썬 라이브러리인 pandas와 matplotlib 설치와 기본 사용법


다음 파트(Part 2, 4장~6장)에서는 엑셀에서 자주 쓰는 함수와 시각화를 위한 그래프 함수를 소개하고 있다. 역시 전체 분량의 1/4정도 된다.

제목만 보고는 구체적으로 어떤 내용을 다루는지 짐작하기 어려웠다. 엑셀을 다루는 거라고 생각했는데 4장과 5장에서는 파이썬 라이브러리 중에 데이터를 다룰 때 많이 사용하는 pandas 설치법과 사용법을 다루고 있었다. 6장은 파이썬에서 시각화할 때 많이 사용하는 라이브러리인 matplotlib를 다룬다.


"엑셀에서는 이러이러한 작업을 할 때 이 함수를 사용하지만, 파이썬에서는 이런 함수를 사용합니다."하며 각 케이스에 대해서 설명을 해주고 있다.


이렇게 비교해서 설명하기 때문에 엑셀함수에 익숙한 사람은 pandas 라이브러리에 조금만 익숙해지면 나머지는 크게 고생하지 않고 적응할 수 있을 것 같다. 좋은 점은 책의 앞부분에 있는 목차에도 이런 함수를 표가 나는 색상으로 표기해 놓아서 목차 겸 인덱스 역할을 잘 하고 있다는 것이다.


사실 pandas에서 rank()함수는 사용할 일이 없었는데, 이 rank()함수에서 순위를 매기는 방법을 지정하는 method가 엑셀에서 사용하던 것과 비슷하게 활용되니 재미있었다. 이게 되었었구나^^

(method 속성: average, min, max, first, dense)

6장까지는 읽어오는 데이터가 단지 엑셀로 저장된 데이터라는 것만 다를 뿐, 파이썬 데이터분석 기초과정과 다르지 않다.


두구두구두구두, 이제 드디어 파이썬 업무 자동화 파트


7장에서는 엑셀 형식을 다룰 수 있는 openpyxl 라이브러리, 파워포인트 파일을 지원하는 python-pptx 라이브러리, 마우스와 키보드를 제어하는 pyautogui를 설치하고 사용하는 법을 소개한다. 새 시트(엑셀, sheet)나 슬라이드(파워포인트, slide)를 추가하거나 삭제할 수도 있다.


엑셀파일에서 명단을 읽어서 지정된 템플릿에 맞춰 파워포인트에서 출력할 수 있는 명찰을 작성할 수도 있다. pandas, matplotlib 라이브러리 사용법을 이미 익혔기에 어렵지 않다. pyautogui는 이전에 사용해본 적이 없는 라이브러리라 신기하고 재미있었다. 엑셀 단축키(예를 들어 win + s)를 조작해서 엑셀을 열고 데이터를 읽어 총점과 평균을 계산해 정렬된 표로 기록하는 <성적 처리 자동화> 예제가 있는데, 단축키를 제어한다는 생각까진 하지 못했었다. 재미있는 라이브러리니 다른 데 많이 응용해봐야겠다.

8장에 나오는 웹크롤링은 데이터분석 과정을 가르치면서 많이 해봤고, 마지막 9장에서는 청구서를 자동으로 발행하는 케이스를 가지고 프로젝트를 한다.


10장에서는 25페이지 정도를 활용해 챗GPT 회원 가입하는 방법부터 코드 생성을 위한 프롬프트를 잘 만드는 방법, 챗GPT가 생성해 준 코드를 실행하는 방법을 소개한다. 내가 만들고자 하는 코드의 목적, 입력과 출력, 제약사항 등에 대해서 명확하게 지정하는 것이 중요한데 예시를 들어 잘 설명하고 있다. 물론 챗GPT가 제시해준 코드가 정확히 동작하게 만들려면 1~9장의 내용을 잘 알고 있어야 한다.

(1) 1~10장을 차례로 따라가 보기

(2) 10장을 먼저 따라해보고 1~9장 공부하기

공부하는 방법은 둘 중 하나일 건데, 본인이 원하는 어느 방법을 선택해도 나쁘지 않다고 본다.

사실 나에게 새로운 것은 7장, 9장 뿐이지만 엑셀의 구조에 대해서 잘 이해하고 있지만 파이썬을 모르던 사람 입장에서는 1장부터 10장까지 하나도 버릴 게 없을 것이다. 그렇게 두껍지 않은 책에 꼭 필요한 내용을 담았다는 느낌이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo