美团大模型算法二面:Function Call三连炮!

随着DeepSeek爆火,面试中也越来越高频出现,因此训练营也更新了DeepSeek系列技术的深入拆解。包括MLA、MTP、专家负载均衡、FP8混合精度训练,Dual-Pipe等关键技术,力求做到全网最硬核的解析~

这是美团某个部门大模型算法的二面题目,我们来看其中的 10、11、12 题,是一个关于大模型中 Function call 的连环炮拷问。

img

有关 Function call 的面试题,网上流传的并不多,很多同学都会用商业大模型的 use tools 这个功能,但一细问到这个能力是怎么训练出来的,大都一脸懵。

所以这篇笔记,我们就来详细拆解这个 Function call 的面试连环炮,如果你在面试现场被问到这些题目,应该如何作答?

01

Function call怎么训练的,怎么微调的?

第一个问题,Function call 是怎么训练,怎么微调的。我们可以根据 Llama3 的开源细节来回答这个问题。

根据 Llama 的技术报告,大模型工具调用能力,是在 post training 的时候加上去的,包含了多个 SFT 和 DPO 的迭代过程。

Llama3 使用 tool 的流程大致和 GPT4 的 tool call 差不多:

img

参考 Llama3 对 SFT Tool 数据集的描述:标注员只对 assistant 信息进行排名打分,通常模型对当前问题的推理能力越强,打分越高,而不对 tool 信息进行排名打分。

其次,不采用 rejection sampling,因为 Llama 团队没有在后期的 tool 测评中,观察到它带来的收益。

为了加快标注过程,Llama 团队首先通过在之前的 Llama 3 检查点生成的合成数据上进行微调,以此来引导基本的工具使用能力。因此标注员需要进行的改动较少。

同样地,随着 Llama 3 在训练过程中逐渐改进,逐步复杂化人类标注协议:从标注单轮 tool use 的对话数据开始,逐步过渡到标注对话中包含了 tool use 的数据,最后到标注对话中包含了多步 tool use 以及数据分析的训练数据。

02

Fucntion call怎么组织文本的格式喂给模型?

比较有名的 function call 的数据集有 glaive-function-calling-v2-sharegpt,其输入格式为:

tools:

[  {    "name":"generate_password",    "description":"Generate a random password with specified criteria",    "parameters":{      "type":"object",      "properties":{        "length":{          "type":"integer",          "description":"The length of the password"        },        "include_numbers":{          "type":"boolean",          "description":"Include numbers in the password"        },        "include_special_characters":{          "type":"boolean",          "description":"Include special characters in the password"        }      },      "required":[        "length"      ]    }  }]

tools 会像 system prompt 一样,一起放到输入的 prompt 里。组织好的对话数据:

[  {    "from":"human",    "value":"I need a new password. Can you generate one for me?"  },  {    "from":"gpt",    "value":"Of course! How long would you like your password to be? And do you want it to include numbers and special characters?"  },  {    "from":"human",    "value":"I want it to be 12 characters long and yes, it should include both numbers and special characters."  },  {    "from":"function_call",    "value":"{\"name\": \"generate_password\", \"arguments\": {\"length\": 12, \"include_numbers\": true, \"include_special_characters\": true}}"  },  {    "from":"observation",    "value":"{\"password\": \"4#7gB6&9L1!0\"}"  },  {    "from":"gpt",    "value":"Here is your new password: 4#7gB6&9L1!0. Please make sure to save it in a secure place."  }]

这部分对话数据会和普通的多轮对话数据一样,进行多次的 SFT+DPO/RLHF 的微调。

03

Function call怎么把下游的一些工具/插件变成模型可以理解的方式?

从上一道题目的分析可以看到,其实通过把 tools 翻译成 json 文本,也就是把 tool 的函数名,工具描述,变量名,变量类型打包成 prompt 的一部分。

然后再全局设计这样的指令模版,例如 qwen-agent 里设置了这样的包含工具的对话模版:

"""# 工具你拥有如下工具:{tool_descs}你可以在回复中插入零次、一次或多次以下命令以调用工具:#FUNCTION#: 工具名称,必须是[{tool_names}]之一。#ARGS#: 工具输入#RESULT#: 工具结果#RETURN#: 根据工具结果进行回复"""

然后通过 post-training 或者微调,可以让模型理解工具的含义。当然实际在定义所使用的工具时,前面提到的这些必要的工具信息需要含义清楚,定义清晰,否则实际使用的效果也会大打折扣。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值