VLLM對結構化輸出的支持:
vllm/docs/source/features/structured_outputs.md at main · vllm-project/vllm · GitHub
VLLM對tool call的支持:
vllm/docs/source/features/tool_calling.md at main · vllm-project/vllm · GitHub
以上指定輸出格式,可以通過有限狀態自動機“輔助”LLM來實現。
即把要求的輸出格式,編譯為自動機;LLM decode階段,根據當前自動機狀態,只采樣(或貪心選擇)自動機允許的那些tokens,不允許的那些tokens采樣概率強制設為0。
輸出格式里規定好的字符串,可以強制交給LLM,無需LLM自己去生成。
VLLM的guided decodin,能確保輸出格式的正確。但不能確保內容質量也好。
VLLM建議,為了生成更好的內容,最好把格式要求寫在prompt里:
我覺得,最好把這種格式輸出,也放在few-shot-examples里或者SFT訓練數據里。