프롬프트 엔지니어링 with NVIDIA DLI Course

2025. 6. 26. 23:24·Data Science/LLM
반응형

이번 글에서는 NVIDA DLI Course에서 수행한 과정에서 LLMs 특성과 그를 보완하기 위한 방법에 대해서 작성합니다. 프롬프트엔지니어링이 무엇인지 그리고 Langchian으로 어떤 클래스와 메소드를 이용해서 구현하는지 알아보겠습니다.


1.  LLM이 무엇인가?

  • LLM은 2017년 Google 발표한 Transformer를 기반으로하는 딥러닝 아키텍처. 핵심은 문맥을 이해하기 위해 단어 간의 관계를 계산하여 토크나이징과 벡터화를 이용하여 정보를 추상화
  • 딥러닝은 행렬과 가중치로 데이터를 저장. 음악 믹서로 비교하자면, 보컬,드럼,베이스에 대한 소리를 조절하는 슬라이더가 있고, 그 슬라이더의 위치(가중치)를 바꾸면서 음악을 만들어내는 것과 같음. 수십개의 슬라이더의 조합이 행렬이라고 할 수 있음
  • 이 가중치는 사전 학습(Pretrain)때 정해지므로 내부 규칙이자 고정된 노하우. 내가 프롬프트를 한다고 해서 이 고정된 규칙이 변하는게 아니라 context window가 계속 추가하고 변화되기 때문에 결과값이 변하는 것처럼 느껴지는 것
  • LLM의 특징
    • 장점: 강력한 기능과 광범위한 활용성
    • 단점: 할루시네이션에 대한 문제

2.  LLM의 단점의 보완 대책

    • 프롬프트 엔지니어링: 원하는 응답을 얻기 위해 효과적으로 소통하는 방식
    • Chain of Thought: LLM이 복잡한 문제를 중간 단계로 분해하여 생각하도록 유도하는 복잡한 추론 능력을 향상시킴. 명시적인 예시 / 단계별로 생각을 유도 / 작업 과정을 보여주게 하여 보완
    • 검색 증강 생성(RAG): LLM의 지식 한계를 보완하기 위해 외부 지식과 LLM을 결합하는 기술, 문맥적으로 관련성 높은 응답을 제공. 이 때 코사인 유사도를 통해 의미 유사도를 벡터 검색함
    • 가드레일: 신뢰있는 LLM을 구축하기 위한 제약조건과 규칙. 부적절한/유해한 응답을 방지

3. What is Langchain?

LangChain은 이러한 기반 어플리케이션 개발을 간소화하고 유연하게 만드는 오픈소스 프레임워크. 상당한 추상화를 제공하여 초보자도 쉽게 접근할 수 있는 장점이 있으나, 지나친 추상화로 인한 디버깅이 힘든 단점이 존재하기도 함

  • 핵심 개념
    • Runnable: LLM의 인스턴스로, 기본 작업 단위. RunnableLambda를 이용해 사용자정의함수를 Runnable로 변환 가능
    • LCEL: LangChainExpressionLanguage Runnable을 체인으로 구성하는 선언적인 방ㅇ식 제공
    • 표준화된 메소드: invoke, batch, stream 표준 호출 메소드를 제공합니다.
    • 프롬프트 엔지니어링 기법 지원
      • 역할 기반 메시지: ChatPromptTemplate.from_messages 메소드를 사용하여 Human, AI, System 와 같은 역할 기반 메시지를 명시적으로 정의
      • 퓨삿 프롬프팅: FewShotChatMessagePromptTemplate 모델 동작에 영향에 미치는 예시를 사전에 제공할 수 있음
  • 프롬프트 엔지니어링 관련 Lanchain 디렉토리
#langchain_core

runnables.base # Runnable 
├── Runnable  : 기본 단위
├── RunnableLambda: 함수를 Runnable로 변환
├── RunnableParallel: 
│ 
langchain_core.prompts.chat
├── ChatPromptTemplate
│    ├── from_messages(): reate a chat prompt template from a variety of message formats.
│      # 튜플 형식, "SystemMessage" 등의 키워드 사용 가능
├── few_shot.FewShotPromptTemplate: fewshot 제공
│
output_parsers.string
├──StrOutputParser: llm이 반환하는 결과를 문자형으로 변환


#llm api class
langchain_google_genai
├──ChatGoogleGenerativeAI
│  ├──invoke()
│  ├──stream()
│  ├──batch()

4. 용어집(Glossary)

대분류 소분류 설명
Prompt
Engineering
Prompt Engineering LLM의 가진 본질적인 특성 할루시네이션을 제어하고 원하는 결과를 도출하기 위한 방방법
  Prompting LLM에게 작업을 지시하는 행위 그 자체
  Prompt Template 프롬프트의 구조를 미리 만들어 놓고 변수를 주입항여 재사용성을 높이는 도구
  System Messages and System Context 모델의 역할, 성격, 행동 지침을 설정하는 시스템 레벨의 지시어
  Chain-of-Thought 모델이 복잡한 문제를 풀 때, 생각 과정을 단계별로 서술하게 항여 정확도를 높이는 프롬프트 기법
  Few-shot Classification 몇 가지 예시(few-shot)을 프롬프트에 포함하여 모델이 특정 패턴이나 분류 기준을 학습하게 하는 기법
  Prompt Injection 악의적인 사용자가 프롬프트를 조작하여 개발자가 의도하지 않은 동작을 유도하는 보안 공격
