Vi is a standard not a specific implementation. There was an original Vi, but since it's a standard unix tool, it got cloned by everyone who ever made a unix clone after it was added to BSD.
Vim can be invoked to conform to the vi standard, although usually it only gets used that way when a vim user is on an unfamiliar machine.