
Le contexte sélectif compresse votre invite et votre contexte permet aux LLM (tels que ChatGpt) de traiter 2x plus de contenu. Il est particulièrement utile pour gérer de longs documents et maintenir de longues conversations sans compromettre leurs performances sur diverses tâches!
Ce référentiel contient le code et les données de l'article: compression du contexte pour améliorer l'efficacité de l'inférence des modèles de gros langues.
9 octobre 2023 : Ce travail a été accepté pour les principales procédures de l'EMNLP 2023 ?. Le lien papier ci-dessus est la dernière version de conférence. Si vous recherchez la version ARXIV précédente de l'article: déverrouiller les contraintes de contexte de LLMS.
6 mai 2023 : Essayez notre démo sur l'espace étreint.
Pour commencer, suivez ces étapes:
Installez selective-context via PYPI:
pip install selective-context
python -m spacy download en_core_web_sm
Si vous traitez chinois, exécutez python -m spacy download zh_core_web_sm .
Importer SelectiveContext :
from selective_context import SelectiveContext
Compressez votre invite et votre contexte. Le context contient le contexte compressé:
sc = SelectiveContext(model_type='gpt2', lang='en')
context, reduced_content = sc(text)
Vous pouvez également ajuster le rapport de réduction:
context, reduced_content = sc(text, reduce_ratio = 0.5)
Si vous préférez essayer avec l'interface Web, essayez notre application Streamlit:
streamlit run app/app.py
Ou visitez directement notre espace sur Hugging Face Hub.
selective_context.py : une démo pour effectuer une réduction du contexte à l'aide du contexte sélectif.context_manager.py : le module principal pour gérer le contexte et implémentation de l'algorithme de contexte sélectif.main.py : le script principal pour exécuter des expériences et évaluer l'efficacité du contexte sélectif.qa_manager.py : un module d'assistance pour gérer les tâches de réponse aux questions pendant les expériences. Pour reproduire les expériences du papier:
wget https://github.com/liyucheng09/Selective_Context/releases/download/v0.1.0rc1/datasets_dumps.zip
unzip datasets_dumps.zip
python main.py datasets_dumps/arxiv datasets_dumps/news datasets_dump/conversation <output_path_to_save_results> <num_articles> <HF_model_name_or_path>
L'ensemble de données utilisé dans le papier peut être trouvé sur:
Les ensembles de données sont créés par nous-mêmes, donc si vous avez besoin de citation, utilisez simplement la citation de cet outil.
Si vous avez du mal à accéder à Huggingface Hub, téléchargez les données via:
wget https://github.com/liyucheng09/Selective_Context/releases/download/v0.1.0rc1/data_dumps.zip
Si vous trouvez ce référentiel utile ou utilisez notre méthode dans vos recherches, envisagez de citer notre article:
@misc{li2023compressing,
title={Compressing Context to Enhance Inference Efficiency of Large Language Models},
author={Yucheng Li and Bo Dong and Chenghua Lin and Frank Guerin},
year={2023},
eprint={2310.06201},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
La version précédente:
@misc{li2023unlocking,
title={Unlocking Context Constraints of LLMs: Enhancing Context Efficiency of LLMs with Self-Information-Based Content Filtering},
author={Yucheng Li},
year={2023},
eprint={2304.12102},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Ce projet est autorisé sous la licence du MIT.