Techniques Used in Generative AI