Antigravity cli
1 noteClaude
4 notes- Claude Fable 5, Mythos 5 살펴보기2026년 7월 1일, Fable 5·Mythos 5 재배포 6월 12일 미국 정부의 수출 통제(export controls)로 중단됐던 두 모델은 6월 30일 통제 해제 후 7월 1일 다시 배포됐다. Fable 5는 전 세계 사용자에게, Mythos 5는 승인된 일부 미국 조직...

- Claude Opus 4.8 살펴보기오늘 새벽 두 시에 갑자기 Claude Opus 4.8이 출시됐다. 요새 클로드의 모델 업데이트 주기가 부쩍 빨라졌다. 작년만 해도 프론티어 모델의 업데이트는 최소 세 달을 간격으로 진행했었는데, 올해 들어서는 Opus 4.6에서 4.7로 약 두 달, 4.7에서 4.8로는 그보다...

- 나만의 하네스 구축하기 - CLAUDE.md오늘은 CLAUDE.md를 제대로 다루는 법을 정리해보려고 한다. CLAUDE.md는 개인이 구축할 수 있는 가장 영향력 있는 하네스라고 생각한다. 그만큼 잘 다뤄야 하는 요소이므로, 잘 다루는 방법을 정리해봤다. CLAUDE.md가 중요한 이유 본격적으로 시작하기 전에 다음 내용...

- claude code에서 잘 사용하지 않는 skills 다루기이번 글에서는 Claude Code의 Skills 설정을 다룬다. GitHub에는 Claude Code용 오픈소스 스킬 번들이 넘쳐난다. gstack , superpowers 같은 잘 알려진 컬렉션부터 개인이 묶어 올린 모음집까지, 한 번 설치하면 적게는 한두 개, 많게는 20개가...

LLM
9 notes- NEFTune이번 대회 학습 데이터는 약 2,000개로 적은데 모델은 27B였다. 거대 모델이 소규모 데이터를 학습하면 과적합 위험이 크다. 이걸 막으려고 NEFTune을 도입했는데, 임베딩에 노이즈를 더하는 단순한 기법이 왜 과적합을 막는지 정리해봤다. 문제: SFT 단계의 소규모 과적합 L...
- 체크포인트 선정하기학습이 끝나면 보통 eval/loss가 가장 낮은 체크포인트를 골라 추론에 쓴다. 나도 그렇게 했는데, 정작 loss가 더 높은 마지막 epoch 체크포인트가 실제 점수는 더 높게 나와서 한참 갸웃했다. WandB 차트를 보면서 어떤 체크포인트를 써야 하는지 다시 생각했던 걸 정리...

- Unsloth 적용기27B 모델을 V100 32GB에서 굴리려니 속도와 메모리 양쪽이 빠듯했다. unsloth를 적용하면서 왜 쓰는지, 그리고 직접 batch size를 1·4·8로 바꿔보다 batch 1이 제일 빨랐던 이상한 결과를 추적했던 걸 정리해봤다. 왜 unsloth였나 unsloth는 같은...
- completion-only loss - 질문 말고 정답만 학습시키기SFT 데이터를 학습시킬 때 질문과 정답이 한 시퀀스로 들어가는데, 처음엔 모델이 이 전체를 다 학습하는 줄 알았다. 그런데 질문은 학습하지 않고 정답 부분에만 loss를 거는 방법이 따로 있었다. 입력으로 받는 것과 loss를 거는 것의 차이를 정리해봤다. 입력으로 받는 것 ≠...
- LLM 추론 최적화 이해하기LLM 추론은 토큰을 auto-regressive하게 하나씩 생성하는 과정이라 바닐라로 돌리면 매우 느리다. 이걸 빠르게 만드는 최적화 기법들을 메모리 이동, 반복 계산, 배치 처리 관점으로 나눠 정리해봤다. 생성 단계의 sampling/search 자체는 3. Sampling 기...
- LoRA를 사용하는 이유LoRA의 메커니즘 자체는 머릿속에 잘 그려져 있었다. 큰 weight 행렬을 두 개의 작은 행렬로 쪼개 덧붙이는 것. 그런데 정작 LoRA가 왜 PEFT 중에서 가장 널리 쓰이는지, 그 결정적 장점은 정리해두지 못했었다. 그 부분까지 채워봤다. 메커니즘 - low-rank 분해...
- Casual LM을 사용하는 이유최근 LLM이 대부분 Decoder-Only 구조라는 게 처음엔 의아했다. 그런데 학습 효율 관점에서 보면 납득이 됐다. 문장 하나가 주어지면 매 토큰 위치마다 다음 토큰이라는 학습 신호가 생기므로, 사실상 문장 하나로 거의 모든 토큰에서 학습이 일어난다. 이 점을 정리하면서 두...
- Pretrained LM과 LLM둘 다 대량의 코퍼스로 사전학습한 언어모델인데, 왜 Pretrained LM과 LLM을 굳이 나눠 부르는지가 처음엔 잘 와닿지 않았다. 핵심은 모델 크기보다 하나의 모델로 몇 개의 태스크를 푸느냐에 있었다. Pretrained LM BERT, GPT-1/2 같은 모델이 여기에 속한...
- Pretrain Corpus 정제와 MemorizationLLM은 온라인에서 긁어모을 수 있는 최대한 많은 텍스트로 사전학습한다. 그런데 그 원시 데이터를 그대로 쓰지 않고 굳이 정제 작업을 거치는 이유가 무엇인지 정리해봤다. Corpus와 원시 데이터 코퍼스는 사전학습을 위한 대량의 텍스트 데이터 집합이다. 원시 데이터는 블로그, 뉴스...
NLP
16 notes- 2. Beam Search와 그 한계필기에 내가 적어둔 메모 중에 2³개...? (X) 라는 게 있었다. beam search가 매 스텝 후보를 k개씩 펼치니까 스텝이 지날수록 k 2 , k 3 , … 으로 지수적으로 폭발하는 거 아닌가 싶었던 흔적이다. 결론부터 말하면 그렇지 않다. 그게 왜 그런지 따라가보면서 b...
- 3. Sampling 기반 디코딩 - Temperature, Top-k, Top-pbeam search까지 정리하고 나니, 확률을 최대화하는 방식만으로는 단조로운 문장밖에 못 만든다는 게 분명해졌다. 그래서 필기에 이런 질문을 적어뒀었다. Question 확률이 낮은 단어를 더 혹은 덜 뽑히게 할 수 있을까? 확률분포에 따라 단어를 random sampling하...
- 1. argmax 분해와 Greedy자연어 생성에서 decoding이 정확히 뭘 하는 과정인지, 그리고 왜 문장 전체를 한 번에 구하지 않고 토큰을 하나씩 뽑아 나가는지 정리해봤다. decoding이 풀려는 문제 입력 문장 x가 주어졌을 때, 출력 문장 y가 나올 확률을 최대화하는 y를 찾는 것이 decoding의...
- Input Embedding과 Positional EncodingTransformer 입력을 정리하다가, 수식으로는 분명 행렬곱인데 PyTorch는 행렬곱을 안 한다는 부분에서 한 번 멈췄었다. 그런데도 학습이 된다는 게 처음엔 어 이게 왜 되지 싶었다. 그 부분과 positional encoding의 scaling factor를 같이 정리해봤...
- 문자열 단위 Language ModelRNN으로 문자 하나씩을 예측하는 문자열 단위 Language Model을 hello 예제로 따라가며, 입력을 One-Hot으로 주는 이유와 학습/추론의 차이를 정리한다. hello 예제 Vocabulary를 [h, e, l, o] 로 두고, 학습 문자열 hello 를 학습한다고...
- ResNet에서 LSTM까지LSTM이 RNN의 기울기 문제를 어떻게 우회하는지를, ResNet의 skip connection에서 Highway network를 거쳐 LSTM에 이르는 흐름으로 따라간다. 마지막에는 nn.LSTM 으로 양방향 RNN을 쓰는 법까지 정리한다. ResNet의 skip connect...
- BPTT와 TBPTTRNN을 시간 축으로 펼쳐 역전파하는 BPTT와, 긴 시퀀스를 잘라 부분적으로 역전파하는 TBPTT를 정리한다. BPTT(Backpropagation Through Time) RNN은 시퀀스를 따라 forward를 진행하면서 각 타임스텝마다 출력과 Loss를 만든다. Loss는 f...
- Static, Dynamic Embedding과 VectorDB, RAGWord2Vec 같은 Static Embedding의 한계와 문맥에 따라 변하는 Dynamic Embedding, 학습되지 않은 정보를 다루기 위한 VectorDB와 RAG에 대한 내용을 짧게 정리해보았다. Static Embedding의 한계 Word Embedding과 Word...
- Word, Character, Subword 토큰화와 BPE텍스트를 어떤 단위로 쪼갤지에 따라 Word / Character / Subword level 토큰화가 나뉜다. 각각의 장단점과, Subword 방법의 대표적인 BPE의 동작 원리를 정리해봤다. Word-level 토큰화 Token을 단어(Word) 단위로 구분하는 방식이다. 일반...
- Word Embedding과 Word2Vec단어를 벡터로 표현하는 두 방식(One-Hot Encoding과 Word Embedding)을 비교하고, Word Embedding을 만드는 대표적 방법인 Word2Vec의 원리와 forward 구현까지 정리한다. One-Hot Encoding과 Word Embedding One-...
- Multi-Head Attention 직접 구현하기멀티헤드 어텐션을 직접 구현하면서 헷갈렸던 지점들을 정리한다. 헤드의 차원은 embedding_dim을 헤드 수로 나눈 것 먼저 헤드를 빼고 보면, 입력은 (B, L, D) = (batch_size, sequence_length, embedding_dim)이고, W q , W...
- Tokenizer 이해하기Transformer에 문장을 넣기 전, 텍스트를 어떻게 숫자로 바꾸는지 tokenizer를 정리한다. 왜 필요한가 Transformer에 넣을 입력이 numeric 데이터가 아니라면 그대로 넣을 수 없다. 텍스트를 숫자로 바꾸는 과정이 필요한데, 그게 tokenizer가 하는 일...
- nn.Embedding에 이해하기토큰 번호로 바뀐 문장이 어떻게 벡터가 되는지, nn.Embedding 의 동작을 간단하게 정리해봤다. (vocab_size, model_dim) 가중치 행렬 nn.Embedding 은 결국 (vocab_size, model_dimension) 크기의 가중치 행렬 하나다. 이 행렬...
- Self-Attention 이해하기attention이 무엇을 계산하는지, Q와 K와 V가 각각 어떤 역할인지, 그리고 한 단어를 어떻게 contextualize하는지 간단히 정리해봤다. attention은 value의 가중 평균 attention 함수는 세 가지를 입력으로 받는다. Attention ( Q , K...
- Teacher Forcing과 Auto-regressive 생성seq2seq decoder가 출력을 하나씩 만들어내는 방식과, 학습 때와 추론 때 입력을 다르게 주는 이유를 정리한다. Auto-regressive 생성 decoder는 한 시점에 한 토큰씩 출력을 만든다. 각 단계의 hidden state는 입력 시퀀스 전체에 대한 정보(con...
- RNN과 기울기 소실, 폭발RNN이 시계열을 어떻게 처리하고, 왜 기울기 소실과 폭발에 시달리는지 정리한다. RNN과 recurrence RNN은 시계열 데이터를 처리하기 위한 모델이다. 시점 t의 hidden state는 이전 시점의 hidden state와 현재 입력으로 정해진다. h t = f W...
Pytorch
8 notes- clone과 detach, 그리고 계산 그래프Pytorch에서 Tensor를 다룰 때 경고문을 자주 보았을 것이다. UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() ... rather than...
- Linear Layer와 ReLU를 직접 구현해보기nn.Linear 와 nn.ReLU 라는 이미 완성된 클래스가 존재하지만, 직접 구현해보면 더 명확하게 이해할 수 있고 재미있는 사실들도 발견할 수 있다. torch.nn 없이 직접 구현해보았다. Linear Layer 구현하기 선형 계층은 입력에 가중치를 곱하고 편향을 더하는 y...
- 가중치 초기화와 Kaiming(He) 초기화간단한 Linear Layer를 pytorch로 직접 구현해보면서, 가중치를 어떻게 초기화하느냐에 따라 학습 결과가 달라지는 것을 확인해보았다. 해당 내용에 대한 짧은 글이다. 표준정규분포로 초기화 torch.randn 으로 가중치를 초기화하면 표준정규분포(평균 0, 표준편차 1)...

- model.eval()과 torch.no_grad()Pytorch의 모델 평가 단계에서 거의 항상 같이 등장하는 model.eval() 과 torch.no_grad() 를 정리해봤다. model.eval() model.eval() 은 모델을 평가, 즉 Evaluation에 최적화된 상태로 만드는 과정이다. Training 과정에는...
- Dataset과 DataLoader, 그리고 데이터 파이프라인PyTorch에서 데이터가 모델에 들어가기까지의 파이프라인을 Dataset , DataLoader , 그리고 이미지 변환인 ToTensor 을 중심으로 정리. Dataset 클래스 PyTorch에서는 데이터의 전처리와 배치 처리를 용이하게 할 수 있도록 Dataset 과 DataL...
- zero_grad 가 필요한 이유학습 루프에서 자주 빠뜨리는 게 optimizer.zero_grad() 다. 그런데 이게 없으면 학습이 망가진다. 왜 매 스텝마다 기울기를 초기화해야 하는지 짧게 정리해봤다. loss.backward()는 기울기를 누적한다 핵심은 loss.backward() 의 동작이다. loss...
- 1. dim 쉽게 이해하기한참 Pytorch를 공부하고 있을 때, tensor.sum(dim=x) , torch.stack((tensors), dim=x) 등의 연산에서 dim=x 가 어떤 방향으로 연산이 이루어지는 건지 이해하기 어려웠었는데, 쉽게 이해할 수 있었던 방법을 정리해봤다. 단순한 규칙 알아두...
- 2. View의 작동 원리 이해하기PyTorch 공부를 하던 도중, 퀴즈를 풀다가 틀렸는데 아래 지문이 옳은 지문이라는 사실을 알고 나서 조금 놀랐었다. 당시 퀴즈 t = Tensor(3, 2) 이고, s = t[:2, :1] 일 때, view 를 사용해 s의 모양을 변경할 수 있다. 나는 s 가 contiguou...
well-known-harness
2 notes- codex-plugin-cc 설치 및 리뷰 - Claude Code에서 Codex로 리뷰 받기이번 글은 OpenAI가 공식적으로 내놓은, Claude Code에서 쓸 수 있는 Codex 리뷰 플러그인을 다룬다. 사실 나온 지는 좀 됐는데, 정리할 겸 설치 과정과 리뷰 사용법을 함께 적어 보았다. 이 플러그인이 갖는 의의 Claude Code로 작성한 코드를 Codex에게...

- Matt Pocock - skills for real engineers 리뷰오늘은 Matt Pocock이 작성한 Skills For Real Engineers 를 리뷰해보려고 한다. 해당 Github 레포지토리는 바이브 코딩이 아닌 실제 엔지니어링을 위해, 작성자가 매일 사용하는 에이전트 스킬을 모아 둔 것이라고 한다. 즉, 바이브 코딩보다는 에이전틱 엔...

딥러닝 기초
3 notes- Dropout 이해하기Dropout을 공부하면서 헷갈렸던 내용들을 정리해보았다. 일반화 성능을 높이는 핵심적인 요소인 마스킹과, 그리고 그 마스킹에 걸리지 않은 살아남은 값들을 키우는 스케일업. 이 구분을 중심으로 글을 작성했다. Dropout이란? Dropout 레이어에 들어온 텐서의 각 원소를 독립...
- ReLU의 존재 의미ReLU가 기울기 문제를 해결한다고 뭉뚱그려 말하기 쉽지만, ReLU가 다루는 것은 vanishing이지 exploding이 아니다. 이 구분을 정리해봤다. ReLU가 해결하는 건 vanishing이다 역전파에서 gradient는 각 층의 activation 미분을 계속 곱하면서...
- Backpropagation과 Chain Rule역전파가 어떻게 gradient를 계산하는지, local gradient와 chain rule을 중심으로 정리해봤고, 역전파 계산에 자주 나오는 연산 게이트들이 gradient를 어떻게 흘려보내는지까지 정리해봤다. local gradient와 chain rule 어떤 연산 노드 f...
머신러닝 기초
1 note회고
2 notes- 260701 회고계속 개발과 취업 준비를 병행하면서 든 생각이다. 최근에 취업 시장에서는 AI를 잘 활용할 수 있는 능력을 중요시하게 여기기 시작했다. 이 능력을 검증할 수 있는 방법에 대해서 생각해봤는데, 가장 직관적인 방법은 Claude code나 Codex 등의 Agentic tool을 어떤...
- 사공이 많아지면 - 260529 회고Claude code의 개인적인 harness를 개발하는 중이고, 현재 review gate를 만들고 있는데 방향성을 잘못 잡아 며칠 째 고생하는 중이다. OMC 같은 이미 존재하는 harness를 써도 되겠지만, 개인 프로젝트를 진행하는데에는 harness가 너무 무거워 보였다....



