ssd를 가지고 다니면서 우분투 부팅중에 생긴 현상.

회사 컴퓨터가 랜선 없이 와이파이로 인터넷을 사용하고 있었는데

내 컴퓨터가 문제가 생겨서 그 본체를 가져와서 랜선을 연결하니 네트워크에서 Wired 항목이 안보였다.

 

lspci | grep -i ethernet

 

https://www.realtek.com/Download/List?cate_id=584

우선 랜카드 확인 결과 r8125 드라이버를 설치하고

 

압축 풀고 설치파일까지 진행을 했는데도 여전히 항목도 안보이고 받아오지도 못했다.

nmcli device status로 확인결과 여전히 unmagaged 상황

 

해결 방법

/etc/netplan/ 폴더 안에 있는 .yaml 파일을 보니

 

network: ethernets: enp7s0: dhcp4: true version: 2

이더넷 이름도 잘못 들어가 있었고 저거를 수정해도 안되길래 

 

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp4s0:
      dhcp4: true

 

이런식으로 수정해주었더니 설정을 바꾸자마자 연결되었다.

 

sudo netplan apply
sudo systemctl restart NetworkManager

 

변경사항 적용 명령어

 

NVIDIA에서 오픈소스 소프트웨어로 제공되는 머신러닝 모델 inference 서버

 

1. 아키텍쳐

Model Repository에 모델 파일들을 올려놓으면 클라이언트가 api로 추론 요청 후 결과를 받을 수 있다.

간단한 사용 예

2. Model Repository [—model-repository]

서빙할 모델 파일들을 저장. 서버의 로컬 또는 클라우드 저장소도 가능

launch할때 옵션으로 여러 개 선택 가능

 

2-1. Model Management [—model-control-mode]

  • none
    • Repository의 모든 모델 로드, 가동 중에는 Rspository 변경 사항이나 management 요청을 무시
  • explicit [—load-model]
    • —load-model 옵션으로 명시된 모델만 로드, 없으면 아무것도 로드하지 않음
  • poll [—repository-poll-secs]
    • 모든 모델을 로드 후 주기적으로 변경 사항을 감지하여 재로드, management 사용 불가

 

2-2. Model Configuration

config.pdtxt 파일에 작성, 필수 옵션 = backend, max_batch_size, input, output

 

 

출처 

https://peaceatlast.tistory.com/25

 

NVIDIA Triton 한 눈에 알아보기

GitHub - triton-inference-server/client: Triton Python, C++ and Java client libraries, and GRPC-generated client examples for go Triton Python, C++ and Java client libraries, and GRPC-generated client examples for go, java and scala. - GitHub - triton-infe

peaceatlast.tistory.com

 

https://github.com/triton-inference-server/server

 

GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge inferencing solution.

The Triton Inference Server provides an optimized cloud and edge inferencing solution. - GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge i...

github.com

 

 

 

'MLOps(DevOps)' 카테고리의 다른 글

RabbitMQ [AMQP / MQTT 비교]  (0) 2025.11.12

 

1. AMQP와 MQTT의 핵심 차이

AMQP (Advanced Message Queuing Protocol) VS MQTT (Message Queuing Telemetry Transport)

주 목적 기업용 메시지 큐 (거래/백엔드 시스템) IoT 센서, 디바이스 통신용
전송 단위 메시지(Message) — 헤더, 속성, 바디 모두 포함 토픽 기반 텍스트/바이너리 데이터
통신 모델 Producer → Exchange → Queue → Consumer Publisher → Broker → Subscriber
표준화 정도 복잡한 프로토콜 (라우팅, 트랜잭션 등 지원) 아주 단순한 프로토콜 (토픽 기반)
전송 보장 수준(QoS) 3단계 보장 (at-most-once, at-least-once, exactly-once) + 트랜잭션 3단계 QoS (0, 1, 2)
전송 방식 TCP 기반, 프레임 단위의 명령어 교환 TCP/IP 위에서 동작, 단순 PUB/SUB
사용 포트 기본 5672 (AMQP), 15672 (관리용 HTTP) 기본 1883 (MQTT), 8883 (TLS)
메시지 라우팅 Exchange(Direct, Fanout, Topic 등) 기반 라우팅 가능 단순 토픽 문자열 기반
Payload 크기 크고 복잡한 메시지도 OK (ex: JSON, 파일, 객체 등) 매우 작고 단순해야 함 (센서 데이터 등)
성능 특성 신뢰성↑, 속도↓, 복잡도↑ 속도↑, 신뢰성↓, 단순도↑
대표 브로커 RabbitMQ, Apache Qpid Mosquitto, HiveMQ, EMQX

 

 

  • AMQP = “기업용 신뢰성 있는 메시지 시스템”
  • MQTT = “IoT 디바이스용 가벼운 실시간 프로토콜”

