当前位置: 首页 > article >正文

深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例

🔍 微信搜索公众号AI在学获取最新 AI 技术文章与实战教程GitHub代码仓库引言在现代大语言模型(LLM)中,Function Call(函数调用)能力极大地提升了模型的实用性,使其能够调用外部 API、执行复杂计算或获取实时数据。例如,在 OpenAI API 和 Qwen2.5-7B-Instruct 这样的模型中,用户可以向模型提供工具(Tools),并允许模型在适当的时候调用它们。本文以 Qwen2.5-7B-Instruct 为例,探讨其 Function Call 机制的底层实现。1. Function Call 机制概述通常,大语言模型的输入输出都是字符串,但 Function Call 允许模型在对话过程中识别特定的函数调用需求,并以结构化数据格式返回调用参数。在 Qwen2.5-7B-Instruct 中,Function Call 由以下几部分组成:messages:对话历史,包括用户、系统、助手的消息。tools:可供调用的函数信息,描述了函数名称、参数格式等。2. Function Call 的 Prompt 生成在 Qwen2.5-7B-Instruct 后端,所有 messages 和 tools 会被应用到一个固定的模板上,以便模型正确解析和执行 Function Call。2.1 获取模板fromtransformersimportQwen2ForCausalLM,Qwen2TokenizerFast model_name_or_path="Qwen/Qwen2.5-7B-Instruct"tokenizer=Qwen2TokenizerFast.from_pretrained(model_name_or_path)print(tokenizer.get_chat_template())此代码返回一个 Prompt 生成模板,该模板会根据 messages 和 tools 生成最终的输入格式。2.2 模板内容解析模板的核心部分如下:{%- if tools %} { {- '|im_start|system\n' }} {%- if messages[0]['role'] == 'system' %} { {- messages[0]['content'] }} {%- else %} { {- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} {%- endif %} { {- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures withintools/toolsXML tags:\ntools" }} {%- for tool in tools %} { {- "\n" }} { {- tool | tojson }} {%- endfor %} { {- "\n/tools\n\nFor each function call, return a json object with function name and arguments withintool_call/tool_callXML tags:\ntool_call\n{\"name\":function-name, \"arguments\":args-json-object}\n/tool_call|im_end|\n" }} {%- else %} {%- if messages[0]['role'] == 'system' %} { {- '|im_start|

相关文章:

深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例

🔍 微信搜索公众号 AI在学 获取最新 AI 技术文章与实战教程 GitHub代码仓库 引言 在现代大语言模型(LLM)中,Function Call(函数调用)能力极大地提升了模型的实用性,使其能够调用外部 API、执行复杂计算或获取实时数据。例如,在 OpenAI API 和 Qwen2.5-7B-Instruc…...

大模型基础概念详解:从AI到生成式AI的学习路径

这篇文章是学习李宏毅《生成式AI导论》的笔记,系统介绍了AI、机器学习、生成式AI的基本概念和关系,详细解析了大语言模型的工作原理和Transformer架构,分享了有效使用大模型的方法,包括提示词工程、任务拆解等技巧,并探…...

为什么选择Optim.jl?10个理由让它成为Julia优化的首选工具

为什么选择Optim.jl?10个理由让它成为Julia优化的首选工具 【免费下载链接】Optim.jl Optimization functions for Julia 项目地址: https://gitcode.com/gh_mirrors/op/Optim.jl Optim.jl是Julia语言中一款功能强大的优化工具包,提供了丰富的优化…...

【03】AJAX发送get请求

AJAX发送get请求一、发送GET请求二、设置请求参数一、发送GET请求 1.创建html文件&#xff1a; test.html中的内容&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…...

一文读懂 RAG 与嵌入模型:大模型如何实现“读文档、答问题”

&#x1f50d; 微信搜索公众号 AI在学 获取最新 AI 技术文章与实战教程 前言 你有没有发现&#xff0c;现在的大语言模型不仅能聊天、写文案&#xff0c;还能读懂你的文档、帮你查资料&#xff1f; 比如&#xff1a;你提问“公司的报销流程是怎样的&#xff1f;”它就能从…...

终极HRM评估框架指南:3步掌握evaluate.py与arc_eval.ipynb高效推理测试

终极HRM评估框架指南&#xff1a;3步掌握evaluate.py与arc_eval.ipynb高效推理测试 【免费下载链接】HRM Hierarchical Reasoning Model Official Release 项目地址: https://gitcode.com/GitHub_Trending/hrm11/HRM HRM&#xff08;Hierarchical Reasoning Model&#…...

【图像隐写】基于DWT+DCT实现图像水印隐藏提取(含PSNR、NCC、IF)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

【独家原创】基于(蜜獾算法)HBA-Transformer多变量时序预测(多输入单输出)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书…...

【独家原创】基于SMA(黏菌)-Transformer多特征分类预测(多输入单输出)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

基于双dq变换的六相永磁同步电机矢量控制仿真、附参考文献

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

FlowMeter架构详解:从数据包捕获到AI分类的完整流程

FlowMeter架构详解&#xff1a;从数据包捕获到AI分类的完整流程 【免费下载链接】FlowMeter ⭐ ⭐ Use ML to classify flows and packets as benign or malicious. ⭐ ⭐ 项目地址: https://gitcode.com/gh_mirrors/fl/FlowMeter FlowMeter是一款利用机器学习技术对网…...

Carmen API完全参考:Country与Region类的核心方法详解

Carmen API完全参考&#xff1a;Country与Region类的核心方法详解 【免费下载链接】carmen A repository of geographic regions for Ruby 项目地址: https://gitcode.com/gh_mirrors/ca/carmen Carmen是一个为Ruby应用提供地理区域数据的强大工具库&#xff0c;它通过C…...

Rockstar WebAssembly部署终极指南:5步将摇滚程序带到浏览器

Rockstar WebAssembly部署终极指南&#xff1a;5步将摇滚程序带到浏览器 【免费下载链接】rockstar The Rockstar programming language specification 项目地址: https://gitcode.com/gh_mirrors/ro/rockstar Rockstar是一种以音乐和摇滚文化为灵感的编程语言&#xff…...

DIY-Thermocam vs 商用热像仪:成本与性能的终极对比

DIY-Thermocam vs 商用热像仪&#xff1a;成本与性能的终极对比 【免费下载链接】diy-thermocam A do-it-yourself thermal imager, compatible with the FLIR Lepton 2.5, 3.1R and 3.5 sensor with Arduino firmware 项目地址: https://gitcode.com/gh_mirrors/di/diy-ther…...

Prettier Java处理复杂Java语法:泛型、lambda与文本块格式化

Prettier Java处理复杂Java语法&#xff1a;泛型、lambda与文本块格式化 【免费下载链接】prettier-java Prettier Java Plugin 项目地址: https://gitcode.com/gh_mirrors/pr/prettier-java Prettier Java作为一款强大的代码格式化工具&#xff0c;能够自动处理Java语言…...

Shotcut开发调试终极指南:掌握日志分析与错误排查的5个核心技巧

Shotcut开发调试终极指南&#xff1a;掌握日志分析与错误排查的5个核心技巧 【免费下载链接】shotcut cross-platform (Qt), open-source (GPLv3) video editor 项目地址: https://gitcode.com/gh_mirrors/sh/shotcut Shotcut是一款跨平台&#xff08;Qt&#xff09;开源…...

Alenka:GPU数据库引擎革命!如何利用GPU加速实现超高性能数据查询

Alenka&#xff1a;GPU数据库引擎革命&#xff01;如何利用GPU加速实现超高性能数据查询 【免费下载链接】Alenka GPU database engine 项目地址: https://gitcode.com/gh_mirrors/al/Alenka Alenka是一款基于GPU的数据库引擎&#xff0c;专为利用现代GPU的向量处理能力…...

终极AriaNg CI/CD自动化部署指南:从开发到生产环境的完整配置方案

终极AriaNg CI/CD自动化部署指南&#xff1a;从开发到生产环境的完整配置方案 【免费下载链接】AriaNg AriaNg, a modern web frontend making aria2 easier to use. 项目地址: https://gitcode.com/gh_mirrors/ar/AriaNg AriaNg作为一款现代化的Web前端工具&#xff0c…...

终极指南:Luban图片压缩回调机制详解 onStart/onSuccess/onError全攻略

终极指南&#xff1a;Luban图片压缩回调机制详解 onStart/onSuccess/onError全攻略 【免费下载链接】Luban Luban(鲁班)—Image compression with efficiency very close to WeChat Moments/可能是最接近微信朋友圈的图片压缩算法 项目地址: https://gitcode.com/gh_mirrors/…...

《OpenClaw架构与源码解读》· 第 12 章 Cron、Webhooks 与事件驱动自动化

第 12 章 Cron、Webhooks 与事件驱动自动化 前面第 8–10 章介绍的消息处理链路&#xff0c;都是被动响应式的&#xff1a;用户先说话&#xff0c;OpenClaw 才行动。但 OpenClaw 更有价值的地方之一&#xff0c;恰恰是它可以主动出击——在你没有发消息的时候&#xff0c;悄悄把…...

x86与ARM架构通用:cpuid库跨平台CPU特性检测最佳实践

x86与ARM架构通用&#xff1a;cpuid库跨平台CPU特性检测最佳实践 【免费下载链接】cpuid CPU feature identification for Go 项目地址: https://gitcode.com/gh_mirrors/cp/cpuid 在现代软件开发中&#xff0c;针对不同CPU架构优化程序性能变得越来越重要。无论是x86还…...

贪心:保卫花园

题目&#xff1a;P2878 [USACO07JAN] Protecting the Flowers S - 洛谷 题目概述&#xff1a;每头牛都呆在数组的某个坐标上&#xff0c;并且每分钟会吃掉i朵花&#xff0c;问如何排序把牛牵回坐标0处&#xff0c;使花的损失最小。求最小吃掉花的数量。 思路&#xff1a;每一波…...

OpenClaw 安卓设备接入指南:从零开始配置你的移动节点

最近 OpenClaw 项目热度很高&#xff0c;我也开始学习和探索。本文记录了我学习过程中&#xff0c;将 Android 设备接入 OpenClaw Gateway 的完整流程&#xff0c;涵盖了环境准备、应用编译、Gateway 配置及最终连接&#xff0c;并特别记录了针对较旧 Android 设备的适配方法。…...

终极指南:5分钟完成Social-Engineer Toolkit容器化部署

终极指南&#xff1a;5分钟完成Social-Engineer Toolkit容器化部署 【免费下载链接】social-engineer-toolkit The Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here. 项目地址: https://gitcode.com/GitHub_Tren…...

VibeVoice推理优化终极指南:如何减少内存占用并提升语音生成速度

VibeVoice推理优化终极指南&#xff1a;如何减少内存占用并提升语音生成速度 【免费下载链接】VibeVoice Open-Source Frontier Voice AI 项目地址: https://gitcode.com/GitHub_Trending/vib/VibeVoice VibeVoice作为开源前沿语音AI项目&#xff0c;在提供高质量语音生…...

如何快速入门Esplora:从安装到查询的完整指南

如何快速入门Esplora&#xff1a;从安装到查询的完整指南 【免费下载链接】esplora Explorer for Bitcoin and Liquid 项目地址: https://gitcode.com/gh_mirrors/es/esplora Esplora是一款功能强大的比特币和Liquid区块链浏览器&#xff0c;帮助用户轻松查询交易、区块…...

PHP面试中的Redis与Memcached选型:PHP-Interview-Best-Practices-in-China对比分析

PHP面试中的Redis与Memcached选型&#xff1a;PHP-Interview-Best-Practices-in-China对比分析 【免费下载链接】PHP-Interview-Best-Practices-in-China 项目地址: https://gitcode.com/gh_mirrors/ph/PHP-Interview-Best-Practices-in-China 在PHP开发领域&#xff0…...

Waves区块链数据结构详解:Merkle树与状态管理机制

Waves区块链数据结构详解&#xff1a;Merkle树与状态管理机制 【免费下载链接】Waves ⛓️ Reference Waves Blockchain Node (client) implementation on Scala 项目地址: https://gitcode.com/gh_mirrors/wav/Waves Waves区块链作为一个开源的分布式账本系统&#xff…...

从0到1理解热成像技术:DIY-Thermocam带你走进红外世界

从0到1理解热成像技术&#xff1a;DIY-Thermocam带你走进红外世界 【免费下载链接】diy-thermocam A do-it-yourself thermal imager, compatible with the FLIR Lepton 2.5, 3.1R and 3.5 sensor with Arduino firmware 项目地址: https://gitcode.com/gh_mirrors/di/diy-th…...

Go 1.14+与gh_mirrors/gl/gl:checkptr问题解决方案与WithOffset函数使用

Go 1.14与gh_mirrors/gl/gl&#xff1a;checkptr问题解决方案与WithOffset函数使用 【免费下载链接】gl Go bindings for OpenGL (generated via glow) 项目地址: https://gitcode.com/gh_mirrors/gl/gl 在Go 1.14及更高版本中&#xff0c;checkptr检测器的引入为内存安…...