목록Python/LLM (8)
가수면
퓨전 RAG (Fusion RAG)여러 출처나 관점의 정보를 합성해 응답을 만드는 고급 모델이다. 서로 다른 데이터셋이나 보완적이거나 대조적인 정보를 포함한 여러 출처 문서를 사용할 때 특히 유용하다. 이 모델은 여러 소스에서 데이터를 검색한 다음 생성 모델을 사용해 다양한 입력을 균형 잡힌 출력으로 통합한다.다양한 관점과 데이터셋을 활용하는 비즈니스 전략이나 정책 수립과 같은 복잡한 의사 결정 프로세스에 유용하다. 단일 데이터에 의존할 경우 발생할 수 있는 편견 문제를 해결한다. 반면, 정보 과부하나 상충하는 데이터로 인한 위험도 따른다. 따라서 출력의 일관성이나 정확성을 손상하지 않으면서 다양한 입력을 균형 있게 조정해야 한다는 과제가 있다.https://arxiv.org/abs/2402.03367 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XLgLx/btsL3igXPNy/PnNdtaGwWGO4s4Xf4o6qy1/img.png)
추측 RAG(Speculative RAG)추측 RAG는 검색된 데이터가 부족하거나 모호할 때 모델이 추측을 통해 응답하도록 유도하는 방식이다. 완전한 정보를 사용할 수 없지만 시스템이 여전히 유용한 응답을 제공해야 하는 시나리오를 처리하도록 설계됐다. 추측을 통해 모델은 검색된 데이터의 패턴과 이미 학습한 광범위한 지식을 바탕으로 그럴듯한 결론을 생성할 수 있다.이 방식은 완전히 정확한 결과를 내놓지는 않는다. 하지만, 확실성이 필요하지 않은 의사 결정 프로세스에서 여전히 가치를 제공할 수 있다. 예를 들어, 재무나 마케팅 등에서 초기 아이디어를 발굴하는 과정에 도움을 줄 수 있다.물론, 사실적 결론보다는 가설을 생성하도록 설계됐기 때문에, 사용자는 이에 주의할 필요가 있다. https://arxiv.o..
수정 RAG(Corrective RAG)수정 RAG 모델은 표준 RAG를 기반으로 구축되지만, 생성된 응답의 잠재적 오류나 불일치를 수정하도록 설계된 계층을 추가한다. 검색 및 생성 단계 후 수정 메커니즘을 사용해 생성된 출력의 정확성을 확인하는 식이다. 검색된 문서의 추가 참조나 모델의 미세 조정, 모델이 출력을 자체 평가하는 피드백 루프 구현을 통하는 식이다. 수정 RAG는 의료나 법률, 과학과 같이 고도의 정확성이 필요한 분야에서 유용하다. 생성 단계를 개선하고 가장 신뢰할 수 있는 출처와 출력을 일치해 모델 응답에 대한 신뢰를 강화한다. https://arxiv.org/abs/2401.15884 Corrective Retrieval Augmented GenerationLarge language m..
LLM 기본 원리몇 개의 단어가 차례로 모인 것을 문장이라고 한다.이 특성대로 다음에 올 단어들 중 가장 확률이 높은 단어를 선택하는 방식을 통해 차례대로 단어를 배치함 (다음 단어가 무엇인지 추측)자동 완성 기능과 유사한 방식이다. (lang을 검색하면 chain이 자동 완성 목록에 뜨는 식)프롬프트의 구성 요소1. 명령어어떤 작업을 수행해야하는지ex) 번역2. contextAI 모델이 작업을 더 잘 이해하고 더 정확한 응답을 생성하는 데 도움이 되는 추가 정보context 제공를 통해 ai 결과값(성능)을 크게 향상시킬 수 있음ex) 대화 상황, 맥락 등3. 입력 데이터AI 모델이 처리해야할 정보ex) 번역해야할 문장4. 출력 표시기기대하는 응답 형태명령어에 포함되어 있는 경우도 있음ex) 출력 포맷..
다수의 문서 등 대량의 데이터를 프롬프트로 전달해야할 경우 토큰 처리map reduce chain랭체인 예시)chain = load_summarize_chain(llm, chain_type="map_reduce")1. 여러 문서에 대해 각각의 문서를 요약하는 요청을 병렬 처리2. 각각의 요약 결과들을 하나로 모아서 재요약 요청단점:1. 요청이 많아지니 비용문제 발생2. 정보 손실 refine chain문서를 하나 하나 중첩 요약해가며 정보의 정확성을 높이는 방법랭체인 예시) chain = load_summarize_chain(llm, chian_type="refine")1. '빈 값 + 첫 문서' 요약2. '1번 요약 + 두 번째 문서' 요약3. '2번 요약 + 세 번째 문서' 요약...대화 세션 유지를..
구현 방법구현 방식의 기본 개념 및 필요 요소들은 다음과 같다. 1. tool로 사용할 함수를 정의한다. 이때, 함수명과 설명을 잘 적는 것이 중요하다.예시)def get_text_length(text: str) -> int: """Returns the length of a text by characters"""2. 에이전트 프로세스를 실행시킬 프롬프트를 작성한다. 2-1. 이때 프롬프트에는 tool의 이름/설명과 tool 목록을 전달하여 LLM이 선택할 수 있도록 한다. 2-1. 최종 프롬프트의 주요 구성 사항은 다음과 같다. tools 제시 및 설명포맷 지정 명령Question: 사용자의 질문Thought: 에이전트가 무엇을 할지Action: 특정 작업을 수행 지시 (알맞은 tool 고르기)A..
langchain 로더 - https://github.com/langchain-ai/langchain/tree/master/libs/langchain/langchain/document_loaders langchain/libs/langchain/langchain/document_loaders at master · langchain-ai/langchain🦜🔗 Build context-aware reasoning applications. Contribute to langchain-ai/langchain development by creating an account on GitHub.github.comText Splitter - llm의 경우 한번에 보낼 수 있는 토큰 제한이 있어 큰 텍스트를 청크로 나누는..
LLM 애플리케이션 기본 구현 방식from langchain.prompts.prompt import PromptTemplatefrom langchain_openai import ChatOpenAIfrom langchain_core.output_parsers import StrOutputParserfrom third_parties.linkedin import scrape_linkedin_profilesummary_template = """링크드인의 유저 정보를 줄테니 아래 요구사항에 맞춰 답변을 생성해주세요.1. 짧은 요약2. 흥미로운 사실 2가지{information}"""summary_prompt_template = PromptTemplate( input_variables=["information..