Data-driven Sequential Monte Carlo in Probabilistic Programming