Bird
Raised Fist0
NlpHow-ToBeginner ยท 4 min read

How to Use AutoModel from Hugging Face in NLP

Use AutoModel.from_pretrained() to load a pre-trained model by name from Hugging Face's model hub. This gives you a ready-to-use model for NLP tasks like feature extraction or fine-tuning without manually defining the architecture.
๐Ÿ“

Syntax

The basic syntax to load a pre-trained model is:

  • AutoModel.from_pretrained(model_name): Loads the model weights and architecture by specifying the model name or path.
  • model_name: A string like "bert-base-uncased" identifying the model.
  • The returned model is a PyTorch model ready for inference or fine-tuning.
python
from transformers import AutoModel

model = AutoModel.from_pretrained("bert-base-uncased")
๐Ÿ’ป

Example

This example shows how to load bert-base-uncased with AutoModel, tokenize a sentence, and get the model's output embeddings.

python
from transformers import AutoModel, AutoTokenizer
import torch

# Load tokenizer and model
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# Prepare input text
text = "Hello, Hugging Face!"
inputs = tokenizer(text, return_tensors="pt")

# Get model outputs
outputs = model(**inputs)

# outputs.last_hidden_state shape: (batch_size, sequence_length, hidden_size)
print(outputs.last_hidden_state.shape)
Output
torch.Size([1, 6, 768])
โš ๏ธ

Common Pitfalls

  • Not loading the matching tokenizer with the model can cause tokenization errors.
  • Using AutoModel instead of AutoModelForSequenceClassification when you want classification outputs.
  • Forgetting to set the model to evaluation mode with model.eval() during inference.
  • Passing inputs without converting them to tensors or missing batch dimension.
python
from transformers import AutoModel, AutoTokenizer

# Wrong: Using AutoModel for classification task
model = AutoModel.from_pretrained("bert-base-uncased")

# Right: Use AutoModelForSequenceClassification for classification
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
๐Ÿ“Š

Quick Reference

Tips for using AutoModel:

  • Use AutoModel for base model outputs (embeddings).
  • Use task-specific classes like AutoModelForSequenceClassification for classification.
  • Always load the matching tokenizer with AutoTokenizer.from_pretrained().
  • Call model.eval() before inference to disable dropout.
  • Pass inputs as PyTorch tensors with batch dimension.
โœ…

Key Takeaways

Use AutoModel.from_pretrained(model_name) to load pre-trained NLP models easily.
Always load the matching tokenizer with AutoTokenizer.from_pretrained for correct input processing.
Choose task-specific model classes if you need outputs like classification scores.
Set model.eval() before inference to get consistent results.
Pass inputs as tensors with batch dimension to the model.