주제

1. Gen AI를 이용한 생산성 증대
2. Gen AI의 파운데이션 모델
3. ChatGPT

 

 

용어 정리

  • 인공지능 : 인간이 하는 일을 대신 해주는 시스템을 만드는 컴퓨터 과학
  • 머신 러닝 : 인공지능의 일부
  • 딥러닝 : 머신 러닝의 일부 (이미지 / 비디오 / 오디오 등의 복잡한 데이터 처리에 강점)

 

Gen AI란?

  • 학습된 컨텐츠를 바탕으로 새로운 컨텐츠를 만드는 딥러닝 기술
    • 입력 컨텐츠의 내용을 학습한 모델이 만들어짐
  • 프롬프트를 바탕으로 대답을 예측하거나 새로운 컨텐츠를 생성함

 

딥러닝과 Gen AI와 LLM의 관계

  • LLM(Large Language Model)은 Gen AI의 일부, Gen AI도 마찬가지
  • 딥러닝은 인공신경망을 사용해서 기존 머신 러닝 알고리즘이 처리하지 못하는 복잡한 패턴을 처리 가능

 

딥러닝 모델의 타입

  1. Discriminative
    • 분류 / 예측을 하는 것으로 레이블이 존재하는 데이터에 적용
    • 피쳐들과 레이블 간의 관계를 학습
    • ex. 개와 고양이를 분류하기
  2. Generative
    • 훈련된 데이터와 비슷하지만 새로운 데이터를 생성
    • 훈련된 데이터의 통계적 특성을 이해
    • 비지도 학습에 해당함
    • ex. 개의 이미지 생성

 

Gen AI 모델과 일반 ML 모델의 동작방식

  • 일반 ML에서는 y는 보통 숫자, 카테고리, 확률 등이 됨
  • Gen AI에서는 y는 보통 자연어 문장, 이미지, 오디오 등이 됨

 

Gen AI의 모델들

  1. Generative Language Models
    • 훈련 데이터로 제공된 문장들로부터 언어 패턴을 학습한 모델
    • 문장의 일부를 입력으로 받으면 다음 단어를 예측
  2. Generative Image Models
    • Diffusion과 같은 기술을 사용해서 새로운 이미지를 만드는 모델
      • 프롬프트를 입력으로 받아서 이미지 생성
      • 이미지를 입력으로 받아 특정 노이즈를 추가하여 이미지를 변환

 

Gen AI의 파운데이션 모델

  • 파운데이션 모델 : 광범위한 데이터 세트에 대해 학습된 대규모 머신 러닝 모델의 한 유형
  • 특별한 학습 없이 다양한 작업에 적용이 가능하다 (질의응답, 번역 등)
  • 멀티모달 파운데이션 모델 : 다양한 데이터를 입력으로 넣은 후 파인튜닝을 하면 여러가지 task를 생성할 수 있는 모델 
    • 이미 일반적인 지식이 학습되어 있음(Pre-trained)
    • Unsupervised Learning or Self Supervised Learning
    • 대용량 데이터로 학습하기에 엄청난 시간과 돈과 인력이 필요함
    • 트랜스포머 모델 아키텍쳐를 사용함

트랜스포머의 구조

  • 파운데이션 모델들 : GPT-3, GPT-4, BERT, DALL-E 등

 

Gen AI의 파운데이션 모델과 파인 튜닝

  • 파운데이션 모델을 파인 튜닝의 형태로 특정 지식을 학습시킴
  • ex. GPT -> ChatGPT

파인 튜닝(Fine Tuning)

  • 이미 만들어진 모델 위에 새로운 레이어를 얹히고 다른 용도의 데이터로 훈련하는 것

 

Gen AI 모델의 헛소리 / 환각 (Hallucinations)

  • 모델이 부정확하거나 무의미하거나, 완전히 조작된 정보를 생성하는 경우
  • 따라서 사실 확인(fact-checking)이 항상 필요함
  • 발생 이유 :
    • 훈련 데이터의 불충분
    • 훈련 데이터의 최신성 부족
    • 훈련 데이터의 품질 이슈
    • 모델에게 충분한 컨텍스트가 주어지지 않음 -> 프롬프트 디자인이 중요해짐

 

입력에 따른 Gen AI 모델 : Input이 이미지인 경우

  • Output : Image
    • Super Resolution
    • Image Completion
  • Output : Text
    • Image Captioning
    • Visual QA
    • Image Search
  • Output : Video
    • animation

입력에 따른 Gen AI 모델 : Input이 텍스트인 경우

  • Output : image
    • Image / video Generation
  • Output : Text
    • Translation
    • Summarization
    • Grammar Correction
  • Output : Audio
    • Text to Speech
    • Music Generation
  • Output : Task
    • Coding Assistant
    • Virtual Assistant
    • Automation

 

Gen AI 사용 시 해야할 일과 하지 말아야 할 일

  • 잘 사용하는 방법
    • 블로그 또는 웹사이트를 위한 독창적인 콘텐츠 생성
    • 빠른 프로토타입 및 목업 창충
    • 업무 어시스턴트
  • 잘못 사용하는 방법
    • 시험이나 숙제 부정행위
    • 팩트체크를 하지 않는 행위
    • 다른 아티스트의 작품을 표절(저작권 침해 문제)

 

