The main difference is the new ServiceContext object that wraps the llm predictor, prompt helper, chunk_size_limit, and a few other things
Another major change is that nodes are the main inputs to indexes. You can still load from documents using the from_documents() function i.e. (index = GPTListIndex.from_documents(documents, service_context=service_context)