책 <AI 엔지니어링> 노트
이 책은 누구를 위한 책인가 (Who This Book Is For)
이 책은 파운데이션 모델을 활용해 현실 세계의 문제를 해결하고자 하는 모든 사람을 위한 책이다. 이 책은 기술서이므로, AI 엔지니어, ML 엔지니어, 데이터 사이언티스트, 엔지니어링 매니저, 테크니컬 프로덕트 매니저 등 기술 직군을 염두에 두고 쓰였다. 아래 상황 중 하나라도 공감한다면, 이 책은 당신을 위한 책이다.
- 처음부터 AI 애플리케이션을 만들거나 기존 AI 애플리케이션을 최적화하고 있다. 단순 데모 단계를 넘어 프로덕션(실서비스) 수준으로 가져가고 싶을 수도 있다. 이 과정에서 환각(hallucinations), 보안, 지연 시간(latency), 비용 같은 문제에 부딪혀, 이에 대한 맞춤형 해결책이 필요할 수도 있다.
- 팀의 AI 개발 프로세스를 더 체계적이고, 더 빠르며, 더 신뢰할 수 있게 만들어 효율화하고 싶다.
- 조직이 파운데이션 모델을 어떻게 활용해 비즈니스의 수익성(성과)을 개선할 수 있는지, 그리고 이를 위해 팀을 어떻게 구성해야 하는지 이해하고 싶다.
또한 아래 그룹에 속한다면, 이 책이 도움이 될 수 있다.
- AI 엔지니어링에서 아직 충분히 다뤄지지 않은 영역(수요가 덜 충족된 영역)을 찾아, 생태계 안에서 자신의 제품을 어떻게 포지셔닝할지 고민하는 툴 개발자.
- AI 활용 사례(use cases)를 더 잘 이해하고 싶은 연구자.
- AI 엔지니어 커리어를 추구하는 데 필요한 역량이 무엇인지 명확히 알고 싶은 취업 준비생/구직자.
- AI의 역량과 한계, 그리고 그것이 다양한 역할에 어떤 영향을 미칠지 더 잘 이해하고 싶은 사람.
나는 어떤 일이든 “핵심까지 파고드는 것”을 좋아해서, 일부 섹션은 기술적인 내용으로 조금 더 깊게 들어간다. 초반 독자들 중에는 이런 디테일을 좋아하는 사람도 많았지만, 모든 사람에게 맞는 건 아닐 수도 있다. 너무 기술적으로 깊어지기 전에 미리 알려줄 테니, 내용이 너무 “디테일의 숲”으로 느껴진다면 편하게 건너뛰어도 좋다!
이 책이 다루는 것 (What This Book Is About)
이 책은 파운데이션 모델(대규모 언어 모델 LLM, 대규모 멀티모달 모델 LMM)을 특정 애플리케이션에 맞게 적용(adapting)하기 위한 프레임워크를 제공합니다.
애플리케이션을 만드는 방법은 다양합니다. 이 책은 여러 해결책을 개괄하고, 내 상황에 가장 적합한 해결책을 평가할 때 던져야 할 질문들도 함께 제시합니다. 이 책을 통해 답을 얻을 수 있는 질문의 예시는 다음과 같습니다.
- 이 AI 애플리케이션을 만들어야 할까?
- 내 애플리케이션을 어떻게 평가할까? AI를 사용해 AI의 출력물을 평가할 수 있을까?
- 환각(hallucinations)은 왜 발생할까? 환각을 어떻게 탐지하고 완화할까?
- 프롬프트 엔지니어링의 모범 사례는 무엇일까?
- RAG는 왜 작동할까? RAG를 수행하는 전략은 무엇일까?
- 에이전트(agent)란 무엇일까? 에이전트를 어떻게 만들고 평가할까?
- 모델을 언제 파인튜닝해야 할까? 언제는 파인튜닝하지 말아야 할까?
- 얼마나 많은 데이터가 필요할까? 내 데이터의 품질은 어떻게 검증할까?
- 모델을 더 빠르게, 더 저렴하게, 더 안전하게 만들려면 어떻게 해야 할까?
- 애플리케이션을 지속적으로 개선하기 위한 피드백 루프를 어떻게 만들까?
또한 이 책은 압도적으로 넓은 AI 환경을 항해하는 데도 도움이 됩니다. 예를 들어 모델의 종류, 평가 벤치마크, 그리고 거의 무한해 보이는 유스케이스와 애플리케이션 패턴 등을 다룹니다.
이 책의 내용은 사례 연구(case study)를 통해 설명되며, 그중 상당수는 저자가 직접 참여했던 작업을 바탕으로 합니다. 또한 풍부한 참고자료를 기반으로 하고, 다양한 배경을 가진 전문가들의 폭넓은 리뷰를 거쳤습니다. 이 책을 쓰는 데 2년이 걸렸지만, 지난 10년간 언어 모델과 ML 시스템을 다루어온 저자의 경험을 토대로 합니다.
이전 오라일리 책인 『Designing Machine Learning Systems(DMLS)』와 마찬가지로, 이 책은 특정 도구나 API가 아니라 AI 엔지니어링의 기본기(fundamentals)에 초점을 둡니다. 도구는 금방 구식이 되지만, 기본기는 더 오래 갑니다.
이 책이 “아닌 것” (What This Book Is Not)
이 책은 튜토리얼이 아닙니다. 특정 도구를 언급하고 개념을 설명하기 위한 의사코드(pseudocode)도 일부 포함하지만, 어떤 도구를 “어떻게 쓰는지”를 가르치지는 않습니다. 대신 도구를 선택하기 위한 프레임워크를 제공합니다. 다양한 해결책 사이의 트레이드오프와, 해결책을 평가할 때 던져야 할 질문들을 많이 다룹니다. 특정 도구의 사용법이 필요하다면, 온라인에서 튜토리얼을 찾는 것이 보통 더 쉽습니다. AI 챗봇도 인기 있는 도구를 시작하는 데 꽤 도움이 됩니다.
이 책은 ML 이론서도 아닙니다. 신경망이 무엇인지, 모델을 처음부터 어떻게 만들고 학습시키는지 설명하지 않습니다. 논의에 바로 필요한 이론적 개념들은 많이 설명하지만, 이 책의 목적은 현실 문제를 해결하는 성공적인 AI 애플리케이션을 만드는 데 도움을 주는 실용서입니다.
ML 전문 지식이 없어도 파운데이션 모델 기반 애플리케이션을 만들 수는 있지만, ML과 통계에 대한 기본 이해가 있으면 더 나은 애플리케이션을 만들 수 있고 불필요한 고생을 줄일 수 있습니다. ML 배경지식 없이도 이 책을 읽을 수 있습니다. 다만 AI 애플리케이션을 만들 때 아래 개념들을 알고 있으면 더 효과적입니다.
- 샘플링(sampling), 결정론(determinism), 분포(distribution) 같은 확률 개념
- 지도학습(supervision), 자기지도학습(self-supervision), 로그우도(log-likelihood), 경사하강법(gradient descent), 역전파(backpropagation), 손실함수(loss function), 하이퍼파라미터 튜닝(hyperparameter tuning) 같은 ML 개념