프롬프트 엔지니어링 완벽 가이드: AI 질문 마스터하기

by Felix Dubois 31 views

프롬프트 엔지니어링은 AI, 특히 대규모 언어 모델(LLM)과 효과적으로 소통하여 원하는 결과를 얻는 기술입니다. 마치 질문을 잘할수록 좋은 대답을 얻는 것과 같이, 프롬프트 엔지니어링은 AI와의 대화 방식을 최적화하여 더욱 정확하고 유용한 답변을 얻어내는 데 중점을 둡니다. 이 글에서는 프롬프트 엔지니어링의 기본 원리와 핵심 방법, 그리고 실제 적용 사례를 통해 여러분의 AI 활용 능력을 한 단계 업그레이드할 수 있도록 돕겠습니다.

프롬프트 엔지니어링이란 무엇일까요?

프롬프트 엔지니어링은 AI와 대화하는 방법, 즉 AI에게 원하는 결과를 생성하도록 지시하는 기술입니다. 이는 단순히 질문을 던지는 것을 넘어, AI가 이해하고 실행할 수 있는 명확하고 구체적인 지시를 제공하는 것을 의미합니다. 프롬프트 엔지니어링의 핵심은 질문을 잘할수록 좋은 대답을 얻는다는 원칙에 있습니다. 여러분이 AI에게 던지는 질문, 즉 프롬프트의 품질이 AI가 생성하는 결과물의 품질을 결정짓기 때문입니다. 좋은 프롬프트는 AI가 사용자의 의도를 정확히 파악하고, 관련 정보를 효과적으로 활용하여 원하는 답변을 제공할 수 있도록 돕습니다. 반면, 모호하거나 부정확한 프롬프트는 AI가 엉뚱하거나 만족스럽지 못한 결과를 내놓게 할 수 있습니다. 따라서 프롬프트 엔지니어링은 AI를 효과적으로 활용하기 위한 필수적인 기술이라고 할 수 있습니다. 프롬프트 엔지니어링을 통해 여러분은 AI의 잠재력을 최대한으로 이끌어내고, 다양한 분야에서 혁신적인 결과를 창출할 수 있습니다. 예를 들어, 마케팅 담당자는 프롬프트 엔지니어링을 활용하여 고객의 니즈를 정확히 파악하고, 개인화된 마케팅 메시지를 생성할 수 있습니다. 개발자는 프롬프트 엔지니어링을 통해 코드 생성이나 버그 수정에 AI의 도움을 받아 생산성을 향상시킬 수 있습니다. 연구자는 프롬프트 엔지니어링을 통해 방대한 데이터를 분석하고, 새로운 통찰력을 얻을 수 있습니다. 이처럼 프롬프트 엔지니어링은 AI를 활용하는 모든 분야에서 핵심적인 역할을 수행하며, 여러분의 성공적인 AI 활용을 위한 열쇠가 될 것입니다.

프롬프트 엔지니어링의 다섯 가지 대표적인 방법

프롬프트 엔지니어링에는 다양한 방법이 있지만, 여기서는 가장 대표적인 다섯 가지 방법을 소개합니다. 각 방법의 특징과 장단점을 이해하고, 상황에 맞춰 적절한 방법을 활용하는 것이 중요합니다.

1. 제로샷 프롬프팅 (Zero-shot Prompting)

제로샷 프롬프팅은 LLM에게 아무런 데이터나 예시를 제공하지 않고 바로 특정 작업을 수행하도록 지시하는 방법입니다. 마치 시험 문제를 처음 보는 학생에게 문제를 풀라고 하는 것과 같습니다. 예를 들어, "이 문장을 한국어로 번역해 줘"와 같이 간단한 지시를 내리는 것이 제로샷 프롬프팅의 대표적인 예시입니다. 제로샷 프롬프팅은 간편하게 적용할 수 있다는 장점이 있지만, LLM이 사용자의 의도를 정확히 파악하기 어렵기 때문에 정확도가 높지 않다는 단점이 있습니다. 따라서 모호하거나 부정확한 답변을 내놓을 가능성이 높습니다. 하지만 제로샷 프롬프팅은 LLM의 기본적인 능력을 빠르게 테스트해 볼 수 있는 방법이며, 더 나은 성능을 위해서는 작업을 지시할 때 추가 정보를 제공하는 것이 좋습니다. 예를 들어, 번역을 요청할 때 문맥이나 톤을 함께 제시하면 더욱 정확한 결과를 얻을 수 있습니다. 또한 제로샷 프롬프팅은 창의적인 아이디어를 얻거나, 다양한 관점을 탐색할 때 유용하게 활용될 수 있습니다. LLM에게 특정 주제에 대한 브레인스토밍을 요청하거나, 다양한 아이디어를 제시해 달라고 요청하면 예상치 못한 결과를 얻을 수 있습니다. 하지만 제로샷 프롬프팅의 가장 큰 한계점은 LLM이 사용자의 의도를 정확하게 이해하지 못할 수 있다는 것입니다. 따라서 복잡하거나 전문적인 작업에는 적합하지 않으며, 더 정확하고 구체적인 결과를 얻기 위해서는 다른 프롬프트 엔지니어링 방법을 함께 활용하는 것이 좋습니다.

