FSA.log
로그인
FSA.log
로그인
[transformers]AutoModelForCausalLM, AutoProcessor
FSA
·
2025년 2월 23일
팔로우
0
0
딥러닝 기초
목록 보기
44/44
1. AutoModelForCausualLM
1.1. AutoModelForCausualLM 의 목적?
Transformers 라이브러리에서
AutoModelForCausalLM
클래스를 별도로 제공하는 이유는
모델의
사용 목적과 아키텍처
에 따라 "적절한 헤드(head)와 기능"을 자동으로 구성해주기 위해서
기본 AutoModel과의 차이점
AutoModel
:
기본적인 트랜스포머 인코더나 디코더의 레이어만 로드하며,
특정 작업에 최적화된 헤드가 붙어있지 않습니다.
단순히 모델의 “본체”만 불러오는 역할을 하죠.
AutoModelForCausalLM
:
인과(autoregressive) 언어모델
에 특화된 클래스로,
텍스트 생성과 같이 시퀀스의 다음 토큰을 예측하는 작업에 적합한
언어 모델링(head)
을 포함
이 헤드는 자동으로 생성 함수(
generate
)와 같은 기능들을 지원하도록 설계되어 있습니다.
작업별 맞춤형 헤드 제공
딥러닝 모델은 동일한 트랜스포머 본체를 사용하더라도, 이후에 붙는 “헤드”에 따라 용도가 달라집니다.
예를 들어:
AutoModelForSequenceClassification
: 분류 작업에 적합한 헤드.
AutoModelForSeq2SeqLM
: 인코더-디코더 구조를 사용하는 번역, 요약 등 작업에 적합한 헤드.
AutoModelForCausalLM
: 텍스트 생성, 즉 다음 토큰 예측에 최적화된 헤드.
각각의 AutoModel 클래스는 해당 작업에 맞는 사전학습된 헤드를 포함하여 모델을 초기화하므로,
사용자 입장에서는 별도의 추가 구성 없이 바로 해당 작업을 수행할 수 있게 됩니다.
사용자 편의성과 안전성
API 일관성
:
생성 함수 지원
:
AutoModelForCausalLM은 자동으로 텍스트 생성 메서드(
generate
)를 지원
내부 최적화
:
인과 언어 모델링에 필요한 다양한 최적화(예: 어텐션 스킴, 토큰 마스킹 처리 등)를 내부적으로 처리
하기 때문에,
사용자는 복잡한 세부 구현에 대해 고민할 필요 없이 모델을 바로 활용할 수 있습니다.
1.2. .from_pretrained
"DAMO-NLP-SG/VideoLLaMA3-7B"(
https://huggingface.co/DAMO-NLP-SG/VideoLLaMA3-7B/tree/main
) 의 config.json을 먼저 참고합니다.
trust_remote_code=True 옵션을 사용하면,
config.json의 "auto_map" 항목에 지정된 원격 구현체
(예: DAMO-NLP-SG/VideoLLaMA3-7B 리포지토리 내의 특정 .py 파일)를 동적으로 로드
trust_remote_code=False로 설정하면,
config.json의 "auto_map" 항목을 무시하고,
config.json의 "model_type" 필드를 기반으로,
https://github.com/huggingface/transformers/blob/main/src/transformers/models/auto/modeling_auto.py
에서 "videollama3_qwen2"에 매칭되는 클래스 이름을 찾은뒤,
이를 로컬 디렉토리에서 찾습니다.
config.json의 "auto_map"을 확인해보니
"AutoConfig": "configuration_videollama3.Videollama3Qwen2Config"
"AutoModelForCausalLM": "modeling_videollama3.Videollama3Qwen2ForCausalLM"
config.json의 "model_type"을 확인해보니
"model_type": "videollama3_qwen2",
2. AutoProcessor
2.1. .from_pretrained
얘는, trust_remote_code=True 옵션을 사용하면,
processor_config.json의 "auto_map" 항목에 지정된 원격 구현체
(예: DAMO-NLP-SG/VideoLLaMA3-7B 리포지토리 내의 특정 .py 파일)를 동적으로 로드
"auto_map": {
"AutoProcessor": "processing_videollama3.Videollama3Qwen2Processor"
},
FSA
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것
팔로우
이전 포스트
Flash Attention
0개의 댓글
댓글 작성
관련 채용 정보