본문 바로가기

세계정복의주인장

(1142)
[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는 먼저 제로 샷으로 명령어 추종 언어 모델에 가상의 문서를 생성하도록 지시합니다. 벡터를 통해 말뭉치 임베딩 공간에서 벡터 유사성을 기반으로 유사한 실제 문서가 검색되는 이웃..
[논문리뷰] Lost in the Middle: Models Use Long Contexts https://arxiv.org/pdf/2307.03172.pdf 요약 : 컨텍스트의 앞과 뒤에 중요한 문맥이 있다면 잘 알아듣는다. 중간에 있다면 품질이 떨어진다. Abstract 최근의 언어 모델에는 긴 문맥 입력시 얼마나 잘 동작하는지 알려진 바가 거의 없습니다. 이 논문은 다중 문서 질문 답변과 키-값 검색에 대한 두 가지 작업에 대한 언어 모델의 성능을 분석합니다. 특히나 문맥 정보의 위치 변경시 현재 언어 모델이 긴 입력 컨텍스트에서 정보를 제대로 활용하지 못한다는 것을 나타냅니다. 특히 중요한 정보가 문맥의 시작 또는 입력 컨텍스트의 끝에서 발생하며, 모델이 관련 정보에 액세스해야 할 때 혹은 긴 컨텍스트에 대해서 성능이 크게 저하됩니다. Introduction 언어 모델은 대화형 인터페이스..
3. 벡터 임베딩를 활용한 성과 지표 (다중 분류 문제) 벡터 임베딩으로 구현한 모델에 대한 "평가 지표 구성을 어떻게 할것인가" 글입니다. 1. 무엇을 측정할것인가? 해당 모델의 목표는 사용자가 임의의 질의를 했을때 설정된 알맞은 대답(답변 약 100개 중 하나)을 리턴하는 모델(faq 챗봇)입니다. 벡터 임베딩으로 텍스트를 벡터화 하고, 가장 유사한 벡터가 정답으로 간주되며 해당 값을 리턴하는 방식입니다. 설정된 여러개의 답변중 하나를 찾기 때문에 해당 모델은 다중 분류 성과 지표를 따라야 한다고 판단했습니다. 다중 분류 문제에서 일반적으로 사용되는 성과 지표는 혼동 행렬 (Confusion matrix)로 표현이 가능합니다. 정확도(Accuracy): 올바른 분류의 비율을 나타내는 지표입니다. F1 점수(F1 score): 정확도와 재현율의 조화 평균을 ..
ONNX ONNX는 Open Neural Network Exchange의 줄인 말로 다른 DNN 프레임워크 환경(ex Tensorflow, PyTorch, etc..)에서 만들어진 모델들을 서로 호환되게 사용할 수 있도록 만들어진 공유 플랫폼입니다. ONNX를 사용하는 이유는 다음과 같습니다. 모델의 호환성을 높일 수 있습니다. 예를 들어, PyTorch로 학습한 모델을 TensorFlow Serving에서 서빙할 수 있습니다. 모델의 개발과 유지보수를 쉽게 할 수 있습니다. ONNX는 모델의 구조와 파라미터를 명시적으로 저장하기 때문에, 모델의 개발과 유지보수를 쉽게 할 수 있습니다. 모델의 성능을 향상시킬 수 있습니다. ONNX 모델을 TensorFlow Serving에서 실행하면, TensorFlow Ser..