In that problem, the 32B cache has 16 blocks (each 2B long). Set associativity tells us the number of blocks in a set, which is 4. Therefore the cache memory has 16/4 = 4 sets. You would need 2 bits to address these 4 sets, which is your set address size. The remaining bits (block address size - set address size) is used as tag.