brunch

You can make anything
by writing

C.S.Lewis

by 호영 May 28. 2024

ChatGPT - 고급 데이터 분석, 무엇이 좋아졌을까

업데이트 내용 간단 정리 (a.k.a ADA V2)

24년 5월 16일, 고급 데이터 분석 기능이 업데이트되었습니다. GPT4o의 거의 실시간 수준 소화하는 멀티모달 능력이 상당히 하입을 받으면서, 데이터 분석 쪽이 살짝 상대적으로 묻힌 감이 있다고 생각합니다.


솔직히 이번 업데이트 부분은 다이내믹한 개선이라고 보기에는 어렵다고 생각합니다. 그래도 변화의 움직임에 큰 박수를 보내고 싶습니다. 업데이트된 내용을 한 줄 요약하면 "시의성 및 편의성 개선" 이라고 할 수 있겠습니다. 이 글의 예상 독자는 "ChatGPT에서 데이터 분석 기능을 쓰는 인원" 대상으로 작성합니다. 생각보다 유료 회원이 많이 없는데 GPT4o가 나오면서 또 많은 사람들이 결제를 시작했습니다. 


데이터 분석 부분 업데이트 내용 원문은 여기를 참고해 주세요. 업데이트 내용과 제 생각을 아주 간단하게 첨언하여 작성합니다.




1. 파일 업로드 방식 개선

Local 파일을 Drag & Drop 형태로 데이터를 업로드했었습니다. 이제 구글 드라이브나 마이크로 소프트 Onedrive와 연동이 가능합니다. 


연동하고 폴더 가서 데이터 선택하고 업로드를 하면 됩니다. 


한 번에 업로드할 수 있는 파일 개수(10개)는 정해져 있고, 크기도 제한이 되어있습니다. 또한 한꺼번에 올려서 분석하면 오래 걸리기 때문에 일부 샘플링해서 활용해 보시면서 점점 크기를 늘려가면 좋겠습니다. 


세션 시간이 지나면 '시각화를 표시할 수 없습니다'와 같이 나타남


또한 한 세션에 데이터를 업로드하고 분석하고 3시간 이상 지나면 분석을 할 수 없습니다. 이 부분 유의하셔서 작업하시는 것을 추천드립니다.




2. 테이블과 차트와의 대화 및 분석 가능

제일 좋아진 부분이라고 생각합니다. ChatGPT 사람들이 질의를 던지는 형태의 대다수는 '명확'하지 않습니다. 데이터 분석 또한 마찬가지입니다. 특정 '데이터''파일'을 정확하게 언급해야 하고, 통계 분석이나 탐색(EDA) 등을 수행할 때 '변수명(또는 Column)'에 대해서도 정확하게 이야길 해야 합니다. 괜히 대충 프롬프트 던졌다가 이를 잘못 이해하면서 분석을 수행하면 화가 날 수 있습니다.


이번 업데이트에서는 '테이블'을 선택하거나 '변수명'을 선택해서 이에 대해서 대화를 할 수 있습니다. 이 점은 사용자 입장에서 질문을 던지는 피로도를 줄이고 명확성을 올릴 수 있습니다. 우선 아래처럼 복수의 데이터를 업로드하면 view 형태로 대화 세션 위에서 살펴볼 수 있습니다. (이 부분은 데이터를 열어보지 않고 미리 보기를 통해 편의성 측면에서 좋아졌습니다.)


테이블 View를 통해 미리 보기를 통해 데이터를 대략적으로 빠르게 이해할 수 있음


우측에 Table 열기 버튼을 눌러서 대화를 하면 Interactive 하게 대화할 수 있는 화면이 나타납니다. 테이블을 선택해서 설명할 수 있고, 아래와 같이 단변량에 대한 변수를 선택해서 질의응답을 해볼 수 있습니다. 


Review_score 변수 선택하고 질문을 할 수 있음
단변량(Univariate) 간단 분석 예시



3. 반응형 차트 제공

정적차트와 동적차트를 제공합니다. 이 부분을 통해 데이터 이해를 빠르게 하고, 옆사람과 간단한 커뮤니케이션이 가능합니다. 저는 리뷰에 대해서 Pie 차트를 요구했습니다. 아래와 같이 마우스 가져다 대면 비율과 숫자가 나타납니다. 시의성 영역에서 정말 많이 개선되었습니다. (다른 B.I Tool 들 긴장...?)


아주 편해졌음을 알 수 있다. 음


물론 아주 간단한 부분은 Custom이 가능합니다. 차트 영역을 선택하여 노란색 부분을 검은색으로 바꾼 예시입니다. 

영역 선택해서 간단하게 색상 입력해서 바꿀 수 있습니다.



물론 데이터 분석 시각화한 결과에 대해서 정적 차트와 동적 차트 서로 변환이 가능합니다.



시각화 관련해서 제 생각을 전달드리면, 현재까지는 디테일한 수정보다는 간단한 영역 수준만 변경이 가능하고, 차트를 동적인 형태로 보여주는 유형은 상당히 적습니다. (Bar(막대), Line(선형), Pie(파이), Scatter(산점도) 유형 이외에는 동적 차트 적용 X) 따라서 제시할 데이터에 대해서 가장 최종적인 형태까지 처리를 하시고, 그 이후에 시각화하는 것을 권장드립니다. 



4. EDA / 전처리 데이터 중간 결과에 대한 분석 및 저장 

제일 많이 활용하는 기능입니다. 우선 특정 데이터에 대해서 EDA를 수행해 보라고 했습니다. 그러면 Summary(요약), Missing Value(결측치), Data Type(데이터 유형), Unique(중복 제거 수), Correlation(상관관계) 5개 유형의 중간 결과물들이 나타납니다. 



