프롬프트 엔지니어링이 무엇인지 왜 중요한지에 대해서 알아보자!
프롬프트 엔지니어링
프롬프트 엔지니어링이란 LLM에 적절한 입력 즉 질문을 설계하고 작성하여서,
모델이 최적의 응답을 하도록 유도하는 기술이다.
프롬프트가 잘 설계되어 있다면, GPT와 같은 모델의 결과가 좀더 정확하고 유용하게 나올 것이다.
반대로 잘못 작성된 프롬프트는 부정확한 답변 및 혼란스러운 결과를 생성 할 수 있다.
즉 프롬프트 엔지니어링이란 모델이 유저의 의도한 대로 응답을 하게끔 유도를 하는 것이라고 볼 수 있다.
구조나 어조를 조정하여 답변의 품질과 일관성을 높히고, 부연설명 대신 깔끔하고 명확하며 구체적인
프롬트를 작성하는 것이 목표이다.
동작하는 이유
프롬프트 엔지니어가 동작하는 이유를 알기 위해서는
LLM의 동작원리에 대해서 알아야 한다.
- 프롬프트 입력
- 맥락을 파악
- 맥락을 분석 후 적절한 답변 생성
- 학습된 데이터를 기반으로 문장의 확률에 의거 가장 가능성으 높은 답변 표시
맥락을 파악하고 그에 맞는 데이터를 확률적으로 이용을 하는 것이기 때문에,
프롬프트 엔지니어링은 그 데이터를 좀더 찾기 쉽게 할 뿐더러 적정한 경로로 유도를 하기에
동작을 하는 것이라고 볼 수 있다.
역활
대화형 모델에서 구조화된 대화의 흐름을 만들기 위해서는 역활이 필요하다.
이는 User, Assistnant 그리고 System으로 나뉘어진다.
이 세 가지 역활을 적절히 조절하여 좀더 자연스럽고 유의미한 대화를 진행 할 수 있다.
User
모델에 지시를 하는 주체이다.
질문 또는 요구사항을 전달해주는 역활을 한다.
프롬프트 엔지니어링에서는 User가 명확한 요청을 해야하고, 의도가 분명해야한다.
구체적인 요정을 하지 않는다면, 답변 또한 모호해질 수 있다.
Assistant
GPT와 같은 모델이 실제로 수행을 하는 부분을 뜻한다.
유저의 지시에 따른 답변을 제공하는 역활로써 입력값에 따른 적절한 답변을 생성해야한다.
프롬프트 엔지니어링에서 가장 중요한것은 어떻게 유저가 이 Assistant에게 정확한 답변을 이끌어내는가 이다.
System
기본적인 규칙과 Assistant의 성격을 결정하는 역활이다.
배경과 규칙을 설정해서, Assistant가 답변을 생성할때, 기본적으로 어떤 스타일과 어조 를 사용할지
정하는 것이다.
System을 사용하여 모델이 특정한 태도나 전문성을 가지고 답변을 생성 할 수 있도록
프레임워크를 제공한다.
적용 예시
System: "인공지능 개발자로써 정확하고 전문적인 정보만 제공합니다."
User: "LLM에 대해서 알려주세요."
Assistant: "LLM(Large Language Model)은 대규모 텍스트 데이터를 기반으로 학습된 인공지능 모델로,
인간 언어의 패턴과 구조를 이해하여 자연스러운 응답을 생성합니다.
이 모델은 질문 답변, 번역, 요약 등 다양한 작업을 수행할 수 있어 여러 분야에서 활용됩니다.
LLM은 입력된 텍스트의 맥락을 파악하여 높은 수준의 문장 이해력과 생성 능력을 제공합니다."
주의 사항
- 사용자가 어떠한 답변을 원하는지 직설적이고 명확하게 질문을 작성해야 한다.
- LLM은 기본적으로 이전 맥락을 기억하고 흐름을 유지하기 때문에, 일관성 있게 질문을 하는것이 중요하다.
- 하지만 요즘은 LLM의 발전으로 인하여 다른 질문을 한다고 하더라도, 답변을 잘 해줄 확률이 높다.
- System을 사용한 설정이 매우 중요하게 역활을 하기 때문에, 올바르게 system을 설정을 하는것이 중요하다.
'용어정리 > LLM & RAG' 카테고리의 다른 글
LLM & RAG 용어정리 (Act As) (2) | 2024.11.11 |
---|---|
LLM & RAG 용어정리 (Shot 프롬프팅 기법) (1) | 2024.11.11 |
LLM & RAG 용어정리 (프롬프트 엔지니어링 사용) (0) | 2024.11.10 |
LLM & RAG 용어정리 (RAG, Vector DB, LangChain) (0) | 2024.11.08 |
LLM & RAG 용어정리 (LLM) (0) | 2024.11.08 |