博客

  • ChatGLM3:大模型工具调用实现原理揭秘

    ChatGLM3终于迎来了与ChatGPT相似的工具调用能力。通过研究其源码和样本数据,我们可以了解到让大型语言模型学会使用工具的方法原理。本文将深入探讨ChatGLM3的工具调用实现原理,带您揭开这个令人兴奋的功能背后的奥秘。


    ChatGLM3是一种大型语言模型,具备了与ChatGPT相似的工具调用功能。通过这一功能,模型可以调用特定的工具来执行特定的任务。在本文中,我们将深入研究ChatGLM3的工具调用实现原理,揭示其背后的工作原理。

    首先,让我们来看一个官方例子,以帮助我们理解工具调用的过程。在这个例子中,我们准备了两个工具调用的描述信息:追踪指定股票的实时价格和将文本转换为语音。这些工具都具有特定的参数要求,比如需要提供股票代码或要转换的文本等。

    在进行工具调用之前,我们需要构建一个系统提示(System Prompt),告诉模型我们可以使用哪些工具。然后,我们将用户的查询传递给模型,模型将根据上下文和系统提示中提供的工具信息,确定需要调用的工具和相应的参数。模型的输出将告诉我们应该使用哪个工具以及传递给工具的参数。

    在实际的工具调用中,我们需要实现调用工具的逻辑。例如,在追踪股票价格的例子中,我们可以定义一个名为”track”的工具,并提供股票代码作为参数。模型将根据返回的结果生成回复。对于复杂的问题,模型可能需要进行多次工具调用。

    在ChatGLM3中,工具调用的原理是通过特殊处理模型输出来实现的。输出结果中的字典对象表示模型需要调用特定的工具,并传递相应的参数。这样的结果是由一个特殊的处理过程生成的,确保模型可以理解和使用。

    在工具调用的样本数据中,我们可以看到模型预测的输出中包含了工具调用的相关信息,如函数名称和代码。这些信息被解析和处理,最终生成用于调用工具的参数。这种设计的目的是将模型的预测结果转化为可执行的工具调用。

    在ChatGLM3中,工具调用只支持通过chat方法进行,不支持stream_chat方法。这是因为在stream_chat方法中,无法对模型输出进行相应的处理和转换。

    通过深入研究ChatGLM3的源码和样本数据,我们揭示了其工具调用的实现原理。我们了解到,工具调用是通过特殊处理模型输出和相关信息来实现的。这种功能为模型的应用提供了更大的灵活性和扩展性,使模型可以执行更多的任务。


    ChatGLM3的工具调用功能为大型语言模型带来了更多的实用性和功能扩展性。通过深入了解其实现原理,我们更好地理解了模型如何使用工具,并可以在实践中灵活应用。期待着ChatGLM3在未来的发展中带来更多令人惊喜的功能和应用!


  • MMDeploy:让模型部署更加轻松的一站式解决方案

    在深度学习领域,模型的部署一直是一个具有挑战性的任务。为了解决这个问题,OpenMMLab推出了MMDeploy,一个强大而灵活的工具,帮助用户轻松地将他们的模型部署到不同的平台和推理引擎上。本文将带您深入了解MMDeploy的功能和最新进展,让您在模型部署的道路上游刃有余!
    时间如白驹过隙,转眼间MMDeploy已经陪伴大家走过一个季度了。在过去的几个月里,MMDeploy不仅积极进行了功能扩展,还提供了详细的模型部署教程。让我们来看看最新的进展吧!

    1. 设备支持:MMDeploy现在集成了NVIDIA Jetson系列,为用户提供了更多的选择。如果您对此感兴趣,可以查看安装说明手册。
    2. 平台支持:MMDeploy现在也支持Windows平台。这项工作的完成超出了预期,经历了各种挑战和困难。在此,我们要特别感谢社区同学对文档的审阅工作。另外,MMDeploy还支持了Android平台,并开发了相应的演示Demo。您可以通过链接观看这个Demo的视频。
    3. FFI封装:MMDeploy现在提供了Python接口,让Python爱好者能够轻松地进行模型推理。只需几行代码,即可完成模型的推理过程。在下面的章节中,我们将提供具体的例子供您参考。目前,MMPose和MMDetection3D也得到了算法库的支持,用户可以体验相关功能。
    4. 新的IR支持:MMDeploy现在支持TorchScript,这是PyTorch的一种中间表示格式。如果您对TorchScript还不太了解,可以通过链接了解更多信息。关于如何使用TorchScript和ONNX,我们将在后续的教程中进行介绍。教程和技术文档的更新将在我们的微信公众号和知乎账号上发布,欢迎大家关注。

    使用MMDeploy的方法非常灵活。您可以将其作为一个整体来完成端到端的模型部署,也可以只使用其中的部分功能模块,根据自己的项目需求灵活选择。例如:

    • 使用Model Converter进行模型转换和推理。这适用于快速搭建模型部署的演示和验证工作。只需提供相应的配置、算法和模型文件,通过一条命令将PyTorch模型转换为所需的推理引擎格式。目前,MMDeploy支持6种推理引擎:TensorRT、ONNXRuntime、PPL.NN、ncnn、OpenVINO和libtorch。
    • 将MMDeploy算子库集成到自己的项目中。如果您已经集成了TensorRT推理引擎,只需加载MMDeploy算子库,即可无缝读取MMDeploy转换的TensorRT模型。同样,这种方式也适用于ONNXRuntime推理引擎。
    • 导出SDK Model,将MMDeploy集成到自己的项目中。这适用于对延迟或吞吐量要求较高的场景。以检测任务为例,您可以选择集成C/C++接口或Python接口。其他任务,如分类、分割、文字检测等,也可以采用相似的方式集成。具体的集成方法和代码示例可以参考本文后续部分。

    除了上述典型的应用场景,您还可以基于MMDeploy开发新的模块或组件。比如,您可以开发新的模型导出方法、推理引擎组件、算法的后处理模块,或者支持其他文件格式的读取模块等。通过付诸行动,您可以开源自己的项目,展示自己的才华和创造力。

    未来规划方面,MMDeploy团队计划在第二季度继续推出新的功能和更新。具体的计划可以参考下图。最后,我们诚挚地邀请大家多多关注MMDeploy,并加入我们的社群,一起享受愉快的学习和探索过程。我们期待您的关注、点赞和参与!

    结语:
    MMDeploy是一个强大而灵活的工具,旨在简化深度学习模型的部署过程。通过MMDeploy,您可以选择最适合自己项目需求的部署方式,并轻松地将模型部署到各种平台和推理引擎上。无论您是初学者还是经验丰富的研究者,MMDeploy都能为您带来便利和效率。让我们一起探索MMDeploy的世界,让深度学习变得更简单!

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 1 | UV: 1
Last updated: 2025-05-13 02:43:37
沪ICP备2024052574号-1