Ferramenta que chama o construtor de dados

A ferramenta que chama o data builder gera conjuntos de dados que contêm exemplos de pares de instruções e respostas e uma especificação de API. A especificação da API define ferramentas que um modelo de fundação pode usar para gerar uma resposta. A especificação da API contém a lista de ferramentas disponíveis e os parâmetros que a função principal aceita.

Dados de sementes e documentos de referência

Crie um arquivo de dados inicial e um documento de referência para a base de conhecimento. Ambos devem ser arquivos YAML com os seguintes formatos.

  • task.yaml contendo dados de sementes.

    O arquivo YAML da tarefa contém exemplos de pares de perguntas e respostas que são usados para treinar um modelo de base para gerar conjuntos de dados sintéticos.

    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>'
    
    Observação:O arquivo ` task.yaml ` deve fazer referência apenas às APIs e aos domínios declarados no arquivo ` api-spec.yaml `.
  • api-spec.yaml como um documento de referência.

    O arquivo YAML de especificação de API contém uma especificação de API para seu domínio, que define as ferramentas que o modelo de fundação usa para gerar conjuntos de dados sintéticos.

    <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>
    

Amostra de dados de sementes e documento de referência

Para fazer download de dados de amostra de sementes para a ferramenta que chama o data builder, consulte watsonx -ai-samples.

Exemplo de corpo de solicitação para arquivo JSON

O corpo da solicitação a seguir tem a configuração de um trabalho de geração de dados sintéticos não estruturados que usa a ferramenta chamada data builder. Ele tem configurações avançadas adicionais para gerar tokens. Para o parâmetro seed_data_reference , use o nome do arquivo YAML da tarefa.

{
    "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
        }
    }
}