2. 원샷(One-shot) 러닝 (One-shot Learning)

원샷 러닝은 LLM에게 명령을 내릴 때 실행 방법에 대한 예시 1개를 동시에 제공하는 방법입니다. 이는 마치 선생님이 학생에게 문제 풀이 방법을 한 가지 예시로 보여주는 것과 같습니다. 예를 들어, "영어를 한국어로 번역해 줘. This is an apple => 이것은 사과입니다"와 같이 명령과 함께 예시를 제공하는 것이 원샷 러닝의 대표적인 예시입니다. 원샷 러닝은 AI에게 명확한 방향성을 제시함으로써 비슷한 유형의 요청에 대해 어떻게 반응해야 하는지를 알려줍니다. 이를 통해 LLM은 사용자의 의도를 더 잘 파악하고, 더 정확한 답변을 생성할 수 있습니다. 원샷 러닝은 제로샷 프롬프팅보다 정확도가 높다는 장점이 있지만, 여전히 제한적인 정보만을 제공하기 때문에 복잡한 작업에는 어려움이 있을 수 있습니다. 하지만 원샷 러닝은 비교적 간단한 작업이나, 특정 스타일을 유지해야 하는 작업에 유용하게 활용될 수 있습니다. 예를 들어, 특정 작가의 문체로 글을 써 달라고 요청하거나, 특정 브랜드의 톤앤매너를 유지하며 광고 문구를 작성해 달라고 요청할 수 있습니다. 또한 원샷 러닝은 새로운 작업에 대한 빠른 학습을 가능하게 합니다. LLM은 제공된 예시를 통해 작업의 규칙이나 패턴을 파악하고, 이를 다른 상황에 적용할 수 있습니다. 하지만 원샷 러닝의 가장 큰 단점은 제공된 예시가 잘못되었거나 편향된 경우, LLM이 잘못된 방향으로 학습할 수 있다는 것입니다. 따라서 예시를 신중하게 선택하고, 필요에 따라 퓨샷 러닝과 같은 다른 방법을 함께 활용하는 것이 좋습니다.

3. 퓨샷(Few-shot) 러닝 (Few-shot Learning)

퓨샷 러닝은 LLM에게 특정 명령을 내릴 때 2~3개부터 수십 개 정도의 예시를 함께 제공하는 방법입니다. 마치 선생님이 학생에게 문제 풀이 방법을 여러 가지 예시를 통해 보여주는 것과 같습니다. 예를 들어, "영어를 한국어로 번역해 줘. This is an apple => 이것은 사과입니다. I am a boy => 나는 소년입니다."와 같이 여러 개의 예시를 제공하는 것이 퓨샷 러닝의 대표적인 예시입니다. 퓨샷 러닝은 LLM이 사용자의 의도를 더욱 정확하게 파악하고, 더 높은 품질의 답변을 생성할 수 있도록 돕습니다. 특히 퓨샷 러닝은 데이터가 부족하거나 특정 작업에 대한 사례가 많지 않을 때 유용합니다. AI는 제공된 몇 가지 예시를 분석하여 일반적인 패턴이나 규칙을 추출하고, 이를 바탕으로 더 넓은 범위의 작업을 수행할 수 있습니다. 퓨샷 러닝은 원샷 러닝보다 정확도가 높고, 제로샷 프롬프팅보다 더욱 다양한 작업에 적용할 수 있다는 장점이 있습니다. 하지만 예시를 제공하는 데 시간과 노력이 필요하며, 너무 많은 예시는 오히려 LLM의 성능을 저하시킬 수 있다는 단점이 있습니다. 퓨샷 러닝은 복잡한 작업이나, 다양한 변수를 고려해야 하는 작업에 유용하게 활용될 수 있습니다. 예를 들어, 다양한 감정을 표현하는 문장을 생성하거나, 특정 주제에 대한 다양한 관점을 제시하는 글을 작성할 수 있습니다. 또한 퓨샷 러닝은 새로운 작업에 대한 적응력을 높이는 데 효과적입니다. LLM은 제공된 예시를 통해 작업의 맥락을 파악하고, 새로운 상황에 맞춰 적절하게 대응할 수 있습니다. 하지만 퓨샷 러닝의 성공 여부는 제공되는 예시의 품질에 크게 좌우됩니다. 따라서 예시를 신중하게 선택하고, 다양한 예시를 제공하여 LLM이 다양한 패턴을 학습할 수 있도록 돕는 것이 중요합니다.

