9월 16일의 일기
잘 산다는 것은 무엇일까. 항상 생각해왔던 것을 잊지 않게 간단하게 적어두려 한다.
성취하려고 애쓰는 것이 아니라 유지하는 것이다.
몸과 마음이 건강하게 지내는 것, 주변 사람들과 좋은 관계를 유지하는 것, 먹고 살 정도의 소득이 있는 것, 때로는 열심히, 때로는 즐겁게 시간을 보낼 일, 친구, 취미가 있는 것은 일시적으로는 어렵지 않은 목표이다.
하지만 이런 상황을 유지하는 것은 어렵다. 조울증 환자로서, 피할 수 없이 이따금 무기력해지는 날들이 있다. 잠을 못 드는 시간이 길어지면 낮에 피곤해진다. 낮에 피곤해지면 짜증을 쉽게 내고, 주변 사람들과의 관계가 틀어지기 쉽다. 일의 페이스를 유지해지기 어렵고, 즐거운 일도 즐겁지 않게 느껴진다. 이런 상황이 오지 않게 최대한 막고, 오면 최대한 빠르게 탈출해야 한다.
그리고 이러한 일들은 내가 갖고 있을 때는...
이직을 하게 되었다.
미국에 이직하려고 하는 사람은 생각보다 많은 것 같다. 나도 그 중 하나였는데, 아무쪼록 이직에 성공했긴 하다. 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 사이의 결과를 뱉게 만들고, 뭐 그런 함수를 잘 찾는 문제라는 사실과, 데이터와 그 함수가 잘 매칭되게 그 함수를 적당히 찾아나가는...