An std::vector< std::unique_ptr<Base> >
is just that: a vector filled with pointers to bases. And you cannot access derived class' content through base class pointers/references - even if objects of derived classes are behind those pointers/references.
This is no different from this:
SubInfo si(1);
Info& info = si;
info.someInfo; // won't compile
That doesn't mean that behind info
there isn't a derived class' object. There is. But you cannot access anything of it but what's available through the base class interface. That's basic OO.