Builder de Dataset LLM-Treinga
Simplifica a criação do conjunto de dados para treinar um grande modelo de idioma com trigêmeos: entrada de instrução-saída de instrução. A configuração padrão se encaixa nos requisitos github.com/tloen/alpaca-lora.
Este projeto processa ordens de amostra em vários formatos (banco de dados XML, JSON e PostgreSQL) e gera pares de perguntas-respostas com base nas informações dos pedidos?
O código foi projetado para ser modular e facilmente personalizável , permitindo vários métodos de pré -tratamento e geração de instruções.
Características
- Suporta o processamento dos formatos de entrada do banco de dados XML, JSON e PostgreSQL.
- Geração de pré -processamento e instrução personalizável.
- Opção para mesclar arquivos de saída em um único arquivo.
- Parâmetros configuráveis via argumentos
config.py ou linha de comando.
Arquivos e funções
main.py
Este é o principal ponto de entrada para o programa. Ele lida com argumentos da linha de comando, processa os arquivos de entrada ou banco de dados e gera os arquivos de saída.
config.py
Este arquivo contém parâmetros de configuração que são usados ao longo do projeto.
- Param_activate_config : se deve usar os parâmetros config.py ou argumentos da linha de comando (true/false).
- Param_output_dir : o diretório em que o conjunto de treinamento é criado.
- Param_output_merge_file : se deve mesclar arquivos de saída (true/false).
- Param_output_merge_file_name : o nome do arquivo de saída mesclado.
- Param_method : o método de processamento (valores: xmls, xml, jsons, json, banco de dados).
- Param_xml_path, param_xmls_path, param_json_path, param_jsons_path : Arquivo de entrada/caminhos de diretório para arquivos XML e JSON.
- Param_database_host, param_database_user, param_database_dbname, param_database_dbpassword, param_database_port : parâmetros de conexão do banco de dados PostGRESQL.
config_parser.py
Este arquivo contém funções para processar entradas XML, JSON e PostgreSQL do banco de dados e gerar pares de perguntas-respostas com base no conjunto de dados.
- DataSet_Pretreatment (DataSet) : pré -processos do conjunto de dados. Pode ser personalizado.
- Gereate_instructions (conjunto de dados) : gera pares de perguntas-respostas com base no conjunto de dados. Pode ser personalizado.
- process_xml_file (nome do arquivo) : processa um arquivo xml e gera pares de perguntas-respostas.
- process_json_file (nome do arquivo) : processa um arquivo json e gera pares de perguntas-respostas.
- process_database (usuário, senha, host, porta, banco de dados) : busca dados de um banco de dados PostGresql, o processa e gera pares de perguntas e respostas.
sample_orders_parser.py
Este arquivo contém funções personalizadas para pré-tratamento de conjuntos de dados e gerar pares de perguntas-respostas.
- Remover_duplicates (itens_node) : Remove itens duplicados do itens_node com base em sua descrição.
- update_sku_price (item_node, sku_dict, price_dict) : atualiza o SKU e o preço do item_node com base na descrição.
- APLIC_INFLAÇÃO (ORDEM_DATE, preço, quantidade) : aplica a inflação com base no Order_date ao preço e quantidade.
- Calcular_total_price (itens_node) : calcula o preço total de todos os itens no itens_node.
- update_items_with_inflation (itens, order_date) : atualiza os itens com preços e quantidades infladas com base no order_date.
- Gereate_general_instructions (conjunto de dados) : gera instruções gerais com base no conjunto de dados.
- generate_item_instructions (item_node) : gera instruções específicas do item com base no item_node.
- dados
- Gereate_instructions_custom (conjunto de dados) : função personalizada para gerar pares de perguntas-respostas com base no conjunto de dados.
Começando
- Escolha um dos três métodos de processamento a serem implementados:
- process_xml_file (nome do arquivo): processamento de arquivos XML (já implementado no exemplo)
- Process_json_file (nome do arquivo): Processando arquivos JSON (agora implementados)
- process_database (usuário, senha, IP, banco de dados, output_dir): Processando registros de um banco de dados (agora implementado)
- Modifique a função DATASET_PRETREATMENT (DATASET) para pré -processar os dados antes de gerar instruções.
- Modifique a função Generate_instructions (tratada_dataset) para gerar as instruções desejadas.
- Para testar o exemplo fornecido, execute um dos seguintes comandos:
python main.py --xmls=./input/sample-order-xml/
ou
python main.py --xml=./input/sample-order-xml/sample-file.xml
Para arquivos JSON:
python main.py --jsons=./input/sample-order-json/
ou
python main.py --json=./input/sample-order-json/sample-file.json
Para o banco de dados PostgreSQL:
python main.py --user= < db_user > --password= < db_password > --ip= < db_host > --database= < db_name >
Exemplo fornecido
O exemplo exibido neste programa demonstra um caso de uso sofisticado, necessitando de um analisador personalizado adaptado a um contexto de negócios específico. O pré -processamento de dados ocorre dentro da função DataSet_Pretreatment_Custom, enquanto a intrincada série de instruções é gerada pela função generate_instructions_custom. Ao aderir a essas etapas e utilizar as amostras de código fornecidas como referência, você pode modificar este programa para acomodar diversos formatos de entrada e produzir instruções personalizadas adaptadas às suas necessidades exclusivas.
Isenção de responsabilidade para o meu empregador
Isso foi desenvolvido em um fim de semana no meu tempo pessoal.
Autor
Pierre-henri Ausseil LinkedIn: Linkedin.com/in/ausseil/ github: github.com/ph-ausseil/
Sobre o autor
Eu trabalho em integração de dados (middleware, datahub, API ...) e gerenciamento de serviços. Eu não sou um desenvolvedor. Eu queria fazer uma prova de conceito sobre os usos do LLM em uma pilha da empresa para que o LLM soubesse sobre o ambiente de negócios e melhorasse a tomada de decisão de uma empresa.