It sounds like far too many especially when different match types are involved. That usually means the keywords in the ad groups overlap, and that ends up confusing both you and Google.
So it really sounds like the setup needs a cleanup. I’ve seen similar accounts where the old SKAG approach has gotten out of hand. It’s inefficient, and it’s almost impossible to manage when several match types are mixed across ad groups.
If it were me, I’d look back over the years the campaign has been running, pick out the top 20–50 keywords that have actually delivered results, drop them into a Google Sheet, and build new, relevant ad groups from scratch. Don’t think about the current structure. Once you do that, you’ll probably see that the keywords can be grouped into far fewer ad groups because the intent is the same.
That way, the budget goes to the keywords that actually create value, which will most likely improve performance so much and it becomes much easier for you to manage.