🐣Transforming

#ChatGPT Prompt Engineering for Developers #DeepLearning.AI

이 컨텐츠는 DeepLearning.AIarrow-up-right 의 ShortCourse 중 하나인 ChatGPT Prompt Engineering for Developersarrow-up-right 내용을 정리한 것 입니다.

Transforming

Transforming 작업은 어떤 텍스트 데이터의 형식을 변환하는 작업 입니다. 변환 작업은 다양하게 이루어질 수 있으며 아래 예시에서는 대표적인 몇 가지 사례를 살펴봅니다.

  • 다국어 번역

  • 데이터 형식 변환

  • 언어적 변환 (맥락, 톤)

  • 언어적 문법 변환 혹은 검토

Universal Translator

앞서 살펴본 프롬프팅 작성 방법을 고려해보면 특정 문장을 번역해달라는 명령을 작성하는 것은 간단합니다. 물론 이런 작업이 가능하려면 기본적으로 LLM이 다국적 언어에 대한 학습이 완료되어 있는 상태여야 합니다. 또한 Instruct LLM 으로 fine-tuning이 되어있어야 합니다.

아래 예시는 다국적 언어의 메시지들을 또 다른 다국적 언어들로 번역하는 예시 입니다. 프롬프트 구성은 간단하며 프로그래밍 요소를 첨가하여 반복과정을 포함시켰습니다.

user_messages = [
  "La performance du système est plus lente que d'habitude.",  # System performance is slower than normal         
  "Mi monitor tiene píxeles que no se iluminan.",              # My monitor has pixels that are not lighting
  "Il mio mouse non funziona",                                 # My mouse is not working
  "Mój klawisz Ctrl jest zepsuty",                             # My keyboard has a broken control key
  "我的屏幕在闪烁"                                               # My screen is flashing
] 

for issue in user_messages:
    prompt = f"Tell me what language this is: ```{issue}```"
    lang = get_completion(prompt)
    print(f"Original message ({lang}): {issue}")

    prompt = f"""
    Translate the following  text to English \
    and Korean: ```{issue}```
    """
    response = get_completion(prompt)
    print(response, "\n")

결과는 다음과 같습니다.

Tone Transformation

어떤 메시지가 내포하고 있는 내용을 격식을 갖춘 비즈니스용 메일로 전송한다면 어떻게 변환할 수 있을까요? 사람은 쉽게 할 수 있는 작업이니 LLM도 쉽게 할 수 있을 것 입니다.

아래와 같이 간단하게 프롬프트를 작성합니다. 변환해야하는 작업에 대해 구체적으로 작성합니다.

그 결과는 아래와 같습니다. 꽤나 유용한 사용방식 입니다.

Format Conversion

LLM이 한번에 처리할 수 있는 양이라면 데이터의 형식을 변환하는 작업 또한 가능합니다. 많이 사용되는 JSON 형식의 python dictionary 데이터를 HTML 에서 볼 수 있는 형태로 변환할 수 있을 것 입니다.

아래 예시와 같이 데이터를 준비하고 프롬프트를 작성합니다.

출력되는 HTML 형식 데이터는 아래와 같습니다.

실제로 렌더링 해보면 이름과 이메일의 열을 갖는 테이블이 생성됩니다.

Spellcheck/Grammar Check

LLM의 학습 과정을 살펴보면 대체로 문법이 올바른 데이터가 많을 것 이며 문법이 맞지 않는 데이터 또한 상당 수 존재했을 것 입니다. 언어적으로 이해도가 높은 상태에 도달했기 때문에 번역과 마찬가지로 특정 언어에 대한 문법 검토 작업 또한 가능합니다. 물론 이것은 전적으로 LLM의 성능에 의존성이 있다는 것을 인지해야 합니다. 저렴한 LLM은 문법 검사를 못하거나 틀릴 수 있습니다.

다음과 같이 간단하게 프롬프트를 구성합니다.

LLM은 문법적으로 변경할 부분들을 체크하여 수정된 내용을 반환합니다.

프롬프트에 지시사항과 변환 형식에 대해 좀 더 정보를 구체적으로 제공해주면 더 유용하게 사용할 수 있습니다.

Last updated