전체 글 63

인그레스

개요인그레스(Ingress)는 클러스터 외부에서 내부 포드에 접근할 때 사용하는 방법입니다. 서비스가 L4 영역 통신을 담당한다면, 인그레스는 L7 영역 통신을 담당하여 처리합니다.인그레스인그레스는 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의한 규칙의 모음입니다. HTTP와 HTTPS 경로를 노출하며 인그레스 리소스에 의해 트래픽 라우팅을 정의합니다. 외부에서 서비스로 접근 가능한 URL, 로드밸런서, SSL 인증서 처리, 도메인 기반 가상 호스팅 등을 제공합니다. 인그레스 컨트롤러인그레스 자체가 규칙을 정의한 자원이라면, 실제로 동작시키는 것은 인그레스 컨트롤러(Ingress Controller)입니다. 인그레스 컨트롤러는 인그레스 리소스의 변화를 감지하여 트래픽을 라우팅합니다. 즉..

K8s 2025.04.26

etcd

개요쿠버네티스에서 etcd는 클러스터의 모든 상태(노드, 포드, 서비스 등)와 설정 정보를 저장하는 키-값 저장소입니다. 핵심 데이터 저장소로 사용되기 때문에, 신뢰성과 안정성을 좌우하는 매우 중요한 컴포넌트입니다. 만약 etcd가 유실된다면 컨테이너 뿐만 아니라 쿠버네티스 클러스터가 사용하는 모든 리소스가 영향을 받습니다. RSMetcd는 RSM(Replicated State Machine)기반으로 동작합니다. RSM은 etcd와 같은 분산 시스템에서 동일한 데이터를 다수의 서버에 복제하여 장애시에도 일관성있는 서비스를 제공하는 아키텍처입니다. Backup & Restore장애 및 데이터 손실에 대비해 정기적인 백업을 설정하는 것은 중요합니다. etcdctl 명령어를 사용하여 스냅샷 방식으로 etcd..

K8s 2025.04.25

Tensor Parallelism과 Pipeline Parallelism

