전체 글 245

벡터 데이터베이스는 잘못된 추상화임

AI 애플리케이션을 구축하려는 엔지니어링 팀을 괴롭히는 메시지 : "임베딩이 다시 동기화되지 않았습니다"간단한 벡터 검색 구현은 모니터링, 동기화 및 문제 해결의 복잡한 오케스트라로 발전함벡터 데이터베이스로 AI 시스템을 구축하는 엔지니어링 팀과 이야기를 나눈 결과, 벡터 데이터베이스의 잘못된 추상화와 오늘날 사용 방식의 결함을 발견함"RAG 시스템을 구축하는 공통적인 사례"Pinecone을 벡터 데이터베이스로 사용하여 임베딩을 저장하고 검색함텍스트 데이터가 Pinecone의 메타데이터에 잘 맞지 않아 DynamoDB로 블롭과 애플리케이션 데이터를 처리함어휘 검색을 위해 OpenSearch가 필요했음 이제 3개의 시스템을 연결하고 동기화하는 것이 악몽임소스 문서를 삭제할 때 다음을 수행해야 함:boto3..

DB/Vector DB 2024.11.05

Rate Limiter 시스템 디자인 및 설계 방안

Token Bucket토큰 버켓의 경우 사전에 정해진 용량을 갖는다. 토큰은 주기적으로 사전에 설정된 비율로 버켓에 저장된다. 그리고 버켓이 꽉차게 되면 정해진 용량을 초과하여 토큰을 추가하지 않는다.각 API 요청은 1개의 토큰을 사용한다. 요청이 오면 버켓에 적어도 1개의 토큰이 존재하는지 확인한다. 존재하는 경우 1개의 토큰을 버켓에서 꺼내고 요청이 처리된다. 버켓이 비어있는 경우 요청들은 버려진다.   위 사진을 보면 유저마다 분당 3개의 요청량 제한이 설정되어있다.1번 유저가 10:00:00에 첫 번째 요청을 보냈을 때 토큰은 3개가 존재하므로 해당 요청은 정상 처리되며 잔여 토큰은 2개로 감소한다.10:00:10에 유저의 두 번째 요청이 오고 토큰은 2개가 존재하기 때문에 정상 처리되며 잔여 ..

GPT-4o는 이미지를 어떻게 인코딩할까?

GPT-4o는 이미지를 어떻게 인코딩할까? GPT-4o는 고해상도 모드에서 사용되는 각 512x512 타일을 처리하는 데 170 토큰을 부과함. 약 0.75 토큰/단어의 비율로 보면 이는 그림 한 장이 약 227 단어와 같다는 것"그림 한 장이 천 마디 말보다 낫다"는 말과 비교했을 때 약 4배 차이임170이라는 숫자는 기괴할 정도로 특이한 숫자임. OpenAI는 가격 책정에서 "20달러" 또는 "0.50달러"와 같은 반올림된 숫자나 내부 차원에 2와 3의 거듭제곱을 사용함170과 같은 숫자를 선택한 이유는 무엇일까? 프로그래밍에서 코드베이스에 설명 없이 그냥 던져진 숫자를 "매직 넘버"라고 하는데, 170은 상당히 눈에 띄는 매직 넘버임이미지 비용을 토큰 수로 변환하는 이유는 무엇일까? 단순히 청구 목..

AI/LLM 2024.07.27

Briefer – 일정, SQL, 내장 LLM이 포함된 멀티플레이어 노트북

Briefer – 일정, SQL, 내장 LLM이 포함된 멀티플레이어 노트북Notion + Jupyter 에 확장 기능을 추가노트북 스케줄링, 대시보드와 앱으로 변환, 데이터 프레임으로 결과를 리턴하는 SQL 쿼리 등기존 노트북의 문제점 해결공유의 어려움 : 데이터 팀 작업을 보기위해 Docker+Python 설치가 필요노트북이 너무 복잡함 : 코드 블록이 너무 많아져서 가독성 저하 및 비기술자가 이해하기 어려움데이터베이스 쿼리, API 호출, 그래프 작성 등의 간단한 작업도 복잡함Briefer의 해결 방법공유 문제 해결노트북을 클라우드로 이동하여 스케줄링 가능CRDTs와 Yjs를 사용해 상태 관리, 실시간 편집 반영노트북 정리깨끗한 디자인과 블록을 그룹화하여 정리 가능블록을 탭으로 그룹화하고, 공개 버전..

AI/AI News 2024.07.27

Google, AI 계약 덕분에 Reddit에서 작동하는 유일한 검색 엔진이 되다

