调用数据生成器的工具

调用数据生成器的工具会生成包含示例指令和响应对以及 API 规范的数据集。 API 规范定义了基础模型可用于生成响应的工具。 API 规范包含可用工具列表和主函数接受的参数。

种子数据和参考文件

为知识库创建种子数据文件和参考文件。 这两个文件都必须是 YAML 文件,格式如下。

  • task.yaml 包含种子数据。

    任务 YAML 文件包含用于训练基础模型以生成合成数据集的样本问题和答案对。

    task_description: <Description of this task>
    min_func_count: < Integer. Minimum value 1>
    max_func_count: < Integer. Max value 4>
    created_by: <Your organization name>
    fc_spec_loaders:
      - type: fc
        file_path: <File name of API specification YAML file>
    seed_examples:
      - domain: <Your domain name>
        input: <Sample prompt 1>
        output: '<Sample response 1>'
      - domain: <Your domain name>
        input: <Sample prompt 2>
        output: '<Sample response 2>'
    
    注:task.yaml ` 文件必须只引用在 ` api-spec.yaml ` 文件中声明的 API 和域。
  • api-spec.yaml 作为参考文件。

    API 规范 YAML 文件包含您的领域的 API 规范,其中定义了基础模型用于生成合成数据集的工具。

    <Your domain-name>:
      <function-1-name>:
        description: <function-1-description>
        name: <function-1-name>
        parameters:
            properties:
              <parameter-1-name>:
                  description: <parameter-1-description>
                  type: <parameter-1-type>
              <parameter-2-name>:
                  description: <parameter-2-description>
                  type: <parameter-2-type>
            required:
            - <required parameter 1>
            - <required parameter 2>
      <function-2-name>:
        description: <function-2-description>
        name: <function-2-name>
        parameters:
            properties:
              <parameter-1-name>:
                description: <parameter-1-description>
                type: <parameter-1-type>
              <parameter-2-name>:
                description: <parameter-2-description>
                type: <parameter-2-type>
            required:
            - <required parameter 1>
            - <required parameter 2>
    

种子数据和参考文件样本

要为调用数据生成器的工具下载样本种子数据,请参阅 watsonx -ai-samples。

JSON 文件请求正文示例

下面的请求体包含使用调用数据生成器工具的非结构化合成数据生成任务的配置。 它还有生成令牌的高级设置。 对于 seed_data_reference 参数,请使用任务 YAML 文件名。

{
    "project_id": "<ID of the project to create the job in>",
    "name": "<Name of the job that you want to create>",
    "description": "<Description for the job>",
    "configuration": {
        "pipeline": "tool_calling",
        "num_outputs_to_generate": <A value between 1 to 1000>,
        "overwrite_output_file": false,
        "generator": {
            "model_id": "<LLM. For example ibm/granite-3-8b. For models deployed on demand, this is the deployment_id>",
            "temperature": 0.5,
            "max_new_tokens": 1024,
            "min_new_tokens": 100,
            "decoding_method": "sample",
            "top_p": 0.9,
            "top_k": 50
        },
        "validators": [            
            {
                "type": "rouge_scorer",
                "filter": true,
                "threshold": 0.9
            },
            {
                "type": "lm_judge",
                "lm_config": {
                    "model_id": "<LLM. For example ibm/granite-3-8b."
                }
            }
        ],
        "seed_data_reference": {
            "type": "container",
            "location": {
                "path": "<File name for task YAML file in project assets>"
            }
        },        
        "results_reference": {
            "type": "container",
            "location": {
                "path": "<File name for the generated data output. For example sdg-output-know.jsonl>"
            }
        }
    },
    "job": {
        "schedule": "0 0 1 * *",
        "schedule_info": {
            "repeat": true,
            "startOn": 1547578689512,
            "endOn": 1547578689512
        }
    }
}