LLM에 관한 생각
요즘 드는 생각 최근 들어 ChatGPT-4o, Claude-3.5에 이어 Llama 3.1가 출시되는 등 하루가 다르게 LLM 모델들이 진화하고 있다. LLM 기반의 프로덕트를 만드는 입장에서 생각해보면 이전보다 더 뛰어난 모델이 등장할 때마다 프롬프트의 수정 없이 API를 호출하는 부분만 수정하면 되기 때문에 프로덕트의 수명 주기가 길어졌고...
요즘 드는 생각 최근 들어 ChatGPT-4o, Claude-3.5에 이어 Llama 3.1가 출시되는 등 하루가 다르게 LLM 모델들이 진화하고 있다. LLM 기반의 프로덕트를 만드는 입장에서 생각해보면 이전보다 더 뛰어난 모델이 등장할 때마다 프롬프트의 수정 없이 API를 호출하는 부분만 수정하면 되기 때문에 프로덕트의 수명 주기가 길어졌고...
미디엄의 다음 글을 번역하였습니다. How we built Text-to-SQL at Pinterest 분석 문제를 해결하는데 있어서 쿼리를 작성하는 것은 Pinterest의 데이터 사용자에겐 매우 중요한 작업입니다. 하지만 올바른 데이터를 찾거나 분석 문제를 정확하고 효율적인 SQL로 변환하는 것은 어려운 작업일 수 있습니다. ...
DuckDB란? DuckDB는 2019년 네덜란드의 두 데이터베이스 연구자, Mark Raasveldt와 Hannes Mühleisen로부터 탄생한 오픈소스이다. 여기서 duck은 오리를 의미한다. 하늘을 날고, 물에서 수영하며, 땅 위를 걸을 수 있는 오리처럼 다재다능하고 적응력이 뛰어난 시스템을 표방하였다. 공식 문서에 따르면 오리의 울음 소리...
이전 글에서는 시스템 디자인이 왜 중요한지, 또 어떤 사항을 고려해야 할지에 대해 다루었다. 이번 글에서는 실제로 운영되고 있는 서비스들의 시스템 디자인을 탐구해봄으로써 간접적으로나마 설계 문제를 풀어나가는 능력을 키워보고자 한다. Design: TinyURL TinyURL은 길이가 긴 URL을 보다 짧은 URL로 라우팅 해주는 서비스이다. 비슷한...
Introduction 작년 이맘때쯤 엔지니어링 역량을 높이기 위해 시스템 디자인을 공부해보면 어떨까라는 생각이 들었다. 데이터 엔지니어로서의 경험을 돌이켜보면, 이미 데이터베이스 또는 스토리지에 적재된 데이터를 분석 환경으로 수집하고 처리하는 작업을 주로 수행했다. 그래서 그 앞단의 소프트웨어 제품에 대해서는 잘 모르는 경우가 많았고 백엔드 엔지...
지난 글에 이어 이번에는 Apache Flink가 지원하는 SQL API를 사용해보려 한다. 이전 글부터 계속 Scala + SBT 조합으로 Flink Application을 구현하고 있었으나, Flink가 Scala만을 위한 별도의 API를 더 이상 지원하지 않겠다고 언급한 사실을 알게되었다. (2.x 버전부터 적용될 예정) https://...
이전 글에 이어 이번에는 Apache Flink를 띄우고 테스트해보려고 한다. Kafka와 Flink를 Docker Container에 배포한 후 간단한 Job을 제출하여 스트리밍 애플리케이션이 잘 작동하는지 확인해볼 예정이다. Practice 최소한의 구현으로 Flink를 테스트하기 위해서 다음과 같이 시스템을 구성하였다. Kafka 메시...
최근 팀에서 특정 상품을 추천에 노출시키기 위해 파이프라인을 구축할 일이 있었다. Kafka에서 이벤트를 받아와 API를 호출한 후 Hive에 적재해야 했는데, streaming 처리가 적절하다고 판단했음에도 불구하고 batch 처리로 구현하였다. 팀 내 데이터 엔지니어가 나뿐이라 클러스터 환경의 High Availability(HA) 유지가 부담되...
DBT DBT란 Data Build Tool의 약자로, 데이터 처리에 필요한 코드를 모듈화하고 데이터의 품질 관리를 돕는 워크플로우 도구이다. 일단 분석 환경으로 데이터가 Ingestion 되고 나면, 데이터 분석가들은 이로부터 유의미한 비지니스 지표를 뽑아 내기 위해 대단히 많은 쿼리를 생성하고 실행하게 된다. 이때 분석가들이 엔지니어 도움 없이도...
Vector Similarity Search Vector Similarity Search란 오브젝트(검색어, 사진, 비디오, 상품 등) 간의 “유사성”을 정량적으로 측정하기 위해 각 오브젝트를 다차원 벡터 공간으로 Embedding한 후, 벡터 공간에서 정의된 “거리”를 이용하여 가장 유사한 오브젝트를 찾는 것이다. 이를 위해서는 먼저 숫자가 아닌...