부본 Python에서 Langchain을 사용한 제로에서 고급 프롬프트 엔지니어링 - Unite.AI
Rescale 미팅 예약

신속한 엔지니어링

Python의 Langchain을 사용한 제로에서 고급 프롬프트 엔지니어링

mm
업데이트 on

대규모 언어 모델(LLM)의 중요한 측면은 이러한 모델이 학습에 사용하는 매개변수의 수입니다. 모델에 매개변수가 많을수록 단어와 구 사이의 관계를 더 잘 이해할 수 있습니다. 즉, 수십억 개의 매개변수가 있는 모델이 다양한 창의적 텍스트 형식을 생성하고 개방형 및 도전적인 질문에 유익한 방식으로 답변할 수 있는 능력이 있습니다.

Transformer 모델을 활용하는 ChatGPT와 같은 LLM은 인간 언어를 이해하고 생성하는 데 능숙하므로 자연어 이해가 필요한 애플리케이션에 유용합니다. 그러나 구식 지식, 외부 시스템과 상호 작용할 수 없음, 컨텍스트 이해 부족, 그럴듯하게 들리지만 부정확하거나 무의미한 응답을 생성하는 등의 한계가 있습니다.

이러한 제한 사항을 해결하려면 LLM을 외부 데이터 소스 및 기능과 통합해야 합니다. 이는 복잡성을 나타내고 광범위한 코딩 및 데이터 처리 기술을 요구할 수 있습니다. 이것은 AI 개념 및 복잡한 알고리즘을 이해하는 문제와 결합되어 LLM을 사용하여 응용 프로그램을 개발하는 것과 관련된 학습 곡선에 기여합니다.

그럼에도 불구하고 LLM 기반 애플리케이션을 형성하기 위해 LLM을 다른 도구와 통합하면 디지털 환경을 재정의할 수 있습니다. 이러한 응용 프로그램의 잠재력은 효율성과 생산성 향상, 작업 단순화, 의사 결정 향상 및 개인화된 경험 제공을 포함하여 막대합니다.

이 기사에서는 이러한 문제에 대해 더 깊이 파고들고 Langchain을 사용한 신속한 엔지니어링의 고급 기술을 탐색하고 이를 구현하는 방법에 대한 명확한 설명, 실용적인 예 및 단계별 지침을 제공합니다.

최첨단 라이브러리인 Langchain은 프롬프트 설계, 구현 및 튜닝에 편리함과 유연성을 제공합니다. 프롬프트 엔지니어링의 원칙과 사례를 풀면서 Langchain의 강력한 기능을 활용하여 GPT-4와 같은 SOTA Generative AI 모델의 강점을 활용하는 방법을 배우게 됩니다.

프롬프트 이해

프롬프트 엔지니어링의 기술에 뛰어들기 전에 프롬프트의 개념과 의미를 파악하는 것이 필수적입니다.

'신속한'는 언어 모델에 대한 입력으로 사용되는 일련의 토큰으로, 특정 유형의 응답을 생성하도록 지시합니다. 프롬프트는 모델의 동작을 조정하는 데 중요한 역할을 합니다. 생성된 텍스트의 품질에 영향을 미칠 수 있으며 올바르게 제작되면 모델이 통찰력 있고 정확하며 상황에 맞는 결과를 제공하는 데 도움이 될 수 있습니다.

프롬프트 엔지니어링은 효과적인 프롬프트를 디자인하는 기술이자 과학입니다. 목표는 언어 모델에서 원하는 출력을 이끌어내는 것입니다. 신중하게 프롬프트를 선택하고 구조화함으로써 보다 정확하고 관련성 있는 응답을 생성하도록 모델을 안내할 수 있습니다. 실제로 여기에는 모델의 훈련 및 구조적 편향에 맞추기 위해 입력 구를 미세 조정하는 작업이 포함됩니다.

프롬프트 엔지니어링의 정교함은 모델에 관련 키워드를 제공하는 것과 같은 단순한 기술에서 모델의 내부 메커니즘을 유리하게 사용하는 복잡하고 구조화된 프롬프트의 설계와 관련된 고급 방법에 이르기까지 다양합니다.

