ChatGPT란?
NLP 인공지능인 gpt를 채팅 형식으로 사용할 수 있게 만들어 놓은 인공지능 챗봇이다.
chat gpt 주소 : https://chat.openai.com/chat
대형 언어 모델(large language model)을 파인 튜닝한 모델이다. 지도 학습과 강화 학습을 사용했다. 인공지능이 응답한 내역에 대해 사람이 피드백을 하고 이를 기반으로 강화학습을 사용하는 방식이다. GPT 3.5를 기반으로 하고 있고 openai에서 2022년 11월 공개됐다.
현재 기준으로 2021년 4분기까지의 데이터를 학습했다. 그 이후의 데이터는 반영되지 않았다. 그래서 예측이나 최신 정보에 대한 질문을 하면 대답을 할 수 없다고 나온다.
한글도 되는데 내장된 번역 api를 사용하는 것으로 보인다. 영어와 한글로 똑같은 질문을 하면 같은 대답을 한다. 그래도 이 부분에서 정말 놀라웠다. 그런데 한글로 명령을 내리면 도중에 잘리는 경우도 좀 있다. 영어가 안 잘리고 좀 더 빠르다.
현재는 연구 검토 단계로 무료이지만 수익화가 될 수 있다고 한다. 1개의 채팅 당 평균 비용은 10센트 이하 내외 정도라고 한다. 오픈소스는 아니다. 마이크로 소프트와 협업해서 Azure 서버 인프라를 활용해서 모델을 훈련했다.
단 5일 만에 100만 유저에 도달했다. 100만 유저가 되기까지 gpt-3가 24개월 걸렸고 코파일럿이 6개월 걸렸다. 달리(Dall-e)는 2.5개월 걸렸다. 참고로 페이스북은 10개월이 걸렸다. 경이로운 수치이다.
chatgpt 사용법
사용자가 질문을 하면 대답을 하는 자유로운 방식이다. 그래서 처음 사용해 보면 막막하기는 하다. 하나의 스레드에서 이전 채팅 내역을 기억하고 반영한다. 무엇을 할 수 있는지와 예시를 수집해 봤다.
- 무언가에 대해 질문하기
what is gpt-3? / describe gpt-3
gpt-3가 뭐야?
GPT-3 (Generative Pre-trained Transformer 3)는 OpenAI에서 개발한 생성 언어 모델로, 입력 텍스트에서 추론한 정보를 기반으로 새로운 텍스트를 생성할 수 있게 해줍니다. 이 모델은 고성능 생성 언어 모델 중 하나로, 인공 지능과 자연언어 처리 분야에서 각광을 받고 있습니다. GPT-3은 인터넷에서 수집한 수백만 개의 문서로 학습되어 있기 때문에, 일반적인 자연언어 생성 작업에 사용될 수 있습니다…
- 코드 작성하기 및 코드 관련 질문하기
write a todo list in jacascript
투두 리스트를 자바스크립트 코드로 짜줘
의외에도 버그가 있는 코드를 주고 어떻게 하면 고칠 수 있는지 물어보면 대답할 수 있습니다. 실제로 해결할 수 없는 버그가 있을 때 물어본 적이 있는데 정답은 아니지만 매우 논리적으로 설명하여 힌트를 얻었습니다.
- 특정 주제에 대한 글 작성하기 (블로그, 기사 등)
write a blog article about how to lose weight
몸무게를 줄이는 방법에 대한 블로그 글을 써줘
몸무게를 줄이는 것은 건강과 전반적인 생활 질에 중요한 영향을 줄 수 있습니다. 적절한 식단과 운동을 통해 체중을 감량할 수 있는 방법은 다음과 같습니다.
적절한 식단 관리
적극적으로 식습관을 개선합니다. 식습관을 개선하기 위해서는 식사 시간, 식사 주기, 식사량 등을 적극적으로 관리해야 합니다.
식사 시간과 주기를 정합니다. 식사 시간과 주기를 정해서 식사량을 제대로 조절할 수 있습니다. 일반적으로 아침, 점심, 저녁 세 식으로 이루어진 식습관이 권장됩니다…
- 어떤 일을 하는 것에 대한 특정한 단계
tell me ways to decorate a room for work
작업실을 꾸미는 방법들을 알려줘
작업실을 꾸미는 것은 생활 품질과 생산성에 중요한 영향을 줄 수 있습니다. 아래와 같은 방법들을 시도해볼 수 있습니다.
- 조명과 색상을 적극적으로 고려합니다. 작업실의 조명은 생각보다 중요한 요소입니다. 작업실의 조명은 일광 조명이 가장 좋습니다. 색상도 중요한 요소입니다. 차분한 색상이나 화이트와 같은 밝은 색상은 생산성을 높여줍니다.
- 적극적으로 정리합니다. 정리는 생각보다 중요한 요소입니다. 정리를 하기 위해서는 적극적으로 정리할 수 있는 저장공간을 준비해야 합니다. 저장공간으로는 선반과 책장, 서랍 등을 적극적으로 준비할 수 있습니다…
- 글 요약하기
summarize this text
다음 텍스트를 요약해줘. \
```텍스트~~```
ChatGPT의 위키피디아 글 내용을 입력했습니다. 길어서 내용은 생략. 다음과 같이 요약문을 만들어 줍니다.
- 무언가에 대해 아이디어 얻기
tell me 5 ways to make money (돈을 버는 방법 5가지를 알려줘)
- 번역하기
동기부여를 영어로 번역해줘
- 불렛 리스트에서 나머지 완성하기
complete this list
다음 리스트를 완성해줘
스마트해지는 방법
- 생각을 사려깊게 한다.
- 현재에 집중한다.
리스트를 만들어 놓고 나머지 부분을 완성해줘라고 하면 다음과 같이 리스트를 완성시켜 줍니다.
똑똑해지는 법을 알려줘라고 했습니다. 그리고 두 가지 예를 들어놓고 나머지 리스트를 완성합니다.
비판적으로 생각하고 논리적으로 생각하기
오픈 마인드를 가지고 흥미롭게 생각하기
지속적으로 배우고 성장하기
흠 괜찮은데요…?
그 밖에도 정말 여러가지로 창의적으로 생각해서 사용할 수 있습니다.
사용 예시와는 다르지만 사람들이 프롬프트를 공유하는 깃허브가 있습니다. 예를 들어 리눅스 터미널 처럼 행동해줘하고 다음 프롬프트를 입력하면 리눅스처럼 동작합니다.
i want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is pwd
GitHub - f/awesome-chatgpt-prompts: This repo includes ChatGPT promt curation to use ChatGPT better.
이런 논리를 활용해서 코딩 취업 면접자를 만든 후에 대화를 해볼 수 도 있습니다.
개발자 면접자처럼 행동해줘. 네가 자바스크립트 기술에 대한 질문을 하고 나는 대답을 할게. 첫번째 질문은 알아서 생성해줘.
I want you to act as a developer interviewer. You ask a question about JavaScript skills, and I'll answer it. Please create your own first question.
첫번째 질문은 ===와 ==의 차이에 대해서였다.
진짜 상상력에 따라 많은 것이 가능하다. 예를 들어 스테이블 디퓨전과 같은 이미지 생성 모델의 프롬프트를 만드는데 사용하기도 한다.
한 번 chatgpt와 대화를 해보자.
chatGPT 팁
도중에 사용하다가 끊기는 경우가 있다. 이럴 때 영어라면 continue, 한글이라면 계속을 입력하면 이어서 설명해 준다
질문에 대한 다른 대답을 원한다면 Regenerate response 버튼을 눌러서 다시 받아볼 수 있다.
답변이 생성될 때 Stop generating을 누르면 답변을 중단할 수 있다.
여러줄에 나눠서 내용을 입력할 때가 있는데 이 때 시프트 + 엔터를 누르면 다음줄로 넘어가 입력할 수 있다.
1 토큰은 영어로 대략 1 단어 정도라고 보면 된다. 하지만 문장을 쓰게 되면 관사나 부사 등을 쓰게 되고 합성어가 있다면 따로 처리가 된다. 그래서 토큰 * 3/4를 하게 되면 사용할 수 있는 단어 수를 대략적으로 알 수 있다. 예를 들어 4000토큰이면 영어로 3000단어 정도라고 보면 된다. 반대로 영어 한 단어를 어림잡아 1.33 토큰 (영어 4글자가 보통 1 토큰) 으로 계산할 수 있다.
정확한 토큰 수를 알고 싶다면 open ai의 토크나이저에 들어가서 확인할 수 있다. (로그인 불필요) OpenAI TOKENIZER
한글은 영어와 다르게 토큰을 엄청 많이 사용한다. 그래서 한글의 경우 입출력을 하는데 영어보다 제한이 있다. 실험해 봤을 때 대략적으로 한글 1글자 당 약 2~3토큰 정도를 사용한다.
입출력 다합해서 4096토큰 정도가 한계로 보인다. 예를 들어 입력에 3000토큰 사용하면 1096토큰 정도가 답변에 활용될 수 있다.
2023년 1월 22일 기준으로 일 사용자 수(DAU)가 1000만을 넘었다.
chatGPT 한계
가끔 그럴듯해 보이지만 틀린 대답을 할 때도 있다. 논리적인 헛소리라서 맞는 것처럼 보인다. 이런걸 잘 걸러서 받아들여야 한다. 즉 논리적으로만 맞다면 답변을 할 수 있기 때문에 팩트 체크나 세부 사항의 경우 확인이 필요하다.
모델을 학습하는데 비용이 많이 들기 때문에 최신 내용이 바로 반영되지 않는다. chatGTP가 2022년 4분기까지의 데이터만 가지고 있는것도 그 때문이다.
OpenAI에 따르면 이전 맥락을 기억하는데 4000 토큰의 제한이 있다고 한다. (영어로 3000단어 정도)
개인적인 생각
그런데 사용하다 보면 여러가지 생각이 든다.
chat gpt가 작가나 프로그래머를 대체할까? 아직은 인간의 역할이 많이 필요하다고 생각한다. 오히려 단순작업이나 반복작업을 AI가 해주고 인간은 보다 창의적인 일들을 할 가능성이 높다고 생각한다. 오히려 상상력이나 새로운 것을 생각하는 능력이나 인간적인 경험, 메타 사고 등이 중요해질 것 같다.
엔젤리스트를 창업한 naval은 이렇게 언급했다. chatgpt는 읽기와 쓰기를 위한 계산기와 비슷하다. 내 생각에는 논리를 위한 계산기와 비슷할 것 같다. gpt 자체가 다음 논리를 예측하는 방식이니 말이다.
앞으로는 초안이나 아이디어 스케치를 인공지능으로 빠르게 하고 사람이 손을 대서 완성하는 것이 하나의 작업 방식이 되지 않을까 싶다.
하지만 확실한 것은 일반지능의 시작과 탄생을 지금 목도하고 있다는 것이다. 샘 알트만은 chatGPT가 인공 일반 지능 (Artificial General Intelligence, AGI) 에는 훨씬 미치지 못한다고 말했다. 하지만 앞으로 10년 후에 우리는 인공 일반 지능을 볼 수 있을 가능성이 있다.
개발자의 역할은 새로운 것에 겁을 먹지 않고 이것을 인간에게 어떻게 더 유용하게 활용할 수 있을지 생각하는게 아닐까? 또 그렇게 만들어나가야 하고 말이다.