일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적 프로그래밍
- PYTHON
- BFS
- 코딩테스트
- 그래프
- 구글 킥스타트
- 운영체제
- 백준
- DFS
- linux
- 딥러닝
- 브루트포스
- OS
- 파이썬
- nlp
- 동적프로그래밍
- 코딩 테스트
- 네트워크
- 킥스타트
- 리눅스
- dp
- google coding competition
- 프로그래밍
- 알고리즘
- CSS
- kick start
- 순열
- 코딩
- 프로그래머스
- AI
- Today
- Total
목록huggingface (6)
오뚝이개발자

Error 발생 상황 모델 학습을 돌리다보면 다음과 같은 에러를 종종 만나게 된다. device-side assert triggered Assertion `srcIndex < srcSelectDimSize` failed. RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)` Error의 원인 GPU단에서의 에러 메시지는 이처럼 자세한 이유를 드러나지 않아 디버깅이 쉽지 않다. 위와 같은 에러의 원인은 대게 차원(dimension)이 일치하지 않아 발생하는 문제이다. 즉, input으로 모델에 주입..
GPU를 사용해 모델 학습을 돌리다보면 GPU의 사용률이 저조하게 나오는 경우가 있다. 이런 경우 충분한 자원이 있더라도 학습에 오랜 시간이 걸리게 된다. 이 때 필요한 것이 GPU 사용률을 최적화시키는 것이다. 방법은 많지만 그 중 가장 대표적인 방법을 소개하고자 한다. GPU 사용률이 저조한 이유는 대부분 CPU단에서 데이터 처리가 GPU에서의 처리 속도를 따라가지 못해 발생한다. 즉, GPU에서 처리할 데이터가 CPU에서 아직 프로세싱을 거쳐서 준비가 다 되지 않은 경우이다. num_workers 설정해주기 pytorch와 huggingface의 transformers엔 모두 num_workers라는 파라미터를 설정해줄 수 있다. 이는 학습 도중 CPU의 작업에 몇 개의 코어를 사용할지를 결정하는 ..
허깅페이스를 사용하다보면 이미 만들어진 모델을 불러와서 inference만 하고자 하는 때가 있다. 가령 이미 학습된 NER 모델을 불러와 데이터 처리를 한다거나, Summarization 모델을 불러와서 필요한 문서에 대한 summarization을 수행하려고 하는 경우가 그러하다. 보통 이런 때엔 허깅페이스의 pipeline 기능을 사용한다. 그런데 처리하고자 하는 데이터가 대용량인 경우 시간이 오래 걸리는 경우가 많다. 이런 때 GPU를 사용해 model infernece를 돌리는 방법에 대해 소개한다. 참고로 이 방법은 실험을 하면서 내가 필요했던 기능인데 구글 검색을 통해 찾아봐도 나오지 않아서 ...ㅜㅜ 혼자 공식문서를 읽어서 파악하고 직접 실험을 돌리며 알아낸 것이다....! from tra..
허깅페이스의 transformers 패키지를 사용하는데 early stopping 방식으로 학습을 시키고 싶을 땐 아래와 같이 early stopping callback을 넣어주면 된다. from transformers import EarlyStoppingCallback batch_size = 3 args = Seq2SeqTrainingArguments( "saved_model", evaluation_strategy = "steps", eval_steps = 5, load_best_model_at_end = True, learning_rate=2e-5, per_device_train_batch_size=batch_size, per_device_eval_batch_size=batch_size, gradie..
허깅페이스의 transformers 패키지를 사용할 때 custom loss로 최적화를 해야하는 경우가 있다. 이럴 땐 Trainer클래스를 상속받아 새로운 CustomTrainer 클래스를 만들고 그 안의 compute_loss 함수를 새로 작성해주면 된다. from torch import nn from transformers import Trainer class CustomTrainer(Trainer): def compute_loss(self, model, inputs, return_outputs=False): labels = inputs.get("labels") # forward pass outputs = model(**inputs) logits = outputs.get("logits") # com..
Hugging Face – The AI community building the future. The AI community building the future. Build, train and deploy state of the art models powered by the reference open source in machine learning. huggingface.co 허깅페이스(Huggingface)는 사람들이 모델을 만들고 학습시켜 올려둘 수 있는 저장소이다. 기본적으로는 git을 기반으로 돌아간다. 허깅페이스의 transformers 모듈을 사용하면 자신에게 필요한 여러 모델들을 손쉽게 가져다 쓸 수 있다. 여기에 자기가 만들어 학습을 시킨 혹은 기존의 pre-trained된 모델을 가져다가..