Langchain: 가장 빠르게 성장하는 프롬프트 도구

2022년 XNUMX월 런칭한 LangChain 해리슨 체이스, 중 하나가되었습니다 가장 높은 평가를 받은 오픈 소스 프레임워크 대규모 언어 모델(LLM)을 애플리케이션에 통합하기 위한 간소화되고 표준화된 인터페이스를 제공합니다. 또한 신속한 엔지니어링을 위한 기능이 풍부한 인터페이스를 제공하여 개발자가 다양한 전략을 실험하고 결과를 평가할 수 있도록 합니다. Langchain을 활용하면 신속한 엔지니어링 작업을 보다 효과적이고 직관적으로 수행할 수 있습니다.

랭플로우 LangChain 구성 요소를 실행 가능한 순서도로 오케스트레이션하기 위한 사용자 인터페이스 역할을 하여 빠른 프로토타이핑 및 실험을 가능하게 합니다.

LangChain은 대중을 위한 AI 개발의 중요한 격차를 메웁니다. 이를 통해 가상 비서, 콘텐츠 생성기, 질문 응답 시스템 등과 같은 일련의 NLP 애플리케이션을 사용하여 다양한 실제 문제를 해결할 수 있습니다.

독립형 모델 또는 공급자가 아닌 LangChain은 다양한 모델과의 상호 작용을 단순화하여 단순한 API 호출의 제약을 넘어 LLM 애플리케이션의 기능을 확장합니다.

LangChain의 아키텍처

 

LangChain의 주요 구성 요소에는 모델 I/O, 프롬프트 템플릿, 메모리, 에이전트 및 체인이 포함됩니다.

모델 입출력

LangChain은 모델 I/O로 알려진 표준화된 인터페이스로 래핑하여 다양한 언어 모델과의 원활한 연결을 용이하게 합니다. 이를 통해 최적화 또는 성능 향상을 위해 손쉽게 모델을 전환할 수 있습니다. LangChain은 다음을 포함한 다양한 언어 모델 공급자를 지원합니다. OpenAI, 포옹 얼굴, 하늘빛, 불꽃수록.

프롬프트 템플릿

이는 간결한 지침이나 예제를 제공하여 LLM과의 상호 작용을 관리하고 최적화하는 데 사용됩니다. 프롬프트를 최적화하면 모델 성능이 향상되고 유연성이 입력 프로세스에 크게 기여합니다.

프롬프트 템플릿의 간단한 예:

from langchain.prompts import PromptTemplate
prompt = PromptTemplate(input_variables=["subject"],
template="What are the recent advancements in the field of {subject}?")
print(prompt.format(subject="Natural Language Processing"))

복잡성이 증가함에 따라 우리는 이유 및 행동(ReAct) 패턴과 같은 LangChain에서 더 정교한 패턴을 만납니다. ReAct는 에이전트가 적절한 도구에 작업을 할당하고 입력을 사용자 지정하고 출력을 구문 분석하여 작업을 수행하는 작업 실행을 위한 중요한 패턴입니다. 아래 Python 예제는 ReAct 패턴을 보여줍니다. 문제를 통해 추론하고 최종 답을 생성하기 위해 일련의 생각과 행동을 사용하여 LangChain에서 프롬프트가 어떻게 구성되는지 보여줍니다.

PREFIX = """Answer the following question using the given tools:"""
FORMAT_INSTRUCTIONS = """Follow this format:
Question: {input_question}
Thought: your initial thought on the question
Action: your chosen action from [{tool_names}]
Action Input: your input for the action
Observation: the action's outcome"""
SUFFIX = """Start!
Question: {input}
Thought:{agent_scratchpad}"""

메모리

