Skip to main content

A collection of LogitsProcessors to customize and enhance LLM behavior for specific tasks.

Project description

PyPI version License: MIT

logits-processor-zoo

Struggling to get LLMs to follow your instructions? LogitsProcessorZoo offers a zoo of tools to use LLMs for specific tasks, beyond just grammar enforcement!

Installation

pip install logits-processor-zoo

Supported Frameworks

  • transformers
  • vLLM
  • TensorRT-LLM

Usage

import vllm
from logits_processor_zoo.vllm import GenLengthLogitsProcessor, CiteFromPromptLogitsProcessor, ForceLastPhraseLogitsProcessor

model = vllm.LLM(
            model_name,
            trust_remote_code=True,
            dtype="half",
            enforce_eager=True
        )
tokenizer = model.get_tokenizer()
        
logits_processors = [
    CiteFromPromptLogitsProcessor(tokenizer, boost_factor=2.0),
    GenLengthLogitsProcessor(tokenizer, boost_factor=-0.2, p=1),
    ForceLastPhraseLogitsProcessor("\n\nReferences:\n", tokenizer)
]


gen_output = model.generate(
            prompts,
            vllm.SamplingParams(
                n=1,
                temperature=0,
                seed=0,
                skip_special_tokens=True,
                max_tokens=64,
                logits_processors=logits_processors
            ),
            use_tqdm=False
        )

For the detailed examples in each framework, please have a look at example_notebook directory.

Available Logits Processors

GenLengthLogitsProcessor

A logits processor that adjusts the likelihood of the end-of-sequence (EOS) token based on the length of the generated sequence, encouraging or discouraging shorter answers.

CiteFromPromptLogitsProcessor

A logits processor which boosts or diminishes the likelihood of tokens present in the prompt (and optionally EOS token) to encourage the model to generate tokens similar to those seen in the prompt or vice versa.

ForceLastPhraseLogitsProcessor

A logits processor which forces LLMs to use the given phrase before they finalize their answers. Most common use cases can be providing references, thanking user with context etc.

MultipleChoiceLogitsProcessor

A logits processor to answer multiple choice questions with one of the choices. A multiple choice question is like:

I am getting a lot of calls during the day. What is more important for me to consider when I buy a new phone?
0. Camera
1. Screen resolution
2. Operating System
3. Battery

The goal is to make LLM generate "3" as an answer.

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

logits_processor_zoo-0.1.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

logits_processor_zoo-0.1.1-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file logits_processor_zoo-0.1.1.tar.gz.

File metadata

  • Download URL: logits_processor_zoo-0.1.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.13

File hashes

Hashes for logits_processor_zoo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8be44dc892acc65502b7e835565c53a96deaee5036fd97f1a19c7e6d2466809d
MD5 313254271dfe5ba26ed5863fca3b3c43
BLAKE2b-256 2acf00f31246d261005ee13fab45da49d853962c61586653210c8fd9f87460d7

See more details on using hashes here.

File details

Details for the file logits_processor_zoo-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for logits_processor_zoo-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2a873750bf5f0f259d563e6a67ad1bc1725565971e41221acfb8b63b7821ea24
MD5 6352eca1db7e5c77eff53871a7225c25
BLAKE2b-256 e6734ce1ab1ba4659bb8227a02a2b6ee564185e235796e959b3a0c0be25c8776

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