어떻게 보면 "매직 프롬프트"(이런 표현은 좋아하진 않지만)처럼 'EDA 해줘~' 하면 데이터가 가지고 있는 변수 종류에 따라 다양한 형태로 결과를 제시해 줍니다. 중간에 나타난 데이터에 대해서 저장 또한 가능합니다. 아래 사진은 EDA 결과입니다. 

왼쪽부터 차례대로 기초 통계량 요약 / 중복 제거 데이터 수 / 상관관계 테이블을 제시해준다.


파생된 데이터들을 분석하고 하나로 모으는 작업을 수행하는 것을 '데이터 병합'이라고 이야기합니다. join을 이용해서 분석 용이한 형태로 바꾸어서 저장을 할 수 있습니다. 아래는 병합한 결과를 선택하여 답변 또는 다운로드 가능합니다. 





5. GPT4에서의 시스템 프롬프트 변경

GPT4에 대한 시스템 프롬프트를 리킹하는 방식은 작년 말에 유행했었습니다. 동일한 프롬프트로 리킹한 후 Python 부분에 대하여 변화된 부분을 찾아보았습니다.


이전 설정(GPT4)

## python
When you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 60.0 seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is disabled. Do not make external web requests or API calls as they will fail.


현재 설정(GPT4o)

## python

When you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 60.0 seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is disabled. Do not make external web requests or API calls as they will fail. Use ace_tools.display_dataframe_to_user(name: str, dataframe: pandas.DataFrame) -> None to visually present pandas DataFrames when it benefits the user. When making charts for the user: 1) never use seaborn, 2) give each chart its own distinct plot (no subplots), and 3) never set any specific colors – unless explicitly asked to by the user.  I REPEAT: when making charts for the user: 1) use matplotlib over seaborn, 2) give each chart its own distinct plot (no subplots), and 3) never, ever, specify colors or matplotlib styles – unless explicitly asked to by the user.


차이점을 정리하면 다음과 같습니다. 


반응형으로 지원해주는 부분 개선점과 차트 생성하는데 일관성을 요구하는 방식으로 시스템 프롬프트로 세팅이 변경된 것을 알 수 있습니다.





마무리

개인적으로 기획과 개발을 하면서 GPT를 코딩과 의사결정, 추론에 많이 활용하는 편입니다. 데이터 분석을 손 놓은 지 오래되어서 ADA 기능은 많이 사용하지는 않습니다. 그래도 사람들이 ADA에 열광하는 데 어디서 많이 사용할까? 에 대해서 오래전부터 지켜봤었는데, 제일 큰 비중은 '데이터 이해 영역'에 가장 많이 시간을 할애한다는 점이었습니다. '요리'에 해당하는 결과 또는 인사이트도 중요하지만, 우선 '요리 재료'에 해당하는 '데이터'를 어떻게 요리를 시작해야 할까? 또는 어떻게 이해할까?로부터 출발을 합니다. 


정보를 소화하는데 지식 근로자들이 근로 시간의 19%를 할애한다는 조사를 봤었습니다. 데이터 분석은 더 복잡다기하며 이해하는데 많은 시간이 걸리는데, ChatGPT의 ADA 기능은 공부하고 실험을 많이 할수록 칼퇴 시간을 앞당겨 주는 것은 자명한 사실인 것 같습니다. (그렇다고 독자분들의 상사 눈을 피해서 너무 프로 일잘러처럼 보이는 것은 적당히 탈압박을 하시는 것이 좋겠죠?) 


이번 업데이트는 기술적으로 매우 대단한가?라고 하기에는 잘 모르겠습니다. 실제로 중고급 데이터 분석가 입장에서는 실제로 다루는 데이터의 크기는 상당히 비대한 편이고, 분석할 수 있는 데이터 수의 한계 환경 스펙은 좋은 편이 아닙니다. 또한 ADA 위에서 머신러닝 용도로는 부적합하고 데이터에 대한 이해와 전처리, 시각화 용도로 많이 사용합니다. 하지만 이번 업데이트는 '편의성'에 많이 포커싱 되어있다는 점입니다. OpenAI가 내놓는 서비스들은 항상 느낄 때마다 user-friendly 하다고 많이 느낍니다. 앞으로 재미있는 것들이 많이 나오면 좋겠습니다. (물론 제 밥그릇은 너무 위협하지 말아 주세요..ㅠㅠ)


ADA 관련 심화적인 내용은 올해 초에 국내 AI 커뮤니티인 GPTers에서 데이터 분석 시리즈 형태로 정리한 글 있습니다. 조금 어려운 내용도 있지만 1편, 5편만 봐도 큰 도움이 되실 겁니다. 


(필독 추천, 시스템 프롬프트에 대한 이해) https://www.gpters.org/c/data-science/ai-impact-introduction-data-analysis

(고객 Segment 나누기 with RFM) https://www.gpters.org/c/data-science/ai-impact-data-analysis-guide

(비정형 데이터 Tabular 형태로 정형화하기) https://www.gpters.org/c/data-science/ai-impact-data-analysis-guide-2504f5

(텍스트 마이닝) https://www.gpters.org/c/data-science/ai-impact-data-analysis-guide-9b09b8

(마무리 글) https://www.gpters.org/c/data-science/ai-impact-guide-5-5-chatgpt-ada




해당 ADA 업데이트 글은 추후에 GPTers 교육 자료 일부분, 제 강의 자료 등으로 활용됩니다. 


다음에 좋은 글로 뵙겠습니다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari