Costruttore di dati di conoscenza

Il costruttore di dati sulla conoscenza genera coppie di istruzioni e risposte basate su esempi nel ramo della conoscenza nella tassonomia di formazione di un modello di base sintonizzato.

Dati sulle sementi e documenti di riferimento

Creare un file YAML di input che contenga coppie di domande e risposte ( QnA ) di esempio. Le coppie QnA devono essere domande che una persona che sta imparando l'argomento potrebbe porre. Per fungere da base di conoscenza, sono necessari anche file con contenuti. I documenti di riferimento per la base di conoscenza sono elencati nel file YAML. Questi documenti della base di conoscenza fungono da materiale di riferimento da cui vengono estratte le risposte.

Suggerimento: quando si redigono le risposte per le coppie QnA, cercare di utilizzare solo i contenuti disponibili nei documenti di riferimento associati.

Utilizzare la seguente struttura per il file YAML:

domain: <A phrase denoting your use case's domain>
task_description: "<Description of this task>"
seed_examples:
  - answer: <sample answer 1>
    question: <sample question 1>
  - answer: <sample answer 2>
    question: <sample question 2>
include:
  documents:
    <doc-set-1-name>: <name of the reference document(s). Specify either one document or wildcard to refer to multiple documents>
    <doc-set-2-name>: <name of the reference document(s). Specify either one document or wildcard to refer to multiple documents>

Esempi di dati sulle sementi e documenti di riferimento

Per scaricare i dati di partenza per il costruttore di dati sulla conoscenza, vedere watsonx -ai-samples.

Esempio di corpo della richiesta per un file JSON

Il seguente corpo di richiesta contiene la configurazione per un lavoro di generazione di dati sintetici non strutturati che utilizza il costruttore di knowledge data builder. Dispone di impostazioni avanzate aggiuntive per la generazione dei token.

{
    "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": "knowledge",
        "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": "<YAML file name in project assets. For example qna_know_seed.yaml>"
            }
        },
        "knowledge_base_references": [
            {
                "type": "container",
                "location": {
                    "path": "<File name for reference documents. For example origins_*.pdf>"
                }
            },
            {
                "type": "container",
                "location": {
                    "path": "<File name for additional reference documents. For example education-at-ibm.md>"
                }
            }
        ],
        "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
        }
    }
}