분류 전체보기 22

[GPU 메모리 절약] 메모리를 절약해서 학습시켜보자

1. Gradient Checkpointing을 이용한 메모리 사용량 줄이기모델의 훈련 과정에서 가장 많은 메모리를 사용하는 것은, 노드마다 역전파를 통해 Loss를 계산하는 과정이다. 이 때 Gradient Checkpointing 없이 Forward 연산을 수행할 경우, 모든 중간 계산 결과를 누적해서 GPU 메모리에 저장해두기 때문에(나중에 Back Prop에서 쓰기 위해), 메모리를 비효율적으로 쓰게 될수밖에 없다. 일반적인 Neural Net에서 Layer Depth가 주로 메모리 사용량에 영향을 미치겠지만, 특히 RNN계열은 체크포인팅을 사용하지 않으면 치명적이다. RNN계열(LSTM, GRU)에서 Gradient Checkpointing을 사용하지 않으면 각 Time Step 마다 계속 값을..

AI 2024.12.14

[시계열 데이터] Sequential Data의 Validation(Sequential Data의 Cross-Validation)

Ref : https://gmnam.tistory.com/230 시계열 모델의 교차검증 (cross-validation) 전략 (파이썬 코드 포함)두 가지 time series 교차검증 (cross-validation) 방법 교차검증 cross validataion (CV) 은 데이터 모델링에 있어 모델의 정확도를 확인할 수 있는 효율적인 방법이다. 이것은 데이터를 훈련용과 테스트용을gmnam.tistory.com 일반적인 Validation의 경우, Train데이터의 일부를 랜덤하게 샘플링하여 Validation Set을 만든다. 시계열 데이터와 같은 순서가 있는 데이터는 랜덤하게 샘플링할 경우 Sequence 정보를 무시하는것이 되므로, 조금 다른Cross Validation을 고려해야한다. 1. 순..

AI 2024.12.12

[NLP] Embedding이란? & Text데이터의 Embedding(Word, Sentence)

Ref : https://wikidocs.net/22644 09. 워드 임베딩(Word Embedding)텍스트를 컴퓨터가 이해하고, 효율적으로 처리하게 하기 위해서는 컴퓨터가 이해할 수 있도록 텍스트를 적절히 숫자로 변환해야 합니다. 단어를 표현하는 방법에 따라서 자연어 처리의 성…wikidocs.nethttps://blog.kakaocloud.com/163 임베딩(Embedding)이란? LLM에서의 역할과 응용" data-og-description="안녕하세요, 카카오클라우드입니다. 최근 LLM의 발전과 함께 임베딩(Embedding)이라는 용어를 자주 접하게 됩니다. 임베딩은 텍스트, 이미지 등의 데이터를 벡터 공간에 표현하는 기술로 LLM의 성능" data-og-host="blog.kakaocl..

AI 2024.12.04

[Fine Tuning] PEFT(Parameter Efficient Fine Tuning), SFT(Supervised Fine Tuning)

Ref :https://4n3mone.tistory.com/7 [Hugging Face] PEFT에 대해 알아보자본 포스트에서는 자연어처리 분야에서 입지전적인 위치를 가지고 있는 Hugging Face에서 새로이 개발한 🤗PEFT :Parameter-Efficient Fine-Tuning of Billion-Scale Models on Low-Resource Hardware의 설명 문서를 번역하4n3mone.tistory.comhttps://ariz1623.tistory.com/347 Supervised Fine-tuning: customizing LLMs서론LLM은 인간과 유사한 자연어 처리 능력을 가지지만, 특정 도메인이나 작업에 최적화된 성능을 발휘하기 위해서는 추가적인 학습이 필요합니다.이때 사..

AI 2024.11.22

[Prompting기법] LLM 모델의 추론 능력을 향상시키기 위해 고려할 사항들

Ref. https://bgreat.tistory.com/m/231 LLM 모델 성능 향상을 위한 다양한 방법들대형 언어 모델(LLM, Large Language Model)은 자연어 처리(NLP) 분야에서 많은 혁신을 이루었으며, 다양한 분야에 걸쳐 활용되고 있습니다. 그러나 이러한 모델의 성능을 극대화하기 위해서는 여러 기법bgreat.tistory.comhttps://ncsoft.github.io/ncresearch/d1d22308d4efe749b647a5ad2bc8e68bd71ccded#%EC%B4%88%EA%B1%B0%EB%8C%80-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%B6%94%EB%A1%A0-%EB%8A%A5%EB%A0%A5-%EC%9D..

AI 2024.11.20

[Clustering] 실루엣 계수, KMeans(엘보우 기법), HDBSCAN

