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

embedded/2024/9/23 3:37:21/

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

flyfish

sharegpt__5">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.ppmy.cn/embedded/114389.html

相关文章

Unity射击游戏开发教程:(35)轰炸敌人

现在敌人和飞机已经慢慢地越来越有各自地地行为了,在本文中,我们将介绍如何创建一个具有以下行为的敌人: 飞机会来回弹跳。飞机将有 4 架无人机轰炸机围绕飞机旋转。无人机轰炸机会偶尔投下沿着屏幕传播的炸弹。如果炸弹击中玩家或在随机时间后就会爆炸。如果炸弹没有击中玩…

超重磅!青否交互式数字人2.0正式发布,支持流式输入!

青否交互式数字人自今年1月10日发布后,好评不断!是行业内第一家支持交互式数字人源码独立部署的。 今天,交互式数字人2.0版本重磅发布! 0.5秒反应速度 数字人克隆和声音克隆算法深度优化,支持流式输入,交互…

游戏客服精华回复快捷语大全

以黑神话悟空为代表的国内的游戏行业,最近发展非常迅猛,大量游戏玩家需要足够的游戏客服支持,这里整理了游戏客服精华回复快捷语,涵盖了接待客户,游戏级数,游戏外挂,游戏要求,游戏特…

Resilience4j定制化熔断器

熔断的核心是熔断器CircuitBreaker,想要使用熔断服务,需要先获取熔断器的实例。resilience4j提供了两种方式来获取熔断器:通过注册工具获取,以及通过熔断器的静态方法直接获取。这里推荐使用注册工具获取,优点有两个,一方面可以避免重复定制熔断器配置;另一方面便于熔断…

北疆自驾旅行规划

一、前往新疆 Z292次列车卧铺,武汉到乌鲁木齐,全程约36小时,票价上铺576元,下铺617,可在12306网站购买。 上车时间是:19:11,下车时间是:07:11。因此可以选择周三(八月二…

芹菜麦饭的做法

蒸煮时间: 芹菜麦饭的蒸煮时间因做法和食材的不同而有所差异,但一般在‌8到15分钟‌之间。具体蒸煮时间取决于芹菜的大小、切段的长度以及蒸锅的火力等因素。例如,将裹好面粉的芹菜段放入蒸锅,大火烧开后转中火蒸10~15分钟&#x…

【百日算法计划】:每日一题,见证成长(014)

题目 奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起 示例: 输入: 2->1->3->5->6->4->7->NULL 输出: 2->3->6->7->1->5->4->NULL 思路 构建两个结果链表,分别存储奇偶节点 使用一个辅助变…

微信小程序中事件触发机制及防抖节流

文章目录 前言一、微信小程序中的事件触发机制1.1 微信小程序的事件模型1.2 常见的事件类型1.3 自定义事件的使用 二、防抖与节流详解2.1 防抖(Debounce)2.2 节流(Throttle)2.3 防抖与节流的区别 三、如何封装带防抖节流的自定义组…