在求职过程中,许多求职者发现,尽管自身具备丰富的资历与成就,但从投递简历到获得面试邀请的转化率却在下降,尤其是在过去一年左右的时间里。与许多人一样,借助大型语言模型(LLMs)来辅助简历的创建与修改,已成为一种值得探索的方案。理想情况下,为每一份申请职位量身定制一份简历,根据具体的职位描述和公司特点来调整工作经验的表述方式,是提升成功率的关键。对于职业生涯中期的求职者而言,其工作经验往往远超一页简历所能容纳的范围,因此需要筛选出最相关的内容。LLMs 能够帮助总结、改写并筛选最相关的工作经验,从而为特定职位定制简历。
本文将探讨如何在 Azure 平台上,运用提示词工程(Prompt Engineering)与检索增强生成(RAG)技术来增强 LLMs 撰写简历的能力。虽然 LLMs 无需 RAG 也能协助撰写简历,但引入 RAG 可以对比实验效果,判断其是否能生成更优质的简历。同时,实验还将对比完整版 LLM 与小型语言模型的表现。为了评估不同方案的效果,采用了以下指标(参考微软文档):
事实准确性:该指标评估模型的回答与输入源信息的吻合程度。LLMs 的回应应基于提供的数据。在撰写简历的场景下,任何超出所提供背景信息的回应都是不可取的,我们不希望 LLM 凭空捏造工作成就。
内容相关性:该指标衡量模型回答与给定问题的关联性。在本案例中,LLM 应提供与给定职位描述高度相关的简历内容。
逻辑连贯性:该指标评估生成的语言是否清晰、简洁且得体。这对于强调简洁明了的简历而言尤为重要。
语言流畅度:该指标衡量 LLM 对英语语法规则的遵守程度。简历内容应具备正确的语法和拼写。
实验将评估三种情况下的简历生成质量:1)仅使用提示词工程;2)结合 RAG 技术;3)在另一基础模型上结合 RAG 技术。评估将依据上述指标进行定性分析,每项指标从低到高分为不满意、边缘、满意三个等级。
要让 LLM 撰写简历,必须向其提供个人经验。最直接的方法是使用提示词工程。提示词工程是一种引导 LLMs 提供更有用答案的技术。LLMs 在非常广泛的数据集(如互联网)上进行训练,以获得对人类语言和模式的深刻理解。然而,这也意味着它们需要具体的上下文才能给出有针对性的回应。提示词工程技术正是通过与 LLMs 交互来提升其回答质量的方法。
利用提示词工程辅助撰写简历时,首先需要提供上下文(即告知 LLM 将协助撰写简历),并输入工作经历作为数据基础。接着,提供职位描述,并引导其完成简历撰写。然而,如果工作经历较长,可能会遇到令牌(Token)数量限制的问题,这就需要要么精简经验描述,要么提高 LLM 及其接口的令牌上限(从而增加成本)。
实验将在 Azure 平台上以无代码方式进行。首先使用 chat-gpt-4o 基础模型进行提示词工程实验。实验将遵循 Azure 关于创建 RAG 应用的教程。开始时,请完成教程中“创建 Foundry hub”和“部署模型”部分的所有步骤。如果仅使用提示词工程,请跳过后续几个部分,直接进入“在 Playground 中测试索引”并完成前两步,以部署 chat-gpt-4o 基础模型。
出于隐私和专业性考虑,以下实验方法描述将尽可能详细,但不会提供具体的个人简历、工作经历或所使用的职位描述。
每种实验方案将主要使用相同的提示词。在仅使用提示词工程的方案中,会额外增加一个步骤,即向 LLM 提供一份“主简历”作为参考材料。这些提示词改编自一篇关于使用 LLMs 撰写简历的 LinkedIn 文章。首先,在 Azure Playground 的“给予模型指令和上下文”框中输入系统消息。系统消息如下:
你将扮演一位专业的简历写手,擅长简洁地呈现信息,使用领域内恰当的语言,同时避免冗余和陈词滥调。你的任务是根据我的经验,将其定位为目标职位的最佳解决方案,并特别针对该职位进行定制,以清晰展示我能够胜任该职位的主要要求。重要的是,你不能编造我未曾取得的成就。只能对现有经验进行重新措辞和组织。
这条系统消息向 LLM 阐明了基本任务(撰写简历),并提供了关于事实准确性(不编造成就)、相关性(针对目标职位进行定位)和逻辑连贯性(避免冗余和陈词滥调)的通用指导原则。
接下来,提供一份主简历。使用的提示词是:“首先,我将提供一份我的工作成就列表。请仅从我提供的信息中提取简历要点和摘要。以下是我的工作经历,供你使用。请确认你已理解。”随后附上主简历。在使用 RAG 时,将不使用此提示词。
然后,为 LLM 提供更多关于招聘公司的背景信息:“这里有一些关于招聘公司的详细信息,以便你能更有效地调整回应,以匹配公司的需求。请确认你已理解。”随后附上职位描述中关于公司的信息;通常职位描述开头会有一两段公司介绍。接着,使用以下提示词设置并提供职位描述:
接下来,我将提供职位描述。我们将使用这份职位描述,一步步地制作一份包含摘要陈述以及每个职位角色 3-5 个要点的简历。请确认你已理解职位描述,并告诉我我正在申请的职位名称。[在此处粘贴职位描述]。
为了进一步聚焦 LLM 的回应,并为简历要点提供更多背景,接着提问:“这份工作最重要的技术技能是什么?哪些技术技能能让我在这个角色中占据优势?”,然后是“[该职位] 最常见的专业领域是什么?”。这些问题的目的是提高所提供要点和摘要的相关性。
现在可以开始生成简历内容了。简历的粗略格式已事先确定:以一段摘要开头,然后为最近的两份工作提供 3-5 个要点,为其他工作提供 1-3 个要点。最后以教育背景部分和关键相关技能摘要结束。LLM 将提供除教育背景部分之外的所有内容。
首先,要求其提供摘要:
利用我的经验,撰写一个 4-6 句的摘要,展示我 10 年以上的工作经验,仅包含与该职位相关的内容。展示我的经验如何能够满足 [X 公司] 的需求。使用适合简历的被动第三人称撰写。
接着,要求其为每份工作提供要点:
从我在 X 公司的经历中,撰写 3-5 个简短的要点,以最好地展示我如何符合该职位的要求。请考虑之前讨论过的技术要求和最常见经验。每个要点以行为动词开头,后跟任务描述,并以结果结尾。在信息可用的情况下,使用数字、百分比、金额等量化每个陈述。这些要点在使用 10 磅字体、窄边距的情况下不应超过两行。
对每份工作重复此提示词,并添加“避免与之前的要点重复”的条款,并根据之前描述的情况调整所请求的要点数量。
最后,在获得每份工作经历的要点后,要求 LLM 提供相关技术技能的摘要:
提供最多 5 个简洁的要点,总结我所拥有的与该职位相关的关键认证和技术技能。仅在我拥有特定相关认证或技术技能时,才提供摘要要点。
这些问题的回答为简历提供了一个起点,通常只需进行最少的编辑——主要是调整格式、删除可能不准确的内容或确保简历控制在一页以内。至此,仅使用提示词工程的方案结束。
在提示词工程之上的下一步是引入 RAG。RAG 允许用户创建自己的文档库,作为 LLMs 提取知识的来源。在本案例中,文档库由已创建的简历组成。较早的简历提供了职业生涯早期成就的更多细节。对于较新的工作经历,在已经创建了涵盖个人工作经验范围的若干份简历后,这种方法非常有用。基于个人简历构建 RAG,有助于将 LLM 的注意力集中在个人经验库上,而无需定制训练或微调模型。虽然使用 LLM 撰写简历并非必须使用 RAG,且 RAG 会产生额外的计算成本,但与仅使用提示词工程相比,它有可能改善结果,并使得向 LLM 提供更广泛的经验参考变得更加容易。
在 RAG 方案中,将使用相同的提示词,但会移除第一个提供工作背景的提示词,因为 RAG 将提供该信息。要使用 RAG,需要返回 Azure 教程,这次完成“向项目添加数据”和“为数据创建索引”部分。但是,不使用教程中提供的数据,而是创建并上传一个包含所有希望 LLM 参考的简历的文件夹。索引完成后,按照“在 Playground 中测试索引”的第四步,将数据添加到模型的上下文中。之后,重复使用之前的提示词,但移除第一个提供工作历史的提示词。
最后,为了评估使用不同基础模型进行简历生成的效果,向项目中部署一个新模型,这次是 chat-gpt-4o-mini,以评估其在 RAG 下的性能。LLMs 拥有数万亿参数,需要企业级托管。小型(相对较小)语言模型(chat-gpt-4o-mini 约 80 亿参数,而 chat-gpt-4o 约 1.8 万亿参数)试图在更紧凑、更灵活的形式中提供 LLMs 的大部分能力,支持本地化部署,这对于数据安全和隐私尤为重要,特别是对于那些可能无法支持内部托管 LLM 的小型公司。新模型部署完成后,返回 Playground,添加上文中的系统消息和 RAG 数据,并重复相同的提示词。
下表总结了每种方案的性能表现:
方案事实准确性内容相关性逻辑连贯性语言流畅度
提示词工程 不满意 边缘 满意 满意
RAG 满意 边缘 满意 满意
RAG-mini 满意 边缘 满意 满意
各方案在不同指标下的性能总结
仅使用提示词工程生成的简历在事实准确性方面存在严重问题,以至于完全无法使用。它编造了求职者并不具备的认证,以及求职者并未实现的改进金额。两份结合 RAG 的简历表现更好,但仍存在一些问题。Chat-gpt-4o 的事实准确性略高,但仍犯了一些 mini 模型没有犯的错误。考虑到 LLM 幻觉的已知问题,应当预期需要验证所有陈述。所有三个模型在内容相关性方面都处于边缘水平;它们未能包含职位描述中的几个重要短语;它们能够生成可接受的要点,但这些要点可以通过手动编辑来改进。结合 RAG 的简历,尤其是在完整模型上,相关性略高。所有模型在逻辑连贯性方面都令人满意,尽管 RAG 生成的要点更为简洁。所有模型都提供了符合规范的英语写作。如果求职者拥有大量的简历档案,那么使用 RAG 来生成简历可能是值得的,即便只是为了减少幻觉的可能性(当然,前提是求职者希望保持诚实——LLM 为求职者编造的一些成就相当令人印象深刻!)。
关于使用 LLMs 创建简历的一些最终思考。LLMs 为简历提供了一个良好的起点,特别是当求职者难以构思新想法或措辞,或者希望为简历开启新思路时。通常,编辑一份初稿简历比从头创建一份要容易得多,因此它们可以帮助求职者构建简历。然而,这需要求职者已有现成的简历要点和工作经验供 LLM 参考。这意味着求职者需要知道如何撰写简历要点。撰写这些要点是一项会生疏的技能,因此建议不要完全依赖 LLMs 来撰写所有简历,尤其是在获得新的工作经验时。其次,需要进一步精简要点,并选择保留 LLM 提供的哪些要点;本可以通过要求 LLM 直接撰写完整的一页简历来避免这一步,但这可能会降低回答的质量(尤其是相关性)。最后,可以通过实时交互来帮助 LLM 编辑和改进其回答,从而提升效果。然而,为了尽可能控制实验条件以改善不同方案之间的可比性,本次实验未采用此方式。
