프롬프트 엔지니어링 강의 by DLAI - 4. 태스크별 활용 (요약, 추론, 변형, 확장, 챗봇)

jihyelee·2023년 6월 18일
1

prompt-engineering

목록 보기
4/18

강의 링크: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

요약 (Summarization)

  • 요약의 목적과 주목해야 할 부분을 구체적으로 명시할 것
    • e.g. ... to give feedback to the pricing department. (목적: 피드백을 주기 위함)
    • e.g. ... focusing on any aspects that are relevant to the price and perceived value. (주목해야 할 부분: 가격과 자각 가치)
  • 상품 리뷰 등 긴 글을 요약할 때 유리

추론 (Inferring)

  • 긍정, 부정 추론
    • 제품 리뷰의 긍정, 부정 추론 가능
    • 구체적으로 어떠한 감정을 담고 있는지 또한 추론 가능
      • e.g. Identify a list of emotions ... (여러 감정을 파악하여라)
  • 정보 추출
    • 제품 리뷰에서 제품명, 회사명 추출 가능
    • 감정, 정보 등 여러 가지의 정보를 한꺼번에 추출할 수 있음
      • e.g. Identify the following items .. 1) sentiment 2) item purchased by review 3) company that made the item ...
  • 주제 추론
    • 글에서 이야기하고 있는 주제 추론 가능
      • e.g. Determine five topics that are being discussed ... (5개 토픽을 제시하여라)
    • 이를 응용해, 해당 글이 주어진 주제에 해당되는지 판별하고 이에 대해 사용자에게 알림을 주도록 코드를 작성할 수 있음

변형 (Transforming)

  • 번역 (translation)
    • 특정 언어로 번역
    • 어떤 언어인지 판별(detect)
    • 여러 개의 언어로 동시에 번역하거나 여러 개의 언어를 동시에 번역
    • 격식을 차리거나(formal), 일상적이거나(informal), 특정한 역할을 부여하여 번역 가능
  • 톤(tone) 변형
    • slang을 business letter 형식으로 변형 가능
  • 형식(format) 변형
    • JSON을 HTML로 변형 가능
    • e.g. data_json = { "resturant employees" :[
      {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},
      {"name":"Bob", "email":"bob32@gmail.com"},
      {"name":"Jai", "email":"jai87@gmail.com"}
      ]}
      prompt = f"""
      Translate the following python dictionary from JSON to an HTML \
      table with column headers and title: {data_json}
      """
    • 결과를 from IPython.display import display, Markdown, Latex, HTML, JSON
      display(HTML(response)) 코드를 활용하여 표현하면 아래 표 형식으로 재현됨
  • 철자 및 문법 체크
    • e.g. Proofread and correct ... 를 사용해 모델에게 지시하면 철자 및 문법을 수정
    • from redlines import Redlines
      diff = Redlines(text,response)
      display(Markdown(diff.output_markdown))
      이를 사용하면 원래와 수정본이 어떻게 달라졌는지 한 눈에 확인 가능

확장 (Expanding)

  • 짧은 글을 긴 글로 늘리는 데에 유용
    • e.g. 고객이 불만을 가진 리뷰에 대해 자동완성 이메일 작성 가능
  • Temperature
    • 모델 답변에 임의성을 부여하여 다양성을 증대시킬 수 있는 파라미터
    • 신뢰성과 예측가능성을 요구하는 태스크에 대해서는 temperature = 0 사용 가능
    • 다양성을 요구하는 태스크에 대해서는 temperature > 0 사용 가능

챗봇 (Chatbot)

  • OpenAI API Call
    • role에 따라 다른 역할 부여 가능
      • system: 전체적인 instruction
      • user: 사용자가 모델에게 주는 input
      • assistant: 모델이 사용자에게 주는 output
      • context에 지속적으로 사용자의 발화, 모델의 발화가 추가되면 모델은 이전의 대화 내용을 기반으로 답변을 생성할 수 있음

후기

  • 생각보다는 단순한 프롬프트 엔지니어링 기법만 소개되어서 아쉬웠음
  • 하지만 만약 프롬프트에 대해 잘 모르거나, ChatGPT를 이용해서 간단한 서비스를 만드려고 하는데 어떻게 코드를 짜야 할지, 어떤 기능을 활용해야 할지 모른다면 한번쯤 들어볼만한 강의 (for beginners)
profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

2개의 댓글

좋은 무료 강의 많이 알고 있으셔서 덕분에 많이 얻어갑니다. 혹시 , "요약"을 위한 프롬프트 엔지니어링에서 "요약의 목적과 주목해야 할 부분을 구체적으로 명시" 하는 것이 어떤 이유에서 더 좋은(?) 요약을 제공한다고 생각하시는지 여쭤봐도 될까요~?

1개의 답글