네트워크와 IP 주소
·
[CS] - Network
개요네트워크는 두 대 이상의 컴퓨터(혹은 디바이스, 논리적 구성요소)로 구성된 통신망으로 정의할 수 있다. 디바이스는 주변에서 흔히 볼 수 있는 전자 기기가 될 수도 있고, 네트워크 장비(e.g. 공유기, 라우터, 스위치 ..)가 될 수도 있다. 우리가 알고 있는 인터넷은 전세계에 공유되고 있는 네트워크로, ISP(Internet Service Provider)에 의해 제공된다. 한국에서 ISP는 대표적으로 3사 통신사가 있겠다. (현 시점에서 일론 머스크 행님의 스타링크가 위협할 수 있는 시장이 열릴수도 있겠지만..) IP 주소란 무엇일까?디바이스간 통신은 물리적 인터페이스(하드웨어 - e.g. 어댑터, 케이블 등..)을 통해 이루어질 수도 있고, 소프트웨어 및 개념 모델이 적용된 논리적 네트워크를 통..
2025-05-27 회고록
·
회고록
티스토리 블로그에 개인적인 글을 정말 오랜만에 적어보는 것 같다. 이번 직장을 다니면서 거의 티스토리는 방치되다시피 관리했는데, 오랜만에 들어와서 예전에 싸지른 글들을 보니 정말 성의도 없고 논리나 일관성이 없어보였다. 요즘은 그냥 이 부끄러운 글들을 다시 정돈하고 지울건 지우고 있다. (일종의 리팩터링) 다시 예전 글들을 되짚어보면서, 이번 회고록은 근 2년간 있었던 일들을 되돌아보려고 한다. 2023년 중순에 인공지능 음악 생성 스타트업에 NLP 리서처로 입사를 하게되었다. 음악 회사에 왠 NLP 인가 싶겠지만, 자연어 처리 모델을 통해 음악의 시퀀스 데이터를 생성하는 방식이라 가능했다. 하지만, 이미 각 리서처들은 자신의 담당 모델이 있었고, 음악 문외한인 나는 도메인에 잘 적응하지 못했다. 최대한..
Harbor 레지스트리 구성하기 (feat. Helm Chart 연동)
·
[DevOps] - Kubernetes
개요클라우드 혹은 퍼블릭 이미지 레지스트리로의 도커 이미지 형상 관리는 네트워크 비용(혹은 기타 이미지 저장 비용)이 청구되기 때문에 프라이빗 레지스트리를 운영하는 사례가 있다. 물론 반드시 비용뿐만 아니라 보안을 위해서라도 온프레미스 환경에서 관리하기 위한 경우도 포함이다. (필자는 저번에 구현한 라즈베리 파이 쿠버네티스 클러스터에서 운영중..) 본 포스팅에서는 OCI (Open Container Initiative) 레지스트리인 Harbor의 배포 및 도커 레지스트리로써의 사용법을 공유한다. 기본적으로 OCI 프로토콜을 따르기 때문에 Helm Chart 레지스트리로써도 활용 가능하다. Harbor Helm Chart 구성 과정# Bitnami Helm Chart Repository 등록$ helm..
SSL/TLS 인증서
·
[CS] - Network
개요이전에 구현한 라즈베리 파이 클러스터에서 Harbor를 배포하는 과정중에 인증서 관련 이슈가 있었다.. Harbor Helm Chart를 배포하고나면 (로드밸런서 장비가 없기 때문에 MetalLB로 Private IP 대역중 하나의 주소를 LoadBalancer의 External IP로 할당해주고 있는데) Nginx의 LoadBalancer 타입의 Service로 브라우저에서 접속은 가능하나, docker 명령어를 통해 로그인 및 이미지를 푸시하는 과정에서 인증서 이슈가 발생했다..사실 솔직하게 얘기하면 HTTPS나 TLS에 관련된 내용을 대강 통신중에 암호화하는 정도로만 이해를 했지, 실제로 딥다이브를 해본적이 없어서 정리해보려고 한다. 쿠버네티스에서 인증체계 관련 내용도 볼때 인증기관(CA), X..
Istio 톺아보기 #2 - 트래픽 관리 관련 CRD
·
[DevOps] - Kubernetes
https://dev-ryuon.tistory.com/122 Istio 톺아보기 #1 - 개요서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직dev-ryuon.tistory.comIstio나 서비스 메쉬가 처음이신 분은 이전 게시글을 읽고오시면 이해하기 쉬울거에요! 개요Istio는 트래픽 라우팅 규칙을 통해 서비스 간의 트래픽 흐름을 쉽게 제어할 수 있다. 제어할 수 있는 기능으로는 아래와 같은 것들이 있다.Circuit Breaker : 서킷브레이커(회로 차단기)는 서비스 장애 전파와 과부하를 방지하기 위한 패턴이다. DestinationRule CRD에서 설정할 ..
Istio 톺아보기 #1 - 개요
·
[DevOps] - Kubernetes
서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직을 수정하지 않고도 트래픽을 컨트롤할 수 있다.트래픽을 제어할 수 있는 기능으로는 Service Discovery, Load Balacning, Failure Recovery, Monitoring, Security 등을 지원한다.각 서비스마다 사이드카 컨테이너로 경량 프록시(e.g. Envoy)가 주입되어 프록시간 통신을 이루도록 메쉬 네트워크가 구성된다. 그리고, 이러한 메쉬 네트워크의 구성요소인 데이터 플레인을 관려하는 컨트롤 플레인도 존재한다. (분산 애플리케이션의 특징이다.) Istio란?Istio는 쿠버네티스..
라즈베리 파이로 홈 쿠버네티스 클러스터 구축 매뉴얼
·
[DevOps] - Kubernetes
목차1. 준비물2. 운영체제 설치3. 홈 네트워크 세팅4. 라즈베리 파이에 고정 IP 할당5. 외부 접속 세팅 (SSH + VPN)6. 쿠버네티스 클러스터 구축7. 스토리지 세팅 1. 준비물Computing : 라즈베리파이 5 Raspberry pi 5 Model 8GB * 4EASwitch : 넷기어 GS108PP 8포트 기가비트 POE 스위칭 허브 (123W)SSD : 삼성전자 870 EVO SSD, MZ-77E1T0, 1TBMicro SD : 삼성전자 MicroSD 카드 PRO PLUS 128GB MB-MD 128SA/KR * 4EASSD SATA 케이블 : 엠비에프 SATA to USB 컨버터Micro SD 리더기 : 블레이즈 마이크로 SD 카드리더기(중요) 어댑터 : 라즈베리파이5 전용 어답터 ..
AWS SageMaker HyperPod (w. EKS) 도입기
·
[DevOps] - AWS
도입 배경딥러닝 모델을 학습하는 과정을 온프레미스 환경에서 수행하고 있었다. (온프레미스 환경의 GPU 워크로드는 쿠버네티스로 연동되어 있는 상태)모델의 크기 및 데이터 볼륨이 증가함에 따라 FSDP, DDP와 같은 분산 학습 기법을 활용했음.멀티 노드 분산 학습과정을 위해 Kubeflow의 Training Operator를 활용했지만, 인프라 관리 비용과 네트워크 병목이 발생했다.Kustomize, Istio와 같은 스택들을 관리하는 데에서 오는 부담감InfiniBand가 아닌 일반 이더넷 기반에서 NCCL 백엔드의 TCP 소켓 통신에 대한 대역폭 병목적합한 서비스를 찾던 와중, Slurm과 같은 HPC 플랫폼과 Kubernetes를 오케스트레이터로 지원하는 SageMaker의 HyperPod를 발견했..
쿠버네티스 환경의 서비스 디스커버리
·
[DevOps] - Kubernetes
서비스의 규모가 커질수록 모놀리식 아키텍처로 관리하는 것은 점점 한계가 존재한다. 도메인 혹은 기능간의 의존성이 생기고 이를 서버 혹은 컨테이너 단위로 분리해야 의존성을 제거할 수 있다. 이러한 형태를 MSA(Micro Service Architecture)라고 한다. 그러나, MSA는 사실 이상적인 형태로써, DDD(Domain-Driven Development)가 제대로 수행되어야 실질적으로 서비스 간의 의존성을 깨끗하게 정리할 수 있다. 그리고, 아무리 MSA라 하더라도, 다양한 요소로 인해 전반적인 아키텍처는 훨씬 복잡해질 수 있다. 예를 들면, 로드 밸런싱(Load Balancing)의 문제이다. 만약 단일 서버 혹은 컨테이너가 비동기적으로 오는 클라이언트의 무수한 요청을 받기 위해 노력하고 있..
옵시디언 (Obsidian) 마이그레이션
·
생산성
오늘은 옵시디언이라는 워크스페이스에 대해서 간단하게 알아보고, 노션에서 마이그레이션하는 방법에 대해 알아보겠습니다. ㅎㅎ 사실 많은 고민을 했습니다. 굳이 노션을 잘 사용하고 있는데, 옵시디언으로 갈아타야 하나..? 라는 생각이 들 때, 다음과 같은 내용이 저를 확 끌어당긴 것 같아요. 바로 옵시디언의 꽃인 그래프 뷰(Graph View)인데요. 저 같은 경우에는 노션에 방대한 양의 페이지가 쌓이면서 나름 hierarchy하게 구조를 가져간다고 생각했지만, 실제로는 해당 페이지의 depth까지 타고 들어가야 파악할 수 있다는 단점이 있었어요. 그래서 처음엔 대충 사람들이 하라는대로 마이그레이션 하면 되겠지~ 라는 안일한 마인드로 하다가 여러 삽질 끝에 성공적으로 마이그레이션한 케이스를 공유하고자 합니다..
2023-06-30 회고록
·
회고록
안녕하세요. 저번에는 우울한 내용으로 회고록을 가져왔다면, 이번에는 다소 긍정적인 내용으로 소식을 전하고자 합니다. 앞서, A 스타트업으로부터 경영 악화로 인해 해고당하며, 밀린 월급에 대한 처리를 하고, 이직을 위해 이력서를 다시 작성하고, 여러 기업에 지원서를 내미는 상황이었습니다. 처음에는 아는 형과 호기롭게 규모가 큰 기업에 이력서들을 내밀었습니다. 저는 데이터 사이언티스트로써 모델을 연구하고, 형은 A 스타트업에서 MLOps 포지션으로 모델을 배포해주기에 같은 회사에 입사하면 서로 좋은 시너지가 날 것이라 생각해서 같이 지원을 했습니다. 하지만, 보기 좋게 대기업들에서는 서류 광탈 메일만 날라오고 저희는 점점 말수가 적어져갔습니다. 결국 같이 지원하기 시작한지 2주쯤 되자 각자도생으로 서로 언젠..
비선형성 (Nonlinearity)
·
[AI] - Machine Learning
P.S. 안녕하세요. 해당 딥러닝 카테고리는 이직을 위해 기술면접을 보던 도중 딥러닝의 기본 요소들에 대해 구체적으로 말할 수 있을 정도가 아니라고 생각이 들어서 다시한번 복습하기 위해 만들었습니다. 딥러닝에 대한 배경지식이 있다는 가정하에 정리를 할 예정입니다. 비선형성을 딥러닝 사용하는 직관적인 이유딥러닝 모델에 비선형성을 부여하는 것은 매우 당연한 일이다.어떻게 보면 비선형 함수를 누적해서 부여하는 행위 자체가 딥러닝이기도 하다.선형 변환(Linear Transfomation)의 개념을 안다면, 단순 직교 좌표계 변환만으로는 복잡한 고차원적인 문제를 해결할 수 없다는걸 알 수 있다.그래서, 비선형 변환을 통해 직교 좌표계 공간을 곡선의 형태로 변환하여 보다 복잡한 문제를 해결하기 위함이다. 위 그..
베이지안 이론 (Bayesian Theory)
·
[Mathematics] - Statistical
빈도 확률 (Frequentist Probability) VS 베이지안 확률 (Bayesian Probability)빈도 확률 (Frequentist Probability)동전의 앞면이 나올 확률은 몇일지 궁금하다고 가정한다.10번을 던져서 4번이 앞면이 나온경우 0.4의 확률을 가지고더 높은 신뢰도를 위해 100번을 던져서 45번이 앞면이 나온 경우 0.45로 생각할 수 있다.이러한 수행을 반복하여 빈도(Frequency)를 측정하여 빈도 확률을 계산할 수 있다.베이지안 확률 (Bayesian Probability)하지만, 현실에서는 동전을 던지는 것만큼 간단하게 수행할 수 없는 현상들이 존재한다.이렇게 일어나지 않은 사건에 대한 확률을 추정하는 것이 베이지안 확률이다. 베이즈 정리 (Bayesian..
기초통계 - 확률, 우도, 조건부확률
·
[Mathematics] - Statistical
P.S. 해당 블로그에서 다룰 통계 개념은 딥러닝을 쉽게 이해기 위한 개념들을 중심으로 정리하려고 합니다. 생성(Generative) 분야는 특정 확률 분포 공간에서 가장 그럴듯한 데이터를 샘플링하기 때문에 확률과 통계 개념이 중요합니다. 물론 꼭 생성 분야가 아니더라도 다양한 도메인에서 적용될 수 있습니다. 모수 (Parameter)모수란 특정 확률 분포에 대한 특성값을 의미한다.위와 같은 4개의 확률 분포는 동일한 정규 분포의 형태를 띄더라도, 서로 다른 모수(평균 $\mu$와 분산 $\sigma^2$)에 따라 다른 형태를 띄고 있음을 알 수 있다.일반적으로 모집단을 전수조사할 수 없기 때문에 우리는 표본 추출(Sampling)을 통해 표본 집단에 대한 모수로 모집단의 모수를 추정한다. 확률 (Pr..
Attention Is All You Need
·
논문
P.S. 대생성의 시대에서 Diffusion이나 GPT류들이 판치고 있는 시대에.. 이제서야 이 논문을 다루게 되네요.. ㅋ.ㅋ.ㅋ 많이 늦은 감이 없지않아 있지만, 복습할 겸 2018년 구글에서 발표한 Transformer에 대해 최대한 쉽게 정리해보려 합니다. 그래도 기본적인 RNN과 CNN에 대해서 공부하시고 오셔야 아래 내용을 이해할 수 있습니다! Abstract기존의 모델은 encoder와 decoder 구조로 되어 있으며, 해당 구조들은 RNN 혹은 CNN으로 구성되어 있다. 그리고, Attention 매커니즘을 적용하여 이들의 성능을 좀더 끌어올렸다. 본 논문에는 RNN과 CNN을 배제한 온전히 Attention 매커니즘으로만 구성되어 있는 새로운 아키텍처 Transformer를 제안하고자 ..
2023-06-07 회고록
·
회고록
안녕하세요. 근 1년간 블로그 활동을 하지않다가 이렇게 갑작스럽게 복귀하게 되었네요. (사실 그동안 많은 내용들을 블로그가 아닌 노션에 정리하느라 블로그에 작성할 것들도 많이 쌓인 상태..ㅠㅠ) 그동안 있었던 일들을 기록할겸, 생각을 정리할겸, 누군가에게는 도움이 되길 바라며 두서없이 긴 글을 적습니다.. 블로그 활동을 할 당시, 세상 물정 모르고 꿈과 열정이 넘쳤던 시기라고 생각합니다. 항상 그래왔던 것처럼 앞만 보고 달리며, 나만 잘하면 된다 라는 마인드로 살아왔던것 같아요. 그래서 일반 개발 직군의 직장과 함께 인공지능 특수대학원을 같이 병행하고, 졸업 논문도 쓰고, 추가로 국내 학회에서 논문 하나를 더 투고 했네요. 여차저차 아는 형의 소개로 A라는 인공지능 스타트업에 입사하게 되었습니다. 따..
Deep Residual Learning for Image Recognition
·
논문
Abstract신경망의 깊이가 깊어질수록 학습에 어려움이 존재한다. 해당 논문에서는 residual learning framework (잔차 학습 프레임워크)를 통해 신경망이 깊어지더라도 학습을 쉽게 할 수 있음을 제안한다. 해당 방법은 기존의 unreferenced functions 대신 인풋 레이어를 참조하는 (referenced) residual function을 학습하도록 명시적으로 수식을 다시 정의한다. (이 부분에 대해서는 뒷 부분에서 그림을 통해 다시 쉽게 설명할 것이다.) 이 학습방법의 효과로 VGG-19 네트워크를 8배 더욱 깊게 레이어를 쌓았음에도 불구하고 계산 복잡도가 더 낮았다. residual 네트워크들의 집합(앙상블)은 결국에는 ImageNet 데이터 셋에 대해 3.57%의 에러..
Going deeper with convolutions
·
논문
Prerequisitehttps://dev-ryuon.tistory.com/106?category=1009001 # 1. Network In NetworkAbstract 본 논문에서는 수용장에서의 로컬 패치에 대한 모델의 분류 성능을 강화하기 위해 "Network In Network"라는 구조를 제안한다. 전통적인 컨볼루션 레이어는 입력을 스캔하기 위한 비선형 활성dev-ryuon.tistory.com AbstractGoogle에서 설계한 GoogLeNet은 22개의 레이어로 구성되어 있다. 이 아키텍처의 특징은 네트워크 내부의 컴퓨팅 자원의 활용도를 개선한 것이다. (네트워크의 깊이와 너비를 증가시키면서도 연산량을 유지했다는 점) IntroductionGoogLeNet은 AlexNet보다 12배 적은..
Network In Network
·
논문
Abstract본 논문에서는 수용장에서의 로컬 패치에 대한 모델의 분류 성능을 강화하기 위해 "Network In Network"라는 구조를 제안한다. 전통적인 컨볼루션 레이어는 입력을 스캔하기 위한 비선형 활성화 함수가 뒤따르는 선형 필터를 사용한다. 하지만, 수용장(커널)에서의 데이터의 추상화를 위해서 더 복잡한 구조인 micro nerual network를 설계했다. micro neural network는 MLP(multilayer perceptron)이 포함되어 있다. 그리고, 전통적은 FC 레이어 대신에 해석과 오버피팅 방지가 쉬운 GAP(global average pooling)을 활용했다. IntroductionCNN에서의 컨볼루션 필터는 GLM(generalized linear model)..
ImageNet Classification with Deep ConvolutionalNeural Networks
·
논문
PrerequisiteCNN (Convolutional Neural Network)https://dev-ryuon.tistory.com/39?category=942362 # 1. Convolution Neural Network (CNN) - Theory이번 포스트에서는 합성곱(Convolution) 연산을 기반으로 이미지에서 특징을 검출하는데에 적합한 신경망인 CNN에 대해 알아본다. 먼저 CNN의 전체적인 구조에 대해 살펴보자. Input으로 이미지가 들dev-ryuon.tistory.comsaturating vs non-saturatingsaturate는 사전적으로 '포화하다'라는 의미를 지니고 있다. saturing은 특정 구간에 도달하면 수렴하는 함수를 의미한다. 반대로 non-saturatin..