Optimizing ML Serving with Asynchronous Architectures