大语言模型从completions到chatbot再到funct

2024-08-27  本文已影响0人  梅西爱骑车

一、续写

“completions” 指的是通过向模型提供一个上下文或部分文本,以便模型继续或完成给定的文本。通过使用“completions”功能,您可以向语言模型发送请求,要求其根据给定的文本生成补全或续写的建议,即继续进行后续文本创作。
从原理上来看,LLM的本质是一个句子接龙机器,于是自然而然地,大家首先会把他用在续写故事上,而稍加引导,让这个故事以机器一句、用户一句的方式接力续写,那么就可以把LLM包装成一个对话机器人,之后,以初代ChatGPT为代表的基于LLM的对话机器人应用铺天盖地的爆发了。

二、chat

大语言模型(如GPT系列)的completions接口主要用于生成文本补全,即用户提供一个提示(prompt),模型基于这个提示生成后续的文本。然而,completions接口本身并不直接支持多轮对话或保持上下文的能力,这是其与chat/completions接口的主要区别。若要让大语言模型的completions接口拥有类似chat的能力,即支持多轮对话和保持上下文,可以使用包含多轮对话的数据集对模型进行训练,使其能够更好地理解对话的上下文和生成连贯的回复。
希望实现一个简单的聊天机器人。你可以通过以下步骤来整合completions接口以实现多轮对话:

  1. 初始化一个空字符串或列表来存储对话历史。
  2. 在每次用户输入时,将用户输入和对话历史拼接成新的提示(prompt)。
  3. 调用completions接口,将拼接后的提示作为参数传入。
  4. 将模型生成的回复添加到对话历史中,并展示给用户。

三. Function call

那么,难道LLM只能用来Chat吗?可否做一些更有趣的事情呢?如果翻阅过OpenAI发的几篇GPT1、2、3代的论文,就会发现,大语言模型的典型模型GPT在论文中被定位成了一个“多任务完成器”,认为GPT这种大语言模型,只要稍加引导,就可以化身不同的角色完成不同的任务。
所以,通过适当的引导(提示词工程),我们至少可以让大模型完成以下两件事情:

  1. 结构化信息抽取,从非结构化的文本中提取期望的关键信息
  2. 按照模板格式化输出,比如按照json格式输出
    再配合上模型微调等技术强化大模型以上两个技能,我们就可以做到:给定大模型一段自然语言来描述的需求,要求大模型判断意图并从中抽取预期的关键信息,然后按照指定的格式模板输出这些关键信息列表,而输出的格式化信息是可以被传统的不具有语言智能的外围辅助程序解析的,外围程序就可以利用这个信息来映射到某个预先实现好的函数,并把模型输出的格式化信息列表当成函数参数列表传入,然后执行这个函数,再把函数的返回结果反馈给大模型。
    于是宏观来看,好像大模型稍加调教,就拥有了理解并调用外界函数的功能,并且可以感知到函数执行结果并作出自己下一步的判断。这个“函数”是一个笼统的说法,也可以叫它工具、外部模块、工作流等。

四、结束语

LLM原本只能输入输出文本(详细来说是向量序列),通过让LLM使用外部工具,让LLM和外部环境进行交互,和真实世界建立了桥梁,让LLM真正的可以感知、影响到外部世界,就好像为LLM安上了手脚。

上一篇下一篇

猜你喜欢

热点阅读