Gemma 2 2B:针对小型 LLM 提示工程关注点

大型语言模型的有效性在很大程度上取决于我们给出的指令。提示工程是指以从 LLM 获得最佳输出的方式设计问题的过程。这是实现基于 LLM 的功能的关键步骤。提示工程是一个迭代过程。如果尝试过不同的 LLM,那么发现为了获得更好的结果,需要微调提示。

这同样适用于不同尺寸的模型。

由大型 LLM(例如 Gemini 或 ChatGPT)提供支持的聊天界面通常只需极少的提示工作即可生成令人满意的结果。但是,在使用未经微调的默认较小 LLM 时,需要调整相应的方法。

较小的 LLM 功能较少,可供选择的信息池也较小。
在这里插入图片描述

小型LLMs的定义与应用场景

定义“小型LLMs”

在人工智能领域,语言模型(LLMs)根据其参数的数量可以分为不同规模。小型LLMs通常指的是参数数量在数百万到数十亿范围内的模型。这些模型相较于拥有数十亿甚至数千亿参数的大型模型,虽然在处理能力和知识广度上有所限制,但它们在资源消耗和部署灵活性上具有优势。

参数范围

小型LLMs的参数范围通常在几百万到30亿以下。这个参数量级的模型能够实现基本的语言理解和生成任务,但可能在复杂度和准确性上不如大型模型。

应用场景

小型LLMs的典型应用场景包括:

  • 设备端/浏览器中的生成式AI:例如,使用Gemma 2B模型与MediaPipe的LLM Inference API结合,即使在仅支持CPU的设备上也能运行。
  • 自定义服务器端生成式AI:开发者可以在自己的服务器上部署如Gemma 2B、Gemma 7B或Gemma 27B等小型模型,并根据需要进行微调。

开始使用小型LLMs

大型与小型LLMs的差异

大型LLMs如Gemini或ChatGPT通常能够通过简单的提示生成满意的结果,而小型LLMs则需要更精细的提示设计来实现最佳效果。小型LLMs在信息处理能力和上下文理解上相对有限。

设计详细、具体的提示

为小型LLMs设计提示时,需要提供更多的上下文信息和具体的格式要求。这有助于模型更准确地理解任务需求并生成合适的输出。
提供上下文和精确的格式指令,详细提示示例
例如,当需要根据用户评价给出产品评分时,可以提供如下的提示模板:

Based on a user review, provide a product rating as an integer between 1 and 5.

Only output the integer. Review: "${review}"
Rating:
一次、少数和多示例以及思维链提示技术

通过提供具体的评分示例,可以帮助模型更好地理解评分标准。例如,展示积极评价与高评分的对应关系,以及消极评价与低评分的对应关系。
在这里插入图片描述

思维链提示技术通过展示问题解决的步骤来引导模型进行逻辑推理,这有助于提高小型LLMs在复杂任务上的表现。举例来说:

Analyze a product review, and then based on your analysis give me the corresponding rating (integer). The rating should be an integer between 1 and 5. 1 is the worst rating, and 5 is the best rating. A strongly dissatisfied review that only mentions issues should have a rating of 1 (worst). A strongly satisfied review that only mentions positives and upsides should have a rating of 5 (best). Be opinionated. Use the full range of possible ratings (1 to 5). \n\n \n\n Here are some examples of reviews and their corresponding analyses and ratings: \n\n Review: 'Stylish and functional. Not sure how it'll handle rugged outdoor use, but it's perfect for urban exploring.' Analysis: The reviewer appreciates the product's style and basic functionality. They express some uncertainty about its ruggedness but overall find it suitable for their intended use, resulting in a positive, but not top-tier rating. Rating (integer): 4 \n\n Review: 'It's a solid backpack at a decent price. Does the job, but nothing particularly amazing about it.' Analysis: This reflects an average opinion. The backpack is functional and fulfills its essential purpose. However, the reviewer finds it unremarkable and lacking any standout features deserving of higher praise. Rating (integer): 3 \n\n Review: 'The waist belt broke on my first trip! Customer service was unresponsive too. Would not recommend.' Analysis: A serious product defect and poor customer service experience naturally warrants the lowest possible rating. The reviewer is extremely unsatisfied with both the product and the company. Rating (integer): 1 \n\n Review: 'Love how many pockets and compartments it has. Keeps everything organized on long trips. Durable too!' Analysis: The enthusiastic review highlights specific features the user loves (organization and durability), indicating great satisfaction with the product. This justifies the highest rating. Rating (integer): 5 \n\n Review: 'The straps are a bit flimsy, and they started digging into my shoulders under heavy loads.' Analysis: While not a totally negative review, a significant comfort issue leads the reviewer to rate the product poorly. The straps are a key component of a backpack, and their failure to perform well under load is a major flaw. Rating (integer): 1 \n\n Now, here is the review you need to assess: \n Review: "${review}" \n;

