GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding