본문 바로가기

Python list와 일반 variable의 scope, gradient hook 학습 도중 계산된 gradient의 값을 hook을 이용해 따는 코드를 넣었다. 방법은 크게 어렵지 않다. def hook_function(tensor_gradient): # 내가 하고 싶은 일 return tensor_gradient TORCH_TENSOR.register_hook(hook_function) torch.Tensor는 backward gradient만 얻을 수 있다. 만약 Tensor 대신 Module이라면 다른 forward, backward hook을 모두 사용할 수 있다. 내가 얻고 싶은 것은 gradient의 누적 값이어서 일단 첫 번째 방법을 시도했다. gradients = [] def hook_function(tensor_gradient): gradients.append(ten..
Prompt를 input에 추가했을 때 input, output processing 이때까지 알게 된 input에 prompt를 추가하는 방법은 크게 두가지가 있다. 하나는 맨 처음 input에만 prompt를 추가하는 방식. 두번째는 prompt를 모든 layer마다 추가하는 방식이다. 1. 맨 처음 input에만 prompt 추가 이 방법은 The Power of Scale for Parameter-Efficient Prompt Tuning 논문에 사용되었으며, 아래 2번 논문에서 "tembedding-only ablation" 라고 칭하는 방식으로 사용되었다. 논문 링크: https://arxiv.org/pdf/2104.08691v2.pdf 참조 소스: https://github.com/kipgparker/soft-prompt-tuning Huggingface transformer..
Transformer와 Noam scheduling Knowledge Tracing task를 위해 transformer encoder-decoder 기반 SAINT 모델을 학습시키던 중 model dimension이 256, 512일 때 학습이 잘 되지 않는 현상이 발생했다. Dimension이 128일 때는 잘 됐는데... 논문에서 Training Details 쪽을 보니 "We use the so-called Noam scheme to schedule the learining rate as in [22] with warmup_steps set to 4000." 이란 언급이 있었다. [22]는 "Attention is all you need" 논문이고, 해당 내용은 위와 같다. 적용해보니 신기하게도 학습이 잘 된다! 수식을 살펴보면 warmup_ste..
Variational Inference - Intro Variational Inference에 대해 공부한 내용들을 정리해보도록 하겠습니다. Variational Inference란 용어의 유래 보통 Variational Inference가 잘 작동하는 사례를 보면서 어떻게 활용되는지 그리고 원리가 무엇인지를 공부하게 되지만, 먼저 Variational Inference의 뜻에 대해 궁금해져서 찾아봤습니다. 그리 쉽지는 않더라고요. 구글에 Variational Inference를 검색하면 Variational Bayesian methods가 나오죠. https://en.wikipedia.org/wiki/Variational_Bayesian_methods Variational Bayesian methods - Wikipedia From Wikipedia, t..