이직을 하게 되었다.
미국에 이직하려고 하는 사람은 생각보다 많은 것 같다. 나도 그 중 하나였는데, 아무쪼록 이직에 성공했긴 하다. OctoAI라는 회사에 합격해서 6월 중순부터 일하게 되었다. 사실 당장 미국에 가는 건 아니고 리모트로 일 하게 될 것 같다. 사실 다른 곳에도 면접을 보고 있었는데, OctoAI에 합격하고 간단한 연봉협상 끝에 다른 진행중인 면접들은 다 드랍했다. 일 할 포지션이 정말 마음에 들었고, 그 회사에 정말 훌륭한 엔지니어들이 많다는 사실 때문이다.
예전에 다른 회사에 지원했을 때, 그 회사 CEO가 자기 회사의 경쟁사가 한국엔 없는 것 같고 미국에 OctoAI를 목표로 열심히 하고 있다고 해서 알게 된 회사였다. 그 때 OctoAI에 대해서 조금 찾아봤었는데, mlc-llm이라는 프레임워크에 큰 기여를 하고 ...
Attention을 쿠다로 구현해보기
CUDA를 공부하기.
쿠다를 공부하려고 오래 전 부터 마음먹었는데 실제로는 한 달 쯤 전부터 (정말 필요해진 순간에!) 공부하게 되었다. 회사에서 LLM 인퍼런스 모델을 이해해야 할 일이 생겨서, 동기가 강제로 부여되게 되어 겨우 쿠다 첫 걸음을 떼었다. 사실 아직 뗐다고 말 할 수 있는지도 잘 모르겠다.
사진 출처:https://kjhov195.github.io/2020-01-07-activation_function_1
인터넷에 많이 있는 쿠다 자료의 특징은 난이도가 Sigmoid 함수를 따른다는 점이다. 쉬웠다가…쉬웠다가… 갑자기 어려워진다! 예를 들면 다음과 같다. 첫 예제에서 벡터 곱셈을 배우고, 두번째 예제에서 쿠다로 Quick So...
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...
요즘 느낀 것
변하기 위해서, 단 한 번의 코끝이 시려지고, 눈시울이 뜨거워지는 경험이 충분한 경우도 있지만, 그런 일은 흔히 발생하지 않는다. 변화는 다짐이지만, 결과는 서서히 나타나기 때문이다. 예를 들면, 대기 중 이산화탄소가 증가하기 시작한 것(변화)은 약 200여 년 전이지만, 지구온난화의 효과가 발생한 것(변화의 결과)는 20년 쯤 되었을 것이다. 살이 찐 것은 장기간의 식습관 탓일 가능성이 높다. 공부를 열심히 하기로 마음먹은 학생의 노력이 빛을 발하려면 몇 개월의 시간은 걸릴 것이다. 변하기 위해 생각과 행동은 빠르게 바꿔야 하지만, 변화의 결과는 인내심을 갖고 기다려야 한다.
내가 이런 상황에 처하게 된 것도 오랜 습관의 결과이며, 내 습관을 일순간에 변화시킬 수 있다고 하더라도(물론 이조차 쉽지 않지만) 이런 상황에서 벗어나려면 몇 달, 혹은 몇 년 간의 노력이 필요할 것이다. 그러므로, 변화의 결과를 빨리 관찰할 수 없다고...
마법이 마법이 아니게 되는 순간
마법이 아니게 되는 순간
무언가를 배울 때는 항상 마법이다. 텐서플로우와는 다르게 왜 파이토치는 바로 실행이 되는가라던가. 물론 내가 관심있는 부분에 관한 얘기다. CPU, GPU의 동작도 충분히 마법이지만, 그 곳에 큰 열망이 생기지는 않는다. 살다가, 공부를 해서던, 익숙해져서던, 그 내부 동작이 이해가 갈 때가 생긴다. 다시 파이토치를 예로 들면, AutoGrad가 어떻게 동작하는지 대강 감이 온 순간이 나한테는 그랬다.
머신러닝을 처음 배울 때에도 그랬다. 어떤 Classificaion Model이 있는데, 얘는 어떻게던 돈다. 무언가를 분류한다. 아무쪼록 살다 보면, 이게 더 이상 마법이 아닌 순간이 오게 된다. 어떠한 방식의 함수를 만들어서, 이 함수가 적당히 0과 1 사이의 결과를 뱉게 만들고, 뭐 그런 함수를 잘 찾는 문제라는 사실과, 데이터와 그 함수가 잘 매칭되게 그 함수를 적당히 찾아나가는...
11월 27일의 일기
일을 잘 하는 방법
그렇게 하고 있다는 얘기는 아니고 그런 방법이 보인다는 수준인데, 몇 가지 있는 것 같다.
다른 사람들이 할 수 있는 일이지만 이를 더 빠르게 하거나, 우선순위를 잘 맞춘다던가, 투입하는 시간이 많으면 일을 더 잘 할 수 있는 것 같다. 반대로 투입 시간이 너무 적으면 아무리 우수해도 일을 잘 할 수 없는 것 같다.
혼자서는 못 하는 일을 하는 것도 일을 잘 하는 방법 중 하나이다. 규모가 필요한 일이 있다. 다른 사람들을 이끌어서 혼자서는 하지 못 할 규모의 프로젝트를 리드할 수도 있다. 다른 사람을 이끌고, 신뢰를 사고, 일정대로 결과를 만드는 일은 어려운 것 같다.
실현이 복잡한 일을 하는 것도 일을 잘 하는 방법인 것 같다. 모두 생각은 할 수 있는데 실현할 엄두를 쉽게 내지 못하는 일을 해내는 것이다. 특정 구현체 클라이언트가 느릴 때, 이를 많이 빠르게...