Understanding sklearn FeatureHasher
FeatureHasher assigns each token to a single column in the output; it does not do the sort of binary encoding that would allow you to faithfully encode more features to a smaller space.  Instead, the point is that you don't have to look up which column a given category maps to as you would in OneHotEncoder: you just have to apply the hash function to the value.  Using a lower-dimensional target space will guarantee collisions, but even a larger target space may produce a few collisions.