Skip to content

Commit bc49fe6

Browse files
committed
init
1 parent 38ef724 commit bc49fe6

3 files changed

Lines changed: 112 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
### 0. LLM Model Download
2+
3+
### 1. Docker κ°œλ… 및 ν•„μš”μ„± (15λΆ„)
4+
5+
- μ»¨ν…Œμ΄λ„ˆμ™€ μ΄λ―Έμ§€μ˜ κ°œλ…
6+
- Dockerκ°€ μ™œ ν•„μš”ν•œκ°€ (λΆ€μ œ : μ €λŠ” 잘 λ˜λŠ”λ°μš”?) (ν™˜κ²½ μž¬ν˜„, 배포 νŽΈμ˜μ„± λ“±)
7+
8+
### 2. Docker κΈ°λ³Έ λͺ…λ Ήμ–΄ μ‹€μŠ΅ (15λΆ„)
9+
10+
- κ°„λ‹¨ν•œ μ»€μŠ€ν…€ μ»¨ν…Œμ΄λ„ˆ 제곡 (pytorch example)
11+
- `docke build & run` , `ps`, `exec`, `logs` λ“±
12+
- μ»¨ν…Œμ΄λ„ˆ μƒνƒœ 확인 및 μ§„μž… μ‹€μŠ΅
13+
14+
### 3. Docker compose (30λΆ„)
15+
16+
- Docker Compose κ°œλ… μ†Œκ°œ
17+
- 볡수 μ»¨ν…Œμ΄λ„ˆλ₯Ό ν•˜λ‚˜μ˜ ꡬ성 파일둜 μ •μ˜
18+
- `docker run`을 λ°˜λ³΅ν•˜μ§€ μ•Šμ•„λ„ 됨
19+
- `docker-compose.yaml` ꡬ쑰 μ„€λͺ…
20+
- `services`, `volumes`, `ports`, `depends_on` λ“± ν•„μˆ˜ ν•„λ“œ
21+
- κ°„λ‹¨ν•œ 예제 μ‹€μŠ΅
22+
- 예: nginx + html μ„œλ²„, λ˜λŠ” redis + flask λ“±
23+
- λͺ…λ Ήμ–΄ μ‹€μŠ΅
24+
- `docker compose up`, `down`, `ps`, `logs`, `restart` λ“±
25+
- 정리: 단일 λͺ…λ ΉμœΌλ‘œ μ—¬λŸ¬ μ»¨ν…Œμ΄λ„ˆ ꡬ성 및 μ‹€ν–‰
26+
27+
### 4. Ollama μ‹€ν–‰ (Docker μ‚¬μš©) (20λΆ„)
28+
29+
- `docker run`으둜 Ollama μ‹€ν–‰
30+
- 둜컬 LLM API 호좜
31+
32+
### 5. Web UI μ‹€ν–‰ (15λΆ„)
33+
34+
- Open WebUI μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰
35+
- λΈŒλΌμš°μ €μ—μ„œ 둜컬 ChatGPT ν™˜κ²½ 접속
36+
37+
### 6. Docker Compose둜 톡합 ꡬ성 (30λΆ„)
38+
39+
- `docker-compose.yaml` μž‘μ„±
40+
- Ollama + WebUIλ₯Ό ν•¨κ»˜ μ‹€ν–‰
41+
- ꡬ성 이해 및 λͺ…λ Ήμ–΄ 정리
42+
43+
### 7. Q&A
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Pytorch example
2+
3+
## pytorch μ˜ˆμ‹œ μ½”λ“œ μ‹€ν–‰μ‹œμΌœλ³΄κΈ°
4+
μ•„λž˜ 예제 μ½”λ“œλ₯Ό ν˜„μž¬ ν™˜κ²½μ—μ„œ μ‹€ν–‰μ‹œμΌœλ΄…μ‹œλ‹€.
5+
6+
```python
7+
# -*- coding: utf-8 -*-
8+
import numpy as np
9+
import math
10+
11+
# λ¬΄μž‘μœ„λ‘œ μž…λ ₯κ³Ό 좜λ ₯ 데이터λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€
12+
x = np.linspace(-math.pi, math.pi, 2000)
13+
y = np.sin(x)
14+
15+
# λ¬΄μž‘μœ„λ‘œ κ°€μ€‘μΉ˜λ₯Ό μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€
16+
a = np.random.randn()
17+
b = np.random.randn()
18+
c = np.random.randn()
19+
d = np.random.randn()
20+
21+
learning_rate = 1e-6
22+
for t in range(2000):
23+
# μˆœμ „νŒŒ 단계: μ˜ˆμΈ‘κ°’ yλ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€
24+
# y = a + b x + c x^2 + d x^3
25+
y_pred = a + b * x + c * x ** 2 + d * x ** 3
26+
27+
# 손싀(loss)을 κ³„μ‚°ν•˜κ³  좜λ ₯ν•©λ‹ˆλ‹€
28+
loss = np.square(y_pred - y).sum()
29+
if t % 100 == 99:
30+
print(t, loss)
31+
32+
# 손싀에 λ”°λ₯Έ a, b, c, d의 변화도(gradient)λ₯Ό κ³„μ‚°ν•˜κ³  μ—­μ „νŒŒν•©λ‹ˆλ‹€.
33+
grad_y_pred = 2.0 * (y_pred - y)
34+
grad_a = grad_y_pred.sum()
35+
grad_b = (grad_y_pred * x).sum()
36+
grad_c = (grad_y_pred * x ** 2).sum()
37+
grad_d = (grad_y_pred * x ** 3).sum()
38+
39+
# κ°€μ€‘μΉ˜λ₯Ό κ°±μ‹ ν•©λ‹ˆλ‹€.
40+
a -= learning_rate * grad_a
41+
b -= learning_rate * grad_b
42+
c -= learning_rate * grad_c
43+
d -= learning_rate * grad_d
44+
45+
print(f'Result: y = {a} + {b} x + {c} x^2 + {d} x^3')
46+
```
47+
48+
## μ˜ˆμƒλ˜λŠ” κ²°κ³Ό
49+
50+
51+
이렇듯
52+
53+
54+
### Ref.
55+
PyTorch Tutorials β€œPyTorch with Examples”, https://tutorials.pytorch.kr/beginner/pytorch_with_examples.html
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## Dockerλž€?
2+
3+
DockerλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발, 배포 및 싀행을 μœ„ν•œ κ°œλ°©ν˜• ν”Œλž«νΌμž…λ‹ˆλ‹€. Dockerλ₯Ό μ‚¬μš©ν•˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 인프라λ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‹ μ†ν•˜κ²Œ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. Dockerλ₯Ό μ‚¬μš©ν•˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΄€λ¦¬ν•˜λŠ” 것과 같은 λ°©μ‹μœΌλ‘œ 인프라λ₯Ό 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. Docker의 μ½”λ“œ 배포, ν…ŒμŠ€νŠΈ 및 배포 방법둠을 ν™œμš©ν•˜λ©΄ μ½”λ“œ μž‘μ„±κ³Ό ν”„λ‘œλ•μ…˜ μ‹€ν–‰ κ°„μ˜ μ§€μ—° μ‹œκ°„μ„ 크게 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.
4+
5+
6+
## Docker ν”Œλž«νΌ
7+
DockerλŠ” **μ»¨ν…Œμ΄λ„ˆ**라고 λΆˆλ¦¬λŠ” λŠμŠ¨ν•˜κ²Œ 격리된 ν™˜κ²½μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ νŒ¨ν‚€μ§•ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 격리와 λ³΄μ•ˆ 덕뢄에 ν•˜λ‚˜μ˜ ν˜ΈμŠ€νŠΈμ—μ„œ μ—¬λŸ¬ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ™μ‹œμ— μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ»¨ν…Œμ΄λ„ˆλŠ” κ²½λŸ‰μ΄λ©° 싀행에 ν•„μš”ν•œ λͺ¨λ“  것을 ν¬ν•¨ν•˜λ―€λ‘œ ν˜ΈμŠ€νŠΈμ— 무엇이 μ„€μΉ˜λ˜μ–΄ μžˆλ“  관계없이 λ™μΌν•˜κ²Œ λ™μž‘ν•©λ‹ˆλ‹€. μ»¨ν…Œμ΄λ„ˆλ₯Ό λ™λ£Œμ™€ μ‰½κ²Œ κ³΅μœ ν•  수 있고, κ³΅μœ λ°›μ€ μ‚¬λžŒλ„ λ™μΌν•˜κ²Œ λ™μž‘ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό 보μž₯λ°›μŠ΅λ‹ˆλ‹€.
8+
9+
DockerλŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 라이프사이클을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 도ꡬ와 ν”Œλž«νΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€:
10+
1. μ»¨ν…Œμ΄λ„ˆλ₯Ό μ΄μš©ν•΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό ν•„μš”ν•œ ꡬ성 μš”μ†Œλ₯Ό κ°œλ°œν•©λ‹ˆλ‹€.
11+
2. μ»¨ν…Œμ΄λ„ˆλ₯Ό ν•˜λ‚˜μ˜ λ‹¨μœ„(unit)둜 μ‚Όμ•„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬Β·ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€.
12+
3. μ€€λΉ„κ°€ 되면, μ»¨ν…Œμ΄λ„ˆ λ˜λŠ” μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜λœ μ„œλΉ„μŠ€ ν˜•νƒœλ‘œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— λ°°ν¬ν•©λ‹ˆλ‹€.
13+
- 둜컬 데이터센터, 퍼블릭 ν΄λΌμš°λ“œ, ν˜Ήμ€ ν•˜μ΄λΈŒλ¦¬λ“œ ν™˜κ²½ μ–΄λ””μ—μ„œλ‚˜ λ™μΌν•˜κ²Œ λ™μž‘ν•©λ‹ˆλ‹€.
14+

0 commit comments

Comments
Β (0)