基础概念
- 模型:就是一个 “有特定能力的智能工具”。比如,把它想象成一个厨师—— 这个厨师学过做各种菜,你给它食材和要求,它就能做出对应的菜品。AI 模型也是如此,它提前 “学” 了海量数据,你给它指令,它就能输出结果(比如写文案、算题、翻译)。
- 提示:就是你给这个智能工具的具体指令。还是用厨师举例,你说 “我要一份番茄炒蛋,少盐”,这句话就是提示。对应到 AI 上,你输入 “帮我写一句祝朋友生日快乐的话”,这句话就是给 AI 模型的提示。
- 提示模板:就是固定好框架的指令模板,把需要灵活替换的内容留成 “填空位”。比如厨师的指令模板可以是:“我要一份【菜品名】,口味【咸 / 淡 / 辣】”。用的时候,你只需要填 “番茄炒蛋”“少盐”,不用每次都重新组织语言。AI 的提示模板也是同理,比如写祝福的模板:“帮我写一句祝【对象】【节日 / 事件】快乐的话,风格要【温馨 / 幽默】”。用的时候直接填空,就能快速生成符合要求的内容。
简单总结:模型是工具,提示是给工具的指令,提示模板是可以重复使用的指令框架。
Tokens是AI模型工作原理的基石。 在输入时,模型将单词转换为词。输出时,他们会将Tokens转换回单词。
在英语中,一个标记大致相当于单词的75%。作为参考,莎士比亚的全集总字数约为90万字,约为120万个Tokens。
Tokens在人工智能处理中的技术角色之外,还有实际意义,尤其是在计费和模型能力方面:
- 计费:AI模型服务通常根据Tokens使用量计费。输入(提示)和输出(响应)都对总Tokens数量有贡献,使得较短的提示更具成本效益。
- 模型限制:不同的AI模型有不同的Tokens限制,定义了它们的“上下文窗口”——即它们一次能处理的最大信息量。例如,GPT-3的限制是4KTokens,而Claude 2和Meta Llama 2等其他模型则限制了10万个Tokens,有些研究模型甚至能处理多达100万个Tokens。
- 上下文窗口:模型的标记限制决定了其上下文窗口。超过该限制的输入不被模型处理。处理时必须只发送最基本的有效信息集。例如,在询问《哈姆雷特》时,无需包含莎士比亚所有其他作品的标记。
- 响应元数据:AI模型响应的元数据包括使用的Tokens数量,这是管理使用和成本的重要信息。
结构化输出
AI模型的输出传统上以java.lang.字符串即使你要求回复是 JSON。 它可能是正确的 JSON,但它不是 JSON 数据结构。它只是一根线。 另外,提示词中要求“for JSON”并不完全准确。
这种复杂性催生了一个专门领域,涉及创建提示以产生预期输出,然后将生成的简单字符串转换为可用于应用集成的数据结构。
结构化输出转换采用精心设计的提示词,通常需要多次与模型交互以实现所需的格式化。
将您的数据和API带入AI模型
如何为AI模型配备尚未训练过的信息?
有三种技术用于定制AI模型以纳入您的数据,后面章节会展开说明:
- 微调:这种传统机器学习技术涉及定制模型并改变其内部权重。 然而,这对机器学习专家来说是一个具有挑战性的过程,而对于像GPT这样的模型来说,由于体积庞大,资源极为消耗大量。此外,有些型号可能不提供此选项。
- 提示填充:更实用的替代方案是将你的数据嵌入模型提示中。鉴于模型的Tokens限制,需要技术在模型的上下文窗口内呈现相关数据。 这种方法俗称为“塞满提示”。 Spring AI库帮助你基于“填充提示”技术(也称为检索增强生成,RAG)实现解决方案。