Google, AI 계약 덕분에 Reddit에서 작동하는 유일한 검색 엔진이 되다Google은 이제 Reddit의 결과를 표시할 수 있는 유일한 검색 엔진임Reddit이 최근 robots.txt 파일을 업데이트하여 Google을 제외한 모든 검색 엔진의 크롤링을 차단함Bing, DuckDuckGo, Mojeek, Qwant 등 Google의 인덱싱에 의존하지 않는 대안 검색 엔진에서는 최근 1주일 동안의 Reddit 검색 결과를 볼 수 없음DuckDuckGo는 Reddit 검색 시 7개의 링크를 표시하지만, 링크의 목적지나 이유에 대한 정보는 제공하지 않음Kagi는 Google의 일부 검색 인덱스를 구매하여 Reddit 검색이 가능함이는 Google의 검색 독점이 다른 기업들의 경쟁 능력을 저해하는 시기..

AI/AI News 2024.07.27

"오픈소스 AI가 미래의 길입니다" by 마크 주커버그

"오픈소스 AI가 미래의 길입니다." by 마크 주커버그고성능 컴퓨팅 초기에 주요 기술 회사들은 자체적으로 폐쇄형 유닉스 버전을 개발함시간이 지나면서 오픈 소스 리눅스가 인기를 끌게 되었고, 현재 클라우드 컴퓨팅 및 모바일 운영 시스템의 표준이 됨AI도 비슷한 방식으로 발전할 것으로 예상됨이제 우리는 오픈소스 AI가 산업 표준이 되기 위한 다음 단계를 밟고 있음다양한 회사와 협력하여 더 광범위한 생태계를 성장시키는 중Meta는 오픈 소스 AI에 전념하고 있음.오픈 소스 AI가 개발자에게 좋은 이유모델을 직접 훈련하고 미세 조정 및 증류할 수 있음: 각 조직은 고유한 데이터를 사용하여 최적의 모델 크기로 조정 가능폐쇄형 벤더에 의존하지 않고 독립성 유지: 오픈 소스는 호환 가능한 툴체인 생태계를 제공하여 ..

AI/AI News 2024.07.27

RouteLLM - LLM 라우터 서빙 및 평가를 위한 프레임워크

RouteLLM - LLM 라우터 서빙 및 평가를 위한 프레임워크RouteLLM은 LMSys와 Anyscale이 협력하여 개발한 LLM 라우터 serving 및 평가를 위한 프레임워크모델 지원GPT-4와 Mixtral 8x7B 외에도 strong-model과 weak-model 인수를 수정하여 다양한 모델 조합 사용 가능LiteLLM을 활용해 다양한 오픈소스 및 closed 모델에서 chat completions 지원OpenAI 호환 엔드포인트도 사용 가능다양한 모델 제공업체의 API 키 설정 방법 제공개발 동기비용과 기능이 다양한 LLM을 배포할 때 고품질 응답을 위해 가장 강력한 모델을 사용하면 비용이 많이 들고, 저렴한 모델을 사용하면 품질이 낮아질 수 있음LLM 라우팅은 간단한 쿼리를 저렴한 모델..

AI/AI News 2024.07.27

PDF table-extraction (표 추출) 실험 (with pdfplumber, camelot, tabula-py)

table extraction은 문서로부터 표를 양식 그대로 추출하는 기술에 대해 연구하는 분야이다.이 기술은 주로 데이터 과학자들이나 연구자들에게 유용한데, 문헌이나 문서들로부터 표 형식의 데이터를 추출해서 가공 가능한 포맷 (예를 들면 csv나 dataframe) 등으로 변환하는 기술은 데이터로부터 다양한 인사이트를 얻는데 도움이 되기 때문이다. 파이썬을 사용해서 표를 추출하는 방법으로는 크게 3가지 툴이 추천되곤한다.pdfplumbercamelottabula-py개인적으로 이들 중에는 pdfplumber가 가장 높은 성능을 보였으며, 그 다음으로는 tabula-py가 좋았고, camelot이 가장 추출률이 좋지 않았었다.이제 예제 코드와 함께 각 툴들에 대해서 소개를 해보고자 한다.(참고로 해당 툴..

Python 2024.07.22

HuggingFace Transformers에서 Zero-shot Classification의 원리

HuggingFace Transformers 라이브러리에서는 다양한 파이프라인들을 제공한다. 그 중 하나로 ZeroShotClassificationPipeline 이라는 것이 있는데, 미리 학습되지 않은 라벨들에 대해서 분류를 하는 기법이다. 알다시피, 모델 학습에는 다양한 공수와 리소스가 소요되기 때문에 현업에서는 필요에 따라 ZeroShot 혹은 FewShot 모델들을 잘 활용해야 하는 경우가 많이 있다. GPT-4와 같은 생성형 모델에서는 LLM의 성능을 통해 이러한 Zero Shot Classification을 수행하게 되는데, BERT와 같은 임베딩 모델 기반 환경에서는 Zero Shot Classification을 어떻게 다루게 될까? 허깅페이스 트랜스포머 소스코드 (transformers/s..

AI/Transformers 2024.03.06