LangChain 코스 소개: 대형 언어 모델 응용 프로그램 개발 가이드

GoGoComputer·2024년 9월 29일
3

LangChain Basics

목록 보기
1/40

LangChain 코스에 오신 것을 환영합니다

안녕하세요! LangChain 코스에 참여해 주셔서 정말 감사합니다. 여러분은 강력한 대형 언어 모델(LLM) 응용 프로그램 프레임워크인 LangChain을 배우고 사용하기로 결정하셨습니다. 이 코스를 통해 LLM을 활용한 응용 프로그램을 어떻게 개발하는지 단계별로 알아보게 될 것입니다.


이번 강의의 개요

이번 강의에서는 코스가 어떻게 구성되어 있는지와 이것이 LangChain과 어떻게 관련되는지에 대한 간략한 개요를 알려드리려고 합니다. 또한 LangChain의 몇 가지 독특한 점에 대해서도 설명드릴 것입니다. 그 후에는 LangChain과 함께 코딩 구성 요소를 살펴보며 여러분만의 대형 언어 모델 응용 프로그램을 구축해 볼 것입니다.


왜 LangChain을 사용해야 할까요?

이미 OpenAI API나 다른 대형 언어 모델의 기본 API에 접근할 수 있는데, 왜 LangChain 같은 프레임워크를 사용해야 할까요?

먼저, LangChain은 대형 언어 모델로 작동되는 응용 프로그램을 개발하기 위한 프레임워크입니다. 특정한 LLM에 제한되지 않고, 다양한 모델을 사용할 수 있습니다. 예를 들어, Meta에서 제공한 오픈 소스 모델인 Llama 2도 사용할 수 있습니다. LangChain은 모듈을 사용하여 이러한 작업을 수행합니다.


모듈과 구성 요소의 차이

문서를 보시면 어떤 곳에서는 '구성 요소'라고 하고, 다른 곳에서는 '모듈'이라고 할 수 있습니다. 이 용어는 기술적으로 다를 수 있지만, 이 강의에서는 사용 사례를 위해 둘 다 '모듈'로 정의하겠습니다.

  • 왼쪽에는 스키마, 모델, 프롬프트, 메모리, 체인, 에이전트와 같은 구성 요소가 있습니다.
  • 오른쪽에는 모델, 데이터 연결, 체인 등의 모듈이 있습니다. 일부는 이름이 동일합니다: 메모리, 에이전트 등.

이러한 차이는 LangChain이 단순히 파이썬 라이브러리가 아니라 JavaScriptTypeScript에서도 개발되고 있기 때문입니다. 따라서 어떤 링크를 클릭하느냐에 따라 '모듈'로 불릴 수도 있고, 일반 '구성 요소'로 불릴 수도 있습니다.

이 코스는 파이썬으로 진행되므로, 파이썬 문서를 참고하시는 것이 좋습니다. 가끔 구글 검색을 하면 일반 문서로 들어갈 수 있는데, 그럴 때는 Python, JavaScript, TypeScript 문서로 링크될 수 있습니다. 때로는 일반 문서와 파이썬 문서 사이의 링크가 404 오류를 낼 수도 있으니 놀라지 마세요.

팁: 파이썬 LangChain 문서로 바로 가셔서 모듈을 살펴보는 것을 추천합니다. 그러면 코스 구조와 모듈 사이의 연결성이 구성 요소보다 더 강하다는 것을 알 수 있습니다.


LangChain의 주요 아이디어와 구성 요소 탐구

LangChain의 장점을 이해하는 가장 좋은 방법은 모듈과 구성 요소가 어떻게 함께 작용하여 강력한 LLM 응용 프로그램을 쉽게 만드는지 이해하는 것입니다. 이 강의에서는 주요 아이디어와 각 구성 요소를 탐구해 보겠습니다.


코스의 구성

이 코스는 몇 가지 섹션으로 나누어져 있습니다:

  1. 모델 입력과 출력 (Model I/O)
  2. 데이터 연결 (Data Connectivity)
  3. 체인 (Chains)
  4. 메모리 (Memory)
  5. 에이전트 (Agents)