개발 프레임워크 및 도구 LangChain LLM을 외부 데이터 및 다른 서비스와 쉽게 연동하여 어플리케이션을 만들도록 돕는 개발 프레임워크
  LCEL Langchain의 여러 컴포넌트(Runnable)을 파이프라인으로 직관적으로 연결할 수 있게 하는 선언형 문법
  Runnables LCEL을 구성하는 기본 단위
  Gradio and Chatbots 머신러닝 모델의 UI를 빠르게 만들어 프로토 타이핑하고 공유할 수 있는 도구
  Pydantic Python에서 데이터 유효성검사와 구조화를 쉽게 해주는 라이브러리
고급 어플리케이션 패턴 Agents LLM과 RAG를 포함한 다양한 기술(플러그인, API)을 활용하여 사용자의 질문을 처리하고 실제 행동을 수행할 수 있는 인공지능 시스템
  Retrieval Augmented Generation (RAG) LLM의 추상화된 벡터에 의존하지 않고 외부 데이터베이스에서 정보를 검색하여 답변을 생성(Generation)하는 기술
  Structured Data Generation LLM이 단순 텍스트가 아닌 JSON/XML 등 정해진 형식의 구조화된 데이터를 생성하도록 하는 작업
LLM 모델
및 동작 제어
SOTA LLM models (ChatGPT, LlamaX, etc.) 현재 최고 성능을 보이는 모델들
  Temperature 모델 답변 생성시 무작위성을 조절하는 파라미터, 높을수록 창의적
  Instruction fine tuning 특정 작업이나 스타일에 맞게 응답하도록 사전 학습된 LLM을 명령어 데이터셋으로 학습시키는 과정. zero-shot에도 잘 작동할 수 있게됨
  Hallucinations 다음 단어를 예측하는 LLM의 특징 때문에 일어나는 현상이며, 실제로 사실이 아닌데 사실 인 것처럼 말하는 현상
데이터 처리 및 인프라 JSON JavaScript Object Notion.key-value 쌍으로 이루어진 데이터 교환 포맷.
  Streaming vs. Batching 스트리밍은 결과가 생성되는 즉시 실시간으로 전송하는 방식, 배치는 한 번에 처리하는 방식
  Nvidia NIM NVIDIA Inference Microservice, 쿠버네틱스 기반 마이크로서비스 세트

    5. 참고할만한 자료

      제목 발행일자
    1 A jargon-free explanation of how AI large language models work Jul 31, 2023
    2 What Is and Why Use Temperature in Softmax? Mar 18, 2024
    3 Understanding prompt engineering Sep 24, 2024
    4 NVIDIA Enables Trustworthy, Safe, and Secure Large Language Model Conversational Systems Apr 25, 2023
    5 Implementing Large Language Models Date unknown
    6 Prompting And Prompt Engineering Facing Notable Changes Due To OpenAI Latest OI Generative AI Model Sep 16, 2024
    7 Retrieval Mar 23, 2023
    8 Mastering Prompt Engineering in 2024 Oct 7, 2024
    9 Retrieve Anything to Augment Large Language Models Oct 11, 2023
    10 Llama 2 is here - get it on Hugging Face Jul 18, 2023
    11 Prompt Engineering vs. RAG vs. Finetuning: What's the Difference? Aug 5, 2024
    12 An Introductory Guide to Fine-Tuning LLMs Aug 1, 2024
    13 What is instruction tuning? Apr 5, 2024
    14 A primer on AI Agents with LangGraph, understand all about it Apr 25, 2024
    15 LCEL: A Guide to LangChain Expression Language Nov 8, 2023
    16 A Developers Guide to NIM, Nvidia's AI Application Platform Aug 13, 2024
    17 ChatGPT Prompt Engineering for Developers  
    18 한시간으로 끝내는 LangChain 기본기  

     

    반응형

    'Data Science > LLM' 카테고리의 다른 글

    Prompt Engineering DLI course 후기와 AI assistant로 학습 부스팅하기  (0) 2025.06.27
    Langchain 시작하기, invoke, batch, stream, template  (1) 2025.06.20
    'Data Science/LLM' 카테고리의 다른 글
    • Prompt Engineering DLI course 후기와 AI assistant로 학습 부스팅하기
    • Langchain 시작하기, invoke, batch, stream, template
    지지플랏
    지지플랏
    DataScience 컨설팅을 업으로 하고있습니다.
    • 지지플랏
      지지플랏의 DataScience
      지지플랏
    • 전체
      오늘
      어제
      • 지지플랏
        • Data Science
          • SQL
          • Engineering
          • 데이터과학을 위한 통계
          • Khan Academy
          • 실무로 통하는 인과추론 with 파이썬
          • 데이터 중심 어플리케이션 설계(DDIA)
          • 컴퓨터 밑바닥의 비밀
          • 자동화
          • LLM
        • 담벼락
          • 인터뷰
          • 생각이 자란다
          • 컨텐츠 독후감
          • Career Development
          • ToastMasters
        • 기타- 비연재
          • 전공
    • 블로그 메뉴

      • Home
      • Admin
      • Write
    • 링크

      • Linkedin
      • Github
    • 공지사항

      • 지지플랏의 Data Science
    • 인기 글

    • 태그

      인과추론
      데이터분석
      풀러스
      영어연설
      공유경제
      제약
      대중연설
      평창
      영화
      취업
      연설
      a/btest
      빅쿼리
      Toastmaster
      토스트마스터
      F분포
      데이터
      PGTM
      SQLD
      분석
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    지지플랏
    프롬프트 엔지니어링 with NVIDIA DLI Course
    상단으로

    티스토리툴바