Pangyoalto

Pangyoalto

평범한 개발자들을 위한 LLM 에이전트 프레임워크 가이드
Programming

평범한 개발자들을 위한 LLM 에이전트 프레임워크 가이드

사방에서 AI와 LLM에 대한 얘기가 나오는 요즘입니다. LLM을 잘 사용하기 위해 LLM 모델을 공부하거나 서빙을 공부할 필요성은 점점 줄어들 거라 생각합니다. LLM API를 제공하는 서비스들은 점점 많아지고 있고 그 가격도 시간이 갈수록 떨어지고 있으니까요. 기업들도 LLM 모델을 공개하는 것을 넘어 AI를 활용한 서비스들을 내놓고 있습니다. AI 에이전트는 그 중 하나로
23 min read
벡터 검색 알고리즘 살펴보기(2): HNSW, SPANN
Information Retrieval

벡터 검색 알고리즘 살펴보기(2): HNSW, SPANN

벡터 검색 알고리즘 중 HNSW와 SPANN에 대해 알아봅니다. 들어가며 이전 “Similarity Search와 HNSW”라는 글에서 Voronoi diagram, Product Quantization, HNSW에 대해 간단히 다뤄보았다. 해당 글에서 HNSW을 자세히 다루지 못하였고 다른 ANN 알고리즘과 비교를 하지 못하여 아쉬웠었다. 이번 글은 현재 가장 많이 쓰이는 벡터 검색 알고리즘 HNSW(2016)을 살펴보고 Microsoft에서
15 min read
[k8s] 개발자가 꼭 알아야 할 k8s DNS, iptable 업데이트 타이밍
k8s

[k8s] 개발자가 꼭 알아야 할 k8s DNS, iptable 업데이트 타이밍

k8s 환경에서 어플리케이션을 이중화했음에도  rollout restart할 때 서비스가 일시적으로 사용 불가할 수 있습니다. 이는 k8s의 pod의 DNS, ip 업데이트시 CoreDNS와 iptable에 업데이트 시차가 존재할 수 있어 발생합니다. 이번 글에서는 pod을 statefulset으로 배포하는 경우와 deployment로 배포하는 경우를 나누고, 각각의 케이스에서 어떻게 이슈가 발생할 수 있는지 알아보겠습니다. [요약] * k8s + grpc에서 pod들을 rollout
13 min read
[Go] 서버 개발자를 위한 graceful shutdown 가이드
Go

[Go] 서버 개발자를 위한 graceful shutdown 가이드

[요약] * graceful shutdown을 적용하면 클라이언트가 타임아웃으로 인해 실패한 요청을 다른 서버로 재시도를 못하는 케이스를 막을 수 있습니다. * gRPC와 echo 프레임워크 모두 graceful shutdown 함수를 지원하여 쉽게 구현할 수 있습니다. graceful shutdown 적용 필요성 서버가 요청을 처리하다 갑자기 종료되면 처리가 거의 완료된 요청들도 정상 응답을 반환하지 못하고 에러를 반환합니다. 클라이언트는 에러가
11 min read
[구글 시리즈] #3. Chubby (feat ZooKeeper)
Paper

[구글 시리즈] #3. Chubby (feat ZooKeeper)

현재 검색 시장뿐만 아니라 다양한 분야를 장악한 구글은 불과 1998년에 설립되었습니다. 구글은 매우 빠른 속도로 성장했고, 이를 위한 인프라 시스템들을 구축했습니다. 구글의 인프라 시스템은 다른 회사 및 개발자에게 많은 영향을 끼쳤습니다. 구글 시리즈는 이러한 논문들 중 일부를 뽑아 소개를 하고자 합니다. 이번 글에서는 구글의 Chubby만 다루는 것이 아니라, Zookeeper도 같이
27 min read
[구글 시리즈] #2. Bigtable: A Distributed Storage System for Structured Data (2006)
Paper

[구글 시리즈] #2. Bigtable: A Distributed Storage System for Structured Data (2006)

현재 검색 시장뿐만 아니라 다양한 분야를 장악한 구글은 불과 1998년에 설립되었습니다. 구글은 매우 빠른 속도로 성장했고, 이를 위한 인프라 시스템들을 구축했습니다. 구글의 인프라 시스템은 다른 회사 및 개발자에게 많은 영향을 끼쳤습니다. 구글 시리즈는 이러한 논문들 중 일부를 뽑아 소개를 하고자 합니다. 1. The Google File System (2003) 2. BigTable: A
17 min read
[구글 시리즈] #1. The Google File System(2003)
Paper

[구글 시리즈] #1. The Google File System(2003)

현재 검색 시장뿐만 아니라 다양한 분야를 장악한 구글은 불과 1998년에 설립되었습니다. 구글은 매우 빠른 속도로 성장했고, 이를 위한 인프라 시스템들을 구축했습니다. 구글의 인프라 시스템은 다른 회사 및 개발자에게 많은 영향을 끼쳤습니다. 구글 시리즈는 이러한 논문들 중 일부를 뽑아 소개를 하고자 합니다. 1. The Google File System (2003) 2. BigTable: A
26 min read
AI 딥 다이브 리뷰
Book