4. CoT(Chain of Thought) (사고 사슬)

CoT(Chain of Thought), 즉 생각 사슬이라고도 불리는 이 방법은 마치 복잡한 수학 문제를 풀기 위해 문제를 쪼개어 단계적으로 푸는 것과 유사합니다. LLM에게 문제 해결 과정에서 따라야 할 생각의 단계나 논리적 순서를 제시하면, LLM은 이 사고 과정을 따라 문제를 분석하고 각 단계를 거치면서 최종 해답에 도달합니다. CoT 접근 방식의 핵심은 AI가 단순히 결과를 도출하는 것이 아니라 문제 해결 과정에 필요한 논리적 사고를 모방하도록 하는 것입니다. 즉, AI가 단순히 지식을 암기하고 적용하는 것을 넘어 문제를 해석하고 주어진 해결책을 사용하는 등 생각하는 방법을 배우게 하는 것입니다. CoT는 복잡한 문제 해결과 추론을 요구하는 작업에 유용하며, AI의 이해력과 추론 능력을 크게 향상시킬 수 있습니다. 예를 들어, 복잡한 질문에 대한 답변을 생성하거나, 논리적인 글을 작성하는 데 CoT를 활용할 수 있습니다. CoT는 LLM이 사고 과정을 명확하게 보여주기 때문에 결과에 대한 신뢰도를 높일 수 있다는 장점이 있습니다. 하지만 CoT는 프롬프트 설계가 복잡하고, 많은 컴퓨팅 자원을 필요로 한다는 단점이 있습니다. CoT를 효과적으로 활용하기 위해서는 문제 해결 과정을 명확하게 정의하고, 각 단계에 필요한 정보를 LLM에게 제공해야 합니다. 또한 CoT는 LLM이 스스로 답을 찾도록 유도하기 때문에 창의적인 문제 해결에 도움이 될 수 있습니다. 하지만 CoT의 성공 여부는 LLM의 능력과 프롬프트의 품질에 크게 좌우됩니다. 따라서 CoT를 활용하기 전에 LLM의 특성을 파악하고, 적절한 프롬프트를 설계하는 것이 중요합니다.

5. 제로샷 CoT (Zero-shot Chain of Thought)

제로샷 CoT는 CoT와 비슷한 방식이지만, 문제 해결 과정에서 따라야 할 생각의 단계나 논리적 순서 등의 가이드를 주지 않습니다. 마치 어려운 문제를 주고 "천천히 생각해 보라"고 말하는 것과 같습니다. 해결할 문제를 주고 그저 천천히 생각해 보라는 식으로만 지시하면, LLM은 스스로 문제를 분석하고 사고 과정을 단계적으로 작성해 가면서 자신의 사고 과정에 따라 해답을 도출합니다. 예를 들어, "식당에 사과가 23개 있었습니다. 점심을 만들기 위해 20개를 사용하고 6개를 더 샀습니다. 그 후에 3개를 먹었다면 사과가 몇 개 남았을까요? 단계별로 생각해 봅시다."와 같이 지시할 수 있습니다. 제로샷 CoT는 CoT보다 더욱 창의적인 해결책을 도출할 수 있다는 장점이 있지만, LLM의 능력에 따라 결과가 크게 달라질 수 있다는 단점이 있습니다. 제로샷 CoT는 복잡한 문제새로운 유형의 문제에 대한 해결책을 찾을 때 유용하게 활용될 수 있습니다. 또한 제로샷 CoT는 LLM의 사고 능력을 향상시키는 데 도움이 될 수 있습니다. 하지만 제로샷 CoT는 프롬프트 설계가 어렵고, 결과에 대한 예측이 어렵다는 단점이 있습니다. 제로샷 CoT를 효과적으로 활용하기 위해서는 LLM의 특성을 잘 이해하고, 문제에 대한 명확한 이해를 바탕으로 프롬프트를 설계해야 합니다. 또한 제로샷 CoT의 결과는 다양하게 해석될 수 있기 때문에, 결과에 대한 비판적인 시각을 유지하는 것이 중요합니다.

