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

LLaMA-Factory 使用 sharegpt 格式的数据集

LLaMA-Factory 使用 sharegpt 格式的数据集

flyfish

sharegpt 格式的数据集遵循的格式

[
  {
    "conversations": [
      {
        "from": "human",
        "value": "user instruction"
      },
      {
        "from": "gpt",
        "value": "model response"
      }
    ],
    "system": "system prompt (optional)",
    "tools": "tool description (optional)"
  }
]

字段作用

conversations: 包含一系列对话对象,每个对象都由发言者(from)和发言内容(value)组成。from可以是"human"(人类)或"gpt"(机器),表示是谁说的这句话。
system: 可选的系统级别提示,类似于alpaca格式中的system字段,用于设置对话的整体背景或规则。
tools: 描述可用的外部工具或功能的信息,这些工具可能被模型用来执行某些任务或获取更多信息。这个字段对于那些需要与外部世界互动的应用特别有用。

在 data/dataset_info.json 文件中提供您的数据集定义,并采用以下格式
对于 sharegpt 格式的数据集,dataset_info.json 文件中的列应该包括:

"dataset_name": {
    "file_name": "dataset_name.json",
    "formatting": "sharegpt",
    "columns": {
      "messages": "conversations",
      "system": "system",
      "tools": "tools"
    },
    "tags": {
      "role_tag": "from",
      "content_tag": "value",
      "user_tag": "user",
      "assistant_tag": "assistant"
    }
  }

示例1: 基本对话

假设我们有一个场景,用户询问当前天气,并且系统通过调用外部API来获取天气信息。

[

  {

    "conversations": [

      {

        "from": "human",

        "value": "今天济南的天气怎么样?"

      },

      {

        "from": "function_call",

        "value": "{\"name\": \"get_weather\", \"arguments\": {\"location\": \"济南\"}}"

      },

      {

        "from": "observation",

        "value": "{\"temperature\": 20, \"condition\": \"晴天\", \"humidity\": 45}"

      },

      {

        "from": "gpt",

        "value": "今天济南的天气是晴天,温度大约20摄氏度,湿度为45%。"

      }

    ],

    "system": "你是一位智能助手,能够帮助用户查询各种信息。",

    "tools": "[{\"name\": \"get_weather\", \"description\": \"获取指定地点的天气信息\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"要查询天气的地点\"}}, \"required\": [\"location\"]}}]"

  }

]

在这个例子中:

human 用户询问济南今天的天气。
function_call 调用了一个名为get_weather的函数,传递了位置参数济南。
observation 返回了从API获取到的天气信息,包括温度、天气状况和湿度。
gpt 根据观察结果生成了对用户的回答。

示例2: 多轮对话

展示一个更复杂的多轮对话,其中包含多个函数调用和更多的交互。

[

  {

    "conversations": [

      {

        "from": "human",

        "value": "我想知道明天济南的天气预报。"

      },

      {

        "from": "function_call",

        "value": "{\"name\": \"get_weather_forecast\", \"arguments\": {\"location\": \"济南\", \"date\": \"明天\"}}"

      },

      {

        "from": "observation",

        "value": "{\"temperature_high\": 25, \"temperature_low\": 18, \"condition\": \"多云\", \"humidity\": 60}"

      },

      {

        "from": "gpt",

        "value": "明天济南的天气预报显示是多云,最高温度约为25摄氏度,最低温度约为18摄氏度,湿度为60%。"

      },

      {

        "from": "human",

        "value": "那后天呢?"

      },

      {

        "from": "function_call",

        "value": "{\"name\": \"get_weather_forecast\", \"arguments\": {\"location\": \"济南\", \"date\": \"后天\"}}"

      },

      {

        "from": "observation",

        "value": "{\"temperature_high\": 23, \"temperature_low\": 17, \"condition\": \"小雨\", \"humidity\": 70}"

      },

      {

        "from": "gpt",

        "value": "后天济南可能会有小雨,最高温度约为23摄氏度,最低温度约为17摄氏度,湿度为70%。记得带伞哦!"

      }

    ],

    "system": "你是一位智能助手,能够帮助用户查询各种信息。",

    "tools": "[{\"name\": \"get_weather_forecast\", \"description\": \"获取指定地点的天气预报\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"要查询天气的地点\"}, \"date\": {\"type\": \"string\", \"description\": \"查询的日期(例如:'明天', '后天')\"}}, \"required\": [\"location\", \"date\"]}}]"

  }

]

