在训练管理中基于function call测试多机多卡微调Llama3-8B-Instruct模型 #74

Open
opened 2024-09-12 18:07:56 +08:00 by 12019701659cs · 0 comments

react和function call

在大模型微调领域,ReAct(Reasoning and Acting)方法和Function Call方法都是提升模型性能的重要技术。

ReAct方法是一种结合了推理和行动的微调技术。它允许模型在生成回答之前,先进行逻辑推理,然后再根据推理结果采取行动。这种方法通过模拟人类的思考过程,使得模型能够更准确地理解和处理复杂的任务。ReAct方法的核心在于它能够将问题分解为一系列的子问题,并逐一解决,从而提高模型的推理能力和答案的准确性。这种方法在处理需要多步骤推理的问题时尤其有效。

Function Call方法则是一种允许模型调用外部函数或API来获取实时数据或执行特定操作的技术。通过这种方法,模型可以扩展其功能,不仅仅局限于其预训练时学到的知识。例如,当用户询问天气情况时,模型可以调用天气API来获取最新的天气数据,并将其整合到回答中。这种方法使得模型能够提供更准确、更及时的信息,并且可以与外部系统进行交互,执行更复杂的任务。

function call

Function Call方法在大模型微调中的应用主要是为了增强模型的推理效果或进行其他外部操作,如信息检索、数据库操作、知识图谱搜索与推理、操作系统、触发外部操作等工具调用场景。这种方法允许模型智能地选择所需工具来回答问题,并通过结构化的输入连接到外部系统,例如通过API进行交互。

在实际应用中,Function Call方法通常涉及以下步骤:

  1. 定义外部函数:开发者需要定义可供模型调用的外部函数,例如查询航班信息或数据库操作的函数。
  2. 描述函数功能:为了向模型描述外部函数库,需要向模型提供可以调用的函数列表,包括函数名称、描述和参数等信息。
  3. 模型解析和生成函数调用:模型接收到用户输入后,会解析并理解输入内容,并生成一个包含函数调用所需参数的结构化输出,通常是一个JSON对象。
  4. 函数调用执行:开发者在代码中解析这个字符串化的JSON对象,并使用这些参数调用相应的函数。
  5. 处理函数结果:函数调用执行完成后,开发者需要将函数的结果返回给模型,模型会接收并处理这些结果,然后生成一个自然语言回复给用户。

例如,如果我们要创建一个具备查询航班功能的聊天机器人,我们可以定义两个外部函数:get_flight_numberget_ticket_price。通过描述这些函数的功能和参数,模型可以根据用户的查询智能地选择并调用相应的函数,并将调用结果以自然语言的形式返回给用户。

Function Call方法为大模型提供了一种与真实世界的实际业务进行联系交互的纽带,使得大模型不仅仅是一个基于概率生成文本的工具,而是能够嵌入确定性的“真逻辑”功能,解决各种具体的问题。这种方法在提高开发效率、降低维护成本、提高软件的适应性和灵活性方面具有重要作用。

单卡测试

image1.png
image2.png

多卡测试

image5.png
image6.png
image7.png

# react和function call > 在大模型微调领域,ReAct(Reasoning and Acting)方法和Function Call方法都是提升模型性能的重要技术。 > > > ReAct方法是一种结合了推理和行动的微调技术。它允许模型在生成回答之前,先进行逻辑推理,然后再根据推理结果采取行动。这种方法通过模拟人类的思考过程,使得模型能够更准确地理解和处理复杂的任务。ReAct方法的核心在于它能够将问题分解为一系列的子问题,并逐一解决,从而提高模型的推理能力和答案的准确性。这种方法在处理需要多步骤推理的问题时尤其有效。 > > Function Call方法则是一种允许模型调用外部函数或API来获取实时数据或执行特定操作的技术。通过这种方法,模型可以扩展其功能,不仅仅局限于其预训练时学到的知识。例如,当用户询问天气情况时,模型可以调用天气API来获取最新的天气数据,并将其整合到回答中。这种方法使得模型能够提供更准确、更及时的信息,并且可以与外部系统进行交互,执行更复杂的任务。 > # function call > Function Call方法在大模型微调中的应用主要是为了增强模型的推理效果或进行其他外部操作,如信息检索、数据库操作、知识图谱搜索与推理、操作系统、触发外部操作等工具调用场景。这种方法允许模型智能地选择所需工具来回答问题,并通过结构化的输入连接到外部系统,例如通过API进行交互。 > > > 在实际应用中,Function Call方法通常涉及以下步骤: > > 1. **定义外部函数**:开发者需要定义可供模型调用的外部函数,例如查询航班信息或数据库操作的函数。 > 2. **描述函数功能**:为了向模型描述外部函数库,需要向模型提供可以调用的函数列表,包括函数名称、描述和参数等信息。 > 3. **模型解析和生成函数调用**:模型接收到用户输入后,会解析并理解输入内容,并生成一个包含函数调用所需参数的结构化输出,通常是一个JSON对象。 > 4. **函数调用执行**:开发者在代码中解析这个字符串化的JSON对象,并使用这些参数调用相应的函数。 > 5. **处理函数结果**:函数调用执行完成后,开发者需要将函数的结果返回给模型,模型会接收并处理这些结果,然后生成一个自然语言回复给用户。 > > 例如,如果我们要创建一个具备查询航班功能的聊天机器人,我们可以定义两个外部函数:`get_flight_number` 和 `get_ticket_price`。通过描述这些函数的功能和参数,模型可以根据用户的查询智能地选择并调用相应的函数,并将调用结果以自然语言的形式返回给用户。 > > Function Call方法为大模型提供了一种与真实世界的实际业务进行联系交互的纽带,使得大模型不仅仅是一个基于概率生成文本的工具,而是能够嵌入确定性的“真逻辑”功能,解决各种具体的问题。这种方法在提高开发效率、降低维护成本、提高软件的适应性和灵活性方面具有重要作用。 > ## 单卡测试 ![image1.png](/attachments/340fcfdc-e2a9-4139-aa5e-63ea3dbf867f) ![image2.png](/attachments/27f6dda6-dd4e-4d48-b6fb-495cf73ae0f1) ## 多卡测试 ![image5.png](/attachments/50caef0f-985f-46cd-8e4e-6eb9b06d22da) ![image6.png](/attachments/15936e87-c82f-4303-940e-3e6e4c627fa3) ![image7.png](/attachments/d7bb63db-5d6c-4cca-b338-0a2a31a0833a)
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#74
No description provided.