Training and Evaluating Language Models with Template-based Data Generation