본문 바로가기
파이썬

Colab에 도입된 AI 사용해보기 - ChatGPT, Bard 와 코드 생성 수준 비교

by Tiabet 2023. 12. 17.

Colab에 코드를 생성해주는 Colab AI가 생겼다. 

 

사용하기도 아주 간편하게 만들어놨다.

 

그래서 똑같은 프롬프트를 줘보고, 생성하는 코드에 어떠한 차이가 있는지 한 번 비교해보았다.

 

우선 간단하게 " load any datasets from huggingface and change it to pandas dataframe" 이란 명령을 줘보았다.

 

올바르게 실행되는지 돌려보았다.

안타깝게도 실행엔 실패했다. 내가 알기로 to_pandas라는 메소드가 실제로 존재하긴 하는데 왜 작동을 안 하나 살펴봤더니, DatasetDict 에는 to_pandas 메소드는 없다. 아무래도 Dictionary 형태이다 보니 dataframe으로 바꿀 수 없나보다. 정답에 거의 근접하긴 했지만 데이터셋 선정엔 실패한 모양새다. 그리고 load_metric 메소드는 쓰지도 않았는데 괜히 라이브러리만 호출했다. 전체적인 흐름은 맞췄으나 다소 아쉬운 모습이다. 프롬프트가 구체적이지 않을 때만 이렇게 오류를 보일 수도 있으니 뒤에서 더 구체적인 프롬프트로 테스트를 해보겠다.

 

다음은 Bard와 ChatGPT 로 똑같은 프롬프트를 줬을 때의 생성 결과와 실행 결과이다.

Bard도 코드를 끝까지 돌리는 데에는 실패했다.

 

ChatGPT는 코드를 실행하는 데에 성공했다.

 

다소 추상적인 명령어에는 유일하게 ChatGPT만이 성공했다. 물론 운이 좀 좋은 감이 있다. ChatGPT는 함부로 어떤 데이터셋을 고르지 않고 직접 수정하라고 했기 때문이다. 

 

이렇게 추상적인 프롬프트를 줬을 땐, 가장 구체적이고 상급의 코드를 준 것은 Bard 지만, 실패하지 않은 코드를 준 건 ChatGPT 였다. 정확한 검증을 위해서는 몇 번씩 답변을 재생성해보긴 해봐야겠지만.

 

다음으로 조금 더 고난이도로, 백준에서 문제를 하나 풀어달라고 부탁해봤다.

 

https://www.acmicpc.net/problem/1654

 

1654번: 랜선 자르기

첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그

www.acmicpc.net

실버2 수준의 이분 탐색 문제이다.

 

Colab AI

 

2%에서 오류가 나면서 실패했다.

 

Bard

 

이건 2%에서 아예 틀려버렸다.

 

ChatGPT

 

ChatGPT는 정답을 맞춰버렸다.

 

이로써 알고리즘 등 문제를 풀어야 하는 데에도 ChatGPT가 제일 우수한 성능을 보인다는 것을 알 수 있다.

 

다시 말하지만, 딱 한 번 이렇게 실험한 걸로 어떤 AI가 우수하다고 말하고 싶은 것은 아니다. 뭐든지 한 번만 경험하고서 이게 정답이라고 말하면 위험한 법이니까. 아무튼 내가 이 실험을 진행하면서, 세 AI를 비교하면서 느낀 점은 다음과 같다.

 

1. 설명이 가장 자세한 것은 Bard 였고, ChatGPT도 역시 뛰어난 수준의 코드 설명을 보여줬다. 하지만 ColabAI는 설명은 다소 부족해보인다.

2. "완벽히 실행"되는 코드를 생성한 것은 ChatGPT였다. 다만 ChatGPT도 항상 성공하기만 하는 것은 아니고, Bard와 ColabAI가 항상 실패하기만 하는 것도 아니다. 다만 코드 생성 면에서 가장 우수한 것은 ChatGPT라고 보는 것이 맞다.

3. 그럼에도 ChatGPT의 데이터베이스는 2022년에 멈춰있고 Bard는 데이터베이스를 매일같이 업데이트하므로 최신 정보에 아주 유리하다. (높은 수준의 RAG가 사용되고 있는 것으로 보인다.) 그러나 ColabAI는 최신 코드는 설명하지 못한다.

 

 

이렇게 정리해볼수 있겠다.