paint-brush
일반적인 검색 증강 생성 문제를 해결하여 관련 LLM 응답 달성~에 의해@datastax
745 판독값
745 판독값

일반적인 검색 증강 생성 문제를 해결하여 관련 LLM 응답 달성

~에 의해 DataStax4m2024/01/16
Read on Terminal Reader

너무 오래; 읽다

RAG 구현 및 LLM 상호 작용에서 발생할 수 있는 일반적인 문제를 살펴봅니다.
featured image - 일반적인 검색 증강 생성 문제를 해결하여 관련 LLM 응답 달성
DataStax HackerNoon profile picture
0-item
1-item


생성적 AI 애플리케이션 개발 검색 증강 세대 (RAG) 및 벡터 데이터베이스는 어려울 수 있습니다. 관련 컨텍스트가 검색되었는지 확인하기 위해 벡터 데이터베이스에 의존하는 RAG 구현 문제를 해결해야 하는 경우가 많습니다. 이는 더 정확한 결과를 제공하기 위해 해당 컨텍스트가 대규모 언어 모델에 대한 프롬프트에 포함되기 때문에 매우 중요합니다.


이 시리즈의 이전 기사 에서는 벡터 데이터베이스 그리고 좋지 않은 결과를 초래할 수 있는 세 가지 영역, 즉 최적이 아닌 임베딩 모델, 비효율적인 청킹 전략, 메타데이터 필터링 부족을 고려했습니다.

여기에서는 LLM과의 실제 상호 작용을 살펴보고 잘못된 결과로 이어질 수 있는 몇 가지 일반적인 문제, 즉 부정확한 프롬프트와 불충분한 생성 접근 방식을 살펴보겠습니다.

신속한 개선

최고의 임베딩 및 청킹 전략이라도 품질에 대한 요구를 대체할 수는 없습니다. 신속한 엔지니어링 . 여기에는 프롬프트를 더욱 명확하고 구체적으로 만들고 의도한 출력에 맞게 조정하는 작업이 포함됩니다. RAG 프로세스를 미세 조정하려면 다양한 프롬프트 형식, 길이 및 어휘 선택을 테스트해야 합니다.

LLM에 대한 간략한 살펴보기


특히, RAG 애플리케이션용 프롬프트를 구축할 때 고려해야 할 몇 가지 사항이 있습니다. 여기에는 다음이 포함됩니다.


LLM에게 역할 알리기: ChatGPT와 같은 LLM 에이전트와 상호 작용할 때 기본적으로 유용한 챗봇처럼 작동합니다. 그러나 LLM에 특정 방식으로 작동하도록 지시하여 생성되는 응답의 특성을 변경할 수 있습니다. 예를 들면 “귀하는 어느 쪽이든 계약 위반 여부를 평가하는 변호사입니다” 또는 “귀하는 인터넷 서비스 제공업체의 고객 서비스 담당자입니다. 당신의 임무는 사람들이 인터넷 문제를 해결하도록 돕는 것입니다.”또는 귀하의 특정 상황에 적합한 모든 것입니다.


제공된 컨텍스트를 사용하도록 LLM에 명시적으로 지시 : 컨텍스트를 제공하고 있으며 생성된 응답이 해당 컨텍스트를 반영하기를 원한다는 점을 LLM에 분명히 알립니다. “당신의 응답은 다음 맥락을 고려해야 합니다.”와 같은 말을 한 뒤 맥락을 말하면 됩니다. 예시 사용: 방금 언급한 LLM에게 계약 평가 변호사 역할을 요청하는 시나리오에서는 프롬프트에 몇 가지 예시를 포함할 수 있습니다. 예를 들어, 결제 기한이 30일 이내라는 계약서의 예를 제공할 수 있지만 구매자가 계약 서명 후 40일까지 결제금을 보내지 않아 계약을 위반했습니다. 계약 위반을 해결할 수 있는 가능한 방법과 구제할 권리에 대한 추가 예를 제공할 수 있습니다.


출력 형식 지정: 사용 사례에 특정 출력이 필요한 경우 생성된 출력이 준수해야 하는 형식을 지정할 수 있습니다. 위의 팁과 함께 이 기술을 결합하여 LLM이 응답하기를 원하는 방식과 생성된 응답에서 기대하는 정보의 핵심 사항을 LLM에 명확하게 설명하는 예제를 제공할 수 있습니다.


사고 사슬 사용 : 적절한 응답을 결정하기 위해 추론이 관련된 사용 사례의 경우 LLM이 생성된 응답에 도달하기 위해 따라야 하는 단계를 설명하는 데 도움이 되는 사고 사슬 이라는 기술을 사용하는 것을 고려할 수 있습니다. 예를 들어, 법적 계약의 경우 계약 조건이 위반되었는지 확인하기 위해 개인이 따르는 논리적 단계를 LLM에 안내할 수 있습니다. 예를 들어, 법적 계약을 처리할 때 LLM에게 먼저 지불 조건을 지정하는 조항을 찾은 다음 구매자가 지불을 제출해야 하는 시간을 확인한 다음 지불을 받은 시간과 지불 사이의 일수를 계산하도록 지시할 수 있습니다. 계약이 체결된 날짜. 그런 다음 지불이 합의된 기간보다 오래 걸리면 구매자가 계약을 위반한 것입니다.


이러한 기술을 활용하여 프롬프트 엔지니어링을 개선하면 RAG 애플리케이션에서 생성할 수 있는 생성 결과의 품질에 상당한 영향을 미칠 수 있습니다. 그러나 때로는 수용 가능한 응답을 얻기 위해 LLM과 여러 번 교환하는 기술을 사용해야 할 수도 있습니다.

고급 패턴

플레어

미래 지향적 활성 검색 또는 플레어 는 더 나은 답변을 생성하는 데 도움이 되는 핵심 문구에 대한 추가 질문을 LLM에 제공하도록 요청하는 프롬프트의 사용자 정의 지침을 사용하여 LLM을 반복적으로 호출하는 다중 쿼리 RAG 기술의 예입니다. LLM이 공백 없이 컨텍스트를 확보하면 최종 응답으로 종료됩니다. 이 프로세스는 LLM과 AI 에이전트(다이어그램의 AI 챗봇) 사이에 루프를 추가하여 이러한 반복을 용이하게 합니다.

플레어


FLARE의 LangChain 요리책 예제 에서 FLARE의 작동 방식에 대한 예를 볼 수 있습니다.

RAG 퓨전

사용자의 검색어에 대해 유사한 검색어를 생성하고 원래 검색어와 생성된 유사한 검색어 모두에 대해 관련 컨텍스트를 검색함으로써 가장 유용한 컨텍스트를 선택하여 정확한 결과를 생성할 가능성을 높일 수 있습니다. "RAG 융합"이라고 하는 프로세스는 다음과 같습니다.

RAG 퓨전

여기서 중요한 단계는 상호 순위 기능을 사용하여 ANN 결과를 더욱 구체화하여 응답을 생성하는 데 사용할 가장 관련성이 높은 컨텍스트를 식별하는 것입니다.

결론

RAG는 시작하기 쉬운 접근 방식이지만 불분명한 이유로 개발자가 불만족스러운 결과로 좌절감을 느끼는 경우가 많습니다. RAG 지원 생성 AI 애플리케이션의 출력 관련성은 여러 요인의 영향을 받을 수 있습니다. 임베딩 모델을 꼼꼼하게 선택하고, 청킹 전략을 수립하고, 프롬프트를 디자인함으로써 ChatGPT와 같은 LLM 기반 시스템에서 생성된 응답의 품질과 정확성을 크게 높일 수 있습니다. 이 팁이 귀하가 목표로 하는 경험과 가치를 제공하는 더욱 유용한 RAG 애플리케이션을 만드는 데 도움이 되기를 바랍니다.


DataStax Astra DB 사용해 보기 실시간 데이터를 기반으로 생산 수준 AI 애플리케이션을 구축하기 위한 유일한 벡터 데이터베이스입니다 .


작성자: Chris Latimer, DataStax


여기에도 나타납니다.