TIL | 도커 + axolotl

타샤's 월드·2025년 6월 4일
post-thumbnail

실험

🌞 시작하는 글

내 문제는 늘 쓰잘데기 없는거 (80% 확률로 도커설정, 20% 확률로 터꾸...)에 꽂혀서 시간 낭비를 한다는것이다.
무슨 부귀영화를 누리려고...
안되면 넘어가고 쉬운 설정 하면 되는건데 왜 이러고 있는지 나도 모르겠음ㅡㅡ

도커 안에 gpu 프로세스 다 잘 돌아가는데 axolotl 을 돌리려고 하니까 계속 SIGSEGV 이슈 발생.
사실 내 gpu 감각 부족도 문제다.


는 무슨!!!!! 설치할때는 도큐먼트를 보자ㅠㅠㅠ...............
컴퓨터는 문제 없음. 언제나 인간이 문제임...

근데 도커 컨테이너 안에서 작업한 장점이 많긴해...
1. 환경 유지 + 스크립트로 저장 가능가능
2. tmux 안써도 중간에 터미널 꺼도 유지 가능 어차피 -d로 실행할꺼니까
3. 먼가 꼬였을때 도커 컨테이너 째로 지우면 됨. 뭐 더럽게 파일 같은거 안남음
4. 버전 관리

⚗️ 오늘의 실험

이슈: SIGSEGV(잘못된 메모리 접근)

도커내 메모리 넉넉한데 왜 안되나 했음... 설치할것도 다 설치했는데..

원인:

1) Axolotl은 내부적으로 flash-attn을 사용하여 고성능 어텐션을 수행하려고 시도
2) 근데 flash-attn 제대로 설치 안됨
3) 왜? CUDA 컴파일 환경이 미비
4) 근데 도커 컨테이너 내 pip 으로 CUDA 툴킷 설치했는데??
5) 호스트 서버 CUDA 툴킷 제대로 설치 안되어 있음..
6) 호스트 서버에서 which nvcc => 안뜸!!!!!
7) 알고보니.. 심볼릭 링크 이슈였던듯ㅎ.. 여튼 도커 내부까지 쿠다툴킷 적용


하여튼 docs 배포 이미지로 올리니까 잘 되고... ssh 연결도 다 했음.

트레이닝도 잘 되는거 확인했고, 재밌는거 같음. docs 공부해와야할듯

공부

성능 최적화 라이브러리

bitsandbytes

  • 모델을 8bit 혹은 4으로 압축해서 GPU 메모리를 덜 씀 => 더큰 모델 사용 가능

deepspeed

  • 마이크로소프트에서 만든 분산 학습 최적화 툴
  • 메모리 쪼개 쓰기, cpu+gpu, gradient checkpointing 등으로 학습 경량화

flashattention

  • transformer의 핵심 연산인 attention을 gpu 최적화 해서 속도 개선
  • attention은 "나는 사과를 먹었다"에서 "사과"에 집중

Axolotl 핵심 사용법

LLM 경량화 학습 추론법

  • LoRA(Low-Rank Adaptation) : 기존 모델 파라미터는 고정, 일부 가중치만 저차원 행렬도 대체해서 파인튜닝
  • QLoRA(Quantized LoRA): LoRA에 양자화 더한것. 4bit 양자화
  • 4bit Quantization : 모델 가중치와 연산을 32 bit->4bit, 아무래도 정밀도는 약간 손해지만..

🎯 TODO LIST

profile
그때 그때 꽂힌것 하는 개발블로그

0개의 댓글