메모리는 LLM 및 도구가 시간이 지남에 따라 정보를 유지할 수 있도록 하는 LangChain의 중요한 개념입니다. 이 상태 저장 동작은 이전 응답, 사용자 상호 작용, 환경 상태 및 에이전트의 목표를 저장하여 LangChain 애플리케이션의 성능을 향상시킵니다. ConversationBufferMemory 및 ConversationBufferWindowMemory 전략은 각각 대화의 전체 또는 최근 부분을 추적하는 데 도움이 됩니다. 보다 정교한 접근 방식을 위해 ConversationKGMemory 전략을 사용하면 LLM을 호출하지 않고 프롬프트로 피드백하거나 응답을 예측하는 데 사용할 수 있는 지식 그래프로 대화를 인코딩할 수 있습니다.

에이전트

에이전트는 작업과 작업을 수행하여 세상과 상호 작용합니다. LangChain에서 에이전트는 작업 실행을 위해 도구와 체인을 결합합니다. 정보 검색을 위해 외부 세계와의 연결을 설정하여 LLM 지식을 보강하여 고유한 한계를 극복할 수 있습니다. 그들은 상황에 따라 계산을 계산기나 Python 인터프리터에 전달할지 결정할 수 있습니다.

에이전트에는 다음과 같은 하위 구성 요소가 있습니다.

  • 도구: 기능적 구성 요소입니다.
  • 툴킷: 도구 모음입니다.
  • 에이전트 실행자: 도구 중에서 선택할 수 있는 실행 메커니즘입니다.

LangChain의 에이전트는 도구 설명에만 기반하여 결정을 내리는 Zero-shot ReAct 패턴도 따릅니다. 이 메커니즘은 전체 대화 기록을 고려하기 위해 메모리로 확장할 수 있습니다. ReAct를 사용하면 LLM에 텍스트를 자동 완성하도록 요청하는 대신 생각/행동/관찰 루프에서 응답하도록 요청할 수 있습니다.

쇠사슬

체인은 용어에서 알 수 있듯이 LangChain 라이브러리가 언어 모델 입력 및 출력을 원활하게 처리할 수 있도록 하는 일련의 작업입니다. LangChain의 이러한 필수 구성 요소는 기본적으로 다른 체인 또는 프롬프트, 언어 모델 또는 유틸리티와 같은 기본 요소일 수 있는 링크로 구성됩니다.

체인이 공장의 컨베이어 벨트라고 상상해 보십시오. 이 벨트의 각 단계는 언어 모델을 호출하거나 텍스트에 Python 함수를 적용하거나 특정 방식으로 모델을 프롬프트할 수 있는 특정 작업을 나타냅니다.

LangChain은 체인을 유틸리티 체인, 일반 체인 및 결합 문서 체인의 세 가지 유형으로 분류합니다. 토론을 위해 Utility 및 Generic 체인에 대해 살펴보겠습니다.

  • 유틸리티 체인 좁게 정의된 작업에 대한 언어 모델에서 정확한 답변을 추출하도록 특별히 설계되었습니다. 예를 들어 LLMMathChain을 살펴보겠습니다. 이 유틸리티 체인을 사용하면 언어 모델이 수학적 계산을 수행할 수 있습니다. 그것은 자연어로 된 질문을 받아들이고 언어 모델은 차례로 Python 코드 스니펫을 생성한 다음 실행되어 답변을 생성합니다.
  • 일반 체인, 반면에 다른 체인의 빌딩 블록 역할을 하지만 독립형으로 직접 사용할 수는 없습니다. LLMChain과 같은 이러한 체인은 기본이며 종종 복잡한 작업을 수행하기 위해 다른 체인과 결합됩니다. 예를 들어 LLMChain은 제공된 프롬프트 템플릿을 기반으로 입력 형식을 지정한 다음 언어 모델에 전달하여 언어 모델 개체를 쿼리하는 데 자주 사용됩니다.

Langchain을 통한 신속한 엔지니어링의 단계별 구현

Langchain을 사용하여 신속한 엔지니어링을 구현하는 과정을 안내합니다. 계속하기 전에 필요한 소프트웨어와 패키지를 설치했는지 확인하십시오.

