Home 최고의 프롬프트 엔지니어링 1.LLM 그리고 새로운 시대의 개막
Post
Cancel

최고의 프롬프트 엔지니어링 1.LLM 그리고 새로운 시대의 개막

개요

  • 프로그래밍을 한마디로 말하면 컴퓨터와 상호 작용하는 방법이다.
  • 그리고 프롬프트 엔지니어링의 등장은 컴퓨터와 상호 작용하는 새로운 방법이다.
  • 인간이 쓰는 자연어로 컴퓨터와 상호 작용하는 것이다.
  • 시중에 나온 ChatGPT 사용법은 대부분 프롬프트 엔지니어링이 아닌 블라인드 프롬프팅, 프롬프트 라이팅이라 부르는 것들이다.
    • ChatGPT의 답변을 평가하는 설계가 없으니 결과의 일관성과 정확성을 보장할 수 없다.

머신러닝과 딥러닝의 개념

  • AI는 크게 규칙 기반 AI와 머신러닝, 두 가지로 구분할 수 있다.
  • 바나나를 예로 들 경우
    • 규칙 기반 AI는 사람이 먼저 바나나의 특징을 잡아야 한다.
    • 머신 러닝은 사람이 일단 바나나 사진을 AI에게 보여주며 “이게 바나나야”라고 알려준다.
      • AI가 스스로 바나나를 분석하여 길다, 노랗다, 약간 휘었다 등의 특징을 직접 추출하고 기억한다.
  • 다른 형태의 바나나를 인식시키고 싶을 땐
    • 규칙 기반 AI에서는 사람이 기존에 알려 준 특징 외에도 하얗다, 납작하다, 둥글다 등의 새로운 특징을 직접 AI에 넣어줘야 한다.
    • 머신러닝에서는 다른 바나나 사진을 보여 주고 “이것도 바나나야”라고 알려준다. 그러면 AI는 스스로 판단하고 기억하여 바나나로 인식한다.
  • 머신 러닝에서 사람이 AI에게 알려주는 것을 Labeling이라고 하며, AI가 레이블링한 데이터를 학습하는 것을 지도 학습이라고 한다.
  • 말 그대로 사람이 AI에게 명확한 지시와 가이드라인을 제공하여 학습시키는 방법인 것이다.
  • 비지도 학습이라는 방식도 존재한다.
    • 사람이 바나나라는 것을 알려주지 않고, 사진을 보여주면서 AI가 먼저 특징을 파악하게 하는 방식이다.
    • 어떤 것들은 노란색이고, 어떤 것들은 하얗고 납작하고 둥글다는 것을 AI가 인식한 후에 사람이 “이것은 바나나야”라고 알려주는 것이다.

전통적인 머신러닝과 딥러닝의 차이점

딥러닝

  • 딥러닝은 머신러닝의 일종이지만, 약간 다른 지점이 있다.
  • 딥러닝은 인공 신경망을 학습시키는 방법으로, 사람의 뇌 작동 방식을 모방해서 만든 기술이다.
    • 정확히는 뇌에서 힌트를 얻어 만든 것이다.
  • 사람의 뇌는 뉴런을 통해 신호를 보내고 받고, 이러한 신호들은 여러 뉴런에 걸쳐 연결해 기능한다.
  • 인공 신경망도 마찬가지로 앞에서 입력값(X)을 가져오면 거기에 가중치(W)를 곱한 값을 출력(Y)해 다양한 방법으로 계속 연결한다.
    • 예를 들어 “신선한 바나나”를 구별할 수 있도록 학습한 후에는 바나나의 신선도에 대한 특징을 기준으로 가중치를 계산하는 것이다.
  • 사람이 특징을 모두 파악할 수 없을 정도로 방대한 양의 데이터, 즉 굉장히 다양한 모양과 다양한 색깔의 사과를 데이터로 집어 넣고 머신러닝 모델이 이를 학습하게 하도록 하는 것이다.
  • 딥러닝은 피처 엔지니어링을 최소화하면서 극도로 많은 데이터를 기반으로 AI 모델을 만드는 방법을 사용할 수 있는 기술이다.

