原文towardsdatascience.com/simplify-information-extraction-a-reusable-prompt-template-for-gpt-models-d6d5f1bd25a0简化信息提取GPT 模型的可重复使用提示模板https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0298b81d097e29c42f6cdcfc858d515e.png由 DALL·E 生成的图像简介如果我告诉你我创造了终极提示模板用于信息提取任务这将保证你每次都能获得精确的性能具有惊人的召回率和精确度以及保证的输出格式你可能只会嘲笑。并且这是合理的——因为没有人能保证这些复选框因为 LLMs 的性质是不可预测的。—融化面部表情符号—然而我可以说的是经过对十几个细微的医疗信息提取任务的广泛研究——每个任务都需要深厚的领域专业知识——我开发了一个提示模板该模板利用了我使用的提示技巧显著提升了性能并最小化了错误输出。这个模板帮助我简化了工作流程减少了迭代周期并给我的结果带来了可靠的稳定性。在这篇文章中我将介绍这个模板解释每个部分的合理性并分享我在过程中学到的经验。我的希望是为了获得这些见解而进行的尝试和错误可以被视为宝贵的时间从而产生了这个资源帮助那些面临从复杂文本数据中提取精确信息类似挑战的人。话虽如此我想再次强调这个模板专门针对从文本数据中提取关键信息这一任务尤其是在医学等对准确性要求极高的专业领域。提示技巧在我分享模板之前我将分享一些有助于提升性能的关键提示技巧少样本提示这涉及到向模型提供一些期望的输入-输出对的示例。通过给出模型需要寻找的具体片段以及几个期望的输出格式示例模型能更好地理解手头的任务。负面提示明确说明输出中不应包含的内容是提高精确度的关键。这种技术降低了提取无关或错误信息的机会。思维链推理CoThttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6494b2bc5d5cb09202dc8c2a4ee29ebb.png由 DALL·E 生成的图像鼓励模型逐步解释其推理过程可以从两个方面提升性能首先模型的解释可以揭示需要调整提示的细微差别尤其是在负面提示部分。其次CoT 允许模型对每个提取的引文进行交叉检查包括包含和排除标准通过筛选初始结果集从而产生更精确和准确的响应。角色提示https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3189eacfc8e20fd48c207a7d69ea2596.png由 DALL·E 生成的图像将特定角色或人格赋予模型有助于指导其响应。关于角色提示是否可以提高性能存在一些争议。角色提示提高性能。然而对于我的特定任务我发现这种技术很有用。我的许多项目需要领域专家监督复杂过程每个提取的部分都适合于清单。当模型采用专家的人格时它获得了更广泛的背景知识为什么需要提取特定信息这可以显著提高结果的质量。现在让我们来看看提示模板提示模板结构此可重复使用的提示模板包含五个关键部分任务摘要对信息提取任务的清晰、简洁描述通常包括角色提示以设置模型响应的上下文。提取标准具体指南概述应提取哪些信息。本节定义了任务的范围确保模型专注于相关数据。示例正确输入-输出对的演示。对于专注于提取引文的任务我通常包括一系列示例引文以及预期的输出格式示例。我尽量包括多样化的示例涵盖模型可能遇到的多种场景。排除标准/负面示例明确指南说明在提取中不应包含哪些内容以防止模型提取无关或不正确的信息。我通常会解决在先前尝试中观察到的常见错误或误解。输出指令确保提取的信息以一致、可用的格式呈现。在这里我将指定确切的格式例如JSON、列表并请求逐步/CoT 推理。示例从心理健康对话中提取药物这里是一个提取关于抗抑郁药使用及其相关副作用的信息的模板示例来自教练与其门徒之间的对话。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1a11cd1b8837c5cf6ff694031483daa5.png由 DALL·E 生成的图像PROMPT_MENTAL_HEALTH_COACHING As a mental health coach specializing in supporting clients with depression and anxiety, your task is to assess whether the mentee is currently taking antidepressants and to identify any side effects they have mentioned during the session. Review the conversation between the coach and mentee to extract relevant information about antidepressant use and associated side effects. CRITERIA FOR EXTRACTION: Antidepressant Use: Identify quotes where the mentee explicitly mentions taking antidepressants. The following is a non-exhaustive list of common antidepressants you should look for: - Selective Serotonin Reuptake Inhibitors (SSRIs): - e.g., Fluoxetine (Prozac), Sertraline (Zoloft), Citalopram (Celexa) - Serotonin-Norepinephrine Reuptake Inhibitors (SNRIs): - e.g., Venlafaxine (Effexor), Duloxetine (Cymbalta) - Tricyclic Antidepressants (TCAs): - e.g., Amitriptyline, Nortriptyline - Atypical Antidepressants: - e.g., Bupropion (Wellbutrin), Mirtazapine (Remeron) - Monoamine Oxidase Inhibitors (MAOIs): - e.g., Phenelzine (Nardil), Tranylcypromine (Parnate) - Side Effects: Identify quotes where the mentee mentions any side effects they believe are related to their antidepressant medication. EXAMPLES: 1\. Input: - Ive been on my antidepressants for a few months now, but lately, Ive noticed Im feeling more tired than usual. Im also still having trouble sleeping. Im worried these might be side effects of the medication. - Output: {{ antidepressant_use: Ive been on my antidepressants for a few months now., side_effects: [feeling more tired, trouble sleeping] }} 2\. Input: - Since I started taking Zoloft, Ive noticed Im feeling less anxious, but Im also getting these headaches that I didnt have before. - Output: {{ antidepressant_use: Since I started taking Zoloft., side_effects: [headaches] }} 3\. Input: - Im not sure if its the antidepressants, but Ive been feeling dizzy lately, especially in the mornings. - Output: {{ antidepressant_use: Im not sure if its the antidepressants., side_effects: [dizziness] }} EXCLUSION CRITERIA / NEGATIVE EXAMPLES: - Do Not Include: General comments about well-being that are not explicitly tied to antidepressant use or side effects (e.g., Im feeling okay today or Work has been stressful lately). - Purpose: To focus exclusively on mentions of antidepressant use and specific side effects that the mentee attributes to the medication. OUTPUT INSTRUCTIONS: - Format: Provide the extracted information in JSON format. - Structure: Include the following fields: antidepressant_use and side_effects. - Detailed Reasoning: Ensure that only quotes directly related to antidepressant use and side effects are included in the output. - Example Format: {{ antidepressant_use: [Extracted Quote about Antidepressant Use], side_effects: [ [Extracted Quote about Side Effect 1], [Extracted Quote about Side Effect 2], ... ] }} Here is the transcript: {transcript} 迭代改进过程创建有效的提示模板是一个迭代的过程需要持续优化。在开发模板的初始版本后我遵循以下步骤以确保其达到预期的性能从基本提示开始开始时使用简单的提示避免包含示例或排除标准。分析输出审查模型输出以识别任何错误、不一致之处或提取不足的区域。纳入示例添加相关示例以指导模型产生正确的提取。引入排除标准定义清晰的排除标准以防止模型提取无关或不正确的信息。应用思维链推理实施思维链推理以提高模型决策过程的准确性和透明度。迭代和微调持续迭代步骤 2-5根据模型的表现和任何出现的错误模式调整每个部分。例如如果我在上述场景中注意到模型开始提取关于其他药物的信息——例如错误地提取关于安眠药如 Xanax 或情绪稳定剂如锂的细节——那么我会修改排除标准明确列出这些容易混淆的药物。这有助于确保模型仅关注抗抑郁药及其相关副作用从而提高提取过程的准确性和相关性。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92abc2693e874423772175fed72d9d9e.png由 DALL·E 生成的图像局限性和最佳实践提示长度极长的提示可能超过模型的上下文窗口。我发现通过识别和裁剪不重要的部分可以减少提示长度从而降低成本同时确保模型专注于最相关的信息。模型特定优化不同的模型可能对特定的提示风格反应更有效。这个提示在 GPT-3.5 Turbo、GPT-4 和 GPT-4 Turbo 上特别有效。任务复杂性对于高度复杂的任务考虑将其分解为可管理的子任务或采用多步骤方法以提高清晰度和性能。测试鲁棒性在多样化的输入上评估你的模板以确认其可靠性和适应性。结论如果你已经读到这儿你可能想知道这个提示模板是否真的能简化你的信息提取任务。事实是我并不知道它在你那里的任务中会如何表现。然而这个模板是通过至少 dozen 个医学信息提取任务拼凑而成的它已经在需要高精确度的医学场景中经过实战检验并且已经成为我工作流程的一部分持续为我提供可靠的结果。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/006a82671f22260934891f1cc68808ee.png对于那些有复杂信息提取任务的人来说我希望这个模板和工作流程能作为一个有价值的起点。最终这个模板并不是一个万能的解决方案而是一个策略的基础你可以在此基础上构建以满足你任务的独特需求。如果你决定使用它并告诉我它对你来说效果如何我会很高兴。此外我也很乐意听听你认为对你有帮助的提示技术请在这里留言或通过发送电子邮件至 [email protected] 来分享你的想法。