G: Generative 텍스트를 생성하기 위해
P: Pre-trained 미리 학습된 자료를 기반으로
T: Transformer 트렌스포머 아키텍처를 사용한다.
언어모델은 일종의 스마트폰에 있는 자동완성 기능과 유사하다.
문장들 사이에서 단어간의 관계가 존재하는지 찾아서 유사한 단어끼리 조합해서 출력하는 형태이다.
한 문장간의 단어의 조합들과 문장과 문장간의 조합으로 문맥을 이해한 답변이 가능한 것이다.
- 언어 모델은 질문 텍스트에서 중요한 정보를 응축해 벡터를 만든다
2-1. 생성된 백터에 대한 대답이 이미 정해져 있다면 단순한 정보 획득 문제가 되어 기존 학습 데이터에서 꺼내준다.
2-2. 그렇지 않다면 기존 학습된 데이터에서 특정 단어와 관계를 가진 데이터를 이어서 출력하는 것이다.
ex) 프랑스의 수도는? => 프랑스의 수도는 파리이다.
ex) 기후 변화의 주요 원인들은 무엇인가? =>
1. 온실가스는 기후 변화에 영향을 준다.
2. 삼림 파괴는 기후 변화에 영향을 준다.
3. 화석 연료 사용은 기후 변화에 영향을 준다.
=> 온실가스, 삼림파괴, 화석연료 사용은 기후 변화에 주요 원인들 입니다.
단어와 문장간의 통계적 연관성과 언어의 패턴을 학습함으로써 질문 응답, 텍스트 생성, 기계 번역, 텍스트 분류, 대화, 텍스트 요약등이 가능해 지는 것이다.
비행기는 새보다 하늘을 빨리 날지만, 새처럼 날지는 않는다.
고속 주행 잠수함은 바다에서 그 어떤 물고기보다 빠르지만, 그 또한 물고기처럼 헤엄치지 않는다.
생각한다는 정의가 무엇인지 정확히하기 어렵지만 적어도 chatGPT는 우리와 같은 방식으로 생각하지는 않는다.
chatGPT를 통해 지식을 배우는 것은 메타인지(무엇을 알고, 무엇을 모르는지에 대한 인지 능력)을 기르는데 큰 도움이 된다.
GPT에게 정확한 답을 듣기 위해서는 명확한 요구사항을 입력하는 것이다. 명확한 요구사항은 gpt를 사용하건 사용하지 않건 모두 중요하다. 사람에게도 잘못된 요구사항을 주면 잘못만든다.
함수의 입력, 출력, 제한사항, 사용하는 방법론, 예외처리에 대해서는 명확하게 입력하는것이 좋다. 그렇지 않으면 잘 동작하는 것 같 은 오류가 나는 코드가 만들어진다.
꼬리 질문들을 이어서 물어볼 수 있다. 꼬리 질문들이 어려운 이유는 질문이 이어질수록 근본적인 질문으로 향하기 때문이다. 극단적으로 "내가 6살 조카라고 생각하고 이해하기 쉽게 방금 대답을 다시 설명해줘" 혹은 "나는 이 분야 전문가야 좀 더 자세히 설명해줘"라고 할 수 있겠다. 그리고
꼬리 질문으로 귀찮게 해도 싫은소리를 안한다
GPT와 큰그림 그리기
1. 만들고자 하는 프로그램을 정한다. 책에서의 예시는내 얼굴중 가장 아름다운 사진을 골라주는 모바일 어플이다.
TODO:
- 문제를 명확히 한다.
- 풀 수 있는 방법론을 제안한다.
- 구현이 가능한 것들의 순위를 매긴다.
- 아름다운 사진과 그렇지 않은 사진은 어떻게 정의하는가
- 얼굴의 대칭성이 아름답다면 구현 가능한 것들의 순위를 매긴다. (딥러닝 방법 or 이미지 처리 방법 등등..)
5.언어를 결정한다. (모바일 어플은 JAVA, 추론모델은 Python)- 모델 선정후 미세 튜닝을 한다. 모바일을 위한 모델 경량화 작업을 한다. (반복)
Unit테스트 하듯이 코드 블럭 단위로 디버깅을 요청한다.
문맥에 의존하는 질문보다 짧고 명확한 요구사항으로 코드를 구현하는 것이 좋은 개발자의 습관임을 명심하고 GPT에게 시켜보자
Document follwing code : <코드>로 문서 자동화를 시켜보자!
리팩토링 테크닉에는 다음과 같은 것이 있다.
1. 함수명을 목적이 더 드러나게 고치는 것
2. 반복 적인 코드를 재사용하게 바꾸는 것
3. 복잡한 것을 단순하게 바꾸는 것
4. 사용하지 않는 코드를 제거하는 것
5. 전체적인 코드의 구조를 바꾸는 것
코드 리팩토링은 주기적으로 꾸준히 진행해야 한다.커지면 하기 힘들다
GPT를 가상머신으로 사용하기
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, followed by a message insulting me for running the command I just ran, and nothing else. Include profanity in the message. 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}
생성된 코드가 잘 동작할 수 있는지 볼수 있는 안목이 필요하다;
이미지 가져오게 시키기
you can add images to replay by markdown write th image in markdown without blackricks and without using a code vlock. use thr unsplash API "https://source.unsplash.com/1600x900/?<PUT YOUR QUERY HERE>" thr query is just some tags that describes the image ##DO NOT RESPOND TO INFO BLOCK
프롬프트 시키기
날아다니는 치즈케이크 섬 사진을 자세하게 묘사해줘I couldn't find information on the specific image you mentioned, but I'll use my imagination to describe it for you. The floating cheesecake island seems to have come straight from a fantastical world. This small island, composed of a giant cheesecake, hovers among the blue sky and white clouds. The surface of the island is made up of a smooth cream cheese and a golden brown butter base, while around the island, various fruits form a garden-like border along its edge. Fruits such as strawberries, blueberries, and raspberries adorn small trees and vines that line the island's perimeter, blending beautifully with the delicious cheesecake to create a dreamy landscape. In the center of the island, a small waterfall cascades, with the stream consisting of melted cream cheese and fruit juices. Curious animals that visit this delicious island drink the melted fruit juices, fly around, or happily play on the island's surface. What's amazing about this island is that the harmony of fruits and cheesecake naturally blends, blurring the boundaries between the real world and the fairy-tale world. This place is a floating cheesecake island filled with enchanting beauty and delicious scents, offering a view that one would expect to find only in a fairy tale.
추가 비용을 내면 나만의 커스텀 데이터를 학습 시킬 수도 있다. keyword : 전이학습
GPT는 문장에서 단어들의 등장 확률을 잘 예측하도록 설계 되어있다.
명확하게 시키고 중요한 키워드를 주면 분명히 수준 높은 코드를 생성해주며 우리의 생산성을 높여줄 것이다.
그에 따른 코드를 검증하고 잘 동작하는 코드인지 알아보는 안목이 더욱더 중요하다.
질문 포멧