Vignat: Vulnerability identification by learning code semantics via graph attention networks