개요Tensor Parallelism과 Pipeline Parallelism은 대규모 딥러닝 모델 학습을 위한 상호보완적 병렬화 전략으로, 각각 다른 차원에서 모델을 분할해 처리합니다.Tensor Parallelism (TP)Pipeline Parallelism (PP)대형 텐서 연산 가속화대규모 모델의 메모리 분산텐서/행렬 연산 (레이어 내부)모델 레이어 (레이어 간)레이어 내부 분할 병렬화레이어 간 분할 병렬화 Tensor Parallelism 모델을 여러 GPU에 분산해 학습하는 기법으로, 모델의 텐서(행렬)를 분할해 병렬 처리함으로써 단일 GPU의 메모리 한계를 극복하고 계산 효율성을 높입니다. Weight Matrix를 여러 GPU로 분산해 연산을 한 후 그 결과값을 합치는(Concatenate..

AI & GPU 2025.04.20

MCP

개요MCP(Model Context Protocol)는 AI 모델과 외부 데이터 소스 및 도구를 연결하기 위한 표준화된 통신 프로토콜입니다. AI가 실시간 데이터와 상호작용하고, 다양한 시스템과 통합될 수 있도록 설계되었습니다. Anthropic에서 개발했으며, AI 모델이 더 유용하고 동적으로 작동하도록 돕습니다. MCP는 흔히 USB 포트에 비유됩니다. USB가 다양한 기기를 표준화된 방식으로 컴퓨터에 연결하듯이, MCP는 다양한 데이터 소스를 표준화된 방식으로 AI 모델에 연결합니다. 이를 통해 AI 모델은 실시간 정보와 도구를 쉽게 활용할 수 있습니다. 특징1. 표준화된 연결다양한 데이터 소스와 도구를 하나의 표준 프로토콜로 연결해줍니다. 개발자는 각 데이터 소스마다 별도의 커넥터를 만들 필요 ..

AI & GPU 2025.04.20

K8s 소개

개요리눅스는 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉터리 권한을 제한하는 chroot 등으로 격리 환경을 구성할 수 있습니다. 이러한 리눅스 구성에 디스크 파일 변경 사항을 레이어 형태로 저장하는 파일시스템을 결합한 개념이 바로 컨테이너입니다. 가상 머신과 컨테이너 차이가상 머신과 컨테이너를 비교했을 때, 컨테이너가 구조상 레이어가 더 간단하므로 성능을 높이기 쉽습니다. 컨테이너 생성 과정컨테이너는 Client, Docker Host, Registry 간 상호작용을 통해 생성됩니다.아래 이미지는 Docker 기준으로 컨테이너 생성 과정을 설명합니다.Client: 개발자가 도커 명령어를 입력하는 인터페이스로 Docker Host에 명령 요청Docker Host: 도커 데몬이 실행되는 ..

K8s 2025.04.20

kube-proxy

개요kube-proxy는 클러스터의 각 노드에 실행되는 네트워크 프록시로, K8s의 Service 개념을 실제로 구현하는 핵심 컴포넌트입니다. 클러스터 내부 및 외부에서 포드로의 네트워크 트래픽을 관리하고, 서비스 IP와 실제 포드 IP 간 라우팅을 담당합니다.네트워크 트래픽 프록시 및 로드밸런싱: kube-proxy는 Service로 유입되는 네트워크 요청을 실제 동작 중인 여러 포드로 분산시켜 전달합니다.네트워크 규칙 관리: 각 노드에서 네트워크 규칙을 동적으로 생성 및 관리합니다.Service와 Endpoint 동기화: API Server로부터 Endpoint(포드 IP) 정보를 받아, 변경사항이 생길 때마다 노드의 네트워크 규칙을 실시간으로 갱신합니다. kube-proxy는 동작 방식으로는 세 가..

K8s 2025.04.20

서비스 (Service)

개요쿠버네티스 클러스터에서 컨트롤러를 이용해 포드를 실행한 경우, 포드는 한 장소에서 고정되어 실행되지 않고 클러스터 내부를 옮겨 다니며 실행됩니다. 노드가 옮겨지는 과정에서 포드 IP가 변경되기도 합니다.동적으로 변하는 포드에 접근하기 위해서 사용되는 방법이 바로 쿠버네티스 서비스입니다. 서비스를 사용하면 고정 주소를 이용해 포드에 접근할 수 있습니다.인그레스로도 포드에 접근할 수 있는데 서비스는 주로 L4 영역에서 통신을 할 때 사용하고, 인그레스는 주로 L7 영역에서 통신할 때 사용한다는 차이점이 있습니다. 타입서비스 타입은 크게 네 가지가 있습니다.ClusterIP: 기본 서비스이며 쿠버네티스 클러스터 내부에서만 사용 가능. 클러스터 IP를 이용해 포드에 접근NodePort: 서비스 하나에 모든 ..

K8s 2025.04.20

Out of Vocabulary (OOV) 에러가 발생하면 어떻게 하는가?

개요Q. Out of Vocabulary (OOV) 에러가 발생하면 어떻게 하는가?A. 서브워드 토크나이저를 사용하거나 어휘를 확장합니다. 내용Out of Vocabulary (OOV) 에러는 NLP에서 학습된 어휘(vocabulary)에 포함되지 않은 단어가 입력 데이터에 등장할 때 발생하는 문제를 말합니다. 이는 모델이 학습 중에 본 적 없는 단어를 처리하지 못해 성능 저하나 오류를 일으키는 상황을 의미합니다. OOV 단어는 일반적으로 (unknown) 토큰으로 대체되는데, 이는 문맥 이해를 방해할 수 있습니다. 특히, 이전 단어를 기반으로 다음 단어를 예측하는 작업에서 치명적일 수 있습니다. 예를 들어, 중요한 정보가 OOV로 처리되면 모델의 예측 정확도가 크게 떨어질 수 있습니다 OOV 에러의 ..

Q&A/AI & GPU 2025.04.13

GPU 메모리 부족으로 Out of Memory 에러가 발생하면 어떻게 하는가?

개요Q. GPU 메모리 부족으로 Out of Memory 에러가 발생하면 어떻게 하는가?A. GPU 메모리가 필요한 데이터를 처리하지 못하기 때문에 배치 사이즈를 줄이거나 모델을 축소해야 합니다. 내용GPU 메모리 부족으로 발생하는 Out of Memory (OOM) 에러는 딥러닝 모델을 학습하거나 추론할 때, GPU 메모리(RAM)가 작업에 필요한 데이터를 모두 처리하지 못할 경우 발생합니다. 이는 특히 대규모 데이터와 복잡한 모델을 다룰 때 흔히 나타나는 문제입니다. OOM 에러의 주요 원인은 아래와 같습니다.모델 크기: 모델 파라미터 수가 많거나 복잡한 경우, GPU 메모리 사용량이 증가함배치 사이즈: 한 번에 처리하는 데이터 양이 많을 경우, GPU 메모리가 부족할 수 있음데이터 크기: 고해상도..

Q&A/AI & GPU 2025.04.13

AI 학습에서의 분산 학습

개요LLM과 같은 AI 모델은 수조 개의 파라미터를 포함하며, 이를 학습시키기 위한 막대한 데이터와 연산 능력을 요구합니다. 단일 GPU로 이러한 작업을 처리하기에는 메모리와 계산 능력이 부족합니다. 분산 학습은 대규모 데이터와 복잡한 모델을 처리하기 위해 여러 GPU에 학습 작업을 나누어 수행하는 기술입니다. Model Parallelism과 Data Parallelism을 통해 이러한 문제를 해결하며, 네트워크 성능과 알고리즘 최적화를 통해 효율성을 높입니다. 결국 학습 속도를 높이고, 메모리 한계를 극복하며, 대규모 모델을 효율적으로 학습시킵니다. 주요 개념과 방식은 아래와 같습니다.작업 분할: Model Parallelism, Data Parallelism파라미터 동기화: 동기적 동기화, 비동기적..

AI & GPU 2025.04.13
728x90