LLM & RAG 용어정리 (프롬프트 엔지니어링)

2024. 11. 10. 20:40·용어정리/LLM & RAG


프롬프트 엔지니어링이 무엇인지 왜 중요한지에 대해서 알아보자!


프롬프트 엔지니어링

프롬프트 엔지니어링이란 LLM에 적절한 입력 즉 질문을 설계하고 작성하여서,

모델이 최적의 응답을 하도록 유도하는 기술이다.

 

프롬프트가 잘 설계되어 있다면, GPT와 같은 모델의 결과가 좀더 정확하고 유용하게 나올 것이다.

 

반대로 잘못 작성된 프롬프트는 부정확한 답변 및 혼란스러운 결과를 생성 할 수 있다.

 

즉 프롬프트 엔지니어링이란 모델이 유저의 의도한 대로 응답을 하게끔 유도를 하는 것이라고 볼 수 있다.

구조나 어조를 조정하여 답변의 품질과 일관성을 높히고, 부연설명 대신 깔끔하고 명확하며 구체적인

프롬트를 작성하는 것이 목표이다.

 

 


동작하는 이유

프롬프트 엔지니어가 동작하는 이유를 알기 위해서는

LLM의 동작원리에 대해서 알아야 한다.

 

  1. 프롬프트 입력
  2. 맥락을 파악
  3. 맥락을 분석 후 적절한 답변 생성
  4. 학습된 데이터를 기반으로 문장의 확률에 의거 가장 가능성으 높은 답변 표시

 

맥락을 파악하고 그에 맞는 데이터를 확률적으로 이용을 하는 것이기 때문에,

프롬프트 엔지니어링은 그 데이터를 좀더 찾기 쉽게 할 뿐더러 적정한 경로로 유도를 하기에

동작을 하는 것이라고 볼 수 있다.

 

 


역활

대화형 모델에서 구조화된 대화의 흐름을 만들기 위해서는 역활이 필요하다.

이는 User, Assistnant 그리고 System으로 나뉘어진다.

 

이 세 가지 역활을 적절히 조절하여 좀더 자연스럽고 유의미한 대화를 진행 할 수 있다.

 


User

모델에 지시를 하는 주체이다.

질문 또는 요구사항을 전달해주는 역활을 한다.

프롬프트 엔지니어링에서는 User가 명확한 요청을 해야하고, 의도가 분명해야한다.

 

구체적인 요정을 하지 않는다면, 답변 또한 모호해질 수 있다.

 

 


Assistant

GPT와 같은 모델이 실제로 수행을 하는 부분을 뜻한다.

유저의 지시에 따른 답변을 제공하는 역활로써 입력값에 따른 적절한 답변을 생성해야한다.

 

프롬프트 엔지니어링에서 가장 중요한것은 어떻게 유저가 이 Assistant에게 정확한 답변을 이끌어내는가 이다.

 

 


System

기본적인 규칙과 Assistant의 성격을 결정하는 역활이다.

배경과 규칙을 설정해서, Assistant가 답변을 생성할때, 기본적으로 어떤 스타일과 어조 를 사용할지

정하는 것이다.

 

System을 사용하여 모델이 특정한 태도나 전문성을 가지고 답변을 생성 할 수 있도록

프레임워크를 제공한다.

 


적용 예시

System: "인공지능 개발자로써 정확하고 전문적인 정보만 제공합니다."
User: "LLM에 대해서 알려주세요."

Assistant: "LLM(Large Language Model)은 대규모 텍스트 데이터를 기반으로 학습된 인공지능 모델로, 
인간 언어의 패턴과 구조를 이해하여 자연스러운 응답을 생성합니다. 
이 모델은 질문 답변, 번역, 요약 등 다양한 작업을 수행할 수 있어 여러 분야에서 활용됩니다. 
LLM은 입력된 텍스트의 맥락을 파악하여 높은 수준의 문장 이해력과 생성 능력을 제공합니다."

 

 


주의 사항

  1. 사용자가 어떠한 답변을 원하는지 직설적이고 명확하게 질문을 작성해야 한다.
  2. LLM은 기본적으로 이전 맥락을 기억하고 흐름을 유지하기 때문에, 일관성 있게 질문을 하는것이 중요하다.
    1. 하지만 요즘은 LLM의 발전으로 인하여 다른 질문을 한다고 하더라도, 답변을 잘 해줄 확률이 높다.
  3. 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
'용어정리/LLM & RAG' 카테고리의 다른 글
  • LLM & RAG 용어정리 (Shot 프롬프팅 기법)
  • LLM & RAG 용어정리 (프롬프트 엔지니어링 사용)
  • LLM & RAG 용어정리 (RAG, Vector DB, LangChain)
  • LLM & RAG 용어정리 (LLM)
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 인스타그램 보러가기
    • 카테고리
      • 코딩테스트
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    vector db
    word2vec
    langchain
    오블완
    django
    티스토리챌린지
    RAG
    View
    template
    llm
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
LLM & RAG 용어정리 (프롬프트 엔지니어링)
상단으로

티스토리툴바