기본적인 프롬프트 구성: 컨텍스트, 지시, 형식

효과적인 프롬프트를 만들기 위해서는 몇 가지 기본적인 구성 요소를 고려해야 합니다. 프롬프트는 크게 컨텍스트, 지시, 형식의 세 가지 요소로 구성됩니다.

1. 컨텍스트 (Context): 답변에 필요한 정보 제공

컨텍스트는 답변에 필요한 정보를 제공하는 부분입니다. 이는 LLM이 질문을 이해하고 답변을 생성하는 데 필요한 배경지식이나 상황 정보를 제공하는 역할을 합니다. 컨텍스트는 보통 정제되지 않은 긴 텍스트로 제공되는 경우가 많습니다. 예를 들어, "1988년 서울 올림픽"과 같이 특정 사건이나 주제에 대한 정보를 제공할 수 있습니다. 컨텍스트는 LLM이 질문의 의도를 정확하게 파악하고, 관련 정보를 활용하여 답변을 생성할 수 있도록 돕습니다. 따라서 컨텍스트를 명확하고 구체적으로 제공하는 것이 중요합니다. 컨텍스트를 제공할 때는 질문과 관련된 모든 정보를 포함하는 것이 좋습니다. 예를 들어, 특정 사건에 대한 질문을 할 때는 사건의 배경, 원인, 결과 등을 함께 제공할 수 있습니다. 또한 특정 인물에 대한 질문을 할 때는 인물의 업적, 성격, 관련 인물 등을 함께 제공할 수 있습니다. 컨텍스트는 LLM이 정확하고 관련성 높은 답변을 생성하는 데 필수적인 요소입니다. 하지만 컨텍스트가 너무 길거나 복잡한 경우, LLM이 중요한 정보를 놓치거나 혼란스러워할 수 있습니다. 따라서 컨텍스트를 간결하고 명확하게 작성하는 것이 중요합니다.

2. 지시 (Instruction): 원하는 결과에 대한 구체적인 지시

지시는 구체적으로 원하는 결과를 얻기 위한 명령이나 요청을 의미합니다. 이는 LLM에게 어떤 작업을 수행해야 하는지 명확하게 알려주는 역할을 합니다. 예를 들어, "1988년 서울 올림픽의 금메달 순위를 추출해 줘"와 같이 원하는 결과를 구체적으로 지시할 수 있습니다. 지시는 LLM이 사용자의 의도를 정확하게 파악하고, 원하는 형태의 답변을 생성할 수 있도록 돕습니다. 따라서 지시를 명확하고 구체적으로 작성하는 것이 중요합니다. 지시를 작성할 때는 어떤 작업을 수행해야 하는지, 어떤 정보를 추출해야 하는지, 어떤 기준으로 정보를 정리해야 하는지 등을 명확하게 제시해야 합니다. 예를 들어, 특정 주제에 대한 요약을 요청할 때는 요약의 길이, 핵심 내용, 포함해야 할 정보 등을 함께 지시할 수 있습니다. 또한 특정 감정을 표현하는 문장을 생성할 때는 감정의 종류, 문장의 톤앤매너, 대상 등을 함께 지시할 수 있습니다. 지시는 LLM이 사용자의 의도에 맞는 답변을 생성하는 데 중요한 역할을 합니다. 하지만 지시가 너무 모호하거나 추상적인 경우, LLM이 엉뚱한 결과를 생성할 수 있습니다. 따라서 지시를 구체적이고 명확하게 작성하는 것이 중요합니다.

3. 형식 (Format): 답변의 형태 지정

형식은 답변의 형태를 지정하는 부분입니다. 이는 LLM에게 어떤 형태로 답변을 제공해야 하는지 알려주는 역할을 합니다. 예를 들어, "금메달 순위는 숫자 목록으로 작성해 줘"와 같이 답변의 형식을 지정할 수 있습니다. 형식을 지정하면 LLM은 사용자가 원하는 형태로 답변을 제공할 수 있으며, 답변의 가독성과 활용도를 높일 수 있습니다. 형식을 지정할 때는 답변의 길이, 답변의 구조, 답변의 스타일 등을 고려해야 합니다. 예를 들어, 답변을 짧게 요약해야 하는 경우에는 요약의 길이를 지정할 수 있습니다. 또한 답변을 목록 형태로 제공해야 하는 경우에는 목록의 순서, 항목의 개수 등을 지정할 수 있습니다. 형식을 지정하는 것은 LLM이 사용자에게 최적화된 답변을 제공하는 데 중요한 역할을 합니다. 하지만 형식을 너무 엄격하게 지정하는 경우, LLM의 창의성을 제한할 수 있습니다. 따라서 형식을 지정할 때는 답변의 내용과 균형을 맞추는 것이 중요합니다.