预期手动输出解析

虽然应该交由LLM自动生成,但是鉴于不准确性,需要手动清理并解读 LLM 的输出,尤其是对小型 LLM 来说,因为小型 LLM 生成的结果可能不太精确,可能需要思维链提示。

在第一个示例中,我们使用了思维链提示,因此输出同时包含分析和评分,我们需要手动解析评分。另请注意,上一部分的输出格式不一致:模型有时会输出 Markdown,但并非每次都会输出。

小型LLMs的输出可能需要手动解析,以确保结果的准确性。例如,使用正则表达式从输出中提取评分,并进行进一步的验证。

注意API差异

注意大型LLMs的云API(如Gemini API或OpenAI)与小型LLMs使用的浏览器AI API在功能上的差异

Gemini API 或 OpenAI 等 LLM 云 API 通常是大型 LLM 的入口点,可提供便捷的提示功能。例如,Gemini 1.5 Pro 提供系统说明和 JSON 模式。

目前,这些功能并非始终可用于自定义模型,也不适用于使用浏览器内 AI API(例如 MediaPipe LLM Inference API 或 Transformers.js)访问的较小 LLM。虽然这不一定是技术限制,但浏览器内置 AI API 往往更精简。

注意token限制

小型LLMs通常有更严格的输入token限制,这要求在设计提示时必须注意token的使用效率。

由于针对较小的 LLM 的提示需要包含示例或更详细的说明,因此可能会较长,并占用更多的输入token限制(如果有)。

此外,较小的模型往往具有较小的输入token限制。例如,Gemini 1.5 Pro 的输入token数量上限为 100 万个,而 Gemma 模型具有 8K 上下文窗口。

使用token计数函数可避免达到上限。

调整时间估计

在估算工程时间时,请考虑及时的设计和测试。

由于 API 差异和令牌限制,您可能需要投入更多的时间和精力来为较小的 LLM 编写提示,而不是为较大的 LLM 编写提示。测试和验证 LLM 的输出可能也会花费更多精力。

提示工程与微调的比较

提示工程的优势

讨论在何种情况下使用提示工程更为合适,例如快速原型设计或在数据不足时。

微调的使用场景

描述微调在需要高精度和重复使用模型的场景下的优势,以及如何利用已有的标注数据进行微调。

结论

对于 Web 开发者,提示工程是我们利用生成式 AI 而非自定义训练和微调的首选方式。但在某些用例中,即使是高级提示工程也可能不够,尤其是在使用较小的 LLM 时。

在以下情况下使用微调:

  • 对特定任务要求出色的准确率和性能。微调可直接调整模型的内部参数,以获得最佳结果。
  • 拥有与任务相关的精心挑选的数据,并且这些数据已经带有首选输出标签。需要此数据才能进行有效微调。
  • 反复使用该模型来达到相同的目的。一次微调可以完成一次,然后便可针对特定任务重复使用。
提示工程的最佳实践

总结在小型LLMs中进行有效提示工程的关键点,包括详细的上下文提供、精确的格式指令和持续的迭代测试。

持续迭代和测试的重要性

强调为了获得最佳性能,持续对提示进行迭代和测试是不可或缺的。这有助于不断优化模型的输出质量和准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技之歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值