전체 글 498

[AI] 딥러닝(정리중)

목차머신러닝 역사 & 기본 개념머신러닝의 종류머신러닝에 주로 사용되는 파이썬 라이브러리Scaling(스케일링)과 정규화스케일링 종류Feature Engineering 머신러닝 Model 개발 플로우전통적인 지도학습 알고리즘평가 지표용어 정리1. 머신러닝 역사 & 기본 개념전통적 프로그래밍 (Traditional Programming)전통적인 프로그래밍 방식은 사람이 규칙(rule) 을 직접 만들어주는 rule base 방식이다. 이 방식은 데이터가 많아질수록 규칙을 모두 사람이 정의하기 어려워지는 한계가 있다.예: if-else 규칙 기반 시스템특징: 규칙은 알지만, 답은 모르는 방식 → 사람이 "조건"을 정의해야 하고, 컴퓨터는 그 규칙을 실행만 한다.머신러닝 (Machine Learning)머신러닝은..

AI 2025.11.27

[AI] Apache Spark 특징 (정리중)

Apache Spark 개념 및 특징 정리Apache Spark는 대규모 데이터 분석과 분산 처리를 위해 만들어진 오픈소스 프레임워크입니다.빅데이터 환경에서 빠른 속도, 다양한 데이터 처리 기능, 그리고 확장성을 제공합니다.특징1. High Performance (고성능)In-Memory 연산을 통해 기존 Hadoop MapReduce보다 훨씬 빠른 속도를 제공합니다.MapReduce는 디스크 기반으로 데이터를 저장하고 네트워크를 통해 데이터를 주고받는 과정이 많아 속도가 느립니다.Spark는 데이터를 메모리에 올려서 연산을 수행하고, 꼭 필요할 때만 디스크나 네트워크를 사용합니다.덕분에 최대 100배 이상 빠른 성능을 보여주기도 합니다.머신러닝용 라이브러리(MLlib), 그래프 연산 라이브러리(Grap..

AI 2025.11.27

[C#서버] Akka.net과 Cluster Part.5 적용해보자!

그동안 공부했던 Akka.net과 IOCP 등 여러 기술을 조합하여 Messenger 서버를 개발해 보고 있습니다. https://github.com/tkddls3319/Akka.net-IOCP-Web-MessengerServer GitHub - tkddls3319/Akka.net-IOCP-Web-MessengerServer: Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster )Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster ). Contribute to tkddls3319/Akka.net-IOCP-Web-MessengerServer development by creating an account on GitHub.github.com

[C#서버] Akka.net과 Cluster Part.4

Akka.NET 클러스터란?Akka.NET 클러스터는 여러 대의 서버(노드)를 하나의 분산 시스템으로 구성하여 확장성, 고가용성, 그리고 장애 복구 기능을 제공하는 시스템입니다. 각 서버는 독립적인 역할을 수행하며, 클러스터를 통해 서로 협력하여 부하를 분산하고 높은 가용성을 유지할 수 있습니다.클러스터의 주요 특징과 개념확장성 및 역할 기반 분산 처리:Akka.NET 클러스터는 서버를 필요에 따라 쉽게 추가하거나 제거할 수 있습니다. 이를 통해 시스템은 수평으로 확장 가능하며, 클라이언트 수나 데이터 처리량이 증가해도 효율적으로 대응할 수 있습니다.각 서버는 클러스터 내에서 특정 역할을 맡습니다. 예를 들어, MMORPG 같은 게임에서는 이동 서버, 전투 서버, 채팅 서버 등 기능별로 서버를 나눠 관리..

[C#서버] Akka.net과 Actor모델 Part.3

주요내용분산 메세지 전달과 RouterPool RouterActorSelect와 Route 비교HOCON을 사용한 Router 설정비동기 actor간 메시지 전달 PipeTo와 ReceiveAsync비동기 호출 단순화 akka.Interfaced액터 메세지 수신 교착 상태 방지와 ReceiveTimeout1. 분산 메세지 전달 Router라우터는 다른 actor 그룹으로 메시지를 전달하는 메시징 허브 역할을 하는 특별한 종류의 actor 입니다. 라우터의 목적은 실제 작업을 수행할 배우들(즉, 라우티)을 통해 작업(메시지 스트림)을 분배하고 균형을 맞추는 것입니다.라우터는 actor이지만 기존 actor와 다르게 한 번에 여러 메시지를 처리할 수 있습니다. 라우터의 목적은 메시지를 처리하는 것이 아니라,..

[C#서버] Akka.net과 Actor모델 Part.2

주요내용액터 메시지 처리 스레드 관리 DispatcherAkka.Net 애플리케이션 설정 HOCON(Human-Optimized Config Object Notation)ReceiveActor메세지 예약 Scheduler퍼블리시 구독 (pub-sub) 패턴런타임 액터 동작 전환 BecomeStacked와 UnbecomStacked액터 동작 전환과 메세지 임시저장 Stash1. Dispatcher ( 액터 메시지 처리 스레드 관리 )액터를 사용할 때, 메시지가 액터에 도달하는 과정은 매우 중요합니다. 여기서 핵심 역할을 하는 것이 바로 Dispatcher입니다. Dispatcher는 액터의 메일박스에서 메시지를 꺼내어 액터가 실제로 작업을 수행하는 OnReceive() 메서드로 전달하는 중개자입니다. 쉽게..

[C#서버] Akka.net과 Actor모델 Part.1

주요내용Akka.net 이란?액터관리와 ActorSystem 액터간 메세지 전달 Tell액터참조와 IActorRef액터생성과 Props액터간 감독과 예외처리 supervision주소로 액터 찾기 ActorSelectionActorSelection과 IActorRef 차이점액터 라이프사이1. Akka.net이란?.NET 플랫폼에서 사용할 수 있는 오픈 소스 프레임워크로, Actor 모델을 구현하여 병렬성과 분산 시스템을 쉽게 구축할 수 있도록 도와줍니다.2. Actor모델 이란?Actor 모델은 큰 프로젝트에서 여러 작업을 동시에 처리하거나, 많은 사용자가 동시에 접속하는 시스템을 만들 때 매우 유용한 패턴입니다. 이 모델을 이해하기 위해 먼저, 우리가 흔히 사용하는 객체 지향 프로그래밍(OOP)과 비교해..

[AI]AI 서버의 메모리 구조와 LLM 메모리 동작 원리 (양자화 등)

AI와 LLM을 공부하면서 “GPU 메모리와 시스템 메모리는 각각 어떤 역할을 할까?”라는 의문이 들었다.처음엔 단순히 처음엔 단순히 “GPU가 빠르니까 무조건 좋겠지”라고 생각했는데,LLM 모델을 직접 다뤄보면서 이게 그렇게 간단한 게 아니라는 걸 알게 됐다.공부하면 할수록 두 메모리의 역할이 확실히 다르다는 걸 알게 됐다.이 글은 내가 공부하면서 직접 정리한 내용들을 중심으로,AI 서버의 메모리 구조와 LLM이 실제로 어떻게 메모리를 사용하는지 정리한 것이다. 1. GPU 메모리(VRAM)와 시스템 메모리(RAM)의 차이일단 간단하게 말하면,VRAM(GPU 메모리) → 계산이 직접 일어나는 공간RAM(시스템 메모리) → 계산을 준비하고 관리하는 공간이렇게 구분할 수 있다.예를 들어 이미지를 분류하는 ..

AI 2025.11.06

[NetWork] 기업에서 VPN과 ACL를 사용하는 이유

VPN(Virtual Private Network)란?VPN은 공용 네트워크(예: 인터넷)를 통해 사설 네트워크에 안전하게 접속할 수 있도록 하는 암호화된 터널로 인터넷을 통해도 내부망처럼 동작가능합니다 이런 동작이 가능한 이유는 IP마스킹을 통해 사용자 IP를 숨기고 사내망 IP로 대체 하기 때문입니다. 즉 VPN은 인증된 사용자만 원격 접속을 가능하게 하는 고급 암호화 및 인증 기법입니다. 기업에서 VPN을 사용하는 이유는 보통 원격 근무 지원, 보안 통신, 내부망 리소스 접근 제어, 지사 간 통신 보안 확보를 위해 사용됩니다.사용 목적설명 원격 근무 지원 외부 직원이 사내망에 안전하게 접속 가능보안 통신내부 시스템이나 파일 서버 접속 시 데이터 보호내부망 리소스 접근 제어VPN을 통해서만 접근 가능..

IT지식/NetWork 2025.08.05

[AI] logging Mixin 패턴으로 구현하는 구조화된 로깅 시스템과 FastAPI 요청 추적

요청별 추적과 구조화된 로깅이 필수적입니다. 이번 글에서는 FastAPI와 Mixin 패턴을 활용하여 효과적인 로깅 시스템을 구축하는 방법을 소개하겠습니다. 1. 구조화된 JSON 로깅 시스템1.1 핵심 구성 요소먼저 JSON 형식의 구조화된 로그를 생성하는 시스템을 만들어보겠습니다.비동기 환경에서의 요청 추적: FastAPI나 다른 비동기 웹 프레임워크에서는 여러 요청이 동시에 처리됩니다 요청별 로그 분리: 각 HTTP 요청마다 고유한 request_id를 부여하여, 하나의 요청과 관련된 모든 로그를 쉽게 추적할 수 있습니다 자동 로그 태깅: 모든 로그 레코드에 현재 컨텍스트의 request_id를 자동으로 추가합니다 일관성 보장: 개발자가 매번 수동으로 request_id를 로그에 추가할 필요가 없습..

AI 2025.07.28

[AI] VLLM qwen3(tool_calls) web서버 사용 방법 ( 리눅스 )

vLLM은 대형 언어 모델(LLM)의 추론 및 서빙을 효율적이고 고속으로 처리할 수 있는 오픈소스 라이브러리입니다. 특징고성능 추론 및 서빙OpenAI 호환 API 서버다양한 모델 지원하드웨어 및 분산 추론 지원vllm web 서버 생성먼저 로컬 모델이나 허깅페이스에서 사용할 모델을 다운로드하거나 정해야 한다.chat-template ./qwen3_nonthinking.jinja은 https://qwen.readthedocs.io/en/latest/deployment/vllm.html 에서 다운로드할 수 있다. qwen3의 nothink를 위한 chat template이다 think를 사용하고 싶으면 안 해도 된다.vllm serve 로컬 모델경로 or 허깅페이스 가능 --served-model-nam..

AI 2025.06.25

[AI] Milvus 사용방법

1. Milvus 다운로드Milvus는 vectordb로 리눅스 환경에서 동작한다.https://milvus.io/docs/ko/install_standalone-docker-compose.md Docker Compose로 Milvus 실행하기(Linux) | Milvus 문서화Docker Compose를 사용하여 Milvus를 독립형으로 설치하는 방법을 알아보세요. | v2.6.xmilvus.io Docker Compose를 다운로드하기 위해 https://github.com/milvus-io/milvus/releases/ 에 접속해서 원하는 버전의 Docker Compose 파일을 다운로드한다.docker-compose.yaml은 Milvus를 실행시키기 위해 필요한 3개의 서비스 컨테이너 서비스를 ..

AI 2025.06.25

[Docker] 명령어 (컨테이너, 이미지, Dockerfile, Compose )

Docker Hubhttps://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.hub.docker.com [컨테이너 명령어]컨테이너 생성이미지가 로컬 PC에 있는지 확인 후 없다면 DockerHub에서 이미지를 다운로드하여 컨테이너 생성 ( 실행 x )docker create [이미지 이름] 컨테이너..

형상관리/Docker 2025.05.13

[Docker] 개념

[Doker란]컨테이너라는 개념을 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다. [Doker를 사용하는 이유]Docker를 사용하는 이유는 이식성 때문이다. 이식성이란 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성이다. ( 프로그램을 그대로 보존하 이사시키는 느낌 ) 예를 들어 서로 다른 2대의 컴퓨터에 DB를 설치하기 위해 먼저 한대의 컴퓨터에 DB를 깔았고 에러 없이 잘 동작하였다. 이후 2번째 컴퓨터에 똑같은 방법으로 DB를 설치하였지만 에러가 나며 작동하지 않았다. 이런 이유는 버전에 따른 문제일 수 있고 운영체제종류의 문제일 수 있고 보안프로그램의 문제등 다양하다. 그리고 새로운 컴퓨터가 생겨 똑같이 DB를 설치한다고 가정했을 때 설치 과정..

형상관리/Docker 2025.04.23

[AI] LangChain - LangGraph ( State, Message )

LangGraph는 상태 기반 LLM을 만들기 위한 프레임워크입니다. 쉽게 말해 LLM의 현재 상태에 따라 조건문 반복문 등을 사용하여 유연한 LLM 워크플로우를 만들 수 있는 기능으로 StateGraph, MessageGraph, ReAct 등이 있습니다.  구성요소구성요소설명노드(Node)실행 단위. LLM 호출, 함수 실행 등.엣지(Edge)다음에 어떤 노드로 갈지 정의. 조건 분기, 루프 가능.상태(State)전체 흐름에서 공유되는 데이터. 상태를 기준으로 흐름 결정 가능. 상태(State) - 모든 노드가 공유하는 데이터상태는 전체 그래프 에서 사용하는 공용 데이터로 그래프가 처리하는 데이터 구조를 정의하는 객체입니다. 일반적으로 StateGraph에서는 기존 상태를 ovrride(덮어쓰기)합니..

AI 2025.04.08

[AI] LangChain - Tool Calling 사용법

[Tool Calling 이란?]Tool Calling(도구 호출)은 LLM이 단순 텍스트 응답을 넘어서, 등록된 함수나 프로그램을 직접 실행하고 그 결과를 응답에 반영하는 기능이다. 즉, LLM이 사용자의 질문을 분석해 필요한 툴을 스스로 판단하고 실행하는 구조이다. 예시 질문필요한 툴LLM에게 질문LLM이 선택한 필요한 툴“서울 오늘 날씨 어때?”날씨 API“파스타 요리법 알려줘”위키백과 검색 도구“삼성전자 주가 알려줘”주식 데이터 API“23 + 45는?”계산기 함수“내 회사 문서에서 찾은 요약 보여줘”벡터 DB 툴 (RAG) Tool Calling 흐름Tool Calling 흐름[User 입력] ↓[LLM 판단: "이건 툴이 필요하군!"] ↓[툴 이름 + 인자 → Tool 호출] ↓[결..

AI 2025.04.04

[React]Web Storage( Local Storage 와 Session Storage ) 정리

웹 개발을 하다 보면, 브라우저에 데이터를 저장해야 할 상황이 많습니다. 이때 사용할 수 있는 기술이 바로 Web Storage입니다. Web Storage는 클라이언트 측에 Key-Value 형식으로 데이터를 저장할 수 있게 해주는 기능으로, HTML5부터 지원되기 시작했습니다.개념Web Storage는 HTML5에서 도입된 기술이다.데이터를 Key - Value 쌍으로 저장할 수 있다.저장된 데이터는 서버로 전송되지 않고 클라이언트(브라우저)에만 존재한다.보통 5MB에서 10MB까지 저장 가능하다.JavaScript를 통해 데이터를 저장하고 조회하며 삭제할 수 있다.Web Storage의 두 가지 종류1.  Local StorageLocal Storage는 브라우저에 데이터를 key-value 쌍으로..

Web/React 2025.03.26

[AI] 대형 언어 모델 파인튜닝 기법 정리 (SFT, PEFT, RLHF, DPO, RL)

대형 언어 모델(LLM)을 활용한 파인튜닝은 이제 누구나 해볼 수 있을 만큼 쉬워졌지만, SFT, PEFT, RLHF, DPO, PPO, RL 등 용어가 너무 많고 헷갈리는 경우가 많습니다. 이번 글에서는 LLM 파인튜닝 전략을 개념 중심으로 정리해보고,언제 어떤 방법을 선택해야 하는지 흐름별로 알아보겠습니다.전체 개념 흐름 데이터 있음   |   |-- 자원이 부족하거나 빠르게 실험하고 싶다   |      -->  PEFT (LoRA, QLoRA)   |   |-- 자원이 충분하고 최대 성능이 목표다   |      -->  Full SFT   |   v 모델이 기본적인 응답을 하게 됨 (SFT 완료)   |   |-- 더 공손하고, 사람 같은 답변을 만들고 싶다   |      -->  RLHF (..

AI 2025.03.26

[AI] LoRA 기반 PEFT 파인튜닝과 용어정리

Llama 3.1 LoRA 기반 PEFT 적용 가이드 LoRA (Low-Rank Adaptation)는 LLM(대형 언어 모델)의 일부 파라미터만 미세 조정하여메모리와 계산량을 절약하는 파인튜닝 기법입니다.Llama 3.1 모델에 LoRA를 적용하여 PEFT(Parameter-Efficient Fine-Tuning)를 수행하는 방법을이론과 실전 코드 예제를 통해 단계별로 설명합니다1. PEFT(LoRA)란 무엇인가?(https://github.com/huggingface/peft)PEFT (Parameter-Efficient Fine-Tuning)기존 LLM을 풀 파인튜닝(Full Fine-Tuning)하지 않고, 적은 수의 파라미터만 학습하는 방법.대표적인 방식으로 LoRA, QLoRA, Adapter..

AI 2025.02.27