최신 글 Kubernetes [k8s] Pod Scheduling - Taint, Tolerations 란? Network 캡슐화와 역캡슐화란? AI Quantization(양자화)란? Fixed-point, Floating-point 란? NLP [NLP] 룩업 테이블(lookup table)이란? NNLM, 워드 임베딩(word embedding) NLP NLP [NLP] 룩업 테이블(lookup table)이란? NNLM, 워드 임베딩(word embedding) 룩업 테이블이란? 특정 단어와 맵핑되는 정수를 인덱스로 가지는 테이블로부터 임베딩 벡터 값을 가져오는 것 = 정수를 임베딩 벡터로 맵핑하는 것 피드 포워드 신경망 언어 모델(NNLM) 학습 과정 예시 NNLM이 언어 모델링을 학습하는 과정 예문 : "what will the fat cat sit on" 예를 들어 위와 같은 문장이 있다. 언어 모델은 주어진 단어 시퀀스로부터 다음 단어를 예측. 훈련 과정에서는 'what will the fat cat'이라는 단어 시퀀스가 입력으로 주어지면, 다음 단어 'sit'을 예측하는 방식으로 훈련. 훈련 코퍼스에 7개의 단어만 존재한다고 가정했을 때 다음과 같이 원-핫 인코딩 할 수 있음. what = [1, 0, 0, 0, 0, 0, 0] will = [0, 1,.. NLP [논문리뷰] LoRA: Low-Rank Adaptation of Large Language Models // LoRA 이론 https://arxiv.org/abs/2106.09685 LoRA: Low-Rank Adaptation of Large Language Models Abstract - LLM이 계속 커지면서 Full fine-tuning으로 모델을 학습하는 것이 less feasible 해지고 있다 - GPT-3 같은 모델을 Full fine-tuning 하는 것은 엄두도 못낼 정도로 비쌈 - LoRA는 LLM의 weight는 고정하고 추가적인 trainable 파라미터를 각 트랜스포머 레이어에 inject함 - LoRA는 학습 파라미터를 10,000배 줄여줌 - Full finetuning에 비견되거나 더 나은 성능 - Adapter류의 PEFT 기법과 inference 속도가 느려지지 않음 (LoRA는 병렬로 연산.. MLOps MLOps [FastAPI] 경로 매개변수, 쿼리 매개변수 경로 매개변수 경로 매개변수(Path Parameters)는 흔히 우리가 말하는 URL 경로에 들어가는 변수를 의미한다. 아래의 예제에서 user_id가 경로 매개변수이다. from fastapi import FastAPI app = FastAPI() @app.get("/users/{user_id}") def get_user(user_id: int): # 타입 힌트 int return {"user_id": user_id} http 통신은 타입 없이 전부 문자열로만 통신한다. 따라서 타입힌트를 넣어준다. 정수형 타입이 아닌 값을 호출하면, 다음과 같이 응답코드 422와 함께 위와 같은 오류 메시지가 나타난다. $ http :8000/users/12.3 HTTP/1.1 422 Unprocessable Ent.. MLOps [BentoML] BentoML 소개 및 사용법 0. Reference 1. BentoML 1.1 Introduction 1.2 BentoML 소개 BentoML이 해결하는 문제 문제 1: Model Serving Infra의 어려움 문제 2: Online Serving의 Monitoring 및 Error Handling 문제 3: Online Serving 퍼포먼스 튜닝의 어려움 1.3 BentoML 특징 2. BentoML 설치 및 사용법 2.1. BentoML 설치 2.2 BentoML 사용 Flow 모델 학습 코드 생성 Prediction Service Class 생성 Prediction Service 저장(Pack) Serving Docker Image Build 0. Reference Naver boostcamp - Product Servi.. Infra Kubernetes [k8s] Pod Scheduling - Taint, Tolerations 란? Taint 란?- 특정 Node에 파드가 스케줄되는 것을 제한Tolerations 란?- Pod가 특정 Taint가 적용된 노드에서 실행하는 속성- ex) Platform 속성 pod 배포하기 위해, Service 노드에는 Taint를 설정하여 Tolerations과 Node Affinity(k8s가 pod를 특정 노드에 스케쥴링 하기 위해 사용하는 매커니즘) 설정이 있는 pod만 스케쥴링하고, Platform 노드에는 Taint를 설정하지 않고 일반 pod만 스케쥴링하는 방법 -> Node에는 Taint, Pod에는 Tolerations 설정 Nod Taint 설정- 카펜터 NodePool 설정 추가 - Node 매니페스트 확인 가능 apiVersion: karpenter.sh/v1beta1kind:.. Linux Control groups, Name spaces, Union mount filesystem 컨테이너를 구성하는 3가지 주요 리눅스 기술 Control groups Name spaces Union mount filesystem cgroups(Control Groups) 프로세스들이 사용하는 시스템 자원의 사용 정보를 수집 및 제한 시키는 리눅스 커널 기능 제한 가능한 자원: CPU, Memory, Network, Device, Block I/O 사용 가능한 서브시스템 cpu - 스케줄러를 이용해 cgroup에 속한 프로세스 CPU 사용 시간을 제어 memory - 해당 cgroup에 속한 프로세스의 메모리 사용량에 대한 제어 freezer - cgroup의 작업을 일시 중지하거나 다시 시작 blkio - cgroup에 블록 장치에 대한 입력/출력 제한을 설정 net_cls - Linux 트래픽 ..