글쓰기 파트를 들어가기전 기초문법을 조금 이야기하고 갑시다.
같은 2개의 프롬프틀르 줄만 바꿔서 결과를 봐보죠
고작해야 프롬프트 위치를 바꿧을뿐인데 하나는 결과물을 주지만 다른 하나는 GPT가 못알아 먹습니다.
에이 저렇게 이어서 붙이면 당연히 못알아먹죠!
왜요? 이유가 뭔가요?
사실 저도왜못알아 먹는가 이부분에 대해서 바로 대답은 안나옵니다.
많은 원인있고 내말을 못알아먹었으니 프롬프트를 수정해야지! 최우선순위를 잘못잡았네 뭐 이런말은 할수있지만 명백한 원인에대한 대답하기 어렵죠
오늘은 이이야기를 해봅시다.
LLM은 가장 확률이 높은 출력물을 내주는 모델입니다. 이런저런 복잡한 이야기가 있지만 차떼고포떼고 말하면 결국은 핵심은 확률 싸움 이라는 겁니다.
그게왜요?
LLM이 글을 인지하는 방식을 먼저 간단하게 설명하면 임베딩을통해 고차원 벡터를 저차원 벡터로 내린후 연산을 통해 다시내놓는다
이말을 이해하셔야하는데 너무어렵죠?
핵심은 벡터공간에 나타내는데 있어 그게 모두 리소스 즉 자원을 먹는다는거고, 우리는 저 벡터라는 놈을 기계가 편히 찍을수 있게 해야한다. 즉 알아먹기 쉽게 써줄 필요가 있다는거에요,
그런데 GPT 4.5가 출시되고 지금도 점점 개선되고 있고, 일반적인 질문에는 대답잘하잔아요!
맞습니다 뭐 예를들어
오늘저녁뭐먹을까? 오늘날씨어떄?
이런 프롬프트에는 고급의 프롬프트 엔지니어링이나 기반 문법을 아실필요는 전혀없어요
다만 AI로 글쓰기에 도움을 받고싶다면 성능을 극한까지 끌어내는게 필수적이라는 겁니다.
왜냐고요? 기초문법으로 설계한 프롬프트와 아닌 프롬프트의 성능차이가 날수밖에 없다는데 이유가 뭘까요?
단순합니다 직관적으로 GPT는 계산기고 계산가능한 총량이 정해져있기 떄문이에요, 결국 일정이상 대답을 요구하게 된다면 자원분배에 문제에 봉착한다. 그걸 가장효율적으로 분배하는법이 프롬프트 엔지니어링인 것이구요
그럼 GPT에게 물어볼까요?
GPT에서 사용하는 문법이뭐야?
GPT 응답은 별도의 전용 문법을 사용하지 않고, 표준 Markdown(및 일부 확장 기능)을 기반으로 포맷팅됩니다.
Markdown 기반:
GPT는 일반적으로 Markdown 문법을 활용하여 텍스트 계층 구조, 코드 블록, 인용문, 목록, 링크, 이미지 등을 표현합니다.
확장 기능:
GitHub Flavored Markdown(GFM) 등 일부 확장이 적용되어 취소선, 체크박스 등 추가 문법이 지원됩니다.
HTML 병행 지원:
일부 HTML 태그도 인식하여 추가적인 포맷팅이 가능합니다.
마크다운이요? HTML이요? 어우야 이게 뭔소리에요 싶죠?
한줄로 설명하면 웹사이트용 문법이라 설명드릴수 있겠습니다. 프로그래밍 언어중에는 진짜 쉬운편이에요
특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용하여 웹에서도 보다 빠르게 컨텐츠를 작성하고 보다 직관적으로 인식할 수 있다
인터넷 글들을 보면 이런 장점이 있다는데 이게 뭔소리일까요?
너무 어렵게 생각하실 필요 없이 단순하게 우리가 이제부터 공부할 문법은 쉬운 편이니 몇가지만 알면된다!
이것만 기억하시면 됩니다.
그럼 우리가 이런걸 공부할때 가장 좋은건 예문이죠? 이예문을 한번 써봅시다.
GPT사용할 때 알아야할 문법에대해 설명하고 문법을 모두 사용하여 프름프트를 써봐
# GPT 모델 학습 알고리즘 설명 프롬프트
**목표**: 아래의 **요구 사항**을 충족하는 *공학적*이고 **실질적인** 설명을 작성한다.
---
## 1. 기본 개념
- **모델 구조**: GPT 모델의 **트랜스포머 아키텍처**와 `Self-Attention` 메커니즘 설명
- *학습 과정*: 대규모 데이터셋을 활용한 **사전 학습(pre-training)** 및 *미세 조정(fine-tuning)* 과정
## 2. 세부 요구 사항
1. **데이터 처리**
- 데이터 수집 및 **전처리 과정**
- 예시: `텍스트 정제`, `토크나이제이션`
2. **학습 알고리즘**
- **역전파(Backpropagation)**와 `최적화(Optimization)` 전략
- *손실 함수(Loss Function)* 및 **가중치 업데이트** 설명
3. **코드 예시**
- 아래 Python 코드를 참고:
```python
def train_model(data):
# 데이터 전처리
processed_data = preprocess(data)
# 모델 학습 (역전파 및 최적화)
model = train(processed_data)
return model
```
4. **참고 자료 및 시각 자료**
- [OpenAI 공식 문서](https://www.openai.com "OpenAI Homepage")를 참고할 것.
- **모델 구조 이미지**:

5. **표 형식 개요**
- 학습 과정 요약:
| 단계 | 설명 |
| ------------ | ----------------------------- |
| 데이터 수집 | 원시 데이터 수집 및 정제 |
| 전처리 | 토크나이제이션 및 정규화 |
| 모델 학습 | 역전파와 최적화를 통한 학습 |
| 평가 | 모델 성능 평가 및 개선 |
> **참고**: 설명 시 **구체적**이고 *명확한* 기술 용어를 사용하며, **실질적인** 분석과 업무 용어를 포함할 것.
> 예를 들어, `\#` 기호와 같은 Markdown 이스케이프 문자를 활용하여 문서 내 특수 문자가 의도치 않게 해석되지 않도록 주의한다.
---
대충이런 프롬프트를 예시로 활용해 보죠
일단은 3개정도를 한번에 써볼까요?
1.헤더 (Headers)
문서의 계층 구조를 표시합니다.
문법: # 제목1, ## 제목2, … ###### 제목6
굉장히 직관적이죠? 이걸 좀더 써봅시다.
목록 (Lists) 을 만드는 법을 봐볼까요?
순서 없는 목록의 경우 -, *, + 사용
- 항목 1
- 항목 2
순서 있는 목록 숫자와 점 사용
1. 첫 번째 항목
2. 두 번째 항목
이두가지를 기억하시면 됩니다 한번 위 프롬프트를 수정해보죠
직관적으로 보이시죠 소제목을 어떤방식으로 지정할것이냐 아니면 내용을 줄것이냐의 차이입니다.
딱히 어려울건 없으니 다음으로 갑시다. 이걸좀 써보자구요
응용문 (Blockquotes)
> 사용
> 인용문 내용
수평선 (Horizontal Rules)
문단 구분 시 사용 예: --- 또는 ***
이제 이녀석을 넣어보자구요
꽤 괜찮은 글이 완성 되었죠? 생각보다 맘에들어요 인용문을 가져다 쓰고 싶다면 한번 빼볼까요?
마지막으로
```이건 백틱이란 기호인데
이렇게 해서 코드에 사용하도록 바로 사용하는 느낌입니다.
생각보다 단순하죠?
모든걸 이해하실 필요도 없고 어디에 쓰일지 고민하실 필요도없습니다.
실제로 이런걸 공유하고 있는 사이트에서 가져다 쓰는것도 좋은 방법입니다.
이런저런 것들을 참고해 이제 본인의 취향을 녹여내서 쓰면 되는거죠
문제는 여기서 프롬프트 기초문법이후 문맥을 이해하셔야 저 첫질문에 대한 대답을 할수 있습니다.
다음글에서는 이에 대해 한번 답변해보고 프롬프트 문맥과 우선순위에 대해 다뤄봅시다.