Difference between "alpha" and "start_alpha"
They're essentially the same. If you specify non-default values in the constructor:

they're cached inside the model as alpha & min_alpha

if you also took the option of specifying a training corpus in the constructor (sentences/corpus_iterable/corpus_file), the alpha & min_alpha will become the start_alpha, end_alpha for the automatic .train()


If you instead call .train() explicitly:

you can specify a start_alpha & end_alpha, just for that call, that will be used instead of the values set during the constructor (but won't be cached in the model for future calls)

If you're calling .train() multiple times on the same model some reason – which is usually an unnecessary bad idea, except in some non-standard expert-usage situations – it's likely you'd want to properly choose the right progression of alpha ranges across each call (so that it's not bouncing up-and-down nonsensically).
That expert use is the real reason the separate, non-cached start_alpha & end_alpha parameters exist. Most users should stick with the defaults (so not use any of these), and if they ever do get to the point of tinkering, just try different alpha values in the constructor, carefully monitoring if it helps or not.
I want to train a Word2Vec model using "gensim". I want to determine the initial rating rate. However, it is written that both "alpha" and "start_alpha" parameters can be used to do so. What is the difference between them? Are they the same?