LLM- 트레이닝-다타 타즈 빌더
트리플렛으로 대형 언어 모델을 훈련시키기 위해 데이터 세트 생성을 간소화합니다. 기본 구성은 github.com/tloen/alpaca-lora 요구 사항에 맞습니다.
이 프로젝트는 다양한 형식 (XML, JSON 및 PostgreSQL 데이터베이스)으로 샘플 주문을 처리하고 주문 정보에 따라 질문 답변 쌍을 생성합니까?
이 코드는 모듈 식 적이고 쉽게 사용자 정의 할 수 있도록 설계되어 다양한 전처리 방법 및 교육 생성이 가능합니다.
특징
- 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 데이터베이스 연결 매개 변수.
config_parser.py
이 파일에는 XML, JSON 및 PostgreSQL 데이터베이스 입력을 처리하고 데이터 세트를 기반으로 질문 응답 쌍을 생성하는 기능이 포함되어 있습니다.
- DataSet_Pretreatment (DataSet) : 데이터 세트를 사전 처리합니다. 사용자 정의 할 수 있습니다.
- generate_instructions (dataSet) : 데이터 세트를 기반으로 질문 응답 쌍을 생성합니다. 사용자 정의 할 수 있습니다.
- process_xml_file (filename) : XML 파일을 처리하고 질문 응답 쌍을 생성합니다.
- Process_json_File (Filename) : JSON 파일을 처리하고 질문 응답 쌍을 생성합니다.
- Process_Database (사용자, 비밀번호, 호스트, 포트, 데이터베이스) : PostgreSQL 데이터베이스에서 데이터를 가져오고 처리하며 질문 응답 쌍을 생성합니다.
sample_orders_parser.py
이 파일에는 데이터 세트를 전처리하고 질문 응답 쌍을 생성하는 사용자 정의 기능이 포함되어 있습니다.
- remove_duplicates (items_node) : 설명을 기반으로 items_node에서 중복 항목을 제거합니다.
- update_sku_price (item_node, sku_dict, price_dict) : 설명을 기반으로 item_node의 sku와 가격을 업데이트합니다.
- apply_inflation (order_date, 가격, 수량) : 주문 _date를 기준으로 인플레이션을 가격과 수량에 적용합니다.
- calculate_total_price (items_node) : items_node의 모든 항목의 총 가격을 계산합니다.
- Update_items_with_inflation (항목, Order_Date) : Order_Date를 기반으로 가격과 수량으로 항목을 업데이트합니다.
- generate_general_instructions (dataset) : 데이터 세트를 기반으로 일반 지침을 생성합니다.
- generate_item_instructions (item_node) : item_node를 기반으로 항목 별 지침을 생성합니다.
- DataSet_PreTreatment_Custom (DataSet) : 데이터 세트를 전제로하는 사용자 정의 함수.
- generate_instructions_custom (dataSet) : 데이터 세트를 기반으로 질문 응답 쌍을 생성하는 사용자 정의 함수.
시작하기
- 구현할 세 가지 처리 방법 중 하나를 선택하십시오.
- Process_XML_FILE (Filename) : XML 파일 처리 (이미 예제에서 구현 됨)
- Process_json_File (Filename) : JSON 파일 처리 (현재 구현)
- Process_Database (사용자, 암호, IP, 데이터베이스, output_dir) : 데이터베이스에서 레코드를 처리 (현재 구현)
- 지침을 생성하기 전에 데이터를 전처리하기 위해 DataSet_Pretreatment (DataSet) 기능을 수정하십시오.
- generate_instructions (treated_dataset) 함수를 수정하여 원하는 지침을 생성합니다.
- 제공된 예제를 테스트하려면 다음 명령 중 하나를 실행하십시오.
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은 비즈니스 환경에 대해 알고 회사의 의사 결정을 향상시킬 수있었습니다.