AI 딥 다이브 리뷰

💡Disclaimer 이 리뷰는 한빛미디어로부터 책을 지원받아 작성하였습니다. 항상 AI에 관심이 있었지만, 많은 시간을 들여 공부할 여유는 없었다. 그래서 쉽고 빠르게 학습을 하기 위해 여러 AI 관련 책들을 살펴보곤 했었다. 대부분 일반인들을 위한 입문 책이거나 딥러닝 모델을 작성하기 위한 구현 위주의 책이었다. 큰 맥락을 짚어주는 책이 없었다. 이 책은 저자가 2015년부터
3 min read
eBPF/XDP: 당신만 모르는 안전하고 빠른 Networking
Linux

eBPF/XDP: 당신만 모르는 안전하고 빠른 Networking

[요약] * eBPF: kernel space 내에서 프로그램을 실행할 수 있도록 하여 어플리케이션 개발자가 런타임에 OS의 기능을 사용할 수 있도록 하는 기술 * XDP: eBPF를 기반으로 한 기술로 packet processing을 할 수 있도록 지원 * XDP는 XDP driver hook 및 eBPF virtual machine 등으로 구성되어 있고 높은 성능으로 안전하게 kernel space에서 packet processing을 할
21 min read
RAG의 짧은 역사 훑어보기(첫 논문부터 최근 동향까지)
Paper

RAG의 짧은 역사 훑어보기(첫 논문부터 최근 동향까지)

[요약] * RAG는 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020)에서 처음 등장하였고 모델과 Retriever을 학습시키는데 사용되었다. * 최근 RAG는 모델의 학습이 아닌 모델의 Inference 성능을 레버리지하기 위해 주로 사용되고 있다. * RAG는 문서를 어떻게 잘 검색해서 가져오고 LLM에 잘 넘겨주는지 중요하다. * RAG를 도와주는 구글의 Vertex AI는 문서 검색에 벡터 검색뿐만 아니라 전통적인
15 min read
[논문 리뷰] Efficient Memory Management for Large Language Model Serving with PagedAttention
Paper

[논문 리뷰] Efficient Memory Management for Large Language Model Serving with PagedAttention

[요약] 1. Efficient Memory Management for Large Language Model Serving with PagedAttention 은 vLLM의 기반이 된 논문이다. 2. LLM 서빙에서 throughput을 향상시키려면 배치 처리를 해야한다. 배치 처리의 바틀넥은 KV 캐시가 차지하는 메모리 크기이며 이에 따라 최대 배치 크기가 결정된다. 3. vLLM은 OS의 virtual memory처럼 KV 캐시가 저장되는 메모리를 block단위로 나누고
15 min read
구글 Spanner의 Paxos 및 TrueTime 활용을 알아보자
Paper

구글 Spanner의 Paxos 및 TrueTime 활용을 알아보자

[요약] * Paxos는 분산 시스템에서 사용되는 합의 알고리즘으로 2PC를 확장한 알고리즘으로 볼 수 있습니다. * Spanner는 lease를 활용한 리더 기반 Paxos를 사용합니다. * Spanner의 TrueTime은 오차가 제한되는 전역 동기화 시계로 이벤트 간 순서를 정할 때 도움을 줍니다. * TrueTime을 통해 Spanner는 external consistency 및 MVCC를 제공합니다. [목차] * 2PC * paxos * Spanner의 paxos * Spanner의 TrueTime 및
20 min read
[논문 리뷰] On-demand Container Loading in AWS Lambda
Paper

[논문 리뷰] On-demand Container Loading in AWS Lambda

[요약] 1. On-demand Container Loading in AWS Lambda는 Block-level loading, Deduplication 및 Tiered cache을 도입해 scalability 및 cold start latency를 줄이는 방법을 소개한다. 2. Block-level loading은 이미지를 flattening process를 거쳐 하나의 파일 시스템으로 만든 뒤 chunk로 나누어 캐시에 올린다. 3. 캐시에 이미지를 올릴 때 같은 내용의 이미지는 같은 key로 암호화하여
15 min read
벡터 검색 알고리즘 살펴보기(1): Similarity Search와 HNSW
Information Retrieval

벡터 검색 알고리즘 살펴보기(1): Similarity Search와 HNSW

[요약] 1. FAISS는 similarity search를 도와주는 Facebook에서 만든 라이브러리다. 2. Voronoi diagram은 데이터 셋을 region으로 나누어 벡터 검색 인덱스를 만들 수 있다. 3. Product Quantization은 데이터 벡터를 압축하여 스토리지를 아낄 수 있다. Voronoi diagram과 같이 사용할 수 있다. 4. NSW는 ANN 검색시 사용하는 graph 자료구조다. Skip list는 검색과 입력이 평균
23 min read