전통적인 머신러닝

  • 모델에 데이터를 입력하기 전에 사람이 먼저 입력할 데이터를 변환하거나 추출하는 피처 엔지니어링 과정이 많이 필요하다.
    • 피처(feature) : 데이터의 특성이나 속성을 말한다.
  • 모든 피처가 모델에 유용한 것은 아니기 때문에 사람이 개입하여 피처를 선별하고, 가공 및 조합하여 수많은 데이터를 만들어 내서 좋은 모델을 만들어야 한다
  • 또한 최적의 결과를 낼 수 있는 학습 알고리즘도 만들어야 한다.
  • 반면 딥러닝은 사람이 개입하는 과정이 머신러닝에 비해 훨씬 적다.
  • 단, 상대적으로 적다는 것이지 피처 엔지니어링이나 알고리즘을 만드는 과정이 상대적으로 덜 필요하다는 것이지 전혀 필요하지 않다는 말이 아니다.
  • 심층 신경망이 원시 데이터에서 복잡한 패턴과 관계를 스스로 학습할 수 있는 능력을 가지고 있기 때문에 전통적인 머신러닝에 비해서는 극도로 줄어든다는 것이 장점이다.

  • 우리가 앞으로 배울 대규모 언어 모델(LLM)은 수십억에서 수조 개 이상의 많은 뉴런을 가진 신경망에 방대한 자연어 데이터를 학습 시키는 모델이다.
  • 기존의 머신러닝 방법으로는 자연어 처리 분야에 한계가 있다.
  • 이를 딥러닝 방식으로 해결한 것이 GPT-3이다.

새로운 시대

LLM 응용 기술

  • LLM의 급속한 발전으로 수많은 곳에서 변화가 일어나고 있다.
  • 그것이 프롬프트 엔지니어링을 제대로 배워야 하는 이유이기도 하다.
  • 핵심적인 LLM 응용 기술을 살펴보자

ChatPDF

  • PDF 파일을 올리면 그 파일에 대해 궁금한 점을 질문하고 답변해 주는 기능을 제공하는 웹 애플리케이션이다.
  • 단순히 질문에 답변만 하고 끝나는 것이 아니라, 질문에 관련된 다른 내용을 사용자한테 역으로 물어볼 수 도 있다.
  • 또한 LLM을 사용해 프로그램 개발을 쉽게 만들어주는 라이브러리(일종의 프로그래밍 도구)인 랭체인(LangChain)이나 라마인덱스(LlmaIndex)를 이용하면 간단한 애플리케이션은 누구나 개발할 수 있다.

깃허브 코파일럿

  • 코드 생성이나 주석 생성, 그리고 테스트 코드를 생성하는 과정을 도와준다.
  • 빅테크 기업들에서 코딩 생산성을 끌어올릴 수 있게 됐다

IT 조달 사양서 작성

  • 사람들이 잘 모르고 있는 정부 지원 내용을 알려주거나 사람들이 쉽게 정부 지원을 받을 수 있도록 조달 사양서 자동 작성 서비스를 제공한다.
  • 이제는 더 많은 사람들이 정부의 지원을 받게 된 것이다.

데이터 라벨링

일일주가 예측

  • 일간 뉴스를 읽고 해석한 후 매일 주가를 예측하는 것이다.
  • 주가 예측을 위한 학습이 되어 있지 않은 상태에서도 LLM이 뉴스만 읽고 이를 추론할 수 있는 능력까지 갖추게 되었다.

    추천 시스템

  • LLM이 추천 시스템에도 사용될 수 있다는 것이 증명됐다.

NAS

  • Neural Architecture Search라는 기술에도 LLM을 적용할 수 있다.

LLM, 특이점의 시작

Prompt-based 모델

  • 기존의 머신러닝을 개발하고 배포하기까지 보통 6개월에서 1~2년 정도 기간이 걸렸다
  • 또한 모델을 한 번 개발하는 것으로 끝나는 것이 아니라 계속해서 개선해야 하는데, 이 개선 과정 역시 처음 개발 과정과 다르지 않다.
    • 때문에 사람들이 실제로 사용하려면 기나긴 연구 개발 과정을 거쳐야한다.
  • 하지만 지금 LLM을 통해 만드는 프롬프트 기반 모델의 경우 프롬프트를 개발하고 배포하기까지 짧게는 몇 분에서 몇 시간, 길어도 1~2주 정도면 충분히 가능해진다.
  • 이 과정을 여러번 반복한다고 하더라도 한 두달이면 사용자들에게 충분히 제품을 제공할 수 있는 시대가 된 것이다.
  • 또한 아래와 같은 장점도 생긴다.
    • 레이블링이 필요 없어졌다
    • 데이터를 분석할 필요가 없어졌다.
    • 최신 데이터를 바로 반영할 수 있다.
  • 이에 따라 데이터의 중요성에도 변화가 생기기 시작하낟.
  • 기존에는 데이터를 대량으로 모으는 것을 가장 중요하게 생각했었다면 이제는 대량의 데이터보다 고품질의 데이터가 중요한 시대가 되었다.
    • 예를 들어 개인 정보, 최신 정보나 정확한(사실성) 정보 등과 같은 것이다.

