본문 바로가기

전체 글

(1145)
[system design] 유해 콘텐츠 감지 커뮤니티에 유해한 특정 사용자 행동, 활동 및 콘텐츠에 대한 유해한 콘텐츠와 악의적인 행위자를 식별할수 있는 시스템을 구축하는것을 목표로 하며 판별해야 할 데이터는 다음과 같다. - 유해한 콘텐츠 : 폭력, 노출, 자해, 혐오 발언등이 포함된 게시물 - 나쁜 행위/ 나쁜행위자 : 가짜 계정, 스팸, 피싱, 조직적인 비윤리적 활동 및 기타 안전하지 않은 행동 1. 요구사항 명확화 - 게시물의 콘텐츠는 텍스트, 이미지, 동영상 등이 있다. - 게시물을 등록한 사용자의 데이터가 있으며, 게시물에 대한 부가 정보도 포함되어 있다 (댓글/좋아요/싫어요/공유/신고수 등등) - 해당 플랫폼에는 매일 5억개의 게시물이 등록된다. 그 중 사람이 컨텐츠를 유해 컨텐츠로 판별 할 수 있는 라벨링은 10000개이다. - 사용..
onnx model Quantization 모델을 생성하고 단순히 배포만 하는게 아닌 서빙시에는 당연히 메모리가 적게 들어가면서 똑같은 성능을 발휘할수 있다면 최적의 결과를 얻을 수 있습니다. (성능은 똑같은데 비용은 준다고?!) 물론 모델을 어디에 배포하느냐, 어떤 모델을 사용했느냐에 따라서 상황이 달라지지만, 이번 포스팅에서는 onnx를 이용해서 배포시 모델을 양자화하는 방법입니다. onnx에 대한 설명은 예전 포스팅에서 확인하실수 있습니다. : https://uiandwe.tistory.com/1401 1. 양자화란? 모델의 인퍼런스시 가장 중요한것은 서버의 메모리를 어떻게 줄이느냐입니다. 메모리 사용량을 줄이기 위해 벡터 양자화 및 프로덕트 양자화 같은 다양한 최적화 방법을 사용합니다. 양자화는 모델 매개변수를 구성하는 32비트 크기의 실..
[k8s] argocd (minikube에 올려보기) 저번 포스팅에 올렸던 간단한 helm을 체험한 후 이번엔 minikube에 argocd를 통해 CI/CD 자동 배포화가 가능하도록 해보았습니다. 이번 포스팅의 배포 아키텍처입니다. 로컬에 docker 이미지를 빌드 후 github에 변경된 코드(helm)를 커밋합니다. Push 함과 동시에 helm chart에 버전 업데이트를 진행한다. 그러면 Argo에 등록된 Helm Chart 저장소에서 yaml resource를 읽게 되고 코드에 맞춰 쿠버네티스에 배포가 진행된다. 1. argocd install $ kubectl create namespace argocd $ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/..
[k8s] fastapi + helm (minikube에 올려보기) helm 공부하기 위해 간단하게 fastapi를 minikube에 올리는 예제를 해보았다. 이번 포스팅에서는 (1)로컬에서 docker를 실행해보고, (2) minikube에서 실행시켜 보고, (3) 마지막으로 helm으로 실행시켜 보았다. 내용이 꽤 길다. 해당 포스팅의 모든 소스는 github에 올려두었다. https://github.com/uiandwe/fastapi_k8s 1. 로컬에서 docker를 실행 k8s에 올리기 위해 위해 docker부터 만들어야 한다. fastapi 서버 부분이다. 간단하게 호출히 리턴하도록만 만들었다. app/main.py from typing import Union from fastapi import FastAPI app = FastAPI() @app.get("/"..
[dacon] 도배 하자 질의 응답 처리 : 한솔데코 시즌2 AI 경진대회 https://dacon.io/competitions/official/236216/overview/description 도배 하자 질의 응답 처리 : 한솔데코 시즌2 AI 경진대회 - DACON 분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다. dacon.io 해당 대회가 LLM관련 대회여서, 심심한데 한번 해볼까? 하는 마음에 시작하게 되었다. (진지하게는 못했다...하하) 그냥 기본적인 내가 아는 기술을 써서 어디까지 올라가는지 테스트 해보고 싶었다. (hyde를 구현해서 실제로 써보고 싶었다.) 먼저 해당 대회의 내용을 읽어보면 "다양한 질문과 상황을 제공하고, 이에 대한 정확하고 신속한 응답을 제공하는 AI 모델을 개발이 목표이다" 나의 목표는 1. 모델 파인튜닝 2. ..
[사내 해커톤] Stable Diffusion을 이용한 영상 가공 이번에도 어김없이 회사에서 해커톤이 열렸다. 주제는 "생성형 AI를 사용한 회사에 도움이 되는 서비스를 만들어" 였다. 일단 아이디어 도출에서 텍스트로 하는건 재미가 없으므로 패스했고, (프롬프트 튜닝은 너무 많이 해서 재미가 없다) 영상과 음성쪽으로 해보고 싶어서 가닥을 광고쪽으로 컨셉을 잡고 진행했다. 영상의 경우 기존 영상을 일부분만 수정하는 형태로 아이디어를 냈다. 예를 들어 사과를 소개하는 영상에서 사과 대신 배, 복숭아로 바꾸는 형태로 영상을 바꿔서 원하는 영상으로 교체하는것으로 생각했다. 간단한 예시는 다음과 같다. https://tilnote.io/pages/640adfbef4ea08b9071cc823 https://platform.stability.ai/docs/features/inpai..
[논문리뷰] Retrieval-Augmented Generation for Large Language Models: A Survey 해당 논문의 원문은 여기에서 볼수 있습니다. https://arxiv.org/pdf/2312.10997.pdf 요약: LLG함께 RAG도 많은 발전이 이뤄졌다. 상황에 맞는 RAG를 선택하고 구축한다면, 더 좋은 품질의 LLM 결과를 얻을 수 있다. Abstract 대규모 언어 모델(LLM)은 상당한 기능을 보여주지만 환각, 오래된 지식, 알수없는 추론 과정 등의 문제에 직면해 있습니다. 검색 증강 세대(RAG)는 모델의 정확성과 신뢰성을 향상시키고 지속적인 지식 업데이트 및 통합 지속적인 업데이트와 통합이 가능하여 유망한 솔루션으로 부상했습니다. 이 논문은 RAG 패러다임의 발전 과정을 자세히 살펴보며 ( Naive RAG, Advanced RAG, Modular RAG ) RAG 평가를 위한 메트릭과..
[논문리뷰] Precise Zero-Shot Dense Retrieval without Relevance Labels (HyDE) https://arxiv.org/pdf/2212.10496.pdf 결론 요약 : LLM에게 가상 문서(응답)를 생성하도록 지시한 후 이를 사용하여 유사한 문서를 찾으면 zero-shot dense retrieval 에서 검색 성능이 향상됩니다. Abstract 고밀도 검색은 여러 작업과 언어에서 효과적이고 효율적인 것으로 나타났지만, 관련성 레이블이 없는 경우 검색 시스템을 구축하는 것은 여전히 어렵습니다. Hypothetical Document Embeddings(HyDE)을 통해 피벗할 것을 제안합니다. 쿼리가 주어지면 HyDE는 먼저 제로 샷으로 명령어 추종 언어 모델에 가상의 문서를 생성하도록 지시합니다. 벡터를 통해 말뭉치 임베딩 공간에서 벡터 유사성을 기반으로 유사한 실제 문서가 검색되는 이웃..