- ์ธ์ด์ ํต๊ณ ์ ๋ณด๋ฅผ ๋ด๋ด ๋คํธ์ํฌ๋ก ์ธ์ฝ๋ฉ ํ๋ ๊ฒ
- ๋ฐ๋ผ์ ์ฌ์ ํ์ต ๋จ๊ณ์์ ์ธ์ด์ ํต๊ณ ์ง์์ ํ์ต์ํค๋ ๊ฒ
- next token prediction (or language modeling)
- ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ฐ๋ณต์ํค๋ ๊ฒ
- ์ธ์ด์ ํต๊ณ ์ง์์ ์ฃผ์ ํ๋ ํ์์
- ์ฌ๋์ด ์์ฒญํ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ ๊ฒ์ด pre training ๋๋ฌธ
๊ณ ๋ฑํ๊ต ๊ณผ์ ์์ ๋ฐฐ์ฐ๋ ํ๊ท ๊ฐ ์ ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
"ํจ์ f๊ฐ ๋ซํ๊ตฌ๊ฐ [a, b]์์ ์ฐ์์ด๊ณ ์ด๋ฆฐ๊ตฌ๊ฐ (a, b)์์ ๋ฏธ๋ถ๊ฐ๋ฅํ๋ฉด, f(b)-f(a)=f '(c)(b-a)๋ฅผ ๋ง์กฑํ๋ ์ค์ c๊ฐ ์ด๋ฆฐ๊ตฌ๊ฐ (a, b)์ ์กด์ฌํ๋ค."
ํ๊ท ๊ฐ ์ ๋ฆฌ๋ ์ฃผ์ด์ง ๊ตฌ๊ฐ์ ํ๊ท ๋ณํ์จ๊ณผ ์ ์ ์ ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ์์ง๋ ์ด๋ค ์ ์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ๋งํ๊ณ ์๋ค. ๋ฐ๋ฉด์, ๋ค์๊ณผ ๊ฐ์ ๋ช ์ ๋ ์ด๋จ๊น?
"ํจ์ f๊ฐ ๋ซํ๊ตฌ๊ฐ [a, b]์์ ์ฐ์์ด๊ณ ์ด๋ฆฐ๊ตฌ๊ฐ (a, b)์์ ๋ฏธ๋ถ๊ฐ๋ฅํ๋ฉด, ์ด๋ฆฐ๊ตฌ๊ฐ (a, b)์ ์ํ๋ ์์์ c์ ๋ํ์ฌ f(s)-f(t)=f '(c)(s-t), s<c<t๋ฅผ ๋ง์กฑํ๋ ์ค์ s, t๊ฐ ์ด๋ฆฐ๊ตฌ๊ฐ (a, b)์ ์กด์ฌํ๋ค."
ํ์ด์ฌ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ค. ๋น์ฐํ๊ฒ ๋ค๋ฆด ์ ์์ผ๋ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ผ๊ณ ํ๋ ค ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ธ๊ฑด ์๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฐ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด์ง๋ง, ์์ ์๋ฃํ (Primitive Type)์ ์๋๋ค. ๊ทธ๋ฌ๋ ํ์ด์ฌ์ ์ซ์๋ ๊ฐ์ฒด๋ค.
>>> 42..__add__(3) # ์ ์ ๋๊ฐ ๋ถ์ด์ผ ํธ์ถ ๊ฐ๋ฅํ๋ค 45.0
ํ์ด์ฌ์ ๊ฐ์ฒด๋ย PyObject๋ก ์ด๋ค์ ธ ์๋ค.ย PyObject๋ย Includeย ํด๋์ย object.h์ ๋ค์๊ณผ ๊ฐ์ดย ์ ์ย ๋์ด ์๋ค.
๋ค์๊ณผ ๊ฐ์ PDO Exception ์๋ฌ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์.
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
RDS Host ์ด๋ฆ์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.
๊ฐ์ฅ ์ฝ๊ฒ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ย /etc/hosts์ ์์ดํผ์ ํด๋น ํธ์คํธ๋ฅผ ์ง์ ์
๋ ฅํ๋ฉด ํด๊ฒฐ์ด ๋์ง๋ง, ์ด๊ฑฐ๋ ํน์ ๋๋ฉ์ธ์ ๋ชป ์ฐพ๋ ๋ฌธ์ ๊ฐ ์๋๋ผ DNS ์กฐํ๋ฅผ ๋ชปํ๋ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ์ ์ปดํจํฐ๋ ๋ค์ ๋ฐฉ๋ฒ์ ํตํด ๋๋ฉ์ธ์ ์กฐํํ๋ค.
| # coding=utf-8 | |
| # Copyright 2023 The HuggingFace Inc. team. All rights reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software |
- ์ง์ค๊ณผ ์ธก์ - ๋ฌ์ฑํ๊ณ ์ ํ๋ ๊ฒฐ๊ณผ์ ๋ํด ๋ช ํํด์ผ ํ๋ฉฐ, ์งํ ์ํฉ์ ์ฒด๊ณ์ ์ผ๋ก ์ธก์ ํด์ผ ํฉ๋๋ค.
- ์ด๊ธฐ์ ์ํฅ๋ ฅ ์๋ ์ฌ๋์ด ์ ์ง๋ฅผ ์ ์๋ ์ผ๋ฐ์ ์ธ ์ค์๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ชฉํ๊ฐ ๋ชจํธํ๊ณ ์ค๋๋ ฅ์ด ์์ (์: "์ง์๋ค์๊ฒ ๊ถํ ๋ถ์ฌ", "ํ ๊ตฌ์ถ")
- ์ธก์ ์ด ๋ถ์ถฉ๋ถํ๊ฑฐ๋ ์ ํ ์์
- ์๋ชป๋ ์ธก์ - ์๋ชป๋ ๋ณ์๋ฅผ ์ธก์ ํ์ฌ ๋ถ์ ์ ํ ํ๋์ ์ ๋ํจ.
- ์๋ฅผ ๋ค์ด, ํ์ฌ์์ ํ์ ์ ๋๋ฆฌ๋ ๊ฒ์ด ๋ชฉํ๋ผ๋ฉด, ๋ถ๊ธฐ๋ณ๋ก ์๋ก์ด ์ ํ ์ ์ ์๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด ๋น์ฅ ๋์ ๋ณด์ด๋ ๋ฐฉ๋ฒ์ด๊ฒ ์ผ๋
- ํ์ง๋ง ์์ด๋์ด ๋ถ์กฑ์ ์์ธ์ ์ดํดํ๊ธฐ ์ํด ์ง์๋ค์ ํผ๋๋ฐฑ์ ๋ฐ์๋ณด๋ฉด, ์ฌ๋๋ค์ด ๋น์์์ด๋ ์ฒ๋ฒ์ ๋๋ ค์ํ์ฌ ์๊ฒฌ์ ์ ์ํ์ง ์๋๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ ๊ฒ
-
WSGI์ ASGI ํ๊ฒฝ์์์
threading.local๊ณผcontextvars์ ์ฌ์ฉ ๋ฐ ์ฐจ์ด์ -
WSGI ํ๊ฒฝ์์๋ ๊ฐ ์์ฒญ๋ง๋ค ๋ณ๊ฐ์ ์ค๋ ๋๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์
threading.local์ ์ฌ์ฉํด ์ค๋ ๋๋ณ๋ก ๋ ๋ฆฝ๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๊ด๋ฆฌํ ์ ์์. ํ์ง๋ง, ASGI ํ๊ฒฝ์์๋ ํ๋์ ์ค๋ ๋ ์์์ ์ฌ๋ฌ ํ์คํฌ๊ฐ ๋์์ ์คํ๋๊ธฐ ๋๋ฌธ์threading.local๋ก๋ ๋ฐ์ดํฐ์ ๊ฒฉ๋ฆฌ๊ฐ ์ด๋ ค์์ง. -
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
contextvars๊ฐ ๋ฑ์ฅํ์.contextvars๋ ๋์์ฑ ์ฝ๋์์ ํ์ฌ ์ปจํ ์คํธ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํจ. ๊ฐ๊ฐ์ ๋น๋๊ธฐ ํ์คํฌ๊ฐ ์์ ๋ง์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ , ์ด ์ปจํ ์คํธ๋ ๋ค๋ฅธ ํ์คํฌ์ ๊ณต์ ๋์ง ์์ ๋ฐ์ดํฐ๊ฐ ์๋ก ์นจํด๋ฐ์ง ์์. -
์๋ ์์ ์ฝ๋๋
contextvars๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ "ํํ์ธ๊ณ"(๋น๋๊ธฐ ํ์คํฌ)์์ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์์. ์ด๋ Python 3.7๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ์ ๋ก, ๋์์ฑ ์ฝ๋์์ ์ปจํ ์คํธ ๊ด๋ฆฌ๋ฅผ ๋์ฑ ์ฝ๊ณ ๋ช ํํ๊ฒ ํ ์ ์๊ฒ ํด์ค.
- Istio๋ ์คํ์์ค ์๋น์ค ๋ฉ์ฌ๋ก, ๋ถ๋ฆฌ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํฌ๋ช ํ๊ฒ ๊ณ์ธตํํ ์ ์๋ค.
- ํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค์ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ์คํ์์ค๊ธฐ๋ ํ๋ค.
- Istio๋ ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํฌ์ ๋ณต์ก์ฑ์ ์ค์ด๊ณ , ๋ถ์ฐ ๋คํธ์ํฌ ํ๊ฒฝ์์ ์ฌ๋ฌ ์ดํ๋ฆฌ์ผ์ด์ ๋ค์ ์ฐ๊ฒฐ์ ์ฝ๊ฒ ์ค์ ํ ์ ์๊ฒ ์ง์ํ๋ค.
- Sidecar ํจํด(Pod ๋ด์ Envoy proxy sidecar๋ก ์กด์ฌ)์ ์ด์ฉํ์ฌ application ์ฝ๋์ ๋ณ๊ฒฝ์์ด ์์ ์๊ฐ VirtualService, DestinationRule์ด๋ผ๋ Custom Resource๋ก ์์ฝ๊ฒ ์ํ๋ ์๋น์ค๋ก ํธ๋ํฝ ์ ์ก์ด ๊ฐ๋ฅ
- k8s๋ก Canary ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํด์ ์ง์ replica ๊ฐ์๋ฅผ ์กฐ์ ํด์ผ ํ์ผ๋, Istio VirtualService์ Weight์ subset์ ํตํด ์ด ๊ณผ์ ์ด Envoy๋ก Header์ Path์ L7 ๋ผ์ฐํ ์ด ๋งค์ฐ ๊ฐ๋จํด์ง
- log, metric, trace๋ฅผ Istio๋ฅผ ํตํด ๋ชจ๋ ์์ง ๊ฐ๋ฅ - Envoy๋ฅผ ํตํด Observability ๊ตฌํ
- MSA ๊ตฌ์กฐ๋ก ์ธํ Man in middle ๊ณต๊ฒฉ๊ณผ manifest ๋ ธ์ถ์ ๋ฆฌ์คํฌ๋ฅผ mTLS๋ก ํต์ ๋ ์ด์ด ๋ณด์ ํฅ์์ํด
https://www.youtube.com/watch?v=xUpi8pXyiyk
- ์๋ผ๋ ์ํ์น ๋ฃจ์ฌ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ฒ์ ํ๋ซํผ, ์ญ์์ธ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ ๊ฒ์์ ๊ฐ๋ฅ
- ์์ธ ํ์ดํ๋ผ์ธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์์ ์ํ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ์๋ฏธ
- ํ์ฌ ๊ตฌ์กฐ ๋ฐ ์ด์: ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ์ ์ฒ๋ฆฌํ ๋ค์ ์์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์น์ง๋ง
- ๊ทธ๋ฌ๋, ์ด ๊ณผ์ ์์ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ ์ฒ๋ฆฌํด์ผ ํ๋ฉฐ, ์ฆ๋ถ ์ฒ๋ฆฌ ์์๋ ๊ฐ ๋ฌธ์์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑํด์ผ ํจ
โข ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ํ์์ ์ด๋ค. ํ์ด์ฌ์์๋ ๋ณ๋ ฌ ์ฐ์ฐ์ ์ํด ์ฌ์ฉํ๋ default ํจํค์ง๋ก multiprocessing์ด ์๋ค. ์ง๊ธ๊น์ง๋ multiprocessing๋ง ์ฌ์ฉํด๋ดค๋๋ฐ, ์ต๊ทผ์ joblib์ ๋ํ์ฌ ์ ํ๊ฒ ๋์ด ๊ฐ๋จํ๊ฒ ๋ฉ๋ชจํ๋ ๊ฒธ ๊ณต์๋ฌธ์๋ฅผ ์ ๋ฆฌํด๋ณด์๋ค. ์ด๋ฒ ๊ฒ์๋ฌผ์์๋ ์ฃผ๋ก Parallel๊ณผ Delayed์ ๋ํ ์ค๋ช ์ ํ๊ณ ์ ํ๋ค.
pip install joblib
# poetry add joblib
โข ์ผ๋ฐ์ ์ธ for loop๋ฅผ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ก ์ ํํด๋ณด์
โข ์๋์ ์์๋ 0์์ 9๊น์ง์ ์๋ฅผ ์ ๊ณฑํ๊ณ ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ ๋จ์ํ for loop์ด๋ค.