The difficulty is adjusted based on the average time need to find the the previous 2016 block.
So, when the hashrate keeps on increasing (hashrate at the end of period >> hashrate at the beginning), the difficulty would be adjusted "not high enough". Due to this "lag", instead of 14 days, it only takes 12 days to find the next 2016 block, and so on.