2. RabbitMQ란?

RabbitMQ는 AMQP 프로토콜을 구현한 오픈소스 메시지 브로커
Erlang 언어로 만들어졌고, 안정성과 신뢰성이 매우 높다.

기본 구조

RabbitMQ는 아래 4단계 구조로 메시지를 전달한다.

Producer → Exchange → Queue → Consumer

① Producer

  • 메시지를 생성해서 브로커로 보냄.

② Exchange (교환기)

  • 메시지를 적절한 Queue로 라우팅.
  • Exchange 타입에 따라 라우팅 방식이 다름:
  • 타입설명
    Direct 라우팅키 정확히 일치하는 큐로 전달
    Fanout 연결된 모든 큐에 브로드캐스트
    Topic 와일드카드 기반 토픽 매칭 (sensor.#, *.info 등)
    Headers 메시지 헤더 값 기반으로 라우팅

③ Queue

  • 메시지를 실제로 저장하는 버퍼.
  • 여러 Consumer가 동시에 구독할 수 있음.
  • 메시지는 한 번 소비되면 큐에서 삭제됨(기본 설정).

④ Consumer

  • 큐를 구독해서 메시지를 받아 처리.

 

RabbitMQ의 장점

  1. 메시지 보장 (Durability, Acknowledgement)
    • 메시지를 디스크에 저장해 시스템 다운되어도 복구 가능.
    • ack 메커니즘으로 소비 확인 후 메시지 삭제.
  2. Exchange 기반 라우팅
    • 단순 PUB/SUB보다 훨씬 유연한 라우팅 가능.
  3. 다양한 프로토콜 지원
    • 기본 AMQP 외에도 MQTT, STOMP, HTTP 등 플러그인으로 확장 가능.
  4. 클러스터링 / 고가용성
    • 여러 노드로 구성 가능, HA Queue도 지원.
  5. 관리도구 (Management Plugin)
  6. 성숙한 에코시스템
    • Python(pika), Node.js, Go, Java 등 대부분 언어 클라이언트 지원.

 

3. 정리 요약

항목 AMQP MQTT RabbitMQ

역할 메시지 큐 프로토콜 IoT 통신 프로토콜 AMQP 구현 브로커
특징 신뢰성, 트랜잭션, 라우팅 지원 초경량, 실시간, 저전력 안정적, 다양한 언어 지원
주로 쓰는 곳 금융, 백엔드, 이벤트 시스템 IoT, 센서, 모바일 장치 백엔드 통합, 이벤트 허브
통신 모델 Exchange–Queue Publish–Subscribe Exchange–Queue (AMQP)

 

'MLOps(DevOps)' 카테고리의 다른 글

NVIDIA Triton server  (0) 2025.11.12

1. 논문 개요

이 논문은 그래프 구조를 갖는 데이터(예: 논문 인용 네트워크, SNS 네트워크)에서 노드 분류(node classification) 문제를 풀기 위해 제안된 모델인 Graph Convolutional Network(GCN)을 다룹니다.
기존의 그래프 기반 학습법들이 갖는 한계 — 예컨대 그래프 구조와 노드 특징(feature)을 통합해서 학습하기 어렵다는 점 — 을 해결하는 방식으로, 그래프 위에 신경망 형태의 레이어 전파 규칙을 제시한 것이 특징입니다.

논문의 주요 기여는 다음과 같습니다:

  • 그래프 합성곱(spectral graph convolution)의 1차 근사(first-order approximation) 를 이용해 계산량을 줄인 단순하면서도 강력한 레이어 규칙 제시
  • 해당 구조를 이용해 실제 반지도 학습(semi-supervised) 환경에서 좋은 성능을 보였다는 실험 결과 제시
  • 그래프 + 노드 특징을 동시에 이용하는 신경망 설계 방향을 제시

2. 배경 및 Motivation

논문이 다루는 문제 설정은 다음과 같습니다:

  • 각 노드가 특징 벡터(feature)를 가지고 있고, 그래프의 엣지(adjacency) 정보 또한 주어진다.
  • 일부 노드에는 레이블(label)이 있고, 나머지 노드는 레이블이 없다.
  • 목표는 레이블이 없는 노드의 레이블을 예측하는 것이다 (반지도 학습).
  • 이때, 노드의 특징만 보는 것보다 노드 간의 연결 정보(이웃 정보) 를 이용하면 성능이 향상될 수 있다.
  • 기존 방식들은 그래프 라플라시안(Laplacian)을 이용한 정규화나 임베딩 기반 방식 등이 존재했지만, “깊은 신경망 레이어” 형태로 그래프 구조를 직접 다루는 방식은 부족했다.

이러한 왜곡을 해결하기 위해 논문에서는 그래프 구조의 합성곱 개념을 신경망 레이어 형태로 바꿔 제안합니다.


3. 모델 설명 — 핵심 수식 & 계산 흐름

3.1 레이어 전파 규칙

논문에서 제안된 기본 전파 규칙은 다음과 같습니다:

H(l+1)=σ(D~−12 A~ D~−12 H(l) W(l))H^{(l+1)} = \sigma\bigl(\tilde D^{-\tfrac12} \,\tilde A\, \tilde D^{-\tfrac12}\, H^{(l)}\, W^{(l)}\bigr)

여기서 각 기호는 다음을 의미합니다:

  • H(l)H^{(l)}: ll번째 레이어에서의 노드 표현 행렬 (크기 N×DlN \times D_l)
  • H(0)=XH^{(0)} = X: 입력 노드 특징 행렬 (크기 N×FN \times F)
  • AA: 원본 인접행렬 (크기 N×NN \times N)
  • INI_N: 단위행렬 (자기자신과의 연결, self-loop)
  • A~=A+IN\tilde A = A + I_N: 자기 루프를 포함한 인접행렬
  • D~\tilde D: A~\tilde A의 차수(degree) 대각 행렬, D~ii=∑jA~ij\tilde D_{ii} = \sum_j \tilde A_{ij}
  • W(l)W^{(l)}: 학습 가능한 가중치 행렬 (크기 Dl×Dl+1D_l \times D_{l+1})
  • σ(⋅)\sigma(\cdot): 활성화 함수 (예: ReLU)

그래프 구조를 반영하기 위해 D~−12 A~ D~−12\tilde D^{-\tfrac12}\,\tilde A\,\tilde D^{-\tfrac12} 형태의 정규화된 인접행렬이 사용됩니다.
이 정규화는 깊은 레이어에서 발생할 수 있는 학습 불안정이나 수치 문제(예: 그래디언트 폭발 또는 소멸)를 완화하는 역할을 합니다.

3.2 2-레이어 GCN 예시

논문에서는 실제로 다음과 같은 2-레이어 모델을 제시합니다:

Z=softmax(A^  ReLU(A^ X W(0)) W(1))Z = \mathrm{softmax} \bigl( \hat A \;\mathrm{ReLU}(\hat A\,X\,W^{(0)})\,W^{(1)} \bigr)

여기서 A^=D~−12A~ D~−12\hat A = \tilde D^{-\tfrac12} \tilde A\,\tilde D^{-\tfrac12}.

  1. 우선 입력 특징 XXA^\hat A를 곱해 이웃 노드 정보를 흡수하고, W(0)W^{(0)}를 곱한 뒤 ReLU 활성화.
  2. 다시 A^\hat A를 곱해 두 단계 이웃 정보를 어느 정도 반영하고, W(1)W^{(1)}를 곱한 뒤 softmax를 적용해 각 노드의 레이블 확률 ZZ를 구함.
    이 구조가 반지도 학습 환경에서 효과적으로 작동함을 여러 데이터셋에서 보여줍니다.

3.3 직관적 흐름

  • 각 노드는 자신의 특징뿐 아니라 연결된 이웃 노드들의 특징도 흡수하면서 표현이 갱신됩니다.
  • 첫 레이어는 “직접 이웃(1-hop) 정보”를 모으고, 다음 레이어를 통해 약간 더 먼 거리에 있는 이웃(2-hop) 정보까지 반영 가능해집니다.
  • 이러한 방식으로, 그래프의 구조와 노드 특징이 섞여서 더 풍부한 표현(representation)을 얻게 됩니다.
 

4. 논문의 장점 및 인사이트

✅ 장점

  • 구조적 정보 반영: 단순히 노드의 특징만 보는 것이 아니라, 그래프 연결 구조(이웃 관계)를 깊이 있게 활용합니다.
  • 계산 효율성: 스펙트럴 그래프 합성곱을 복잡하게 구현하는 대신, 1차 근사를 도입해 실제 학습 가능한 형태로 단순화했습니다.
  • 실험적 검증: 여러 그래프 노드 분류 데이터셋(Cora, Citeseer, PubMed 등)에서 우수한 성능을 보였습니다.
  • 설계 단순성: 복잡한 하이퍼파라미터 없이 구조가 비교적 간단해서 이해하기 좋습니다.

💡 인사이트

  • 이 논문을 통해 “그래프 + 신경망” 융합의 기본 틀이 자리잡았습니다. GCN 이후 많은 그래프 신경망(GNN: Graph Neural Network)이 이 구조를 바탕으로 확장되었습니다.
  • “이웃의 정보 흡수”라는 개념이 자연스럽게 메시지 패싱(message passing) 관점에서 재정립되었고, 이후 모델들이 이 패러다임을 활용합니다.

5. 논문의 한계 및 주의사항

⚠️ 한계

  • Full-batch 학습 방식: 논문 모델은 전체 그래프를 한꺼번에 들여와 학습하는 방식으로, 매우 큰 그래프의 경우 메모리/연산 측면에서 부담이 될 수 있습니다.
  • 깊이 확장성의 제약: 레이어 수를 많이 쌓을 경우 “oversmoothing”(모든 노드 표현이 비슷해지는 현상) 문제가 발생할 수 있습니다.
  • 엣지 특징 미지원: 노드 간의 연결에 대한 가중치(edge weight)나 방향(directed edge) 또는 엣지의 추가 특징(edge feature)을 자연스럽게 다루지는 않습니다.
  • 무향 그래프 기반: 기본적으로 논문에서는 무향(undirected) 그래프를 가정하고 있으므로, 방향성이 강한 그래프에는 추가 설계가 필요합니다.

🔍 주의사항

  • 그래프의 규모가 매우 큰 경우에는 미니배치(mini-batch) 기반의 샘플링 방법(예: GraphSAGE)이나 인접행렬의 희소 표현(sparse representation)을 고려해야 합니다.
  • 그래프 구조가 매우 복잡하거나 노드 간 이질성이 크다면, 단순 GCN 구조보다 애드혹(ad-hoc) 한 설계가 필요할 수 있습니다 (예: 엣지 특징, 방향성, 노드군집화 등).

6. 느낀 점 및 적용 가능성

  • 개인적으로 이 논문을 읽으면서 “그래프 데이터에서도 신경망처럼 층(layer)을 쌓을 수 있구나” 라는 인사이트가 강하게 왔습니다.
  • 특히 SNS, 추천시스템, 지식그래프, 생물학 네트워크 등 노드 + 연결 구조가 명확한 영역에서 GCN은 매력적인 모델입니다.
  • 다만 실제 적용 시에는 데이터 특성(노드 수, 엣지 수, 특징 벡터 크기), 학습 리소스, 그래프의 동적 변화 여부 등을 면밀히 고려해야 합니다.
  • 이후에는 이 논문의 구조를 바탕으로 좀 더 최신 모델(예: Graph Attention Network(GAT), GraphSAGE 등)으로 확장해보는 것도 좋을 것 같습니다.

+ Recent posts