프롬프트 엔지니어링 원 포인트 레슨: 컨텍스트의 중요성

프롬프트 엔지니어링에서 가장 중요한 것은 사용자가 답변을 얻기 위해 사전에 어떤 컨텍스트를 제공하느냐입니다. 사용자는 질문의 배경, 관련 정보, 그리고 원하는 답변의 세부 사항을 명확히 제시함으로써 더 정확하고 관련성 높은 답변을 얻을 수 있습니다. 마치 요리사가 좋은 재료를 사용하여 맛있는 음식을 만드는 것처럼, 사용자는 좋은 컨텍스트를 제공하여 AI가 원하는 결과를 생성하도록 도와야 합니다. 컨텍스트는 LLM이 질문의 의도를 정확하게 파악하고, 답변을 생성하는 데 필요한 핵심 정보를 제공합니다. 따라서 컨텍스트가 부족하거나 부정확한 경우, LLM은 엉뚱하거나 만족스럽지 못한 답변을 생성할 수 있습니다. 컨텍스트를 제공할 때는 질문과 관련된 모든 정보를 포함하는 것이 좋습니다. 예를 들어, 특정 사건에 대한 질문을 할 때는 사건의 배경, 원인, 결과 등을 함께 제공할 수 있습니다. 또한 특정 인물에 대한 질문을 할 때는 인물의 업적, 성격, 관련 인물 등을 함께 제공할 수 있습니다. 컨텍스트는 LLM이 정확하고 관련성 높은 답변을 생성하는 데 필수적인 요소입니다. 하지만 컨텍스트가 너무 길거나 복잡한 경우, LLM이 중요한 정보를 놓치거나 혼란스러워할 수 있습니다. 따라서 컨텍스트를 간결하고 명확하게 작성하는 것이 중요합니다. 인컨텍스트 러닝은 프롬프트 엔지니어링 과정에서 생성한 정보는 다시 새로운 컨텍스트가 되기 때문에 사용자가 원하는 결과를 더 정교하게 만들어 낼 수 있습니다. 즉, AI가 추가적인 훈련 과정 없이 주어진 문맥 안에서 바로 정보를 학습하고 이를 결과에 적용하는 것입니다. 이는 마치 선생님이 학생에게 문제를 풀도록 지도하면서, 학생이 문제를 해결하는 과정에서 얻은 지식을 바탕으로 다음 문제를 해결하도록 돕는 것과 같습니다. 인컨텍스트 러닝을 통해 LLM은 지속적으로 학습하고 개선되며, 사용자의 요구사항에 더욱 잘 맞는 답변을 생성할 수 있습니다.

컨텍스트를 가져오는 기술: 벡터 서치 (Vector Search)

LLM 애플리케이션은 프롬프트를 잘 만드는 것도 중요하지만, 사용자의 요청에 알맞은 정보를 잘 찾아 제시하는 것도 매우 중요합니다. 이는 마치 도서관에서 원하는 책을 빠르게 찾는 것과 같습니다. 벡터 서치는 LLM 애플리케이션에서 사용자의 요청에 맞는 컨텍스트를 효율적으로 검색하고 제공하는 핵심 기술입니다.

LLM에서의 임베딩 (Embedding): 단어를 숫자로 변환

