ChatGPT로 인해 인공지능의 영역은 사용자가 모델에게 제공하는 프롬프트 (입력 문장 또는 질문)를 통해 모델의 출력을 조작하고 원하는 결과를 얻는 AI 프롬프트 또는 프롬프트 엔지니어링의 방법에 이르렀습니다.
방대한 자료를 학습하여 탄생한 LLM(Large Language Model)으로 자연어의 이해, 기계 번역, 텍스트 생성, 질문 응답 및 다양한 언어 관련 작업에서 "인간 수준의 언어 이해와 생성 능력을 갖춘 모델"로서 활용 되고 있습니다.
LangChain(랭체인)은!
LangChain은 언어 모델을 기반으로 하는 GPT기반 AI 애플리케이션을 개발하기 위한 프레임워크입니다.
LangChain을 이용해서 chatGPT의 API와 연계하여 LLM을 기반으로한 다양한 언어 모델(Language model) 을 결합( 사슬, Chain)하여 애플리케이션을 구현 할 수 있습니다.
LangChain을 이용한 개발 사례로는
1) 챗봇과 같이 Agent와 연계하여 상황 인식에 활용 가능합니다. 언어에 대한 지침과 응답을 위한 예시를 제공하여 질문에 대한 응답이 가능합니다. 특정 비즈니스에 맞게 구현한 small LLM을 만들어 음식점 추천, 가격비교, 고객 안내, Q&A와 같이 특정 영역에서 자신 만의 지능형 AI를 만들수 있습니다. (흔히 지금의 보편화된 챗봇에 활용하는 개념일수 있습니다.)
예 ) 인공지능 스마트업무, 인공지능마케팅
2) Data의 맥락을 이해하고 추론하는 Data Aware 로 Data를 연결하여 해석 하는데 활용이 가능합니다. 이는 자체적인 DB 또는 VectorDB를 활용하여 데이터에 전문적인 분석을 AI를 이용해서 대신하는 사례가 될 것입니다. 최근 AI를 이용해서 Business Insight를 찾아내거나 특정 정보의 추이를 분석하는 것을 사람이 아닌 AI를 통해 통계 분석가 없이도 전문적인 분석을 할수 있는 비즈니스 영역이라고 합니다.
예) 인공지능주식분석, Data조회/분석, 인공지능데이터분석 등
[ 참고 : 유사한 생성형 AI 관련 사례 ]
[Tech-Trends] - 정말 알아두면 좋은 AI 도구 트렌드 - AI Trending Tools ( https://couplewith.tistory.com/522 )
LangChain framework 의 주요 구성
LangChan framework 의 구성은 다음과 같습니다.
1) LangSmith :
- LLM 프레임워크에 구축된 체인을 디버그, 테스트, 평가 및 모니터링하고 LangChain과 원활하게 통합할 수 있는 개발자 플랫폼입니다.
2. LangServe :
- LangChain 체인을 REST API로 배포하기 위한 라이브러리입니다.
3. LangChain 템플릿 :
- 다양한 작업을 위해 쉽게 배포할 수 있는 참조 아키텍처 모음입니다.
4 LangChain 패키지:
- Python 및 JavaScript 패키지입니다. 수많은 구성 요소에 대한 인터페이스 및 통합, 이러한 구성 요소를 체인 및 에이전트로 결합하기 위한 기본 런타임, 체인 및 에이전트의 기성 구현이 포함되어 있습니다.
랭체인(LangChain )의 모듈(Module)들로 구성되어 있습니다.
1) 모델 I/O(Model I/O) : 랭체인의 핵심으로 언어 모델과의 인터페이스를 지원
2) Prompt Templates :사전 설정된 Prompt에 지정된 변수를 쉽게 넣을 수 있도록 구성한 템플릿 모듈
3) Retrieval : 어플리케이션의 데이터와 인터페이스 구성
4) Agent : 체인이 주어진 높은 수준의 지시문에 사용할 도구를 선택하도록 허용
5) 체인(Chain) : 한 모듈의 출력을 다른 모듈의 입력으로 연결하여 여러 구성 요소를 결합할 수 있도록 도와줌
6) 메모리(Memory) : 대화형 애플리케이션에는 빼놓을 수 없는, 일정 기간 동안의 과거 메시지를 저장하고 접속가능한 영억
사용자는 사전 설정된 모듈을 적절히 혼합하여 구성 요소(Component)로 모듈화 되어 있어서 모듈 간의 파이프라인을 설정해 일관된 단일 애플리케이션(체인)을 구축할 수 있게 됩니다.
LangChain을 이용하는 방법
1. 먼저 GPT의 OpenAPI을 이용하여 Prompt를 이용하는 방법입니다.
import { ChatOpenAI } from 'langchain/chat_models';
export const gpt4Model = new ChatOpenAI({
temperature: 0.6,
modelName: 'gpt-4',
verbose: true,
streaming: true,
});
2. 프롬프트템플릿을 이용하여 질문과 답에 대한 가이드를 제공합니다.
- 질문과 답변 위한 동적인 매개 변수를 사전에 정의하고 다양한 질문에 대한 응답 양식을 제공합니다.
from langchain import PromptTemplate
template = """Answer the question based on the context below. If the
question cannot be answered using the information provided answer
with "I don't know".
Context: Large Language Models (LLMs) are the latest models used in NLP.
Their superior performance over smaller models has made them incredibly
useful for developers building NLP enabled applications. These models
can be accessed via Hugging Face's `transformers` library, via OpenAI
using the `openai` library, and via Cohere using the `cohere` library.
Question: {query}
Answer: """
prompt_template = PromptTemplate(
input_variables=["query"],
template=template
)
3. 프롬프트 템플릿을 이용하여 동적인 질문이 가능합니다.
print(openai(
prompt_template.format(
query="Which libraries and model providers offer LLMs?"
)
))
'BigData' 카테고리의 다른 글
(기술)인공지능과 빅데이터 분석을 위한 고성능 분산DBMS SingleStoreDB (88) | 2023.11.19 |
---|---|
인공지능 GPT4와 RAG를 이해하는데 알아야 하는 용어들 (121) | 2023.11.17 |
데이터 과학과 프롬프트 엔지니어링 - SingleStoreDB 를 이용한 벡터(Vector) DB 활용 (99) | 2023.11.07 |
chatGPT 와 채팅의 연결 (96) | 2023.10.13 |
chatGPT 환각(Hallucination) 개선을 위한 응답 품질 점검 - Check outputs (75) | 2023.10.09 |
ChatGPT의 자연스런 대화를 이어가는 - Chaining Prompts for conversational AI (100) | 2023.10.08 |
ChatGPT의 연쇄적 사고 사슬과 추론답변 - Chain of Thought Reasoning 와 한국어 답변 만들기 (70) | 2023.10.07 |