Docker, Conda, Pip 및 Poetry와 같은 인기 있는 도구를 활용하여 LangChain을 설정할 수 있습니다. 이러한 각 방법에 대한 관련 설치 파일은 다음 위치의 LangChain 저장소에서 찾을 수 있습니다. https://github.com/benman1/generative_ai_with_langchain. 여기에는 다음이 포함됩니다. 도커 파일 도커의 경우 requirements.txt 핍에게 pyproject.toml 시를 위해, 그리고 langchain_ai.yml Conda용 파일입니다.

이 기사에서는 Python의 표준 패키지 관리자인 Pip을 사용하여 타사 라이브러리의 설치 및 관리를 용이하게 합니다. Python 배포판에 포함되어 있지 않은 경우 다음 지침에 따라 Pip를 설치할 수 있습니다. https://pip.pypa.io/.

Pip으로 라이브러리를 설치하려면 다음 명령을 사용하십시오. pip install library_name.

그러나 Pip은 자체적으로 환경을 관리하지 않습니다. 다양한 환경을 처리하기 위해 도구를 사용합니다. virtualenv.

다음 섹션에서는 모델 통합에 대해 설명합니다.

1단계: Langchain 설정

먼저 Langchain 패키지를 설치해야 합니다. 우리는 Windows OS를 사용하고 있습니다. 터미널에서 다음 명령을 실행하여 설치합니다.

pip install langchain

2단계: Langchain 및 기타 필요한 모듈 가져오기

다음으로 다른 필요한 모듈과 함께 Langchain을 가져옵니다. 여기서는 NLP 작업에 광범위하게 사용되는 변환기 라이브러리도 가져옵니다.

import langchain
from transformers import AutoModelWithLMHead, AutoTokenizer

3단계: 사전 훈련된 모델 불러오기

AI 열기

OpenAI 모델은 LangChain 라이브러리 또는 OpenAI Python 클라이언트 라이브러리와 편리하게 인터페이스할 수 있습니다. 특히 OpenAI는 텍스트 임베딩 모델을 위한 임베딩 클래스를 제공합니다. 두 가지 주요 LLM 모델은 주로 토큰 길이가 다른 GPT-3.5 및 GPT-4입니다. 각 모델의 가격은 OpenAI의 웹사이트에서 확인할 수 있습니다. 더 많은 반면 GPT-4-32K와 같은 정교한 모델 토큰 수용도가 더 높을수록 API를 통한 가용성은 항상 보장되는 것은 아닙니다.

이러한 모델에 액세스하려면 OpenAI API 키가 필요합니다. 이것은 OpenAI의 플랫폼에서 계정을 생성하고 청구 정보를 설정하고 새로운 비밀 키를 생성하여 수행할 수 있습니다.

import os
os.environ["OPENAI_API_KEY"] = 'your-openai-token'

키를 성공적으로 생성한 후 이를 환경 변수(OPENAI_API_KEY)로 설정하거나 OpenAI 호출을 위한 클래스 인스턴스화 중에 매개변수로 전달할 수 있습니다.

OpenAI 모델과의 상호 작용을 보여주는 LangChain 스크립트를 고려하십시오.

from langchain.llms import OpenAI
llm = OpenAI(model_name="text-davinci-003")
# The LLM takes a prompt as an input and outputs a completion
prompt = "who is the president of the United States of America?"
completion = llm(prompt)
The current President of the United States of America is Joe Biden.

이 예에서는 계산을 수행하기 위해 에이전트가 초기화됩니다. 에이전트는 간단한 추가 작업인 입력을 받아 제공된 OpenAI 모델을 사용하여 처리하고 결과를 반환합니다.

포옹하는 얼굴

포옹하는 얼굴 하는 무료 사용 PyTorch, TensorFlow 및 JAX와 호환되는 Transformers Python 라이브러리에는 다음과 같은 모델 구현이 포함됩니다. BERT, T5

Hugging Face는 코드 저장소, 기계 학습 모델, 데이터 세트 및 웹 애플리케이션을 호스팅하기 위한 플랫폼인 Hugging Face Hub도 제공합니다.

