-
Notifications
You must be signed in to change notification settings - Fork 1
/
architecture.qmd
289 lines (212 loc) · 10.6 KB
/
architecture.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
---
title: "chatGPT"
subtitle: "챗GPT 아키텍쳐"
author:
- name: 이광춘
url: https://www.linkedin.com/in/kwangchunlee/
affiliation: 한국 R 사용자회
affiliation-url: https://github.com/bit2r
title-block-banner: true
#title-block-banner: "#562457"
format:
html:
css: css/quarto.css
theme: flatly
code-fold: true
toc: true
toc-depth: 3
toc-title: 목차
number-sections: true
highlight-style: github
self-contained: false
filters:
- lightbox
lightbox: auto
link-citations: true
knitr:
opts_chunk:
message: false
warning: false
collapse: true
comment: "#>"
R.options:
knitr.graphics.auto_pdf: true
editor_options:
chunk_output_type: console
bibliography: bibliography.bib
csl: apa-single-spaced.csl
editor:
markdown:
wrap: sentence
---
# 챗GPT LLM 이해하기
## JPEG 압축
ChatGPT는 인터넷에서 방대한 양의 데이터를 학습하여 이를 정말 잘 압축한 하나의 저장소로 이해할 수 있다.
따라서, 압축을 풀게 되면 정확히 원본을 복원할 수 있는 부분도 있지만, 그렇지 못한 부분도 당영히 있게 된다.
[[Ted Chiang (February 9, 2023), "ChatGPT Is a Blurry JPEG of the Web - OpenAI's chatbot offers paraphrases, whereas Google offers quotes. Which do we prefer?", The New Yorker](https://www.newyorker.com/tech/annals-of-technology/chatgpt-is-a-blurry-jpeg-of-the-web)]{.aside}
ChatGPT를 **"웹의 흐릿한 JPEG"**으로 비유하고 있다.
JPEC 기술 자체는 손실 압축기술로 무손실 압축기술로 대표적인 PNG와 대비된다.
흐릿한 이미지가 선명하지 않거나 정확하지 않은 것처럼 ChatGPT도 항상 완벽한 답변을 제공하거나 모든 질문을 제대로 이해하는 것도 아니다.
하지만 사용자와의 대화를 기반으로 끊임없이 학습하고 개선하고 있다.
더 많은 사람들이 ChatGPT를 사용할수록 사람의 언어를 더 잘 이해하고 반응할 수 있게 개발된 기술이다.
ChatGPT와 유사한 인공지능 프로그램이 너무 강력해지거나 인간을 대체할 수 있다고 우려하는 사람들도 있지만, ChatGPT는 단순히 작업을 더 쉽고 효율적으로 만드는 데 사용할 수 있는 강력한 도구일 뿐이므로 사람을 능가하거나 지배할 가능성은 거의 없다.
인공지능(ChatGPT)을 책임감 있고 윤리적으로 사용되도록 하는 것은 결국 사용자 귀책이다.
ChatGPT가 간단한 숫자계산에 문제가 있는 것은 웹상에 산재된 숫자 계산 데이터를 바탕으로 계산을 흉내낼 수는 있으나 이와 같은 방식으로 ChatGPT가 학습한 것은 명백히 잘못된 것이다.
사칙연산에 대한 일반적인 원리를 이해하게 되면 웹상에 나온 사칙연산 문제를 정확히 해결할 뿐만 아니라 웹상에 나와있지 않는 계산문제도 풀 수 있으나 현재는 그렇지 못하다.
::: panel-tabset
### PNG 파일
![](images/jpeg/jpeg-vs-png-transparency.png)
### (비)손실 압축
![](images/jpeg/jpeg-vs-png-compression.png)
### 파일크기
![](images/jpeg/jpeg-vs-png-file-size.jpg)
### BMP 파일
![](images/jpeg/jpeg-vs-bmp.jpg)
:::
[자료출처: [WHAT'S THE DIFFERENCE BETWEEN JPEG AND PNG: BEGINNER GUIDE](https://fixthephoto.com/tech-tips/difference-between-jpeg-and-png.html)]{.aside}
## 제록스 복사기
독일 과학자(David Kriesel)가 제록스 복사기에서 문서에 있는 숫자를 변경하는 결함을 발견했다.
제록스 프린터가 방의 면적을 14.13m²에서 17.42m²로 넓혔고, 다른 프린터는 21.11m²에서 14.13m²로 줄였다.
숫자 문자열 중간에 특정 숫자(예: "6" 또는 "8")가 나타나면 복사기가 해당 숫자를 다른 숫자로 바꾸는 경우가 많았다.
예를 들어, '682'가 '882'가 될 수 있습니다.
처음에 건물 설계도를 스캔하고 분석하려고 할 때 이 문제를 발견했다.
원본에는 이러한 오류가 없었지만 스캔한 사본에서 특정 숫자가 변경된 것을 발견했다.
결국 그들은 사본을 만드는 과정에서 숫자가 변경된, 사용 중인 Xerox 복사기에 문제가 있다는 사실을 깨달았다.
이 결함은 제록스 복사기에 사용되는 압축 알고리즘과 관련된 것으로 특정 숫자가 서로 가까이 있으면 알고리즘이 이를 다른 숫자로 착각하고 그에 따라 숫자를 바꾼 것이다.
이 문제가 일부 고급 모델을 포함한 다양한 제록스 복사기에 존재한다는 사실도 발견했다.
[[D. KRIESEL, "Xerox scanners/photocopiers randomly alter numbers in scanned documents"](http://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres_are_switching_written_numbers_when_scanning)]{.aside}
::: panel-tabset
### 설계도 문서
![](images/jpeg/architecture-document.png)
### 스캔 결과
![](images/jpeg/scan-output.png)
### 원가표 스캔
![모델: WorkCentre 7535](images/jpeg/cost-table.png)
### 스캔 오류
![](images/jpeg/xerox-overview.jpg)
:::
# 패러다임
![Andrej Karpathy Twit](images/software_3.jpeg)
[- Pre-Software: Special-purpose computer <br> - Software 1.0: Design the Algorithm <br> - Software 2.0: Design the Dataset <br> - Software 3.0: Design the Prompt]{.aside}
## 기계학습
머신러닝은 혼자서 할 수 있는 일이 아닙니다!
ML 솔루션을 구축할 때는 고객부터 고객까지 엔드투엔드로 생각하는 것이 중요합니다.
이는 설계, 계획 및 실행에 도움이 됩니다.
계획의 일환으로 누가 언제 참여해야 하는지 이해하는 것이 중요합니다.
일반적인 프로젝트를 살펴보겠습니다.
::: panel-tabset
### 작업흐름
![](images/machine_learning_workflow.gif)
### 전체 개요도
![](images/machine_learning_workflow.jpg)
### 데이터 → 하드웨어
![](images/cpu_gpu.jpg)
:::
인공지능(AI) 시스템 구축을 위한 새로운 패러다임이 탄생했다.
**기초모형(Foundation Model)**은 광범위한 데이터에 대해 학습된 모델로, 광범위한 실무하위 작업에 활용할 수 있다.
현재 BERT, GPT-3, CLIP \[Radford 외.
2021\] 등을 예로 들 수 있다.
[@bommasani2021opportunities]
![](images/foundation_model.png)
::: {.panel-tabset .column-page}
## Feature Engineering
- **패러다임**: (비신경망)지도학습 (Fully Supervised Learning)
- **전성기**: 2015년까지 최고 전성기 구가
- **특징**
1. 주로 비신경망 기계학습이 사용
2. 수작업으로 Feature를 추출
- **대표작**
1. 수작업 Feature 추출 후 SVM(support vector machine) 기계학습 모형
2. 수작업 Feature 추출 후 CRF(conditional random fields)
## Architecture Engineering
- **패러다임**: 신경망 지도학습(Fully Supervised Learning)
- **전성기**: 대략 2013\~2018
- **특징**
1. 신경망(Neural Network) 의존
2. 수작업으로 Feature를 손볼 필요는 없으나 신경망 네트워크는 수정해야 함(LSTM vs CNN)
3. 종종 사전학습된 언어모형을 사용하나 임베딩(embedding) 같은 얕은(shallow) Feature를 적용
- **대표작**
1. 텍스트 분류작업에 CNN 사용
## Objective Engineering
- **패러다임**: 사전학습(pre-training), 미세조정(fine-tuning)
- **전성기**: 2017\~현재
- **특징**
1. 사전학습된 언어모형을 전체 모형의 초기값으로 사용
2. 아키텍쳐 디자인에 작업이 덜 필요하지만 목적함수(Objective function) 엔지니어링은 필요
- **대표작**
1. BERT → Fine Tuning
## Prompt Engineering
- **패러다임**: 사전학습(pre-training), 프롬프트(Prompt), 예측(Predict)
- **전성기**: 2019\~현재
- **특징**
1. NLP 작업이 언어모형(Language Model)에 전적으로 의존
2. 얕던 깊던 Feature 추출, 예측 등 작업이 전적으로 언어모형에 의존
3. 프롬프트 공학이 필요
- **대표작**
1. GPT3
:::
# Prompt engineering
- Instructions
- Question
- Input data
- Examples
[[Xavier (Xavi) Amatriain(January 5, 2023), "Prompt Engineering 101 - Introduction and resources", Linkedin](https://www.linkedin.com/pulse/prompt-engineering-101-introduction-resources-amatriain/),[Prompt Engineering - Learn how to use AI models with prompt engineering](https://microsoft.github.io/prompt-engineering/)]{.aside}
# 생성 AI
::: panel-tabset
### 구분
- generation: text → image
- classification: image → text
- transformation: image → image (or text → text)
### AI 프로젝트
- GPT-3
- Dalle.2 (text-to-image)
- Meta's AI (text-to-video)
- Google AI (text-to-video)
- Stable Diffusion (text-to-image)
- Tesla AI (humanoid robot + self-driving)
### text-to-X
- text-to-gif (T2G)
- text-to-3D (T2D)
- text-to-text (T2T)
- text-to-NFT (T2N)
- text-to-code (T2C)
- text-to-image (T2I)
- text-to-audio (T2S)
- text-to-video (T2V)
- text-to-music (T2M)
- text-to-motion (T2Mo)
### 기타
- brain-to-text (B2T)
- image-to-text (I2T)
- speech-to-text (S2T)
- audio-to-audio (A2A)
- tweet-to-image (Tt2I)
- text-to-sound (T2S)
:::
# 기업 생태계
::: panel-tabset
## OpenAI
![](images/OpenAI_investment.png)
[CBInsights, "Analyzing OpenAI's investment strategy: How the ChatGPT maker is building a generative AI ecosystem"](https://www.cbinsights.com/research/openai-investment-strategy/)
## 글로벌 스타트업
![](images/generative_ai.jpg){width="570"}
## 네이버
[[성현희 (2022-11-04), "네이버 AI 사용에 1000개 중소 기업 '노크'", 전자신문](https://www.etnews.com/20221104000048)]{.aside}
네이버는 '클로바 스튜디오'를 다양한 스타트업이 활용하여 서비스를 출시하고 있다.
- 임플로이랩스[잡 브레인(Job Brain)](https://user.jobbrain.co.kr/): AI 자소서 생성 기능에 적용, 완성도 높은 자소소
- 앱플랫폼 [라이팅젤](https://www.tinytingel.ai/): 대입 취업 자소서 자동왕성 기능에 적용
- 아스타 컴퍼니 [모카](https://www.moducopy.site/): 상품언어, 광고 헤드라인, 세일즈 카피 생성 기능에 활용
- 뤼튼테크놀로지 [뤼튼](https://wrtn.ai/): 광고카피, 제품소개 문구 등 AI 카피라이팅 서비스에 활용
- 유니트컴즈 [킵그로우](https://app.keepgrow.com/): 고객사 인스타그램에 게시물을 주기적으로 포스팅해주는 기능에 적용
:::
```{mermaid}
graph TD
A["대한민국"] --> B(("네이버"))
B ----> E[잡브레인]
B ----> H[라이팅젤]
B --> C[모카]
B --> D[뤼튼]
B --> F[킵그로우]
style A fill:#FF6655AA
style B fill:#88ffFF
```