文章预览
★ 本文首发于:https://zhuanlan.zhihu.com/p/710467126 前言 目前 LLM(Large Language Model)从文本补全到内容创作,都展示出了强大的生成能力。然而通过 LLM 生成结构化的数据如 JSON 格式的输出,却仍然是一个有挑战性的任务。 生成结构化的数据不仅要求模型输出符合特定的语法规则,还需要确保数据的正确性和一致性。 虽然通过 prompt 工程可能可以实现指定格式的结构化数据生成,但是这也很大程度取决于模型的能力。 本文将探讨如何结合人工规则让 LLM 输出符合 JSON 格式的数据。 结构化生成原理 本文主要是结合 lm-format-enforcer ( https://github.com/noamgat/lm-format-enforcer ) 这个库来讲解如何让 LLM 生成指定格式的 JSON 数据。 目前该库也是被 vllm 作为 JSON 格式输出的后端之一:https://github.com/vllm-project/vllm/blob/main/vllm/model_executor/guided_decoding/lm_format_enforcer_decoding.py
………………………………