
nn.BCELoss() label이 0 또는 1인 Binary Classification을 위해서는 nn.BCELoss()를 사용할 수 있다. 이때 주의할 사항은 다음과 같다. 1. input에 sigmoid() 함수를 씌운 후에 loss function에 넣어야한다. 2. input과 target은 동일한 shape이어야 한다. 3. input과 target의 데이터 타입이 모두 Float이어야 한다. Example: import torch.nn as nn loss_func = nn.BCELoss() sigmoid = nn.Sigmoid() input = torch.randn(size=(2, 4))# shape: (2, 4), dtype: float32 target = torch.FloatTensor(..
모델의 특정 layer를 freeze시키면, 학습 과정에서 Back Propagation이 일어날 때 freeze된 layer의 파라미터들은 weight가 업데이트되지 않고 유지된다. freeze시키는 방법은 간단하다. 해당 layer의 파라미터들에 대해 requires_grad = False로 설정해주면 된다. from transformers import AutoModel def freeze_params(model): for par in model.parameters(): par.requires_grad = False def show_requires_grad(model): for name, param in model.named_parameters(): print(name, ': ', param.requ..
언어 모델의 대표적인 Decoding strategies를 알아본다. 아래에 언급되는 '파라미터'는 transformers 라이브러리의 generate() 함수에 정의된 파라미터를 의미한다. 관련 포스팅 링크를 걸어둔다. Greedy Search 해당 시점에서 확률이 제일 높은 것 하나만 선택. 입력이 동일할 경우 매번 같은 문장이 나옴 파라미터: do_sample=False Beam Search 확률이 높은 토큰을 k개씩 선택. 각 beam에서 k개씩 선택하고, 또 새로 생성된 값들 중 누적 확률이 가장 높은 k개만 선택하는 방식 어떤 beam에서 가 나오면 해당 beam은 최종 선택 후보가 되며, 해당 beam은 k개 중에서 빠짐 이에 따라 k개를 채우기 위해 상위 k+1번째였던 값이 그 자리를 채움..

1. Git LFS 설치 모델의 크기가 크기 때문에 대용량 업로드를 위해 Git LFS를 설치해야 한다. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get install git-lfs git lfs install 2. Access Token 발급 https://huggingface.co/settings/tokens 에 들어가서 토큰을 발급받아야 한다. Role은 'write'로 선택해준다. 노란색으로 표시한 아이콘을 눌러 만들어진 토큰을 복사한다. 3. Huggingface에 업로드하기 from transformers import AutoModel from tran..

Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models · Explosion Over the last six months, a powerful new neural network playbook has come together for Natural Language Processing. The new approach can be summarised as a simple four-step formula: embed, encode, attend, predict. This post explains the components of this explosion.ai Embedding과 Encoding의 개념..
예를 들어 GPU가 3대 있는 서버에서 2번 GPU를 사용해야 한다면, 아래 명령어처럼 실행해준다. CUDA_VISIBLE_DEVICES=2 python run.py CUDA_VISIBLE_DEVICES에 사용할 GPU id를 지정해준다. + 참고 위 방식대로만 사용하면 되는데, 나의 경우 추가적으로 설정을 잘못해서 'RuntimeError: CUDA error: invalid device ordinal' 에러가 발생했다. def makeMultiTurnChatbot(model_name, from_file=None, device="cuda:0"): model = BartForDialogueGeneration.from_pretrained(model_name).to(device) ... 원래 코드에서 dev..

공식 문서에서 위 방법을 제시하고 있다. 나의 경우 내 개인모델을 사용중인데 위 방법대로 하면 토크나이징은 잘 되나 model.encode() 코드 부분에서 에러가 났다. (에러 메시지: torch.nn.modules.module.ModuleAttributeError: 'Transformer' object has no attribute 'encode') 그래서 아래 방법을 사용했다. from sentence_transformers import SentenceTransformer, models model = SentenceTransformer("MY MODEL") tokens = ["TOK1", "TOK2"] word_embedding_model = model._first_module() word_embe..
GitHub 링크: https://github.com/facebookresearch/faiss GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors. A library for efficient similarity search and clustering of dense vectors. - GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors. github.com FAISS 설명 : 유사한 벡터를 검색해서 가져오는 facebook의 라이..