Ref : https://abluesnake.tistory.com/158 [metric] 군집분석 평가 지표 1: 실루엣 계수(Silhouette Coefficient)군집분석과 실루엣 계수 군집분석(Clustering)은 범주형 타겟에 대한 사전 정보가 없는 경우, 전체를 몇 개 군집으로 그룹화하여 각 군집의 특징을 파악하는 분석 방법론입니다. 그룹화를 수행할abluesnake.tistory.com 프로젝트 진행 중, 문장에 대한 주제 분류를 통해 각 주제에 맞는 모델링이 필요하다고 판단했다. (예를 들어, 세계, 경제 등 사전지식을 필요로 하는 주제 및 데이터에 대해서는 RAG를 기반으로한 모델링을 활용한다던가 .. 등) 일단 주어진 데이터에 대한 주제를 분류해보자.클러스터링은, 범주형 타겟에 사전 ..

AI 2024.11.18

[오류 해결] GPU 있는데 torch.cuda.is_available()이 False를 반환할 때

환경 : Ubuntu 20.04 86xCPU : i9-13900GPU : RTX A5000CUDA Toolkit Version : 12.1Driver Version : 535.183.01  아나콘다 가상환경 사용 중, base환경에서는 torch.cuda.is_available()이 True를 반환하는데, 다른 가상환경으로 바꾸면 매번 False를 반환했는데, 나쁜짓이라는건 알지만 일단 다른 일을 해결하기 바빠서 임시방편으로 base환경에서만 작업을 하고 있었다. 일단 해결은 했지만, 정확하게 알고 해결한건진 아직도 잘 모르겠고, 어떤 부분을 찾아보고 어떤 과정으로 해결했는지를 기록해두려 한다. 1. nvidia-smi 이거 치면 12.2라고 뜨길래 CUDA 버전이 12.2인가 싶어서 거기에 맞는 파이토..

유틸리티 2024.11.06

[유틸리티] 부스트캠프 중간 회고

부트캠프 기간 내의 프로젝트를 절반정도 지나는중인데, 기술적인 부분 외에 협업 자체에 대한 내용에 대해 느낀 점이 있어서 간단히 기록해봤다. 1. 스스로 기술적으로 살짝 부족하다고 생각해도, 크게 문제될게 없다. 모르는게 있으면 프로젝트를 하면서 배우면 되는거고, 여기에 대해 불안해한다거나 할 필요 절대 없다. 2. 프로젝트할 때 프로젝트 일지, 미팅 일지부터 만들고 시작하자.미팅 일지 : 팀원들 말을 금처럼 듣고 최대한 정성스럽게 기록해두자.예전에 군대에 있을 때, 같은 부서에서 일하실 분이 새로 들어오신적이 있었는데, 인수인계받으실 때 업무 자잘한부분까지 메모장에 기록해두시는 모습이 생각났는데, 당시에는 '그냥 하면서 배우면 되는건데 굳이 저렇게까지..?' 약간 유난이라고 생각했는데, 잘못된 생각이었..

유틸리티 2024.11.06

Flake8, Black, Isort를 활용한 Pre-commit(cf. Ruff, Makefile)

Ref :https://velog.io/@qlgks1/Python-flake8-Black-%EB%8F%84%EC%9E%85-clean-code-%EC%8B%A4%EC%B2%9C%ED%95%98%EA%B8%B0 python - flake8, Black 도입, pre-commit & clean code-style 실천하기PEP 8 기준 python code style tool - Linter로 사용할 수 있는 flake8 그리고 조합이 좋은 black을 살펴보고 pre-commit 까지 설정해보자.velog.io 깃허브에서 협업을 하기 위해 중요한 요소중 하나는 컨벤션을 지키는 것이다. 내가 작성한 코드보다 남들이 작성한 코드를 읽기 어려운게 이상한일이 아니다. 사람마다 작성하는 스타일이 다를 수밖에 없기때..

유틸리티 2024.11.05

[Streamlit] Streamlit 세션 관리

Ref :https://velog.io/@jomminii/streamlit-session-state [Streamlit] 변수를 기억하고 싶다면 Session State를 사용하십시다.이전 글(AWS Polly(폴리)를 이용한 TTS(Text To Speech, 음성 합성) 구현 (3))에서 Streamlit과 AWS Polly를 사용해서 음성 합성 서비스를 구현해 봤는데요. 이때 아쉬웠던 것 중 하나가 aws key 들을 각 페이지를velog.io https://wikidocs.net/231607 25일차: st.session_state브라우저 탭에서의 Streamlit 앱 접속을 세션으로 정의합니다. Streamlit 서버에 연결하는 각 브라우저 탭마다 새로운 세션이 생성됩니다. 앱과 상호작용할 때마..

유틸리티 2024.11.05