AI App 만들면서 알게된 지식들
mlx
- 맥 실리콘 CPU에 최적화된 머신러닝 실행 환경을 제공하는 라이브러리
- PyTorch나 NumPy와 비슷한 API를 제공하면서도 Metal(Apple GPU API)를 활용하여 고성능 AI 모델을 시행 가능
모델 파일 의미
DeepSeek-R1-Distill-Llama-8B-4bit 기준
Distill
- Knowledge Distillation의 약자로, 큰 모델의 지식을 작은 모델로 압축 하는 기법
8B
- 80억개 파라미터를 가진 모델
4bit 의미
- 4bit 양자화 되었음
- 원래 신경망의 가중치는 FP16(16bit) 또는 FP32(32-bit) 부동소수점으로 저장됨
- 하지만 메모리와 연산량을 줄이기 위해 4-bit 정밀도로 변환
DeepSeek-R1-Distill-Llama-8B-4bit
- 8B로 적혀있지만, 실제 Param은 1.25B임. 원본 8B에서 distillation 과정을 거쳤을 수 있음
Token
- 문자열 자체로는 Llm이 인식 못함. 문자를 숫자로 변환해야함
- 모델마다 짜르는 단위가 다름
- 한글과 이모티콘이 영어보다 더 많은 토큰이 필요할 수 있음
[Sampling]
temperature sampling
- Temperature(온도) 값을 조절하면 확률이 높은 토큰을 더 강하게 선택할지, 더 다양한 선택지를 고려할지를 결
Nucleus sampling (Top-p)
- 상위 p% 확률 내에서만 샘플링하도록 제한하는 방식
- top_p = 0.9 라면, 전체 확률의 90%를 차지하는 단어들만 후보로 남김
- mat (0.5), chair (0.3), table (0.1), floor (0.07), cloud (0.03)
- top_p = 0.9라면 mat, char, table만 남김
- 낮을수록 더 일관된 문장 생성
- 높을수록 더 다양한 선택지 고려
Top-k sampling
- 확률이 높은 상위 k개 토큰만 고려하고 나머지는 버리는 방식
- top_k = 5 라면, 확률이 가장 높은 5개의 단어 중에서만 선택
모든 샘플링에 포함된 토큰만 사용.