An Instruction-Following Large Language Model For E-commerce

September 15, 2023 Β· View on GitHub

An Instruction-Following Large Language Model For E-commerce

Pytorcharxiv badge

Repo for EcomGPT: Instruction-tuning Large Language Models with Chain-of-Task Tasks for E-commerce

  • we proposed the first E-commerce instruction dataset EcomInstruct, with a total of 2.5 million instruction data.
  • EcomInstruct scales up the data size and task diversity by constructing atomic tasks with E-commerce basic data types, such as product information, user reviews. Atomic tasks are defined as intermediate tasks implicitly involved in solving a final task, which we also call Chain-of-Task tasks.
  • We developed EcomGPT by training the backbone model BLOOMZ with the EcomInstruct. Benefiting from the fundamental semantic understanding capabilities acquired from the Chain-of-Task tasks, EcomGPT exhibits excellent zero-shot generalization capabilities.

πŸ’‘ Perfomance

We perform a human evaluation on EcomGPT and ChatGPT using 12 E-commerce held-out datasets. EcomGPT outperforms or tied ChatGPT on 12 datasets.

πŸ›  Dependencies

pip install -r requirement.txt

Details

πŸ’» Model

The EcomGPT (7b1) is available at ModelScope.

πŸ“š Dataset (EcomInstruct)

We first open source 12 evaluation datasets. To ensure evaluation efficiency, each evaluation dataset is sampled with only 500 instances.

DatasetLang.TaskMetric
LenoveENNamed Entity RecognizationF1, Rouge
LenoveENEntity Span DetectionRouge
RedditENExtractive QARouge
ABSAENReview Topic ClassificationF1, Rouge
MEPAVEZHAttribute Value RecognizationF1, Rouge
MEPAVEZHAttribute Value DetectionRouge
Multi-CPRZHProduct SelectRouge
Multi-CPRZHProduct AlignF1, Rouge
OpenBGZHTitle Attritube MatchingF1, Rouge
OpenBGZHFine-grain Product ClassifyF1, Rouge
OpenBGZHCoarse-grain Product ClassifyF1, Rouge
OpenBGZHTitle GenerateRouge

The dataset files satisfy the following file hierarchy:

.
β”œβ”€β”€ [Dataset Name]
β”‚   └── tasks
β”‚       └── [task name]
β”‚           β”œβ”€β”€ meta-info.json
β”‚           └── test.json
...
└── Reddit_QA
    └── tasks
        └── EN-Reddit_QA-Extract-Extract_QA
            β”œβ”€β”€ meta-info.json
            └── test.json

πŸ” Evaluation

One can evaluate the performance of EcomGPT with the following command:

python eval.py -tf ./test_tasks.txt -m [model name or path] -sn [result file name] -bdd [base dataset dir]

πŸ”₯ TODO

  • Open Source Weight of EcomGPT βœ…

πŸ“„ Citation

If you found this work useful, consider giving this repository a star and citing our paper as followed:

@article{li2023ecomgpt,
  title={EcomGPT: Instruction-tuning Large Language Models with Chain-of-Task Tasks for E-commerce},
  author={Li, Yangning and Ma, Shirong and Wang, Xiaobin and Huang, Shen and Jiang, Chengyue and Zheng, Hai-Tao and Xie, Pengjun and Huang, Fei and Jiang, Yong},
  journal={arXiv preprint arXiv:2308.06966},
  year={2023}
}