在这个多轮对话中:

第一轮对话中,用户询问明天济南的天气预报,系统调用get_weather_forecast函数并返回结果。
第二轮对话中,用户继续询问后天的天气,系统再次调用同一个函数并返回相应结果。

数据集描述

对于上述格式的数据,dataset_info.json文件中的数据集描述可以如下所示:

{

  "天气查询数据集": {

    "file_name": "weather_data.json",

    "formatting": "sharegpt",

    "columns": {

      "messages": "conversations",

      "system": "system",

      "tools": "tools"

    }

  }

}

这个描述指定了数据文件的名称、使用的格式以及字段映射关系。

function_call字段

在sharegpt格式的数据集中,function_call字段用于表示模型调用外部函数或工具的行为。这种机制允许模型与外部服务交互,以获取额外的信息或执行特定任务。这在许多实际应用中非常有用,比如查询天气、检索数据库等。

数据获取:
模型可以通过调用外部API来获取实时数据,如天气预报、股票价格、新闻更新等。
例如,在询问天气时,模型可以调用一个天气API来获取最新的天气信息。

复杂计算:
对于复杂的数学计算或其他需要大量处理的任务,模型可以直接调用专门的计算服务。
例如,计算用户的年龄、财务分析等。

数据库查询:
模型可以调用数据库查询函数来检索存储在数据库中的信息。
例如,从客户数据库中查找用户信息。

扩展功能:
通过调用外部工具,模型可以执行原本无法完成的任务,从而增强其功能和实用性。
例如,发送电子邮件、创建日历事件等。
自定义逻辑:开发者可以编写自定义脚本或插件,并通过function_call机制让模型调用这些脚本来执行特定的任务。
第三方集成:模型可以调用第三方服务的API,如社交媒体平台、云服务提供商等。
文件操作:模型可以调用函数来读取、写入或修改文件内容。
通知和消息发送:模型可以调用函数来发送电子邮件、短信或其他类型的通知。

验证和确认
在某些情况下,模型可能需要验证信息或确认某个操作的结果。
例如,在预订系统中确认订单状态。
身份验证:模型可以调用身份验证函数来验证用户的身份。
权限检查:模型可以调用权限检查函数来确保用户有权限执行某些操作。


http://www.kler.cn/a/322593.html

相关文章:

  • 【C++动态规划】3148. 矩阵中的最大得分|1819
  • 【Fargo】23:采集时间转rtp时间
  • 023、ELK 从入门到实践
  • 跨域 总 结 CORS
  • 使用视频提升应用在 App Store 中的推广效果
  • 微信小程序02-页面制作
  • nacos 快速入门
  • 【如何学习操作系统】——学会学习的艺术
  • 简单上手vue使用vue-plugin-hiprint进行打印
  • 【FastAPI】使用 SQLAlchemy 和 FastAPI 实现 PostgreSQL 中的 JSON 数据 CRUD 操作
  • 【线程】POSIX信号量---基于环形队列的生产消费者模型
  • windows10使用bat脚本安装前后端环境之msyql5.7安装配置并重置用户密码
  • Meta震撼发布Llama3.2大规模模型
  • 记录QTreeView使用(item勾选,事件,过滤)
  • cubemx配置ADC
  • [3]Opengl ES着色器
  • ST188单光束反射式红外光电传感器心率测量原理
  • 混拨动态IP代理的优势是什么
  • 网络编程(10)——json序列化
  • leetcode721. 账户合并
  • 高级算法设计与分析 学习笔记9 跳表
  • 【论文阅读】RISE: 3D Perception Makes Real-World Robot Imitation Simple and Effective
  • 动态规划入门题目->使用最小费用爬楼梯
  • Ceph 基本架构(一)
  • Docker实践与应用
  • QT开发模式(一):界面和业务逻辑分离