LLM에서의 임베딩은 단어나 문장 같은 언어의 조각들을 숫자로 바꾸는 과정입니다. 마치 언어를 컴퓨터가 이해할 수 있는 코드로 변환하는 것과 같습니다. 임베딩에 의해 변환된 숫자들은 숫자의 집합, 즉 벡터 형태를 가지며, 이 숫자의 집합은 단어나 문장 같은 언어 조각들의 개념적 위치를 알려 주는 역할을 합니다. 이는 마치 지리 좌표가 특정 장소의 위치를 나타내는 것과 같습니다. LLM이 단어들을 이해하려면 각 단어들을 숫자의 집합, 즉 실수 형태의 집합으로 바꾸는 과정이 필요한데, 이 과정을 벡터화라고 하며, 변환된 숫자의 집합이 바로 임베딩 벡터입니다. 임베딩 모델은 텍스트를 숫자로 바꾸는 머신러닝 모델입니다. 이는 마치 번역기와 같이, 하나의 언어를 다른 언어로 변환해 줍니다. 임베딩 모델은 대량의 텍스트 데이터를 분석하여 각 단어나 문장이 가진 의미와 문맥을 숫자 벡터로 표현합니다. 이러한 임베딩 벡터는 단어 간의 유사성을 측정하는 데 사용될 수 있습니다. 예를 들어, "사과"와 "배"는 과일이라는 공통된 의미를 가지고 있기 때문에 임베딩 공간에서 서로 가까운 위치에 놓이게 됩니다. LLM은 임베딩 벡터를 통해 단어의 의미를 이해하고, 문맥에 맞는 단어를 선택할 수 있습니다.

벡터 서치 (Vector Search): 유사한 단어 찾기

벡터 서치는 단어를 n차원에 배치한 것을 임베딩 공간이라고 하고, 임베딩 공간에서 기준이 되는 단어와 가까운 단어를 찾는 것입니다. 이는 마치 지도에서 특정 위치를 기준으로 주변 지역을 검색하는 것과 같습니다. 벡터 서치는 LLM이 사용자의 질문과 관련된 정보를 빠르게 찾도록 돕습니다. 예를 들어, 사용자가 "고양이"에 대한 질문을 하면, 벡터 서치는 임베딩 공간에서 "고양이"와 가까운 단어, 즉 "강아지", "동물", "애완동물" 등을 검색합니다. 이를 통해 LLM은 사용자의 질문에 대한 답변을 생성하는 데 필요한 정보를 얻을 수 있습니다. ANN(Approximate Nearest Neighbor) 알고리즘은 정확도는 약간 떨어지는 대신 빠르게 유사한 벡터를 찾을 수 있는 기술입니다. 이는 마치 대략적인 지도를 사용하여 목적지를 빠르게 찾는 것과 같습니다. ANN 알고리즘의 핵심 작동 원리는 고차원 데이터 공간을 더 작은 공간으로 근사화하는 것입니다. 이를 통해 데이터 포인트 간의 완벽한 거리 계산을 피하고, 근사값을 사용하여 빠른 검색을 수행합니다. 차원 축소는 데이터의 차원을 줄여 계산 복잡도를 낮추는 동시에 원본 데이터의 중요한 특성을 유지하려고 시도하는 기술입니다. 이는 마치 지도의 축척을 줄여 전체적인 지형을 파악하는 것과 같습니다. ANN 알고리즘은 대규모 데이터셋에서 유사한 벡터를 검색하는 데 매우 효율적입니다. 하지만 ANN 알고리즘은 정확도가 완벽하지 않기 때문에, 검색 결과에 오류가 있을 수 있습니다. 따라서 ANN 알고리즘을 사용할 때는 정확도와 속도 사이의 균형을 고려해야 합니다.

하이브리드 서치 (Hybrid Search): 키워드 검색과 벡터 검색의 결합

하이브리드 서치는 키워드 검색을 통해 DB에서 후보 데이터를 일부 검색하고, 사용자가 요청한 내용과 유사한 데이터를 벡터 서치로 다시 한번 필터링하는 방식입니다. 이는 마치 도서관에서 키워드로 책을 검색한 후, 검색된 책 중에서 원하는 책을 다시 한번 찾는 것과 같습니다. 하이브리드 서치는 키워드 검색과 벡터 검색의 장점을 결합하여 더욱 정확하고 효율적인 검색을 가능하게 합니다. 키워드 검색은 특정 키워드를 포함하는 데이터를 빠르게 검색할 수 있지만, 의미가 유사한 데이터를 놓칠 수 있다는 단점이 있습니다. 반면, 벡터 검색은 의미가 유사한 데이터를 검색할 수 있지만, 키워드 검색보다 속도가 느리다는 단점이 있습니다. 하이브리드 서치는 키워드 검색을 통해 검색 범위를 좁히고, 벡터 검색을 통해 의미가 유사한 데이터를 검색함으로써 이러한 단점을 보완합니다. 하이브리드 서치는 다양한 유형의 데이터를 검색하는 데 유용하며, LLM 애플리케이션에서 사용자 만족도를 높이는 데 기여할 수 있습니다.