주제
1. Gen AI를 이용한 생산성 증대
2. Gen AI의 파운데이션 모델
3. ChatGPT
용어 정리
- 인공지능 : 인간이 하는 일을 대신 해주는 시스템을 만드는 컴퓨터 과학
- 머신 러닝 : 인공지능의 일부
- 딥러닝 : 머신 러닝의 일부 (이미지 / 비디오 / 오디오 등의 복잡한 데이터 처리에 강점)
Gen AI란?
- 학습된 컨텐츠를 바탕으로 새로운 컨텐츠를 만드는 딥러닝 기술
- 입력 컨텐츠의 내용을 학습한 모델이 만들어짐
- 프롬프트를 바탕으로 대답을 예측하거나 새로운 컨텐츠를 생성함
딥러닝과 Gen AI와 LLM의 관계
- LLM(Large Language Model)은 Gen AI의 일부, Gen AI도 마찬가지
- 딥러닝은 인공신경망을 사용해서 기존 머신 러닝 알고리즘이 처리하지 못하는 복잡한 패턴을 처리 가능
딥러닝 모델의 타입
- Discriminative
- 분류 / 예측을 하는 것으로 레이블이 존재하는 데이터에 적용
- 피쳐들과 레이블 간의 관계를 학습
- ex. 개와 고양이를 분류하기
- Generative
- 훈련된 데이터와 비슷하지만 새로운 데이터를 생성
- 훈련된 데이터의 통계적 특성을 이해
- 비지도 학습에 해당함
- ex. 개의 이미지 생성
Gen AI 모델과 일반 ML 모델의 동작방식
- 일반 ML에서는 y는 보통 숫자, 카테고리, 확률 등이 됨
- Gen AI에서는 y는 보통 자연어 문장, 이미지, 오디오 등이 됨

Gen AI의 모델들
- Generative Language Models
- 훈련 데이터로 제공된 문장들로부터 언어 패턴을 학습한 모델
- 문장의 일부를 입력으로 받으면 다음 단어를 예측
- Generative Image Models
- Diffusion과 같은 기술을 사용해서 새로운 이미지를 만드는 모델
- 프롬프트를 입력으로 받아서 이미지 생성
- 이미지를 입력으로 받아 특정 노이즈를 추가하여 이미지를 변환
- 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도 잘 활용해야 한다는 사실이 놀라웠고 앞으로도 종종 이용해봐야 겠다는 생각이 들었다.
'Data Science > TIL (Today I Learned)' 카테고리의 다른 글
| 프로그래머스 데이터분석 데브코스 1기 - 6일차 (0) | 2023.11.27 |
|---|---|
| 프로그래머스 데이터분석 데브코스 1기 - 5일차 (0) | 2023.11.24 |
| 프로그래머스 데이터분석 데브코스 1기 - 3일차 (1) | 2023.11.22 |
| 프로그래머스 데이터분석 데브코스 1기 - 2일차 (1) | 2023.11.21 |
| 프로그래머스 데이터분석 데브코스 1기 - 1일차 (1) | 2023.11.20 |