Attention을 쿠다로 구현해보기

CUDA를 공부하기.

쿠다를 공부하려고 오래 전 부터 마음먹었는데 실제로는 한 달 쯤 전부터 (정말 필요해진 순간에!) 공부하게 되었다. 회사에서 LLM 인퍼런스 모델을 이해해야 할 일이 생겨서, 동기가 강제로 부여되게 되어 겨우 쿠다 첫 걸음을 떼었다. 사실 아직 뗐다고 말 할 수 있는지도 잘 모르겠다.

sigmoid

사진 출처:https://kjhov195.github.io/2020-01-07-activation_function_1

인터넷에 많이 있는 쿠다 자료의 특징은 난이도가 Sigmoid 함수를 따른다는 점이다. 쉬웠다가…쉬웠다가… 갑자기 어려워진다! 예를 들면 다음과 같다. 첫 예제에서 벡터 곱셈을 배우고, 두번째 예제에서 쿠다로 Quick So...

Click to read more ...

Activation Aware Quantization

Uniform Quantization

Transforms value $w$ -> quantized value $w_q$.

by \(w_q = \text{clamp}(\text{round}(\frac{w}{s_q} + z))\)

  • $w \in [\beta, \alpha]$
  • $w_q \in [0, 2^b-1]$
  • $b$ is the number of bits used in the quantization process.
  • $s_q=\frac{\alpha - \beta}{2^b - 1}$ is the scale factor
  • $z=-\text{round}(\beta \frac{\beta - \alpha}{2^b - 1})$ is the zero point.

w는 weight...

Click to read more ...

요즘 느낀 것

변하기 위해서, 단 한 번의 코끝이 시려지고, 눈시울이 뜨거워지는 경험이 충분한 경우도 있지만, 그런 일은 흔히 발생하지 않는다. 변화는 다짐이지만, 결과는 서서히 나타나기 때문이다. 예를 들면, 대기 중 이산화탄소가 증가하기 시작한 것(변화)은 약 200여 년 전이지만, 지구온난화의 효과가 발생한 것(변화의 결과)는 20년 쯤 되었을 것이다. 살이 찐 것은 장기간의 식습관 탓일 가능성이 높다. 공부를 열심히 하기로 마음먹은 학생의 노력이 빛을 발하려면 몇 개월의 시간은 걸릴 것이다. 변하기 위해 생각과 행동은 빠르게 바꿔야 하지만, 변화의 결과는 인내심을 갖고 기다려야 한다.

내가 이런 상황에 처하게 된 것도 오랜 습관의 결과이며, 내 습관을 일순간에 변화시킬 수 있다고 하더라도(물론 이조차 쉽지 않지만) 이런 상황에서 벗어나려면 몇 달, 혹은 몇 년 간의 노력이 필요할 것이다. 그러므로, 변화의 결과를 빨리 관찰할 수 없다고...

Click to read more ...

마법이 마법이 아니게 되는 순간

마법이 아니게 되는 순간

무언가를 배울 때는 항상 마법이다. 텐서플로우와는 다르게 왜 파이토치는 바로 실행이 되는가라던가. 물론 내가 관심있는 부분에 관한 얘기다. CPU, GPU의 동작도 충분히 마법이지만, 그 곳에 큰 열망이 생기지는 않는다. 살다가, 공부를 해서던, 익숙해져서던, 그 내부 동작이 이해가 갈 때가 생긴다. 다시 파이토치를 예로 들면, AutoGrad가 어떻게 동작하는지 대강 감이 온 순간이 나한테는 그랬다.

머신러닝을 처음 배울 때에도 그랬다. 어떤 Classificaion Model이 있는데, 얘는 어떻게던 돈다. 무언가를 분류한다. 아무쪼록 살다 보면, 이게 더 이상 마법이 아닌 순간이 오게 된다. 어떠한 방식의 함수를 만들어서, 이 함수가 적당히 0과 1 사이의 결과를 뱉게 만들고, 뭐 그런 함수를 잘 찾는 문제라는 사실과, 데이터와 그 함수가 잘 매칭되게 그 함수를 적당히 찾아나가는...

Click to read more ...

11월 27일의 일기

일을 잘 하는 방법

그렇게 하고 있다는 얘기는 아니고 그런 방법이 보인다는 수준인데, 몇 가지 있는 것 같다.

다른 사람들이 할 수 있는 일이지만 이를 더 빠르게 하거나, 우선순위를 잘 맞춘다던가, 투입하는 시간이 많으면 일을 더 잘 할 수 있는 것 같다. 반대로 투입 시간이 너무 적으면 아무리 우수해도 일을 잘 할 수 없는 것 같다.

혼자서는 못 하는 일을 하는 것도 일을 잘 하는 방법 중 하나이다. 규모가 필요한 일이 있다. 다른 사람들을 이끌어서 혼자서는 하지 못 할 규모의 프로젝트를 리드할 수도 있다. 다른 사람을 이끌고, 신뢰를 사고, 일정대로 결과를 만드는 일은 어려운 것 같다.

실현이 복잡한 일을 하는 것도 일을 잘 하는 방법인 것 같다. 모두 생각은 할 수 있는데 실현할 엄두를 쉽게 내지 못하는 일을 해내는 것이다. 특정 구현체 클라이언트가 느릴 때, 이를 많이 빠르게...

Click to read more ...

11월 3일의 일기

Life has no well-defined single objective.

My life has been in pain. Having Bipolar Disorder gives many causes, (but also excuses) for my good and bad behaviors. in retrospective view, my life is full of dumb bullshits and misbehaviors and malfunctions of a human being can commit.

So, as a rational person (at least trying to be rational), it is rather rational that my behavior, my thought, and my course of life must be irratio...

Click to read more ...