LangChain 랭체인이란 대규모 언어 모델(LLM)을 기반으로 애플리케이션을 구축하기 위한 오픈 소스 프레임워크이다.
이는 다양한 언어 모델, 데이터 소스, 그리고 워크플로우를 결합하여 사용자 정의 가능한 NLP 파이프라인을 쉽게 만들 수 있게 하고 주로 챗봇, 텍스트 분석, 자동화된 데이터 처리 등의 분야에서 사용한다.
랭체인 패키지는 파이썬으로 사용이 가능하다.
주요 특징
- 모듈화된 구성 요소: 여러 NLP 작업을 모듈화하여 필요에 따라 조합하고 재사용할 수 있습니다.
- 확장성: 새로운 언어 모델이나 데이터 소스를 쉽게 통합할 수 있는 구조를 가지고 있어 확장성이 높습니다.
- 사용자 정의 가능: 사용자가 필요에 따라 파이프라인을 자유롭게 커스터마이즈할 수 있습니다.
- 다양한 언어 모델 지원: BERT, GPT, Transformer 모델 등 다양한 언어 모델을 지원합니다.
주요 컴포넌트
- 언어 모델(LLMs): 자연어 생성, 요약, 번역 등 다양한 NLP 작업을 수행하는 데 사용됩니다.
- 체인(Chains): 여러 NLP 작업을 결합하여 복잡한 파이프라인을 구축할 수 있습니다.
- 프롬프트 템플릿(PromptTemplates): LLM에 입력할 프롬프트를 정의하는 템플릿입니다.
- 데이터 소스(DataSources): 외부 데이터 소스와 통합하여 데이터를 가져오고 처리할 수 있습니다.
*pipeline 활용법 ( 감정분석 )
pipline의 특정 모델을 지정하고 싶으면 model 파라미터에 원하는 모델을 넣어주면 된다.
pipe = pipeline('text-generation', model='kogpt') #kogpt로 모델 입력
사용가능한 파이프라인
feature-extraction : 특징 추출 (텍스트에 대한 벡터 표현 추출)
fill-mask : 마스크 채우기
ner : 개체명 인식 (named entity recognition)
question-answering : 질의 응답
sentiment-analysis : 감정 분석
summarization : 요약
text-generation : 텍스트 생성
translation : 번역
zero-shot-classification : 제로샷 분류
예제
from transformers import pipeline
# 텍스트 분류 파이프라인 설정
classifier = pipeline('sentiment-analysis')
# 테스트 텍스트
texts = [
"I love programming in Python!",
"The weather is terrible today."
]
# 텍스트 분류 수행 및 결과 출력
for text in texts:
result = classifier(text)
print(f"Text: {text}")
print(f"Classification: {result}")
Text: I love programming in Python!
Classification: [{'label': 'POSITIVE', 'score': 0.999421238899231}]
Text: The weather is terrible today.
Classification: [{'label': 'NEGATIVE', 'score': 0.9986808896064758}]
랭체인에 대해서는 RAG, 파인튜닝 등 공부를 지속적으로 해나갈 계획이다.
랭체인 기본코드 (API Key 입력필요)
from langchain.llms import HuggingFaceHub
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
# HuggingFaceHub 설정 (API 키 필요)
api_key = "your_huggingface_api_key"
llm = HuggingFaceHub(
api_key=api_key,
model="bert-base-uncased"
)
# 프롬프트 템플릿 정의
prompt = PromptTemplate(
input_variables=["text"],
template="Classify the sentiment of the following text: {text}"
)
# LLMChain 생성
chain = LLMChain(
llm=llm,
prompt=prompt
)
# 테스트 텍스트
texts = [
"I love programming in Python!",
"The weather is terrible today."
]
# 텍스트 분류 수행 및 결과 출력
for text in texts:
result = chain.run(text)
print(f"Text: {text}")
print(f"Classification: {result}")
랭체인(LangChain), 그것이 알고 싶다
01. 서론 챗GPT가 쏘아올린 인공지능(AI) 열풍이 여전히 뜨겁다. 보다 정확히 말하면 챗GPT가 쏘아올린 대형 언어 모델(Large language model, LLM) 열풍이라고도 할 수 있겠다. 내로라하는 빅테크들이 너도
www.igloo.co.kr
https://www.gpters.org/dev/post/records-basic-environment-settings-14Tiysf4dj9dsBB
[9기 랭체인] 기본 환경설정과 간단한 실습에 대한 기록
1-1 langchain으로 openai gpt-35모델에게 객체에 대한 개발자식 농담을 하라고 하기 1 랭체인 설치 1 랭체인-openAI 통합 패키지 설치 1 → ChatGPT에 “개발자식 농담에 대한 응답을 잘 할 수 있도록 발화자
www.gpters.org
https://fallenangel13th.tistory.com/16
허깅페이스 pipeline 사용법
https://huggingface.co/course/ko/chapter1/3?fw=pt 트랜스포머로 무엇을 할 수 있나요? - Hugging Face Course 이번 장에서는 트랜스포머(Transformer) 모델을 사용해 무엇을 할 수 있는지 같이 살펴보고, 🤗 Transformers
fallenangel13th.tistory.com
'Scientist > ML.DL' 카테고리의 다른 글
[LangChain] Text Splitter 종류 (0) | 2024.08.09 |
---|---|
[LangChain] PDF Loader 종류 (0) | 2024.08.09 |
[ML/DL] NLP TF-IDF / Word2Vec (0) | 2024.07.18 |
[ML/DL] NLP 토크나이저 종류 (0) | 2024.07.17 |
[ML/DL] NLP BERT 감정분석 (0) | 2024.07.15 |