how to determine hashing bit length for multiple categorical features?
How can I efficiently optimize the hashing trick on that feature vector?


Use different size of hash, and hash function and see which work best.
One cannot tell in advance.


  Should I enumerate hash bit length for each feature independently (greedy)?


No, this is NEVER a good practice. The hash should be common to all features.


  Should I assume no hashing is necessary for features with small alphabet (ni is small)? 


You can always choose not to hash specific features. It implies you think these features are more important, and should avoid collision.