인공지능 개발자 수다(유튜브 바로가기) 자세히보기
반응형

자연어처리/Langchain 8

[langchain] Message 다루기

메세지는 채팅모델의 입력/출력 입니다.메세지는 내용(content) 와 역할(role)로 구성되어 있습니다. 이번시간에 설명할 내용은 메세지를 다루는 세가지 방법 입니다.1. Trim2. Filter3. 동일 유형의 메세지 병합 메세지는 모델과의 대화를 저장하고 추적하는데 주로 사용됩니다.1. Trim1.1. trim messages 개념llm은 메세지의 크기가 제한되어 있기 때문에, 토큰의 수를 다듬어야 한다. trim 기법은 크게 두가지가 있다.토큰수 기반 Trimming (Trimming based on token count)메시지 수를 기반 Trimming (Trimming based on message count)1.2. Trimming 예시 코드각 모델마다 메시지에서 사용하는 토큰 수가 다를 ..

[langchain] LangChain Expression Language(LCEL)

1. LangChain Expression Language(LCEL) 소개LangChain 표현 언어, 혹은 LCEL은 LangChain 컴포넌트들을 연결하는 선언적 방식입니다. LCEL은 처음부터 프로토타입을 코드 수정 없이 바로 프로덕션에 배포할 수 있도록 설계되었습니다. 간단한 “프롬프트 + LLM” 체인부터 100단계 이상의 복잡한 체인까지, 많은 사용자들이 LCEL 체인을 성공적으로 프로덕션에서 운영하고 있습니다.2. LCEL 사용 이유2.1. streaming supportLCEL로 체인을 구축하면 가장 빠른 첫 토큰 출력 시간을 확보할 수 있습니다 (첫 번째 출력 조각이 나올 때까지 걸리는 시간). 예를 들어, 일부 체인의 경우 LLM에서 나오는 토큰을 바로 스트리밍 출력 파서로 전송하여, ..

[Langchain] Langchain v0.3 패치노트

1. 변경 사항내부적으로 모든 패키지가 Pydantic 1에서 Pydantic 2로 업그레이드됨. 이제 Pydantic 2를 완전히 지원Pydantic 1은 2024년 6월에 지원 종료Python 3.8은 2024년 10월에 지원이 종료2. 새롭게 추가된 기능2.1. the latest integration packages 패치,기존 langchain-community 의 내용이 integration packages로 많이 넘어감  langchain-openai langchain-anthropic langchain-google-vertexai langchain-aws langchain-huggingface langchain-mistralai2.2. tool의 정의와 사용이 단순화됨2.2.1. Tool 정..

[Langchain] Retriever 사용하기

1.  Retriever 는 무엇인가Retriever는 주어진 질문에 대해 관련된 정보를 찾아오는 구성 요소입니다. 특히, 여러 개의 문서나 데이터베이스에서 필요한 정보를 검색하는 역할을 합니다. 검색은 챗봇이 챗 모델의 훈련 데이터 외부의 데이터로 응답을 증강하는 데 사용하는 일반적인 기술입니다. Retriever는 대용량의 비정형 데이터를 효율적으로 처리하여 사용자에게 필요한 정보를 빠르게 제공하는 핵심 요소입니다.2. Retriever의 종류Vectorstore Retriever이 방식은 가장 기본적이고 쉽게 시작할 수 있는 방법입니다.각 텍스트 조각마다 임베딩을 생성하여 검색을 수행하며, 빠르고 간단한 검색 시스템을 구축하고자 할 때 적합합니다.주로 유사도 검색을 위해 벡터 공간에 문서를 매핑하..

[langchain] Prompt templetes(프롬프트 탬플릿) 만들기

1. LLM의 입력값 형식입력 데이터를 기준으로 두가지 종류의 LLM으로 나눌 수 있습니다.프롬프트를 만들기 전에, 모델에 어떤 형식으로 데이터가 들어가는지 확인해 봅시다.1.1. 완성형 LLM (Completion-based LLM)동작 방식: 주어진 프롬프트에 이어질 텍스트를 예측하여 생성사용 사례: 코드 자동 완성, 문장 또는 단락 생성, 문서 작성 보조입력 데이터: 문자열입력 데이터 예시"안녕하세요." 1.2. 대화형 LLM (Chat-based LLM)동작 방식: 사용자와의 대화를 통해 상호 작용하며, 이전 대화 내용을 기반으로 응답사용 사례: 챗봇, 대화 기반 학습 도구입력 데이터: Json입력 데이터 예시[ {"role": "user", "content": "안녕하세요."}, {"..

[langchain] LLM(Large Language Model) 사용하기

0. 개요랭체인에서 LLM을 불러오는 방법중 크게는 세가지가 있다.1. api 형태로, 요청만 할 수 있는 모델 (chatgpt 등등)2. 로컬로 다운 받아, 커스터마이징이 가능한 모델 (HuggingFace)3. 로컬에 다운 받을 수 있으나, 수정할 수는 없는 모델 (Ollama) Langchain에 올라오는 LLM 모델은 매달 빠르게 변경되고 추가되기 때문에,가장 많이 사용할 법한 분류를 기준으로 소개하겠다.(정말 모델은 엄청 다양하고 많다.)1.  API에 요청1.1. 설명내용 출처: How to chain runnablesAPI에 요청 하는 방법은, 다른 서버의 자원을 사용하기 때문에 유료로 사용한다고 볼 수 있다. 장점은, 사용하기 편리하고 대체로 성능이 좋다는 점이다. 가격도 서버를 직접 운영..

[Langchain] 랭체인 무엇을 공부해야 하나?

랭체인은 대화형 언어모델을 이용하기 위해여러가지 작업을 연결할 수 있도록 만든 라이브러리 이다. 어떤 것들을 배워야 할지 정리해 보자. 1. 모델어떤 모델을 가져올 수 있는지 알아보는 것이 필요하다.대표적으로 ChatGPT, Llama3 가 있으며, 기타 다양한 모델을 HuggingFace에서 불러와 사용할 수 있다.2. 체인체인의 각 요소들을 어떻게 연결할 수 있는지3. Retriever(검색)사용자가 질의한 내용에 대해, 가장 관련성이 높은 정보를 검색해 반환한다.특정 분야의 관련성이 높은 정보를 미리 준비하면, 그에 맞는 대답을 할 수 있는 LLM 모델이 된다.Retriever는 다양한 종류가 있다.4. 프롬프트 탬플릿- 들어온 문장이나 단어를 어떻게 모델에 최종적으로 입력할지 결정한다.- 필요하다..

[LangChain] 랭체인이란 무엇인가

참고자료: LangChain docs (링크), 공식홈페이지 LangChain은 자연어 처리(NLP)를 위한 툴과 서비스를 개발 및 통합하기 위한 프레임워크를 제공하는 오픈 소스 라이브러리입니다. 양한 NLP 모델과 툴을 쉽게 사용할 수 있도록 설계되었으며, 특히 대화형 AI, 번역, 요약 등과 같은 응용 프로그램을 구축할 때 유용합니다.1. 주요 기능모델 통합: 다양한 언어 모델을 하나의 통합된 인터페이스를 통해 손쉽게 접근하고 사용할 수 있습니다.대화 관리: 사용자와의 상호작용을 관리하고 최적의 대답을 생성하기 위한 로직을 포함합니다.모듈화: 필요에 따라 커스텀 모듈을 추가하거나 기존 모듈을 변경하여 특정 작업에 맞게 조정할 수 있습니다.툴 연동: 외부 데이터베이스, API 등 다양한 외부 자원과의 ..

반응형