ViperGPT: Visual Inference via Python Execution for Reasoning