트랜스포머부터 NLP, 비전, 파인튜닝, RAG, 에이전트까지, 허깅페이스로 익히는 실전 AI 시스템
허깅페이스는 모델과 라이브러리, 개발 도구를 한곳에서 활용할 수 있어 오늘날 AI 개발에서 빼놓기 어려운 플랫폼으로 자리잡았습니다. 이 책은 트랜스포머와 허깅페이스 허브의 기본 사용법부터 자연어 처리, 컴퓨터 비전, 데이터셋 활용, 모델 파인튜닝, 멀티모달 모델까지 차근차근 다루며, 이후에는 랭체인과 라마인덱스를 활용한 LLM 애플리케이션, RAG 기반 질의응답, 에이전트, 그라디오 웹 인터페이스, GPT4All을 이용한 로컬 LLM, MCP를 활용한 외부 도구 연동으로 확장해 나갑니다. 이론만 길게 설명하기보다 코드와 예제를 중심으로 설명하므로, 파이썬과 넘파이, 판다스를 사용할 수 있는 독자라면 AI 개발 경험이 많지 않아도 충분히 시작할 수 있습니다.
1장 허깅페이스란
1.1 허깅페이스 트랜스포머 라이브러리
1.2 허깅페이스 모델
1.3 허깅페이스 그라디오 파이썬 라이브러리
1.4 허깅페이스 멘탈 모델 이해
1.5 요약
2장 시작하기
2.1 아나콘다 내려받기
__2.1.1 가상 환경 구축하기
__2.1.2 주피터 노트북 시작하기
2.2 트랜스포머 라이브러리 설치
__2.2.1 GPU 지원 확인하기
__2.2.2 파이프라인 객체에서 GPU 활용하기
2.3 허깅페이스 허브 패키지 설치
__2.3.1 파일 내려받기
__2.3.2 허깅페이스 CLI 사용법 안내
2.4 요약
3장 NLP 업무를 위한 허깅페이스 트랜스포머와 파이프라인 사용
3.1 트랜스포머 아키텍처 소개
__3.1.1 토큰화
__3.1.2 토큰 임베딩
__3.1.3 위치 인코딩
__3.1.4 트랜스포머 블록
__3.1.5 소프트맥스
3.2 트랜스포머 라이브러리 다루기
__3.2.1 사전 학습된 트랜스포머 모델이란
__3.2.2 트랜스포머 파이프라인이란
__3.2.3 모델 직접 사용하기
__3.2.4 트랜스포머 파이프라인 사용하기
3.3 NLP 작업에 트랜스포머 활용
__3.3.1 텍스트 분류
__3.3.2 텍스트 생성
__3.3.3 텍스트 요약
__3.3.4 텍스트 번역
__3.3.5 제로샷 분류
__3.3.6 질의응답 작업
3.4 요약
4장 허깅페이스를 컴퓨터 비전 작업에 활용
4.1 허깅페이스 컴퓨터 비전 모델
4.2 객체 탐지
__4.2.1 모델을 직접 사용하기
__4.2.2 트랜스포머 파이프라인 사용하기
__4.2.3 웹캠에 바인딩하기
4.3 이미지 분류
4.4 이미지 분할
__4.4.1 모델을 프로그래밍 방식으로 사용하기
__4.4.2 그라디오에 바인딩하기
4.5 비디오 분류
__4.5.1 필수 소프트웨어 설치하기
__4.5.2 테스트를 위한 비디오 내려받기
__4.5.3 트랜스포머 파이프라인 객체 사용하기
4.6 요약
5장 허깅페이스 데이터셋 탐색, 토큰화, 시각화
5.1 허깅페이스 데이터셋이란
__5.1.1 이용 가능한 데이터셋 목록 얻기
__5.1.2 데이터셋의 가용성 검증
__5.1.3 데이터셋 내려받기
__5.1.4 데이터셋 셔플링
__5.1.5 데이터셋 스트리밍
__5.1.6 데이터셋의 Parquet 파일 얻기
5.2 NLP에서 토큰화
__5.2.1 토큰화 방법의 유형
__5.2.2 데이터셋 토큰화
5.3 데이터셋 시각화
__5.3.1 twitter-financial-news-topic 데이터셋 사용하기
__5.3.2 CIFAR-10 데이터셋 사용하기
5.4 요약
6장 사전 학습된 모델 파인 튜닝과 멀티모달 모델 작업
6.1 사전 학습된 모델 파인 튜닝
__6.1.1 yelp_polarity 데이터셋 로드하기
__6.1.2 yelp_polarity 데이터셋 필터링하기
__6.1.3 축소된 데이터셋 토큰화하기
__6.1.4 시퀀스 분류를 위한 사전 학습된 모델 설정하기
__6.1.5 사전 학습된 모델 파인 튜닝을 위한 트레이너 구성 및 초기화
__6.1.6 파인 튜닝된 모델 사용하기
__6.1.7 다중 클래스 텍스트 분류를 위한 모델 파인 튜닝
6.2 멀티모달 모델 작업하기
__6.2.1 단일 모달 모델
__6.2.2 멀티모달 모델
6.3 요약
7장 랭체인과 라마인덱스를 사용한 LLM 기반 애플리케이션 구축
7.1 LLM 소개
7.2 랭체인 소개
__7.2.1 랭체인 설치하기
__7.2.2 프롬프트 템플릿 생성하기
__7.2.3 LLM 지정하기
__7.2.4 LLM 체인 생성하기
__7.2.5 체인 실행하기
__7.2.6 대화 유지하기
__7.2.7 RunnableWithMessageHistory 클래스 사용하기
__7.2.8 다른 LLM 사용하기
7.3 라마인덱스로 LLM을 개인 데이터에 연결
__7.3.1 패키지 설치하기
__7.3.2 문서 준비하기
__7.3.3 문서 로드하기
__7.3.4 임베딩 모델 사용하기
__7.3.5 문서 인덱싱하기
__7.3.6 임베딩 로드하기
__7.3.7 쿼리를 위해 LLM 사용하기
__7.3.8 질문하기
__7.3.9 OpenAI와 라마인덱스 사용하기
__7.3.10 앱을 위한 웹 프론트엔드 생성하기
__7.3.11 대화 유지하기
__7.3.12 챗봇 UI 생성하기
7.4 요약
8장 랭플로우를 활용한 시각적 랭체인 애플리케이션 구축
8.1 랭플로우란
__8.1.1 pip 명령어를 사용하여 랭플로우 설치하기
__8.1.2 도커를 이용한 랭플로우 설치하기
__8.1.3 클라우드에서 랭플로우 실행하기
8.2 새로운 랭플로우 프로젝트 생성
__8.2.1 프롬프트 컴포넌트 추가하기
__8.2.2 Models 컴포넌트 추가하기
__8.2.3 Chains 컴포넌트 추가하기
__8.2.4 Chat Input 및 Chat Output 컴포넌트 추가하기
__8.2.5 프로젝트 테스트하기
__8.2.6 Chat Memory 컴포넌트를 이용한 대화 유지
8.3 고유 데이터를 활용한 질의응답
__8.3.1 File 컴포넌트를 이용한 PDF 문서 불러오기
__8.3.2 Parse Data 컴포넌트를 이용한 긴 텍스트 분할하기
__8.3.3 Prompt 컴포넌트를 통한 질문 수집
__8.3.4 HuggingFace 컴포넌트 활용하기
__8.3.5 Chat Output 컴포넌트에 연결하기
__8.3.6 프로젝트 테스트하기
__8.3.7 OpenAI 컴포넌트를 활용한 LLM 사용하기
8.4 프로그래밍 방식으로 프로젝트 활용
__8.4.1 cURL 활용하기
__8.4.2 파이썬 코드
8.5 요약
9장 에이전트 프로그래밍
9.1 에이전트란
9.2 스몰에이전트를 사용한 에이전트 개발
__9.2.1 내장 도구 활용: DuckDuckGoSearchTool
__9.2.2 내장 도구 활용: PythonInterpreterTool
__9.2.3 사용자 정의 도구 작성하기
9.3 랭체인을 사용한 에이전트 개발
__9.3.1 내장 Tool 클래스 활용하기
__9.3.2 사용자 정의 도구 활용하기
9.4 랭그래프를 사용한 에이전트 개발
__9.4.1 랭그래프란
__9.4.2 랭그래프 에이전트 기초
__9.4.3 도구와 함께 랭그래프 사용하기
__9.4.4 사용자 정의 도구와 함께 랭그래프 사용하기
__9.4.5 메모리 기능을 포함한 랭그래프 사용하기
9.5 요약
10장 그라디오를 사용한 웹 기반 UI 구축
10.1 그라디오 기초
__10.1.1 그라디오의 Interface 클래스 사용법
__10.1.2 플래깅(Flagging) 옵션 설정하기
__10.1.3 인증(authentication) 설정하기
__10.1.4 서버 및 포트 커스터마이징
__10.1.5 그라디오 애플리케이션 공유하기
__10.1.6 그라디오 애플리케이션을 허깅페이스 스페이스에 배포하기
10.2 위젯 활용
__10.2.1 Textbox 활용하기
__10.2.2 Audio 활용하기
__10.2.3 Images 활용하기
__10.2.4 선택 위젯(selection widgets) 활용하기
__10.2.5 TabbedInterface 클래스를 사용하여 레이아웃 구성하기
10.3 챗봇 UI 생성
__10.3.1 기본 챗봇 UI 생성하기
__10.3.2 Textbox 전송(submit) 이벤트 연결하기
__10.3.3 챗봇 초기화 기능 구현하기
10.4 요약
11장 GPT4All을 이용한 로컬 실행 LLM 애플리케이션 구축
11.1 GPT4All 소개
11.2 GPT4All 설치 및 사용
__11.2.1 GPT4All 애플리케이션 설치하기
__11.2.2 gpt4all 파이썬 라이브러리 설치하기
__11.2.3 지원 모델 목록 확인하기
__11.2.4 특정 모델 로드하기
__11.2.5 질문하기
__11.2.6 그라디오와 연동하기
11.3 요약
12장 LLM을 이용한 로컬 데이터 쿼리
12.1 GPT4All로 고유 데이터 쿼리
__12.1.1 필수 패키지 설치 및 랭체인 모듈 임포트하기
__12.1.2 랭체인 패키지에서 다양한 모듈 임포트하기
__12.1.3 PDF 문서 로드하기
__12.1.4 텍스트를 청크로 분할하기
__12.1.5 임베딩(embedding)하기
__12.1.6 임베딩 로드하기
__12.1.7 모델 내려받기
__12.1.8 질문하기
__12.1.9 여러 문서 로드하기
__12.1.10 CSV 파일 로드하기
__12.1.11 JSON 파일 로드하기
12.2 LLM을 이용한 데이터 분석 코드 작성
__12.2.1 JSON 파일 준비 및 로드하기
__12.2.2 JSON 파일 로드하기
__12.2.3 Mistral 7B 모델을 사용하여 질문하기
__12.2.4 OpenAI를 사용하여 질문하기
12.3 요약
13장 LLM을 현실 세계와 연결: 모델 컨텍스트 프로토콜
13.1 MCP란
__13.1.1 MCP가 해결하는 문제
__13.1.2 MCP 이해하기
__13.1.3 MCP 서버 배포 및 구성 요소
__13.1.4 MCP 서버의 구성 요소
13.2 MCP 서버 구축
__13.2.1 uv 설치하기
__13.2.2 프로젝트 초기화하기
__13.2.3 패키지 설치하기
__13.2.4 MCP 서버 생성하기
__13.2.5 MCP 서버 점검하기
__13.2.6 Resources 구현하기
__13.2.7 Tools 구현하기
__13.2.8 프롬프트 구현하기
__13.2.9 구성 요소 테스트하기
13.3 클로드 데스크톱을 이용한 MCP 서버 테스트
__13.3.1 MCP 서버를 사용하도록 클로드 데스크톱 구성하기
__13.3.2 날씨 정보 가져오기
__13.3.3 텍스트 파일의 내용 가져오기
__13.3.4 PDF 파일의 내용 가져오기
__13.3.5 MCP 서버 개선하기
13.4 서드파티 MCP 서버 시도
__13.4.1 내 위치 가져오기(Get My Location)
__13.4.2 날짜 및 시간 정보(mcp-datetime)
13.5 요약
독자의견 남기기