Gen AI의 문제점

  • 나라에 따른 다른 입장
    • 영국은 미국과 달리 텍스트 및 데이터 마이닝을 위한 콘텐츠 사용을 적극적으로 허용
  • 사칭을 통한 사기와 가짜 뉴스 생성
  • 노동 시장에 주는 잠재적인 악영향

 

 

GPT 살펴보기

  • GPT(Generative Pre-Trained Transformer)
  • OpenAI에서 만든 초거대 언어 모델
  • 훈련과 예측에 전용 하드웨를 사용(LLM)
  • 무료 버전인 GPT 3과 유료 버전이 GPT 4(멀티 모달)가 존재
  • 이를 이용하여 파인 튜닝한 경량 언어 모델들 존재 (llama, Alpaca 등)

 

ChatGPT 소개

  • GPT를 챗봇의 형태로 파인 튜닝한 모델
  • RLHF(Reinforcement Learning from Human Feedback), 사람 피드백을 기반으로 대화하는 인공지능 모델 학습
  • 강화학습 기법을 활용해 학습
  • 용도 :
    • 질의응답, 정보 추출, 번역, 대화 생성, 코드 생성 및 리뷰 등
  • 멀티모달 지원 (이미지와 텍스트)

 

좋은 프롬프트 작성법

  • Act as a [Role], [Task], in a [Format] using a [Tone]. The main objective is to [Objective], don’t use [Restriction]
  • 역할과 업무를 주고, 어떤 포멧과 톤으로 생성해야 하는지를 알려줌. 메인 주제(말하고자 하는 점)을 확실히 전달하고 제한을 주면 좋음(ex. 8줄 이하로 써줘)
  • 사용하면 좋은 표현들 :
    • 하나하나씩 알려줘 (단계별 생각)
    • 칭찬하기

 

실습

  • ChatGPT-3.5를 이용하여 데이터 시각화를 위한 파이썬 코드 작성을 부탁함.
  • 유료 버전은 데이터 파일을 업로드하면 되지만 무료 버전은 하나씩 직접 설명해주어야 함.
  • 영어가 더 편해서 영어로 작성함! 한국어도 당연히 가능.

실제 내가 챗지피티에게 알려준 프롬프트

 

▼ 그 결과 내가 받은 코드

import pandas as pd
import matplotlib.pyplot as plt

# Step 2: Load data into a pandas DataFrame
df = pd.read_csv('data.csv')

# Step 3: Calculate correlation matrix
correlation_matrix = df.corr()

# Step 4: Create a scatter plot
plt.scatter(df['population'], df['life_expectancy'], label='Population vs Life Expectancy')
plt.xlabel('Population')
plt.ylabel('Life Expectancy')
plt.title('Population vs Life Expectancy')
plt.legend()
plt.show()

# Optional: Save the plot to a file
# plt.savefig('correlation_plot.png')
  • 하지만 코드를 직접 Google Colaboratory에 실행해보니, 내가 원한 형식의 그래프가 아니었고, population만 비교를 하고, life expectancy가 나오지 않았다.
  • 그래서 수정 사항을 추가로 알려줌 (바 그래프, life expectancy 칼럼 유지, 나머지 칼럼들을 모두 포함하면서 연관관계가 가장 높은 순으로 나오게끔)
  • 한번에 잘 나오지는 않았고 두 세번 정도 고쳐주어야 했다.

원하는 것을 차근차근 부탁한 내용

 

▼ 그 결과, 내가 원하는 코드를 받을 수 있었다!

import pandas as pd
import matplotlib.pyplot as plt

# Step 2: Load data into a pandas DataFrame
df = pd.read_csv('data.csv')

# Step 3: Calculate correlation with life expectancy
correlation_with_life_expectancy = df.corr()['life_expectancy']

# Order variables based on correlation from highest to lowest
ordered_variables = correlation_with_life_expectancy.abs().sort_values(ascending=False).index

# Step 4: Create a bar graph
correlation_with_life_expectancy[ordered_variables].plot(kind='bar', color='skyblue', edgecolor='black')
plt.xlabel('Variables')
plt.ylabel('Correlation with Life Expectancy')
plt.title('Correlation Between Life Expectancy and Other Variables')
plt.xticks(rotation=45, ha='right')  # Rotate x-axis labels for better readability
plt.show()

코드를 실행한 결과

 

 


느낀점

여태까지 ChatGPT는 개발 프로젝트를 할 때 버그의 원인이나 코드 리뷰를 위해서만 사용을 했었는데 오늘같이 데이터 분석 시각화를 위해서 써보니까 새로웠다. 어떤식으로 프롬프트를 제공해줘야 하는지 알고나니 훨씬 수월했고, 무료버전이 유료버전보다 번거롭지만 내가 원하는 결과가 나올때까지 그렇게 긴 시간이 소요되지 않았다. 데이터 분석가는 Gen AI도 잘 활용해야 한다는 사실이 놀라웠고 앞으로도 종종 이용해봐야 겠다는 생각이 들었다. 

+ Recent posts