에이전트에 대해 천천히 이해하도록 설계되어 있으니 순서대로 진행해 주시기 바랍니다.


각 모듈의 역할과 LangChain을 사용하는 이유

1. 모델 입력과 출력 (Model I/O)

  • 집중 분야: 기본적인 대형 언어 모델의 입력과 출력.
  • LangChain의 이점: 입력과 출력이 표준화되어 어떤 언어 모델을 사용하든 코드 구조가 동일합니다. 따라서 LLM 간에 쉽게 전환할 수 있습니다. 또한 텍스트 완성 API와 채팅 인터페이스 API도 지원합니다.
  • 왜 필요한가요? 언어 모델은 빠르게 발전하고 있습니다. LangChain을 사용하면 모델 간 전환이 유연해집니다. 예를 들어, OpenAI API에서 Meta의 Llama 2로 쉽게 전환할 수 있습니다.

2. 데이터 연결 (Data Connectivity)

  • 집중 분야: LLM과 다양한 데이터 소스를 연결.
  • LangChain의 이점: 벡터 스토어를 쉽게 바꾸고 정보를 벡터화하여 유사한 검색을 할 수 있습니다. 또한 CSV 파일, PDF, AWS, Google Cloud의 BigQuery 등 다양한 데이터 소스와 통합할 수 있습니다.
  • 왜 필요한가요? 데이터 소스와 모델 입력을 표준화된 방식으로 연결하여 작업을 쉽게 처리할 수 있습니다.

3. 체인 (Chains)

  • 집중 분야: 한 모델의 출력을 다른 모델의 입력으로 연결.
  • LangChain의 이점: 작업을 분리하여 모델 호출 사이에 효율적으로 연결할 수 있습니다. 나중에 체인의 구성 요소를 쉽게 교체할 수 있습니다.
  • 왜 필요한가요? 복잡한 작업을 여러 단계로 분리하여 관리하고 확장성을 높일 수 있습니다.

4. 메모리 (Memory)

  • 집중 분야: 모델이 이전 상호 작용의 역사적 문맥을 유지.
  • LangChain의 이점: 대화나 결과를 저장하고 나중에 다시 로드할 수 있습니다.
  • 왜 필요한가요? 사용자 경험을 향상시키고 지속적인 대화 컨텍스트를 유지할 수 있습니다.

5. 에이전트 (Agents)

  • 집중 분야: 모델이 도구를 사용하여 복잡한 작업을 수행.
  • LangChain의 이점: 몇 줄의 코드로 강력한 에이전트를 만들 수 있고, 사용자 지정 도구를 개발할 수 있습니다.
  • 왜 필요한가요? 모델이 계산기 사용, 위키피디아 검색, 파이썬 코드 실행 등 다양한 작업을 수행하게 할 수 있습니다.

LangChain을 배우면서 염두에 두어야 할 점

LangChain을 처음 접하는 분들은 가끔 혼란스럽고 좌절감을 느낄 수 있습니다. 특정 모듈과만 상호 작용하고, 강력한 응용 프로그램을 만들기 위해 이러한 것들이 실제로 어떻게 상호 작용하는지의 더 큰 그림을 놓치기 때문입니다.

팁: 이 코스는 단계별로 안내하여 모든 모듈이 어떻게 작동하는지 보여드리려고 합니다. 순서대로 수업을 들으시면 이해하기 훨씬 쉬울 것입니다. 에이전트로 바로 뛰어들고 싶은 마음이 들 수 있지만, 다른 모듈들도 매우 흥미롭고 유용하며, 그 자체로도 훌륭하다고 약속드립니다.


이제 코딩을 시작해 볼까요?

자, 이제 본격적으로 코딩을 시작해 봅시다! 다음 강의에서는 실제로 LangChain을 사용하여 간단한 응용 프로그램을 만들어 볼 것입니다.

profile
IT를 좋아합니다.

0개의 댓글