I’m fine-tuning a BertFor SequenceClassification model and I want to compute the accuracy on the evaluation set after each training epoch. However, the evaluation step fails with:
TypeError: 'list' object is not callable" when calling evaluate

Here’s a minimal example showing the error (see also this Colab notebook):
Standard tokenizer, toy model:
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
config = BertConfig(num_hidden_layers=0)
model = BertForSequenceClassification(config)

Grab the IMDb dataset, make training and evaluation sets:
imdb = load_dataset("imdb")

def mapper(x):
  return tokenizer(x["text"], max_length=384, truncation=True, padding="max_length")

eval_dataset = imdb["train"].select(range(100)).map(mapper, remove_columns=["text"])

Set up the trainer, including compute_metrics=[accuracy]:
accuracy = load_metric("accuracy")

args = TrainingArguments(
    "imdb",
    num_train_epochs=2,
    report_to="none",
    evaluation_strategy="epoch"
)

trainer = Trainer(
    model,
    args,
    eval_dataset=eval_dataset,
    compute_metrics=[accuracy],
    tokenizer=tokenizer,
)

Evaluate:
trainer.evaluate()

Raises:
TypeError: 'list' object is not callable

Isn’t this something that should “just work”?