DDP에 대해 아무것도 모르는 상태에서 DDP 학습 속도가 단일 GPU로 돌리는 것보다 느린 경우를 봤다. 왜 그런 상황이 발생했는지 경험을 공유한다. 문제는 일반 싱글 GPU에서 모델 예측하듯이 했던것이 문제다.predicts = model(images) DDP로 wrapper 된 model의 경우, 이렇게 사용할 시 예측은 가능하지만, 모든 GPU를 물고서 예측을 하는 것이기 때문에사실상 순차적으로 예측을 진행하는 것.즉, DDP의 핵심인 병렬적으로 처리를 하는게 아니다. 그럼 어떻게 해야할까? predicts = model.module(images) ## model(images)를 하게되면 DDP 모델이기 때문에 속도 느림 .module로 하면 DDP 통신의 hook이 빠져서 개별적으로 GPU를 ..

엑셀에서 위와같이 E행에 하이퍼링크가 되어있을때, 판다스로 읽어와야 할 경우가 생긴다.이때 읽을 수 있는법은 아래와 같다.from openpyxl import load_workbookfile = "파일위치"wb = load_workbook(file, data_only= False) # openpyxl로 엑셀 읽기sheet = "Sheet1" #현재 시트 이름 (자기에 맞게 변경해야함 )ws = wb[sheet] # 해당 시트 읽기 cell = ws.cell(row=셀의 row 위치(int), column= 셀의 column 위치 ( int) ) colA = cell.value 위처럼 그대로 잘 가지고 오는 모습을 볼 수 있다.여기서 가장 중요한건. load_workbook을 할때 data_only=Fa..

더이상 미룰 수 없는 Docker.... 평소 Local에서 Anaconda로 가상환경 따서 진행을 하다보니 Docker를 미루게 되어 더이상 안되겠다는 마음가짐으로평소에 사용할 때 Anaconda 대신 Docker를 생성해서 진행하고자 한다. 그러기 위해서는 Docker를 vscode에서 접속이 가능하도록 만들어야 한다. 여기서는 Docker 설치가 되어있다는 가정하에서 진행하도록 하겠다.만약 Docker 설치가 안되있다면, 설치 후 해보길 권장한다. 1. Make Docker Container 필자는 Docker를 사용하는 방법에 익숙해지기 위한 것이므로, Docker hub에 있는 가장 최신의 python 이미지를 다운로드 받을 것이다.docker pull python 을 통해 가장 최신 pyt..

RAG를 적용하기 위해서 필요한 것이 이미 문서를 DB화 한 상태가 필요함.문서 DB에서 질문에 가장 유사한 내용을 추출하여 LLM prompt에 넣어줌으로써 LLM에게 환각을 방지하고, 보다 정확한 답변을 생성해 내기 위해 사용. 그럼, 질문(Q)과 비슷한 내용은 어떻게 비교할 것인가? NLP에서 문자는 Vector로 표현하게 되고, Vector로 표현하게 해주는 것을 임베딩(Embedding)이라 한다. 문서 내 내용을 모두 임베딩하여 저장을 한 후, 들어온 질문(Q)와 가장 유사하다고 판단되는 문장들을 뽑아내 사용하는 방식이다. 즉, DB는 Vector를 저장해야 사용할 수 있는데, 대표적인 VectorDB는 ChromaDB, Faiss가 대표적인 것 같다. ChromaDB 사용법 정리 1. Ch..

LLM을 하다보면 '모델명-it/chat'과 같은 형식으로 허깅페이스에서 제공하는 모델들을 볼 수 있다.이러한 모델은 chatting 형식으로 fine-tuning하여 실제 모델과 이야기를 주고받는 형식으로 답변을 생성해준다. 이번에는 튜닝의 방식과 대표적인 데이터셋, 튜닝 방법에 대해 정리를 해보고자 한다. SFT - Supervised Fine-Tuning ( 정답이 존재하는 상태에서 진행 - next token prediction )SFT는 두가지로 나뉜다. 1) Full Fine-Tuning모델 전체의 파라미터를 수정하여 학습시킨다. LLM은 대체로 파라미터가 상당히 많으므로 상당한 GPU 자원이 필요한 단점이 있다. 2) Parameter-Efficient Fine-Tuning(PEFT) 모..

Tokenizer 기본 선언 방식from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained(CFG["model"])기존 본인이 사용하고자 하는 모델명, Tokenizer 위치를 파라미터에 넣어 불러오면 끝. 하지만, 위 방식으로 진행하면, 모델따로 토크나이저 따로 불러와 사용해야함.이걸 한번에 할 수 있는게 바로 pipeline 함수. # pipline을 이용하여 추론import transformersfrom transformers import AutoModelForCausalLM ,BitsAndBytesConfig# 4bit quantizationquantization_config = BitsAndBytesConfig..

https://huggingface.co/docs/transformers/ko/llm_tutorial 대규모 언어 모델로 생성하기LLM 또는 대규모 언어 모델은 텍스트 생성의 핵심 구성 요소입니다. 간단히 말하면, 주어진 입력 텍스트에 대한 다음 단어(정확하게는 토큰)를 예측하기 위해 훈련된 대규모 사전 훈련 변환기 모huggingface.co from transformers import AutoModelForCausalLMmodel = AutoModelForCausalLM.from_pretrained( "mistralai/Mistral-7B-v0.1", device_map="auto", load_in_4bit=True) pretrained_model_name_or_path : huggingf..

어느덧 티스토리에서 진행한 이벤트 오블완 챌린지가 마지막 날이 됐다..3주라는 시간이 정말 짧게 지나간 것 같다..( 회사 일때문에 그런지도.. ) 일단 2024년이 끝나가는 마당에 회사일에 치이고 퇴근 후 더이상 기운이 안나 추가적인 공부를 거의 안한 것 같다.그때 마침 티스토리에서 챌린지를 한다는 소식에 냉큼 참여했다. 다시 생각해봐도 정말 참여하기 잘 했다. 평소 공부하고 싶었던 것을 해당 챌린지 삼아 공부하여 블로그에 정리해 놓는 아주 좋은 시간이 됐다. 덕분에 deep하게 모델에 대한 이해를 한층 더 강화할 수 있었고, 수정 사항을 발견하여 추후에는 수정하여 commit도 보내볼 참이다. 모델뿐만 아니라 알고리즘 관련한 공부도 많이 진행했다. 취업하고 알고리즘에 관심이 뜸했는데, 챌린지를 참여..
- Total
- Today
- Yesterday
- 자바
- CNN
- GNN
- java
- yolov11
- 뜯어보기
- 이미지
- DeepLearning
- 어탠션
- GIT
- LLM
- github
- YOLOv8
- 초보자
- 욜로
- 티스토리챌린지
- 오류
- c3k2
- 딥러닝
- V11
- docker
- 파이썬
- 도커
- YOLO
- python
- 깃
- 정리
- 알고리즘
- 오블완
- Tree
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |