Transformers documentation

ExecuTorch

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ExecuTorch

ExecuTorch는 웨어러블, 임베디드 장치, 마이크로컨트롤러를 포함한 모바일 및 엣지 디바이스에서 온디바이스 추론 기능을 활성화하기 위한 엔드투엔드 솔루션입니다. PyTorch 생태계의 일부이며, 휴대성, 생산성, 성능에 초점을 맞춰 PyTorch 모델의 배포를 지원합니다.

ExecuTorch는 백엔드 위임, 사용자 정의 컴파일러 변환, 메모리 계획 등 모델, 장치 및/또는 사용 사례에 특화된 최적화를 수행하기 위한 명확하게 정의된 진입점을 제공합니다. ExecuTorch를 사용하여 엣지 장치에서 PyTorch 모델을 실행하기 위한 준비 과정의 첫 단계는 모델을 내보내는 것입니다. 이는 torch.export라는 PyTorch API를 사용하여 수행됩니다.

ExecuTorch 통합

🤗 Transformers를 torch.export를 사용하여 내보낼 수 있도록 통합 지점이 개발되고 있습니다. 이 통합의 목표는 내보내기를 활성화하는 것뿐만 아니라, 내보낸 산출물이 ExecuTorch에서 효율적으로 실행되도록 추가로 낮추고 최적화할 수 있도록 보장하는 것입니다. 특히 모바일 및 엣지 사용 사례에 중점을 둡니다.

class transformers.TorchExportableModuleWithStaticCache

< >

( model: PreTrainedModelbatch_size: int | None = Nonemax_cache_len: int | None = Nonedevice: typing.Optional[torch.device] = None )

PreTrainedModel을 torch.export로 내보낼 수 있도록 설계된 레시피 모듈입니다. 특히 decoder-only LM을 StaticCache로 내보내는 용도로 사용되며, 이 모듈은 내보낸 모델이 ExecuTorch에서 추가적인 lowering 및 실행과 호환되도록 보장합니다.

Note: 이 클래스는 torch.export를 사용하여 내보내기 프로세스를 지원하도록 특별히 설계되었으며, 모델이 ExecuTorch에서 추가로 낮춰지고 효율적으로 실행될 수 있도록 보장합니다.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonecache_position: typing.Optional[torch.Tensor] = None ) → torch.Tensor

매개변수

  • input_ids (torch.Tensor) — 모듈의 현재 입력 토큰 id를 나타내는 텐서.
  • inputs_embeds (torch.Tensor) — 모듈의 현재 입력 임베딩을 나타내는 텐서.
  • cache_position (torch.Tensor) — 캐시에서 현재 입력 위치를 나타내는 텐서.

반환값

torch.Tensor

모델에서 출력된 Logits.

ExecuTorch 런타임과 호환되는 모듈의 Forward pass입니다.

이 forward 어댑터는 두 가지 주요 목적을 수행합니다:

  1. 모델을 torch.export와 호환되게 만들기: 어댑터는 Cache와 같이 지원되지 않는 객체를 그래프 입력 및 출력에서 숨겨, torch.export를 사용하여 모델을 내보내는 과정에서 문제가 발생하지 않도록 합니다.

  2. ExecuTorch 런타임과의 호환성 보장: 어댑터는 executorch/extension/llm/runner의 시그니처와 모델의 forward 시그니처가 일치하도록 하여, 내보낸 모델이 ExecuTorch에서 바로 실행될 수 있도록 보장합니다.

transformers.convert_and_export_with_cache

< >

( model: PreTrainedModelexample_input_ids: typing.Optional[torch.Tensor] = Noneexample_cache_position: typing.Optional[torch.Tensor] = Nonedynamic_shapes: dict | None = Nonestrict: bool | None = None ) → Exported program (torch.export.ExportedProgram)

매개변수

  • model (PreTrainedModel) — 내보낼 사전 학습된 모델입니다.
  • example_input_ids (Optional[torch.Tensor]) — torch.export에서 사용되는 예시 입력 토큰 id입니다.
  • example_cache_position (Optional[torch.Tensor]) — torch.export에서 사용하는 현재 캐시 위치의 예시입니다.
  • dynamic_shapes(Optional[dict]) — torch.export에서 사용되는 동적 형태입니다.
  • strict(Optional[bool]) — torch.export에 dynamo를 사용하도록 지시하는 플래그.

반환값

내보낸 프로그램(torch.export.ExportedProgram)

torch.export를 통해 생성된 내보내기된 프로그램입니다.

PreTrainedModel을 내보낼 수 있는 모듈로 변환하고 torch.export를 사용하여 내보내며, 내보낸 모델이 ExecuTorch와 호환되도록 합니다.

Update on GitHub