The Zipml Framework For Training Models With End-To-End Low Precision