[transformers]AutoModelForCausalLM, AutoProcessor

FSA·2025년 2월 23일
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"을 확인해보니
    "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"
    },


profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글

관련 채용 정보