본문 바로가기

전체 글50

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 등)에서도 동작하며 빠른 추론 결과를 얻을 수 있게 해주는 pakege이다. cpp를 이용하면 cpu 만으로도 동작하지만 GPU를 함께 사용하면 더 빠른 결과를 얻을 수 있다. 모델을 cpp로 이용하는 순서는 다음과 같다. llama.cpp 환경 구축 llama.cpp code clone pakege install 사용할 LLM 모델 다운로드 LLM 모델 convert (ggml, gguf 파일로 만들기) python pakege llama_cpp를 이용하여 모델 로드 모델 추론 각 단계별 자세한 내용은 다음과 같다. 1. llama.cpp 환경 구축 모델을 con.. 2024. 2. 22.
huggingface dataset upload 하기 with cmd git-lfs LLM 학습데이터를 사용하면서 huggingface에 데이터를 upload 할 필요가 있었다. 웹 사이트에서도 가능하지만 작업 중인 서버에서 데이터를 올리기 위해서는 번거로운 과정이 필요했으며 서버에서 바로 huggingface dataset에 올리는 방법이 필요했다. git-lfs 설치 lfs는 Large File Storage 의 약자이다. 100M 이상의 파일을 git으로 push 할 때 필요한 프로그램이다. 사용법은 일반적인 git과 비슷하기 때문에 쉽게 사용할 수 있다. 설치명령어는 아래와 같다. bash:$ apt-get install git-lfs huggingface cli 로그인 huggingface repository에 접근하기 위해서는 cli를 통한 로그인이 필요하며 로그인 시에는 a.. 2024. 1. 23.
Artillery : 서버 성능 테스트(부하 테스트) API의 성능을 테스트하기 위해 스트레스 테스트가 필요하다. 쉽게 테스트 상황을 만들어 시간을 확인 하고 싶다면 Artillery를 사용할 수 있다. 설치와 사용법이 간단하고 결과도 깔끔하게 확인할 수 있는 좋은 방법이다. 호출 횟수, 시간, 간격, 시나리오 등을 파일로 설정하여 테스트를 해볼 수 있다. 설치 npm install artillery 전역 설치를 원한다면 -g 옵션을 사용할 수 있다. 사용법 명령어로 바로 사용할 수 있지만 여러가지 설정을 편하게 관리할 수 있도록 파일(json, yml)을 만들어 사용하자. 예시는 yml 파일이다. config에서는 기본 설정을 할 수 있다. target : 테스트할 도메인 timeout : timeout 기준 - timeout은 테스트 환경 -> 서버 -.. 2023. 7. 10.
line_profiler : 어디에서 많은 시간이 걸리는지 알아보기 with flask flask로 챗봇 엔진 서버를 만들면서 속도를 개선해야 하는 상황이었다. AI를 사용하는 엔진에서 다양한 방식의 속도 개선 방법이 있었지만 가장 먼저 어떤 코드에서 시간이 많이 걸리는 지 알아내는 것이 중요하였다. 그래서 선택한 방법이 line_profiler 를 사용하여 각 코드 라인별 소요시간(비율)을 확인하였다. line_profiler는 동작한 코드 각 라인별 hits 수(몇번이나 실행 되었는지), total 걸린 시간 및 hit 당 소요시간, 그리고 전체에서 해당 라인이 차지하는 시간 비율을 알 수 있다. 설치방법 pip install line_profiler 또는 conda install -c conda-forge line_profiler 사용법 line_profiler의 사용법은 간단하다. .. 2023. 7. 3.
Pylint : 규칙적인 코드 작성하기 pylint는 코드의 에러를 찾거나, 정해진 규칙에 맞지 않는 부분을 확인하고 더 나은 코드를 작성할 수 있도록 도와주는 도구입니다. PEP8 스타일을 기본으로 하며 config 파일로 프로젝트 별 규칙을 정의하고 확인할 수 있습니다. 설치 conda install -c conda-forge pylint or pip install pylint 사용법 cmd에서 특정 스크립트를 체크하는 코드입니다. pylint [scirpt_path] # py 파일 또는 directory 위와 같이 실행을 하면 cmd 화면에서 다음과 같은 결과를 얻을 수 있습니다. 결과는 수정이 필요한 부분과 그 원인을 알려주고 마지막 줄에는 코드의 점수를 알려줍니다. 수정 부분을 자세하게 확인해 보면 아래와 같은 규칙으로 작성됩니다. .. 2023. 6. 28.
[컴퓨터 비전] 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.
[컴퓨터 비전] 개요 및 Object Detection 인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다. 컴퓨터 비전의 업무 1. Classification : 이미지가 무엇인지 구분하는 것 2. Localization : 하나의 object의 위치를 찾는 것 3. Object Detection : 여러 개의 Object들에 대한 위치를 Bonding box(네모 박스)로 찾는 것 4. Segmentation : Detection보다 발전된 형태로 Pixel 단위로 Object를 구분하는 것 Localization과 Detection 이미지에서 해당 Object의 위치를 Bounding box로 찾고, Boundering box내의 Object를 판별한다. boundering box를 찾는 과정은 regression과정이며 Ob.. 2021. 4. 21.
[그로스 해킹] AARRR 개념 및 Acquistion 인프런 - 그로스 해킹 양승화 님의 강의를 듣고 정리한 자료입니다. 지표의 중요성 지표(metric) - 로그를 특정 기준에 따라 요약한 숫자 1. 현재 상황을 정확하게 이해하도록 해준다. 2. 목표를 명확하게 해 준다. 3. 의사결정을 하는데 기준이 된다. ● 지표를 관리하는 2가지 방법 1. Task-based, 업무기반 - 결과적으로 안좋은 것 마케팅, 운영, 개발, 사업 등 업무를 기반으로 생성된 지표를 각각 관리하는 것 - 마케팅 팀: 검색광고 키워드별 CTR은 3.5% 이다. - 운영 팀: CS 문의 처리 건 수가 300건이다. - 개발 팀: 이번 배포에서 총 12개의 버그를 수정했다. - 사업 팀: 이 달 신규계약은 12건입니다. ▶ 문제점 - 무엇이 중요한지 판단하기 어렵다. - 전체 프로.. 2021. 4. 19.