Skip to main content

Python package for CATS paper

Project description

This repository contains the official implementation of "CATS: Contextually-Aware Thresholding for Sparsity in Large Language Models" by Je-Yong Lee, Donghyun Lee, Genghan Zhang, Mo Tiwari, and Azalia Mirhoseini, as described in our paper on arXiv.

Overview

Our paper, "CATS: Contextually-Aware Thresholding for Sparsity in Large Language Models," introduces CATS—a new method aimed at reducing the computational demands of deploying LLMs without sacrificing their performance on downstream tasks. This method centers around a novel activation function that enhances activation sparsity effectively and efficiently.

The CATS approach can be applied to various base models such as Mistral-7B and Llama2-7B, demonstrating a minimal performance drop (within 1-2% of the base models) even at 50% activation sparsity levels. Importantly, CATS not only accelerates convergence but also integrates a custom GPU kernel that enhances inference speeds by approximately 15%.

Reproducing Results

To reproduce the experimental results and figures presented in our work, please follow the steps outlined below. The process has been simplified into a single script to ensure ease of use and to maintain consistency across different environments.

Prerequisites

Ensure you have the following prerequisites installed:

  • Bash shell (Unix/Linux/Mac)
  • Required Python packages (listed in requirements.txt)
  • Set an accelerate configuration file based on your environment by running accelerate config

Steps

  1. Open a terminal in the root directory of the project.
  2. Run the following command:
bash reproduction_script.sh [path1] [path2]
  • [path1]: Directory where the checkpoints for fine-tuned models will be stored.
  • [path2]: Directory where the results of the experiments, such as figures and histograms, will be saved.

Work in progress

We are currently developing a framework that will enable CATS to be easily integrated with any model from the HuggingFace library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_cats-0.1.3.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_cats-0.1.3-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file simple_cats-0.1.3.tar.gz.

File metadata

  • Download URL: simple_cats-0.1.3.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for simple_cats-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d46573d0709cbc118d84f603ecda2e39ed321c324a1d08e53b6fdf26d05025dc
MD5 d5f5e0c2a84b32d3312491c2879c297f
BLAKE2b-256 e97187580d6c18b1e85483357e20ca22d1b4d85fe9b1539f114bf442914e7ace

See more details on using hashes here.

File details

Details for the file simple_cats-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: simple_cats-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for simple_cats-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 349b44b758f6869e89d2992a7148c316206cd546df1777ace7c64f5682d54a32
MD5 084c4a0aa69732d05b386664f962c29a
BLAKE2b-256 1ec630fb5759cd596cb17a0c20134387ffa6bf45cb97d0c82e27b0ec2fa9d395

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page