본문 바로가기

python/딥러닝12

FAISS vector db search (with custom filter) FAISS vector db의 자료의 최소단위인 chunk는 page_content(내용)과 metadata(chunk 정보)로 구성된다.기본적으로 vector db에서 search를 진행하면 입력된 문장과 page_content의 내용을 비교하여 유사한 chunk 순으로 반환을 해준다. 하지만 metadata에 필터링을 걸어 검색을 하고 싶을 때가 있다. 예를 들어 특정 출처의 자료에서만 내용을 검색한다던지 특정 시기의 자료에서 검색을 위해 요구될 수 있다. 기본적인 metadata 필터링과 맞춤형으로 custom 필터 함수를 만들어 사용하는 방법에 대해 알아보자0. vector db loadfrom langchain_community.vectorstores import FAISSfrom langcha.. 2024. 8. 16.
langchain에서 VLLM 사용하기 (with lora) langchain 라이브러리와 VLLM을 함께 이용하는 방법을 소개한다.현재 langchain_community 0.2.6 버전 기준으로 lora adapter 적용 및 stop token이 작용하지 않는 것으로 확인된다.이를 위한 class 처리 방법도 함께 소개한다. langchain VLLM class 사용법1. 모델 선언langchain_community 에서 VLLM class 를 불러와 사용할 수 있다.일반 적인 파라미터들을 바로 설정 할 수도 있고 vllm_kwargs 에 dict 형태로 vllm에서 사용하던 파라미터들을 모두 사용할 수 있다.import torchfrom langchain_community.llms import VLLMmodel_path = "model_path"vllm_k.. 2024. 8. 12.
vLLM 사용방법 with LoRA vLLM은 LLM 모델의 간단한 GPU 병렬처리등을 제공하며 허깅페이스 대비 최대 24배 빠른 추론 속도를 높일 수 있는 라이브러리다.1. 설치방법pip install vllm2. 모델 로드로컬 모델 및 허깅페이스 모델 모두 사용가능사용할 GPU의 개수를 입력하여 병렬처리 가능from vllm import LLMimport torchmodel_path = 'mymodel/mymodel'llm = LLM( model=model_path, # 로드할 모델 path dtype=torch.float16, # dtype tensor_parallel_size=2, # 병렬처리 GPU 개수 enforce_engaer=True # CUDA 그래프 사용여부 )3. quantizationvllm에서 .. 2024. 6. 18.
llama.cpp GPU 가속 설치 error : which is required to install pyproject.toml-based projects llama.cpp를 이용하면서 GPU를 이용한 가속이 가능하다. 기존 모델보다 적은 메모리를 이용하면서 매우 빠른 속도로 모델을 이용할 수 있다. llama-cpp-python install 중에 제목과 같은 에러가 발생했다. cpu만 사용하는 llama-cpp-python은 설치가 가능했지만 GPU 가속을 사용하는 llama-cpp-python은 설치가 되지 않았다. 시도했던 방법과 해결된 방법은 다음과 같다. 설치 명령어 발생한 error 여러 시도 실패한 시도(이것도 해결하는데 도움이 되었을 수 있다.) 성공한 시도 - 정확한 원인 포함 1. 설치 명령어 CUBLAS = on이 GPU 가속을 사용하는 버전을 설치하겠다는 의미이다. (linux, nvidia gpu 사용 시) CMAKE_ARGS=-D.. 2024. 2. 22.
llama.cpp 설치 방법 및 사용방법 with LoRA llama.cpp는 LLM 모델을 quantization을 통하여 필요한 메모리의 양을 크게 감소시켜고성능 GPU가 없는 환경(m1 mac 등)에서도 동작하며 빠른 추론 결과를 얻을 수 있게 해주는 packege이다.cpp를 이용하면 cpu 만으로도 동작하지만 GPU를 함께 사용하면 더 빠른 결과를 얻을 수 있다.모델을 cpp로 이용하는 순서는 다음과 같다. llama.cpp 환경 구축llama.cpp code clonepackege install사용할 LLM 모델 다운로드LLM 모델 convert (ggml, gguf 파일로 만들기)python packege llama_cpp를 이용하여 모델 로드모델 추론각 단계별 자세한 내용은 다음과 같다.1. llama.cpp 환경 구축모델을 convert 하기 위.. 2024. 2. 22.
[컴퓨터 비전] SSD 개요 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. SSD 원리 SSD는 singe shot detecter의 줄임말로 RCNN 계열에서 Object 위치를 찾는 과정과 Object를 분류하는 과정을 하나로 합친 모델이다. YOLO v1 다음에 나온 모델이지만 최초로 정확성과 속도를 모두 잡은 모델로 평가 받는다.(YOLO v2, v3도 정확성과 속도 모두 좋다.) 한번에 Detection하기 위해 이미지 피라미드기법과 Default Box(Anchor Box와 비슷)을 사용한다. 이미지 피라미드 & Default Box Default Box는 Faster RCNN의 Anchor Box와 비슷한 개념이다.(논문에서 다른 단어를 사용했을 뿐) 이미지에서 찾기위한 Object의 .. 2021. 5. 6.
[컴퓨터 비전] OpenCV 안에 있는 Detection 모델 사용하기 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. OpenCV Detection 모델 openCV를 설치하면 딥러닝 프레임워크가 없더라도 사용 가능한 모델을 제공한다. OpenCV에서 지원하는 Computer Vision 처리 기능과 딥러닝을 쉽게 결합하여 사용할 수 있다. ● 단점 - GPU 지원이 약하다. - 학습은 불가능하며 오직 inference만 가능하다. - 다른 딥러닝 프레임워크를 사용했을 때 보다 느리다. 딥러닝 모델 load 하기 자체적으로 가중치 모델을 생성하지 않고 다른 프레임워크에서 생성된 모델을 변환하여 로딩하는 방식이다. 가중치 모델 파일과 환경 파일을 필요로 한다. (각 사이트에서 받을 수 있다.) import cv2 # Tensorflow cvN.. 2021. 4. 29.
[컴퓨터 비전] RCNN, SPP net, Fast RCNN, Faster RCNN 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. RCNN 계열 RCNN 계열은 2가지 stage, Object 위치를 찾는 과정과 Object를 분류하는 과정으로 이루어진 알고리즘 들이다. 1. RCNN RCNN의 동작 단계는 이미지에서 Object가 있을 만한 위치 2000개를 지정하고 2000개 모두 분류 모델에 넣어 분류하는 방법이다. Object 위치를 찾는 방법으로 graph-based segment 기법인 selective search를 이용한다. 이미지를 분류하는 방법은 Imagenet을 이용, feature를 만들고 SVM을 이용하여 이미지 분류, Bounding Box Regression을 수행한다. 동시대 다른 알고리즘에 비해 매우 높은 Detection.. 2021. 4. 28.
[컴퓨터 비전] 주요 Dataset 과 openCV, 컴퓨터 비전 패키지 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. Object Detection과 Segmentation을 위한 주요 Dataset 1. PASCAL VOC (주로 2012 버전) - Detection을 위한 20개의 카테고리를 갖는 데이터를 제공한다. - Detection, Segmentation, Action Classification, Person Layout을 위한 데이터를 제공한다. - Annotation을 xml 형태로 제공 Annotation이란? 이미지의 Detection 정보를 설명 파일로 저장한 것을 말한다. 이미지 class, Boundering box의 위치 등을 특정 포맷으로 전달한다. 2. MS-COCO (주로 2017 버전) - Detection을.. 2021. 4. 22.