Hugging Face를 모델의 공급자로 사용하려면 해당 웹사이트에서 얻을 수 있는 계정과 API 키가 필요합니다. 토큰은 환경에서 HUGGINGFACEHUB_API_TOKEN으로 사용할 수 있습니다.

Google에서 개발한 오픈 소스 모델인 Flan-T5-XXL 모델을 활용하는 다음 Python 스니펫을 고려하십시오.

from langchain.llms import HuggingFaceHub
llm = HuggingFaceHub(model_kwargs={"temperature": 0.5, "max_length": 64},repo_id="google/flan-t5-xxl")
prompt = "In which country is Tokyo?"
completion = llm(prompt)
print(completion)

이 스크립트는 질문을 입력으로 받아 답변을 반환하여 모델의 지식과 예측 기능을 보여줍니다.

4단계: 기본 프롬프트 엔지니어링

먼저 간단한 프롬프트를 생성하고 모델이 어떻게 응답하는지 확인합니다.

prompt = 'Translate the following English text to French: "{0}"'
input_text = 'Hello, how are you?'
input_ids = tokenizer.encode(prompt.format(input_text), return_tensors='pt')
generated_ids = model.generate(input_ids, max_length=100, temperature=0.9)
print(tokenizer.decode(generated_ids[0], skip_special_tokens=True))

위의 코드 스니펫에서는 영어 텍스트를 프랑스어로 번역하라는 프롬프트를 제공합니다. 그런 다음 언어 모델은 프롬프트에 따라 주어진 텍스트를 번역하려고 시도합니다.

5단계: 고급 프롬프트 엔지니어링

위의 접근 방식은 잘 작동하지만 신속한 엔지니어링의 이점을 최대한 활용하지 못합니다. 좀 더 복잡한 프롬프트 구조를 도입하여 이를 개선해 보겠습니다.

prompt = 'As a highly proficient French translator, translate the following English text to French: "{0}"'
input_text = 'Hello, how are you?'
input_ids = tokenizer.encode(prompt.format(input_text), return_tensors='pt')
generated_ids = model.generate(input_ids, max_length=100, temperature=0.9)
print(tokenizer.decode(generated_ids[0], skip_special_tokens=True))

이 코드 스니펫에서는 번역이 '매우 능숙한 프랑스어 번역가'에 의해 수행되고 있음을 제안하도록 프롬프트를 수정합니다. 모델이 이제 전문가의 모습을 가정하므로 프롬프트의 변경으로 번역이 개선될 수 있습니다.

Langchain으로 학술 문헌 Q&A 시스템 구축

최근 발표된 학술 논문에 대한 질문에 답변할 수 있는 LangChain을 사용하여 학술 문헌 질문 및 답변 시스템을 구축하겠습니다.

먼저 환경을 설정하기 위해 필요한 종속 항목을 설치합니다.

pip install langchain arxiv openai transformers faiss-cpu

설치 후 새 Python 노트북을 만들고 필요한 라이브러리를 가져옵니다.

from langchain.llms import OpenAI
from langchain.chains.qa_with_sources import load_qa_with_sources_chain
from langchain.docstore.document import Document
import arxiv

Q&A 시스템의 핵심은 특정 분야와 관련된 관련 학술 논문을 가져오는 기능입니다. 여기서는 arXiv 학술 데이터베이스를 사용하여 자연어 처리(NLP)를 고려합니다. 이를 수행하기 위해 함수를 정의합니다. get_arxiv_data(max_results=10). 이 기능은 arXiv에서 가장 최근의 NLP 종이 요약을 수집하고 요약을 내용으로 사용하고 고유 항목 ID를 소스로 사용하여 이를 LangChain 문서 객체로 캡슐화합니다.

arXiv API를 사용하여 NLP와 관련된 최신 논문을 가져옵니다.

def get_arxiv_data(max_results=10):
    search = arxiv.Search(
        query="NLP",
        max_results=max_results,
        sort_by=arxiv.SortCriterion.SubmittedDate,
    )
   
    documents = []
   
    for result in search.results():
        documents.append(Document(
            page_content=result.summary,
            metadata={"source": result.entry_id},
        ))
    return documents

