Explaining Software Vulnerabilities with Large Language Models