모호한 프롬프트를 이해하는 ChatGPT의 능력 향상
이 글은 원래 The New Stack에 게재되었으며, 허가를 받아 여기에 다시 게시되었습니다.
프롬프트 엔지니어링 기법은 대규모 언어 모델(LLM)이 검색 증강 생성(RAG) 시스템에서 대명사 및 기타 복잡한 상호참조를 처리하는 데 도움을 줍니다.
끊임없이 확장되는 AI 영역에서, ChatGPT와 같은 대규모 언어 모델(LLM)은 전례 없는 속도로 혁신적인 연구와 애플리케이션을 이끌고 있습니다. 중요한 발전 중 하나는 검색 증강 생성(RAG)의 등장입니다. 이 기법은 LLM의 강력함과 장기 기억 역할을 하는 vector database를 결합하여 생성된 응답의 정확도를 향상시킵니다. RAG 접근 방식의 대표적인 구현 사례는 오픈 소스 프로젝트 Akcio로, 강력한 질의응답 시스템을 제공합니다.
Akcio의 아키텍처
Akcio의 아키텍처에서는 도메인 특화 지식이 data loader를 사용해 Milvus 또는 Zilliz(완전 관리형 Milvus)와 같은 vector store에 매끄럽게 통합됩니다. vector store는 사용자의 쿼리에 대해 가장 관련성이 높은 Top-K 결과를 검색하여 LLM에 전달하고, 사용자의 질문에 대한 맥락을 LLM에 제공합니다. 이후 LLM은 외부 지식을 바탕으로 응답을 정교하게 다듬습니다.
예를 들어, Akcio에 가져온 “2023년 대규모 언어 모델의 발전에 관한 인사이트 보고서”라는 제목의 글에 대해 사용자가 “2023년 대규모 언어 모델의 사용 사례는 무엇인가요?”라고 질문하면, 시스템은 보고서에서 가장 관련성이 높은 세 개의 구절을 능숙하게 검색합니다:
1. 2023년 LLM 사용 사례는 생성 AI와 의사결정이라는 두 가지 범주로 나눌 수 있습니다. 의사결정 시나리오는 더 높은 비즈니스 가치를 가질 것으로 예상됩니다.
2. 생성 AI 시나리오는 주로 대화형 상호작용, 코드 개발, 지능형 에이전트 등을 포함합니다.
3. NLP 애플리케이션에는 텍스트 분류, 기계 번역, 감성 분석, 자동 요약 등이 포함됩니다.
Akcio는 이러한 구절들을 원래 쿼리와 결합하여 LLM에 전달하고, 미묘하고 정확한 응답을 생성합니다:
대규모 모델 산업의 애플리케이션 시나리오는 생성 및 의사결정 시나리오로 나눌 수 있습니다.
RAG에서 상호참조 해결의 과제
그러나 발전이 있었음에도 불구하고 RAG 시스템을 구현하면 특히 상호참조 해결이 포함된 다중 턴 대화에서 과제가 발생합니다. 다음 질문들의 순서를 살펴보겠습니다:
Q1: 2023년 대규모 언어 모델의 사용 사례는 무엇인가요?
A1: 대규모 언어 모델의 사용 사례는 생성 AI와 의사결정으로 나눌 수 있습니다.
Q2: 이들의 차이점은 무엇이며, 예시를 제공해 줄 수 있나요?
Q2의 대명사 “이들”은 “생성 AI와 의사결정”을 가리킵니다. 그러나 LLM은 이 질문에 대해 대화의 일관성을 저해하는 관련 없는 결과를 생성할 수 있습니다:
1. BERT와 GPT는 NLP 분야에서 중요한 모델이지만, 설계와 적용 시나리오에서 상당한 차이가 있습니다.
2. 대형 모델과 소형 모델의 차이는 규모와 복잡성에 있습니다. 대형 모델은 일반적으로 더 많은 매개변수와 더 복잡한 구조를 가지고 있어 학습과 추론에 더 많은 계산 자원과 시간이 필요합니다. 반면 소형 모델은 매개변수가 더 적고 학습 및 추론 속도가 더 빠르며 상대적으로 단순합니다.
3. 그러나 이 두 제품은 매우 유사해 보이기 때문에 이들을 구별할 추가 정보는 없습니다.
상호참조 해결에 ChatGPT 사용하기
순환 신경망을 사용한 토큰화, 표제어 추출, 키워드 대체와 같은 전통적인 방법은 복잡한 지시 대상을 해결하는 데 종종 불충분합니다. 그 결과 연구자들은 상호참조 해결 작업을 위해 ChatGPT와 같은 LLM으로 눈을 돌렸습니다. 이 접근 방식은 제공된 맥락을 기반으로 ChatGPT에게 대명사를 대체하거나 원래 질문을 유지하도록 지시하는 것을 포함합니다. 이 방법은 유망하지만, 때때로 프롬프트 지시를 따르는 대신 직접적인 답변을 생성하는 경우가 있어 더 정교한 전략이 필요함을 보여줍니다.
테스트한 예시
우리는 다음 프롬프트 형식을 사용하여 ChatGPT가 대명사를 대체하도록 촉구하는 간단한 명령을 실험했습니다.
prompt = f'''다음 지침을 준수하여 새 질문을 생성해 주세요:
1. 맥락을 기반으로 질문에서 누락된 대명사나 조건을 완성하세요.
2. 질문이 이미 완전하다면 원래 질문을 유지하세요.
{history}
질문: {question}'''
예시 1
쿼리:
history = ''' NLP란 무엇인가요?
NLP는 Natural Language Processing의 약자입니다. 이는 자연어를 사용하여 컴퓨터와 인간 간의 상호작용에 초점을 맞추는 컴퓨터 과학 및 인공지능 분야입니다. '''
question = '그것은 어떤 문제를 해결하나요?'
ChatGPT의 응답:
Natural Language Processing (NLP)은 어떤 문제를 해결하나요?
이 경우 ChatGPT는 “그것”을 “Natural Language Processing (NLP)”으로 대체하며 훌륭하게 수행했습니다.
예시 2
쿼리:
history = '''GPT4는 언제 출시되었나요?
GPT4는 2023년에 출시되었습니다'''
question = '올해 컴퓨터 비전에서는 어떤 진전이 있었나요?'
ChatGPT의 응답:
올해 컴퓨터 비전에서는 어떤 진전이 있었나요?
이 경우 ChatGPT는 “올해”를 대체하는 데 어려움을 겪었고, 그 결과 불완전한 해결이 발생했습니다.
예시 3
쿼리:
history = '''GPT3란 무엇인가요?
GPT-3 (Generative Pre-trained Transformer 3)는 OpenAI가 개발한 최첨단 언어 처리 모델입니다.
GPT4는 언제 출시되었나요?
GPT4는 2023년에 출시되었습니다'''
question = '그들 사이의 차이점은 무엇인가요? 후자의 장점은 무엇인가요?'
ChatGPT의 응답:
죄송합니다. GPT-4의 출시일에 대해 제공된 정보는 OpenAI에서 공식적으로 발표하지 않았기 때문에 정확하지 않습니다. 따라서 GPT-3와 GPT-4의 차이점이나 후자의 장점에 대한 질문에 답변할 수 없습니다.
안타깝게도 ChatGPT는 지시에서 벗어나는데, 이는 복잡한 의사결정 과정 때문일 수 있습니다. 프롬프트를 강화하려는 노력에도 불구하고 ChatGPT는 때때로 직접적인 답변으로 치우쳐 상호참조 해결 작업을 복잡하게 만듭니다.
Chain of Thought를 사용한 Few-shot 프롬프트: 개선된 접근 방식
프롬프트 엔지니어링은 LLM을 효과적으로 활용하는 데 핵심적인 역할을 합니다. 우리는 유망한 전략으로 Few-shot 프롬프트와 Chain of Thought (CoT) 방법을 결합해 테스트하기로 했습니다. Few-shot 프롬프트는 LLM에게 여러 참조 예시를 제시하여 응답에서 해당 예시를 모방하도록 안내합니다. CoT는 답변에서 단계별 추론을 장려함으로써 복잡한 추론 작업에서 LLM의 성능을 향상시킵니다.
이러한 기법들을 통합하여, 우리는 ChatGPT가 상호참조 해결을 수행하도록 안내하는 프롬프트 형식을 개발했습니다. 수정된 프롬프트 형식에는 빈 대화 기록, 기본 예시, 실패한 대명사 치환, 여러 대명사가 포함된 사례가 포함되어 ChatGPT에 더 명확한 지침과 참고 예시를 제공합니다. ChatGPT가 NEED COREFERENCE RESOLUTION: Yes 를 반환하는 경우는 매우 중요합니다. 이는 ChatGPT가 일관된 응답을 위해 대명사나 모호한 참조를 대체해야 함을 나타내기 때문입니다.
다음은 개선된 프롬프트 형식입니다:
REWRITE_TEMP = f'''
HISTORY:
[]
NOW QUESTION: Hello, how are you?
NEED COREFERENCE RESOLUTION: No => THOUGHT: Consequently, the output question mirrors the current query. => OUTPUT QUESTION: Hello, how are you?
-------------------
HISTORY:
[Q: Is Milvus a vector database?
A: Yes, Milvus is a vector database.]
NOW QUESTION: How to use it?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: I must substitute 'it' with 'Milvus' in the current question. => OUTPUT QUESTION: How to use Milvus?
-------------------
HISTORY:
[]
NOW QUESTION: What are its features?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: Although 'it' requires substitution, there's no suitable reference in the history. Thus, the output question remains unchanged. => OUTPUT QUESTION: What are its features?
-------------------
HISTORY:
[Q: What is PyTorch?
A: PyTorch is an open-source machine learning library for Python. It provides a flexible and efficient framework for building and training deep neural networks.
Q: What is Tensorflow?
A: TensorFlow is an open-source machine learning framework. It provides a comprehensive set of tools, libraries, and resources for building and deploying machine learning models.]
NOW QUESTION: What is the difference between them?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: 'Them' should be replaced with 'PyTorch and Tensorflow' in the current question. => OUTPUT QUESTION: What is the difference between PyTorch and Tensorflow?
-------------------
HISTORY:
[{history}]
NOW QUESTION: {question}
NEED COREFERENCE RESOLUTION: '''
테스트된 예시와 개선된 응답
다음은 개선된 프롬프트로 수행한 실험 결과 중 일부입니다:
예시 1
쿼리:
history = '''When was GPT-4 released?
GPT-4 was released in 2023'''
question = 'What progress has been made in computer vision this year?'
ChatGPT의 개선된 응답:
Yes => THOUGHT: I need to replace "this year" with "2023" in the now question. => OUTPUT QUESTION: What progress has been made in computer vision in 2023?
예시 2:
쿼리:
history = '''What is GPT-3?
GPT-3 (Generative Pre-trained Transformer 3) is a state-of-the-art language processing model developed by OpenAI.
When was GPT-4 released?
GPT-4 was released in 2023'''
question = 'What is the difference between the two? What are the advantages of the latter?'
ChatGPT의 개선된 응답:
Yes => THOUGHT: I need to replace 'the two' with 'GPT-3 and GPT-4' and 'the latter' with 'GPT-4' in the now question. => OUTPUT QUESTION: What is the difference between GPT-3 and GPT-4? What are the advantages of GPT-4?
개선된 프롬프트 형식은 복잡한 상호참조 해결 작업을 처리하는 ChatGPT의 능력을 크게 향상시킵니다. 이전에는 어려움을 주었던 여러 엔티티가 포함된 질문도 이제 효과적으로 처리됩니다. ChatGPT는 대명사와 모호한 참조를 능숙하게 대체하여, 정확하고 문맥에 적합한 응답을 제공합니다.
결론
프롬프트 엔지니어링은 LLM을 사용하여 RAG 시스템에서 상호참조 문제를 해결하는 데 핵심적인 역할을 합니다. few-shot 프롬프트와 CoT 방법 같은 혁신적인 기법을 통합함으로써, 우리는 RAG 시스템에서 복잡한 참조를 처리하는 능력을 크게 향상시켰으며, ChatGPT와 같은 LLM이 대명사와 모호한 참조를 정확하게 대체하고 일관된 응답을 생성할 수 있도록 했습니다.
계속 읽기

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

Zilliz Cloud BYOC Upgrades: Bring Enterprise-Grade Security, Networking Isolation, and More
Discover how Zilliz Cloud BYOC brings enterprise-grade security, networking isolation, and infrastructure automation to vector database deployments in AWS



