LLM-тренинг-датасет-строитель
Оптигирует создание набора данных для обучения большой языковой модели с триплетами: инструкция-вход. Конфигурация по умолчанию соответствует требованиям github.com/tloen/alpaca-lora.
Этот проект обрабатывает пример заказа в различных форматах (XML, JSON и PostgreSQL DATABASE) и генерирует пары вопросов-ответов на основе информации заказов?
Код предназначен для модульной и легко настраиваемой , что позволяет создавать различные методы предварительной обработки и генерацию инструкций.
Функции
- Поддерживает обработку форматов ввода базы данных XML, JSON и PostgreSQL.
- Настраиваемая набор набора данных предварительная обработка и генерация инструкций.
- Опция объединить выходные файлы в один файл.
- Настраиваемые параметры с помощью аргументов
config.py или командной строки.
Файлы и функции
main.py
Это основная точка входа для программы. Он обрабатывает аргументы командной строки, обрабатывает входные файлы или базу данных и генерирует выходные файлы.
config.py
Этот файл содержит параметры конфигурации, которые используются по всему проекту.
- Param_activate_config : использовать ли параметры config.py или аргументы командной строки (true/false).
- PARAM_OUTPUT_DIR : каталог, в котором создан учебный набор.
- Param_output_merge_file : слияние выходных файлов (true/false).
- PARAM_OUTPUT_MERGE_FILE_NAME : Имя объединенного выходного файла.
- Param_method : метод обработки (значения: XMLS, XML, JSONS, JSON, база данных).
- PARAM_XML_PATH, PARAM_XMLS_PATH, PARAM_JSON_PATH, PARAM_JSONS_PATH : входные пути/пути каталогов для файлов XML и JSON.
- PARAM_DATABASE_HOST, PARAM_DATABASE_USER, PARAM_DATABASE_DBNAME, PARAM_DATABASE_DBPASSWORD, PARAM_DATABASE_PORT : POSTGRESQL DATHBASE PARAMETERS.
config_parser.py
Этот файл содержит функции для обработки вводов базы данных XML, JSON и PostgreSQL и генерирует пары вопросов-ответов на основе набора данных.
- DateSet_pretreatment (набор данных) : предварительные обработки набора данных. Может быть настроен.
- Generate_instructions (набор данных) : генерирует пары вопросов-ответов на основе набора данных. Может быть настроен.
- process_xml_file (имя файла) : обрабатывает файл XML и генерирует пары вопросов-ответов.
- process_json_file (имя файла) : обрабатывает файл json и генерирует пары вопросов-ответов.
- Process_database (Пользователь, пароль, хост, порт, база данных) : избирает данные из базы данных PostgreSQL, обрабатывает их и генерирует пары вопросов.
sample_orders_parser.py
Этот файл содержит пользовательские функции для наборов данных предварительной обработки и генерирования паров вопросов-ответов.
- remove_duplicates (items_node) : удаляет дублируемые элементы из emity_node на основе их описания.
- update_sku_price (item_node, sku_dict, price_dict) : обновляет SKU и цену ITEM_NODE на основе описания.
- Apply_inflation (order_date, цена, количество) : применяет инфляцию на основе order_date к цене и количеству.
- Рассчитывать
- update_items_with_inflation (элементы, order_date) : обновляет элементы с завышенными ценами и количествами на основе order_date.
- Generate_General_instructions (набор данных) : генерирует общие инструкции на основе набора данных.
- Generate_item_instructions (item_node) : генерирует специфичные для элемента инструкции на основе item_node.
- DATASET_PRETEATMENT_CUSTOM (DATASET) : пользовательская функция для предварительной обработки набора данных.
- GENERATE_INSTRUCTIONS_CUSTOM (DataSet) : пользовательская функция для генерации пар вопросов-ответов на основе набора данных.
Начиная
- Выберите один из трех методов обработки для реализации:
- process_xml_file (имя файла): обработка файлов XML (уже реализовано в примере)
- process_json_file (имя файла): обработка файлов json (теперь реализовано)
- Process_database (пользователь, пароль, IP, база данных, output_dir): записи обработки из базы данных (теперь реализовано)
- Измените функцию DataSet_Pretreatment (DataSet) , чтобы предварительно обрабатывать данные перед генерацией инструкций.
- Измените функцию Generate_instructions (обработка_датазета) , чтобы создать желаемые инструкции.
- Чтобы проверить приведенный пример, запустите одну из следующих команд:
python main.py --xmls=./input/sample-order-xml/
или
python main.py --xml=./input/sample-order-xml/sample-file.xml
Для файлов JSON:
python main.py --jsons=./input/sample-order-json/
или
python main.py --json=./input/sample-order-json/sample-file.json
Для базы данных PostgreSQL:
python main.py --user= < db_user > --password= < db_password > --ip= < db_host > --database= < db_name >
Пример приведен
Пример, продемонстрированный в этой программе, демонстрирует сложный вариант использования, требующий пользовательского анализатора, адаптированного к конкретному бизнес -контексте. Предварительная обработка данных происходит в функции DataSet_pretreatment_custom, в то время как сложная серия инструкций генерируется функцией Generate_instructions_custom. Придерживаясь этих шагов и используя предоставленные образцы кода в качестве ссылки, вы можете изменить эту программу для размещения различных входных форматов и создания индивидуальных инструкций, адаптированных к вашим уникальным потребностям.
Отказ от ответственности за моего работодателя
Это было разработано в течение одного выходных в мое личное время.
Автор
Pierre-Henri Ausseil LinkedIn: LinkedIn.com/in/ausseil/ github: github.com/ph-ausseil/
Об авторе
Я работаю над интеграцией данных (промежуточное программное обеспечение, Datahub, API ...) и управление услугами. Я не разработчик. Я хотел сделать доказательство концепции использования LLM в стеке компании, чтобы LLM узнал о бизнес-среде и улучшит принятие решений компании.