소프트웨어 개발 방식의 진화

전통적인 머신 러닝

  1. 데이터를 모아 훈련(학습) 데이터와 평가 데이터로 구분
  2. 모델링과 훈련 과정을 거침
  3. 훈련을 다 마치면 평가를 진행한다.
  4. 모델을 배포할 수 있도록 패키징한다.
  5. 배포한다

프롬프트 기반 모델 개발

  1. 평가 데이터를 모읍니다
  2. 프롬프트를 만든다.
  3. 평가 후 바로 반영한다.


  • 위와 같은 단계의 차이가 있음에도 불구하고 전통적인 머신러닝과 성능 차이가 별로 크지 않다.
    • 만약 파인튜닝과 프롬프트 엔지니어링 간의 성능 차이가 크다면 프롬프트 엔지니어링을 통해 처리할 수 있는 작업의 범위가 매우 적었을 것이다.
    • 그렇지 않기 때문에 프롬프트 엔지니어링만으로도 기존의 머신러닝이 하던 영역을 상당 부분 대체할 수 있게 된 것이다.
  • 단, 머신러닝은 여전히 필요하다.
    • 아래와 같이 모델링이나 파인튜닝이 필요한 경우는 계속 존재할 것이다.
      • 숫자를 예측하는 선형 회귀 문제
      • 대량의 로그성 데이터의 실시간 처리
      • 특수 목적의 매우 높은 정밀도를 요구하는 문제
      • 데이터의 최신성이 중요하지 않은 경우
      • 데이터 보안이 매우 중요한 경우
  • 이와 같이 머신러닝 모델을 직접 개발해야 가능한 영역과 프롬프트 엔지니어링으로 할 수 있는 영역은 다르다.
  • 하지만 두 방식을 서로 보완함으로써 가능해진 일도 매우 많아졌다.

새로운 기회 찾기

  • LLM을 잘 활용하기 위해선 모델의 한계를 알아봐야 한다.
  • 생성 AI 모델의 한계
    • 우리가 흔히 이야기하는 생성 AI 모델의 한계는 답변이 정밀하지 못하고 올바른지 확인이 어렵다는 것이다.
    • 또한 학습 시점의 정보만 사용하기 때문에 최신 정보와 다른 이야기를 할 수도 있다.
    • 특히 정보의 정확성, 윤리성과 저작권 이슈는 머신러닝이 비결정론적인 방법을 사용하기 때문에 발생하는 문제이다.
  • 개선
    • LLM에게 특정 목적에 따른 툴을 제공하거나 최신 정보를 주입하면 어느정도 해결할 수 있다.
    • 계산을 위해서는 계산기나 코드 인터프리터를, 최신 정보가 필요할 땐 검색 엔진을 사용할 수 있도록 한다.
  • 대전환의 시대 속에서 경영진 레벨은 기회와 위기감을 동시에 가질 수 밖에 없다.
    • 며칠 전까지만 해도 수천억이었던 기술이 갑자기 극도로 저렴해져서 누구나 쉽게 도입할 수 있게 되었으니까..
    • 이렇게 시대는 흘러가고 있다지만 실무 레벨에서는 감이 잘 오지 않기도 한다.
    • 누구나 쉽게 따라 할 수 있는데 굳이 왜 해야 하냐는 의문인 것이다.
    • 누구나 쉽게 따라할 수 있기 때문에 지금 당장 해야 한다는 것이 맞습니다.
    • 여기에는 기존에 사용하던 방법을 버리는 사고방식의 전환이 필요하다
This post is licensed under CC BY 4.0 by the author.

모던 리눅스 교과서 7. 네트워킹

최고의 프롬프트 엔지니어링 2.프롬프트 엔지니어링 레슨