Since soft prompts live in a continuous embedding space, we can optimize them with gradient descent. Whereas hard prompts are discrete (~50k tokens in ChatGPTs vocabulary), soft prompts consist of embedding vectors which dont correspond to any of those tokens.