Logits are unbound and can contain any values in [-Inf, Inf]. nn.BCEWithLogitsLoss will apply the sigmoid internally in a numerically stable way, so the model outputs are expected to contain positive and negative values.
You could use the (numerically less stable) nn.BCELoss with a sigmoid activation if you prefer it.