ProTrain: Efficient LLM Training via Memory-Aware Techniques