이 함수는 arXiv에서 가장 최근 NLP 논문의 요약을 검색하고 이를 LangChain Document 객체로 변환합니다. 우리는 논문의 요약과 고유 항목 ID(논문의 URL)를 각각 내용과 출처로 사용하고 있습니다.

def print_answer(question):
    print(
        chain(
            {
                "input_documents": sources,
                "question": question,
            },
            return_only_outputs=True,
        )["output_text"]
    )                 

코퍼스를 정의하고 LangChain을 설정해 보겠습니다.

sources = get_arxiv_data(2)
chain = load_qa_with_sources_chain(OpenAI(temperature=0))

이제 학업 Q&A 시스템이 준비되었으므로 질문을 통해 테스트할 수 있습니다.

print_answer("What are the recent advancements in NLP?")

출력은 정보가 추출된 출처를 인용하여 귀하의 질문에 대한 답변이 될 것입니다. 예를 들어:

Recent advancements in NLP include Retriever-augmented instruction-following models and a novel computational framework for solving alternating current optimal power flow (ACOPF) problems using graphics processing units (GPUs).
SOURCES: http://arxiv.org/abs/2307.16877v1, http://arxiv.org/abs/2307.16830v1

필요에 따라 쉽게 모델을 전환하거나 시스템을 변경할 수 있습니다. 예를 들어 여기서는 훨씬 더 좋고 자세한 응답을 제공하는 GPT-4로 변경하고 있습니다.

sources = get_arxiv_data(2)
chain = load_qa_with_sources_chain(OpenAI(model_name="gpt-4",temperature=0))
Recent advancements in Natural Language Processing (NLP) include the development of retriever-augmented instruction-following models for information-seeking tasks such as question answering (QA). These models can be adapted to various information domains and tasks without additional fine-tuning. However, they often struggle to stick to the provided knowledge and may hallucinate in their responses. Another advancement is the introduction of a computational framework for solving alternating current optimal power flow (ACOPF) problems using graphics processing units (GPUs). This approach utilizes a single-instruction, multiple-data (SIMD) abstraction of nonlinear programs (NLP) and employs a condensed-space interior-point method (IPM) with an inequality relaxation strategy. This strategy allows for the factorization of the KKT matrix without numerical pivoting, which has previously hampered the parallelization of the IPM algorithm.
SOURCES: http://arxiv.org/abs/2307.16877v1, http://arxiv.org/abs/2307.16830v1

GPT-4의 토큰은 한 문자만큼 짧을 수도 있고 한 단어만큼 길 수도 있습니다. 예를 들어 GPT-4-32K는 단일 실행에서 최대 32,000개의 토큰을 처리할 수 있으며 GPT-4-8K 및 GPT-3.5-turbo는 각각 8,000 및 4,000개의 토큰을 지원합니다. 그러나 이러한 모델과의 모든 상호 작용에는 입력이든 출력이든 처리되는 토큰 수에 정비례하는 비용이 수반된다는 점에 유의해야 합니다.

Q&A 시스템의 맥락에서 학술 문헌이 최대 토큰 한도를 초과하면 시스템이 전체를 처리하지 못하여 응답의 품질과 완전성에 영향을 미칩니다. 이 문제를 해결하기 위해 텍스트를 토큰 제한을 준수하는 더 작은 부분으로 나눌 수 있습니다.

FAISS (Facebook AI 유사성 검색) 사용자의 쿼리와 관련된 가장 관련성 높은 텍스트 청크를 빠르게 찾는 데 도움이 됩니다. 각 텍스트 청크의 벡터 표현을 생성하고 이러한 벡터를 사용하여 주어진 질문의 벡터 표현과 가장 유사한 청크를 식별하고 검색합니다.

FAISS와 같은 도구를 사용하더라도 토큰 제한으로 인해 텍스트를 더 작은 덩어리로 나눌 필요가 때때로 컨텍스트 손실로 이어져 답변의 품질에 영향을 미칠 수 있다는 점을 기억하는 것이 중요합니다. 따라서 이러한 대규모 언어 모델로 작업할 때 신중한 관리 및 토큰 사용 최적화가 중요합니다.

 
pip install faiss-cpu langchain CharacterTextSplitter

위의 라이브러리가 설치되어 있는지 확인한 후 다음을 실행하십시오.

 
from langchain.embeddings.openai import OpenAIEmbeddings 
from langchain.vectorstores.faiss import FAISS 
from langchain.text_splitter import CharacterTextSplitter 
documents = get_arxiv_data(max_results=10) # We can now use feed more data
document_chunks = []
splitter = CharacterTextSplitter(separator=" ", chunk_size=1024, chunk_overlap=0)
for document in documents:
    for chunk in splitter.split_text(document.page_content):
        document_chunks.append(Document(page_content=chunk, metadata=document.metadata))
search_index = FAISS.from_documents(document_chunks, OpenAIEmbeddings())
chain = load_qa_with_sources_chain(OpenAI(temperature=0))
def print_answer(question):
    print(
        chain(
            {
                "input_documents": search_index.similarity_search(question, k=4),
                "question": question,
            },
            return_only_outputs=True,
        )["output_text"]
    )

코드가 완성되었으므로 이제 NLP 분야의 최신 학술 문헌을 쿼리할 수 있는 강력한 도구가 생겼습니다.

 
Recent advancements in NLP include the use of deep neural networks (DNNs) for automatic text analysis and natural language processing (NLP) tasks such as spell checking, language detection, entity extraction, author detection, question answering, and other tasks. 
SOURCES: http://arxiv.org/abs/2307.10652v1, http://arxiv.org/abs/2307.07002v1, http://arxiv.org/abs/2307.12114v1, http://arxiv.org/abs/2307.16217v1 

결론

LLM(Large Language Models)을 응용 프로그램에 통합하면 언어 번역, 감정 분석 및 정보 검색을 비롯한 여러 도메인의 채택이 가속화됩니다. 신속한 엔지니어링은 이러한 모델의 잠재력을 극대화하는 강력한 도구이며 Langchain은 이 복잡한 작업을 단순화하는 데 앞장서고 있습니다. 표준화된 인터페이스, 유연한 프롬프트 템플릿, 강력한 모델 통합, 에이전트 및 체인의 혁신적인 사용은 LLM 성능에 대한 최적의 결과를 보장합니다.

그러나 이러한 발전에도 불구하고 염두에 두어야 할 몇 가지 팁이 있습니다. Langchain을 사용할 때 출력 품질이 프롬프트 문구에 크게 좌우된다는 점을 이해하는 것이 중요합니다. 다양한 프롬프트 스타일과 구조로 실험하면 향상된 결과를 얻을 수 있습니다. 또한 Langchain은 다양한 언어 모델을 지원하지만 각각의 강점과 약점이 있음을 기억하십시오. 특정 작업에 적합한 것을 선택하는 것이 중요합니다. 마지막으로 토큰 처리가 상호 작용 비용에 직접적인 영향을 미치기 때문에 이러한 모델을 사용하면 비용을 고려해야 한다는 점을 기억하는 것이 중요합니다.

단계별 가이드에서 설명한 것처럼 Langchain은 학술 문헌 Q&A 시스템과 같은 강력한 애플리케이션을 지원할 수 있습니다. 사용자 커뮤니티가 성장하고 오픈 소스 환경에서 명성이 높아짐에 따라 Langchain은 GPT-4와 같은 LLM의 잠재력을 최대한 활용하는 중추적인 도구가 될 것을 약속합니다.

저는 지난 50년 동안 기계 학습과 딥 러닝의 매혹적인 세계에 몰두했습니다. 저의 열정과 전문 ​​지식은 특히 AI/ML에 중점을 둔 XNUMX개 이상의 다양한 소프트웨어 엔지니어링 프로젝트에 기여하도록 이끌었습니다. 나의 계속되는 호기심은 또한 내가 더 탐구하고 싶은 분야인 자연어 처리로 나를 이끌었습니다.