개발자를 위한 LLM 소개
이 과정은 앤드류 응과 오픈아이가 공동으로 기획한 대규모 언어 모델 시리즈 세 강좌의 중국어 적응 버전입니다. 프롬프트 엔지니어링, ChatGPT API를 활용한 시스템 구축, LangChain 응용 개발, 그리고 개인 데이터에 접근하기 위해 LangChain 사용 방법을 다룹니다. 이 과정은 요약, 추론, 변환, 확장 및 채팅 기능을 갖춘 응용 프로그램을 개발하는 데 대규모 언어 모델의 능력을 어떻게 활용할 수 있는지 명확하고 이해하기 쉬운 소개를 제공합니다.
강좌 개요
📚 콘텐츠 요약
이 과정은 앤드류 응(Andrew Ng)과 오픈애이(OpenAI)가 공동 개발한 3부작 대규모 언어 모델(LLM) 시리즈의 중국어 버전입니다. 프롬프트 엔지니어링, ChatGPT API 기반 시스템 구축, LangChain 응용 개발, 그리고 개인 데이터에 접근하는 데서 사용하는 LangChain 활용 방법을 다룹니다. 이 과정은 요약, 추론, 변환, 확장 및 채팅 기능을 갖춘 애플리케이션 개발을 위해 대규모 언어 모델의 능력을 효과적으로 활용하는 깊이 있는 그러나 접근성 있는 소개를 제공합니다.
대규모 모델 시대의 인공지능 애플리케이션 개발자가 되기 위해 프롬프트 엔지니어링과 LangChain 프레임워크를 마스터하세요.
🎯 학습 목표
- 기본 LLM과 지시 조정된 LLM 사이의 차이를 구분할 수 있습니다.
- 명확하고 구체적인 지시를 작성하기 위한 네 가지 전략(구분자, 구조화된 출력, 조건 검사, 소수 예시 프롬프팅)을 적용할 수 있습니다.
- 작업 단계를 명시하고 독립적인 문제 해결을 요구함으로써 모델에게 "생각할 시간"을 주는 전략을 구현할 수 있습니다.
- 구조화된 텍스트 처리를 구현하여 단일 또는 다중 문서에서 특정 정보를 요약하고 추출하며, 출력 길이와 초점을 제어할 수 있습니다.
- 자동 텍스트 분석을 수행하여 감정 분류, 특정 감정 식별, 프롬프트를 사용한 제로샷 주제 분류를 수행할 수 있습니다.
- 다중 모달 변환을 실행하여 언어 간 번역, 데이터 형식 변환(예: JSON → HTML), 그리고 문법/철자 오류를 프로그래밍 방식으로 수정할 수 있습니다.
- 기본 LLM과 지시 조정된 LLM의 차이를 구분하고, 토큰화가 모델 동작에 미치는 영향을 이해할 수 있습니다.
- 시스템, 사용자, 어시스턴트 메시지 역할을 사용하여 구조화된 시스템 아키텍처를 구현하여 모델의 성격을 정의할 수 있습니다.
- 사용자 입력을 안전성 및 라우팅 평가를 위해 분류 및 모니터링 기술을 적용할 수 있습니다.
- 복잡한 작업을 관리 가능한 하위 작업으로 분해하여 신뢰도를 높이고 비용을 줄이는 프롬프트 체이닝을 구현할 수 있습니다.
🔹 수업 1: 프롬프트 원칙과 반복적 개발
개요: 본 수업은 개발자를 위한 프롬프트 엔지니어링의 기본 원리를 다루며, 기본적인 '기본 LLM'에서 '지시 조정된 LLM'으로의 전환을 설명합니다. 효과적인 상호작용을 위한 두 가지 핵심 요소인 명확하고 구체적인 지시 작성을 포함하고, 모델이 충분한 "생각할 시간"을 가질 수 있도록 하는 방법을 소개합니다. 또한, 길이 제한이나 서식 요구 사항과 같은 구체적인 비즈니스 요구사항을 충족시키기 위해 프롬프트를 개선하는 반복적 워크플로우를 설정합니다.
학습 결과:
- 기본 LLM과 지시 조정된 LLM의 차이를 구분할 수 있습니다.
- 명확하고 구체적인 지시를 작성하기 위한 네 가지 전략(구분자, 구조화된 출력, 조건 검사, 소수 예시 프롬프팅)을 적용할 수 있습니다.
- 작업 단계를 명시하고 독립적인 문제 해결을 요구함으로써 모델에게 "생각할 시간"을 주는 전략을 구현할 수 있습니다.
🔹 수업 2: 핵심 프롬프트 기능과 챗봇
개요: 본 수업에서는 대규모 언어 모델(LLM)의 실용적 응용을 다섯 가지 주요 기능 영역에서 탐구합니다: 요약, 추론, 변환, 확장 및 인터랙티브 챗봇 구축. 개발자들에게 파이썬과 오픈애이 API를 사용하여 텍스트를 처리하고, 구조화된 데이터를 추출하며, 언어 스타일을 조정하고, 고객 서비스 로봇과 같은 실제 애플리케이션에서 대화 상태를 유지하는 실습 가이드를 제공합니다.
학습 결과:
- 구조화된 텍스트 처리를 구현하여 단일 또는 다중 문서에서 특정 정보를 요약하고 추출하며, 출력 길이와 초점을 제어할 수 있습니다.
- 자동 텍스트 분석을 수행하여 감정 분류, 특정 감정 식별, 프롬프트를 사용한 제로샷 주제 분류를 수행할 수 있습니다.
- 다중 모달 변환을 실행하여 언어 간 번역, 데이터 형식 변환(예: JSON → HTML), 그리고 문법/철자 오류를 프로그래밍 방식으로 수정할 수 있습니다.
🔹 수업 3: 시스템 로직: 입력 분류와 추론
개요: 본 수업에서는 대규모 언어 모델(LLM)의 근본적인 작동 원리를 탐구하며, 기본적인 토큰화와 메시지 역할에서 시작하여 고급 입력 처리 전략으로 나아갑니다. 사용자 의도를 분류하고, 안전성 측면에서 콘텐츠를 모니터링하며, 사고의 연쇄(Chain of Thought, CoT) 추론을 통해 정확도를 높이고 사용자 경험을 제어하는 '내면 독백(Inner Monologues)'을 구현하는 방법을 배웁니다.
학습 결과:
- 기본 LLM과 지시 조정된 LLM의 차이를 구분하고, 토큰화가 모델 행동에 미치는 영향을 이해할 수 있습니다.
- 시스템, 사용자, 어시스턴트 메시지 역할을 사용하여 구조화된 시스템 아키텍처를 구현하여 모델의 성격을 정의할 수 있습니다.
- 사용자 입력의 안전성 및 라우팅 평가를 위해 분류 및 모니터링 기술을 적용할 수 있습니다.
🔹 수업 4: 복잡한 워크플로우와 시스템 평가
개요: 본 수업에서는 단순한 프롬프트에서 복잡한 다단계 LLM 워크플로우로의 전환을 다룹니다. 프롬프트 체이닝을 통해 작업을 분해하고, 모니터링 API를 통해 안전성 계층을 구현하며, 단일 정답이 있는 경우와 주관적인 평가 기준이 필요한 경우 모두에 대해 엄격한 평가 프레임워크를 수립합니다.
학습 결과:
- 프롬프트 체이닝을 구현하여 복잡한 작업을 관리 가능한 하위 작업으로 분해하여 신뢰도를 높이고 비용을 줄일 수 있습니다.
- 입력/출력 모니터링과 사실 확인 메커니즘을 통합하여 프로덕션 준비된 파이프라인으로 보안을 강화한 종합 시스템을 구축할 수 있습니다.
- 이상적인 답변 비교와 LLM 지원 평가 기준을 사용하여 LLM 성능을 측정할 수 있는 검증 세트를 개발할 수 있습니다.
🔹 수업 5: LangChain 기초: 모델, 프롬프트, 메모리
개요: 본 수업에서는 LangChain 프레임워크의 핵심 구성 요소를 소개하며, 대규모 언어 모델(LLM) 상호작용을 추상화하는 방법에 집중합니다. 직접적인 API 호출에서부터 LangChain의 모듈형 컴포넌트인 모델, 프롬프트 템플릿, 출력 파서를 사용하는 전환 과정을 다루며, 대화 상태를 유지하기 위한 네 가지 다양한 메모리 전략에 대한 심층 탐구로 마무리됩니다.
학습 결과:
- LangChain의 ChatOpenAI 및 모듈형 컴포넌트를 사용하여 기본적인 LLM 호출을 구현할 수 있습니다.
- 복잡한 프롬프트 로직과 변수를 관리하기 위해 재사용 가능한 ChatPromptTemplate 구조를 구성할 수 있습니다.
- 구조화된 출력 파서를 사용하여 비구조화된 LLM 응답에서 구조화된 데이터(예: JSON/파이썬 딕셔너리)를 추출할 수 있습니다.
🔹 수업 6: LangChain 체인, 질문-답변 및 자율 에이전트
개요: 본 수업에서는 LangChain의 핵심 아키텍처 빌딩 블록을 다룹니다. 단순한 선형 프롬프트-완성 시퀀스에서 복잡하고 논리 중심의 시스템으로 전환합니다. 여러 번의 LLM 호출을 조율하는 체인, 벡터 저장소를 사용하여 개인 문서 위에서 검색 증강 생성(Q&A)을 구현하는 방법, 그리고 추론을 통해 도구를 선택하고 실행하는 자율 에이전트를 배포하는 방법을 배웁니다. 본 내용은 단일 프롬프트 상호작용을 넘어서 자동화되고 확장 가능한 LLM 애플리케이션으로의 전환을 강조합니다.
학습 결과:
- SequentialChain과 RouterChain을 사용하여 선형 및 복잡한 다단계 워크플로우를 구축할 수 있습니다.
- 임베딩, 벡터 저장소, RetrievalQA 체인을 사용하여 문서 기반 질문-답변 시스템을 구축할 수 있습니다.
- QAGenerateChain과 QAEvalChain을 사용하여 LLM 애플리케이션의 자동 평가를 구현할 수 있습니다.
🔹 수업 7: 개인 데이터 준비: 로딩과 벡터화
개요: 본 수업은 LangChain을 사용한 검색 증강 생성(RAG) 시스템 구축의 초기 단계를 다룹니다. 다양한 소스(문서, 유튜브, 웹사이트, 노션 등)로부터 비구조화된 데이터를 불러오고, 의미 있는 단위로 분할한 후, 벡터 데이터베이스에서 유사성 검색을 가능하게 하기 위해 수치형 임베딩으로 변환하는 과정을 안내합니다.
학습 결과:
- PDF, 유튜브 오디오, 웹 URL, 노션 데이터베이스에서 데이터를 가져오는 다양한 LangChain 문서 로더를 구현할 수 있습니다.
- chunk_size와 chunk_overlap 매개변수를 사용하여 문자, 재귀, 토큰, 마크다운 등의 서로 다른 텍스트 분할기(텍스트 스플리터)를 구성하고 비교할 수 있습니다.
- 임베딩을 생성하고 이를 크로마 벡터스토어에 저장하여 의미적 유사성 검색을 가능하게 하는 벡터화 프로세스를 수행할 수 있습니다.
🔹 수업 8: 검색 증강 생성(RAG)과 상호작용
개요: 본 자료는 기초적인 의미적 검색에서 고급 검색 및 대화형 상호작용으로의 전환을 탐구합니다. 최대 마진 재관련성(MMR), 메타데이터 필터링, 컨텍스트 압축과 같은 정교한 검색 기법을 다루며, 이후에는 LangChain의 메모리 및 GUI 컴포넌트를 사용하여 상태 기반 질문-답변 체인과 완전한 기능을 갖춘 챗봇을 구축하는 방법을 보여줍니다.
학습 결과:
- 검색된 문서의 다양성과 관련성을 향상시키기 위해 고급 검색 전략(MMR, 자기 질의, 압축)을 구현할 수 있습니다.
- 질문-답변 작업에서 검색된 컨텍스트를 처리하기 위해 다양한 체인 유형(stuff, MapReduce, Refine)을 비교하고 배포할 수 있습니다.
- 대화 상태를 유지하기 위해 ConversationalRetrievalChain과 ConversationBufferMemory를 사용하여 상태 기반 챗봇 인터페이스를 구축할 수 있습니다.