In this paper, we propose a new loss function called generalized end-to-end (GE2E) loss, which makes the training of speaker verification models more efficient than our previous tuple-based end-to-end (TE2E) loss function. Unlike TE2E, the GE2E loss function updates the network in a way that emphasizes examples that are difficult to verify at each step of the training process. Additionally, the GE2E loss does not require an initial stage of example selection. With these properties, the model with new loss function learns a better model, by decreasing EER by more than 10%, in shorter period of time, by reducing the training time by >60%. We also introduce the MultiReader technique, which allow us do domain adaptation - training more accurate model that supports multiple keywords (i.e. "OK Google" and "Hey Google") as well as multiple dialects.