최신글

AI모델 파일의 구조

반응형

모델저장소에서 AI 모델을 내려받으면 하나 파일이 아니라 여러 파일이 함께 저장됩니다. 중 파일은 가중치, 토크나이저, config.json입니다.

 

가중치

가중치는 학습을 통해 조정된 숫자 배열이며 모델파일에서 큰 용량을 차지합니다. 가중치는 파라미터라고도 불리는데, 파라미터의 정확한 표현은 가중치, 편향(bias)처럼 학습할 수 있는 값입니다.

 

모델은 학습 과정에서 예측값과 정답의 오차를 줄이는 방향으로 파라미터를 조정합니다. 단순한 선형식에서는 w가 가중치이고 b가 편향이며, 둘 다 학습 가능한 파라미터입니다.

y = w · x + b

 

가중치는 텐서(tensor), 즉 여러 차원의 숫자 배열로 저장됩니다.

 

가중치 앞서 말한것처럼 tensor로 저장되는데, tensor를 저장하는 포맷중 하나가 .safetensors입니다. safetensors는 tensor를 안전하고 빠르게 저장하기 위한 파일 형식입니다.

 

토크나이저

텍스트 모델은 문자열을 그대로 계산할 수 없습니다. 토크나이저(tokenizer)는 텍스트를 단어나 하위 단어 같은 토큰으로 나눈 뒤, 각 토큰을 어휘 사전에 정의된 정수 ID로 바꿉니다. 따라서 토크나이저는 텍스트를 토큰 ID의 나열로 인코딩하는 도구입니다.

"안녕하세요" --토큰화와 ID 매핑--> [15043, 892, 31281]

 

모델을 사용할 때는 학습에 사용한 것과 호환되는 토크나이저와 어휘 사전을 사용해야 합니다. 다른 토크나이저를 사용하면 같은 문장이 다른 토큰 ID로 바뀌어 모델이 학습한 의미와 맞지 않을 수 있습니다. Hugging Face 모델 저장소는 일반적으로 호환되는 토크나이저 파일을 함께 제공하거나 사용 방법을 안내합니다.

 

토큰 ID는 임베딩 레이어의 가중치 행렬에서 해당 행을 찾는 인덱스로 쓰입니다. 이 조회를 거치면 각 토큰 ID가 모델이 계산할 수 있는 벡터로 바뀝니다.

[15043, ...] --임베딩 행렬 조회--> [[0.12, -0.83, ...], ...]

 

모델 구조 설정(config.json)

config.json은 모델 구조를 생성하는 데 필요한 설정을 담습니다. 모델 종류, 은닉 크기, 레이어 수, 어텐션 헤드 수, 자료형 등이 대표적인 설정입니다. Transformers 같은 라이브러리는 이 설정을 읽어 모델의 뼈대를 만듭니다.

 

에를 들면 아래 그림의 Ministral-3-3B-Base-2512의 config.json은, 아키텍처 구조와 각 토큰의 은닉 표현이 3,072개 언어 모델이 26개의 Transformer 블록으로 구성된다고 표현하고 있습니다.

 

config.json을 그림으로 시각화하면 아래와 같습니다.

 

참고 자료

반응형