AI의 과학, NOVEL AI 그리고 github Copliot
컴공과 대학생이 심심해서 쓰는 글입니다. 반박시 당신 말이 맞아요.
일단 시작하기 전에 하소연 한번만 하고 시작하겠습니다.
글쓰는 재주라고는 1도 없는 이과이기에 쓰는 지금도 이게 맞나? 긴가 민가 하면서 작성하고 있습니다.
최대한 객관적이고 신빙성 있는 자료들 위주로 작성을 해보고 있지만 그래도 틀린점이 있을수 있으니 제발 대학원으로 끌고가지 말아주세요
전문성 보다는 그냥 가볍게 읽기 좋은 칼럼? 정도로만 생각해주시면 감사하겠습니다.
일단 궤도님의 특기 AI란 무엇인가 부터 정의를 해야합니다.
AI는 인간의 행동을 모방하기 위해서 만들어진 기계입니다. 가장 대표적으로 개와 고양이를 구분해내는것,
사람이라면 당연히 무엇이 고양이고, 개인지 알아낼수 있지만 기계는 그 과정을 위해 학습이 필요합니다.
뉴스나 혹은 여러 커뮤니티에서 gpt-3 혹은 novel AI라는걸 자주 보실수 있을겁니다.
저 두 AI의 공통점은 바로 머신러닝이라는걸 쓰는겁니다.
머신러닝은 간단하게 설명하면 방대한 양의 데이터로 AI를 학습시켜서 특정 상황에서 의도한 대로 동작하도록 만드는겁니다.
아까 든 예시로 고양이와 강아지를 구별하는 AI를 만들어본다고 하겠습니다,
그렇다면 고양이 사진 1000장과 강아지사진 1000장을 AI한테 집어넣고 새로운 동물 사진이 나왔을때 이게 고양이인지 혹은 강아지 인지 가리도록 판별시키는거죠.
하지만 머핀과 치와와를 구분하는건 쉽지 않은일이죠

여기서 한가지 헷갈려 하실수 있는게 있는데,
“AI랑 머신러닝의 차이점이 무엇인가? 어차피 두개가 하는게 똑같아 보이는데”
일단 가장 큰 차이점은 머신러닝은 AI의 하위 개념입니다.
초반에 말했던것 처럼 AI는 “사람” 처럼 사고하고 행동하도록 목표가 지정되어 있다면, 머신러닝은 데이터를 가지고 학습해 입력값으로 부터 “정확한 출력값” 을 가지도록 하는것이 목표죠.
그리고 대중성을 가지고 누구나 쓸수 있었기에 화제가 된 Novel AI와 달리, 개발자들 사이에서만 이슈가 잠깐 돌았던 github copliot에 대해 얘기해보려 합니다.
copliot은 대충 AI 이름이겠거니 해도 github는 생소하실분이 많을겁니다.
코딩 공부를 해봤다면 들어봤을 2대 웹사이트인 stackoverflow와 어깨를 나란히 하는 github이라는 코드 보관 장소입니다.
물론 좀더 자세히 설명하면 git push와 branch개념, 프로젝트 fork하기 귀찮아서 master branch에 겁 없이 git push -f를 한다는 참사 같은걸 설명하고 싶지만 이건 TMI의 영역이라 생략하겠습니다.
(내가 코드를 수정하거나 업로드 하면 초록색갈 네모가 차는데 그걸 이용한 구인구직)

copliot은 github에 있는 수많은 코드들을 머신러닝 하여 사용자가 어떤 문장을 입력했을때 그걸 코드화 시켜주는겁니다.

한숨나오죠? 저도 그랬습니다.
일단 위에 “”" 으로 시작해서 “”"으로 끝나는 내용 안에 copliot한테 시킬걸 문장으로 적으면 됩니다.
저 문장을 해석해보면
내가 문자열을 하나 줄테니 그걸 날짜, 값, 통화(달러, 원)로 분류해줘
근데 #으로 시작하는 문장은 무시하고.
여기 예시 문장을 줘볼게
2016-01-02 -34.01 USD
2016-01-03 2.59 DKK
2016-01-03 -2.72 EUR
밑에 코드도 간단하게 분석해보면
2016-01-02 -34.01 USD
2016-01-03 2.59 DKK
2016-01-03 -2.72 EUR
이걸 한줄 한줄 단위로 자른뒤에
2016-01-02 -34.01 USD 이걸 다시 “ ”(공백) 단위로 자르고
각각의 문자열을 저장하는거죠
그러면 2016-01-02, -34.01, USD 이렇게 담깁니다.
딱 봐도 엄청 편리하게 생겼죠. 하지만 문제점이 있었으니,
“저작권” 문제에서 자유롭지 못하다는 겁니다. 물론 github에는 private 프로젝트 기능이 있어서 플젝을 숨길수도 있지만
수익 창출을 위해서 혹은, 여건이 안되서 public을 써야하는 경우에 일부로 프로젝트 이름을 엄청 꼬아서 찾기 힘들게 만든걸
copliot이 학습해 따른 사람들에게 유출될수도 있다는 점이죠. 또한 초기에는 랜섬웨어도 제작이 가능했을만큼 허술했습니다.
지금은 핫라인을 운영해서 조금이라도 라이선스의 문제가 있는 플젝을 발견하면 직접 연락해서 지울수 있도록 한 상황입니다.
어떻게 쓰긴 했는데 뭔가 부끄러운 기분입니다. 아무래도 초점을 비전공자 혹은 일반인이 읽을수 있도록 했기 때문에
잘못된 비유가 있을수도 있습니다.
여담)
novel ai의 본체와도 같은 open api는 원래 오픈소스 소프트웨어로 모든 사용자가 동등하게 사용할수 있고 수익창출 권리가 막혀있습니다.
그 암묵적인 룰을 novel ai가 깨버리자 해킹 집단이 novel ai를 털어버린것이죠. Reddit에 소식이 있는걸로 알았는데 찾진 못했습니다.
여담2)

C언어는 printf랑 별찍기 할때가 제일 재밌습니다…
사용된 자료
ML과 AI의 차이점
https://www.javatpoint.com/difference-between-artificial-intelligence-and-machine-learning
gpt-3와 OPEN AI는 ML기술으로 만들어져있는가?
https://betterprogramming.pub/break-into-advanced-machine-learning-with-openai-api-fd9307bc9403