Spaces:
Paused
Paused
# <img src="./assets/bino-logo.svg" width=40 style="padding-top: 0px"/> Binoculars: Zero-Shot Detection of LLM-Generated Text [[paper]](https://arxiv.org/abs/2401.12070) | |
<p align="center"> | |
<img src="assets/binoculars.jpg" width="300" height="300" alt="ool Binoculars with Falcon on Top"> | |
</p> | |
We introduce Binoculars, a state-of-the-art method for detecting AI-generated text. Binoculars is a | |
zero-shot and domain-agnostic (requires no training data) method. It is based on a simple idea: most | |
decoder-only, causal language models have a huge overlap in pretraining datasets, for e.g. Common Crawl, Pile, etc. | |
More details about the method and results can be found in our paper **Spotting LLMs with Binoculars: Zero-Shot | |
Detection of Machine-Generated Text**. | |
## Getting Started | |
### Installation | |
To run the implementation of Binoculars, you can clone this repository and install the package using pip. This code was | |
developed and tested on Python This code was developed and tested with Python 3.9. To install the package, run the | |
following commands: | |
```bash | |
$ git clone https://github.com/ahans30/Binoculars.git | |
$ cd Binoculars | |
$ pip install -e . | |
``` | |
### Usage | |
Please note, this implementation comes with a fixed global threshold that is used to classify the input as AI-generated | |
or not. This threshold is selected using _Falcon-7B_ and _Falcon-7B-Instruct_ models for scoring. If you want to | |
use different scoring models, you can pass it as an argument to the `Binoculars` class. Please read the paper for more | |
details about the Binoculars work. | |
To detect AI-generated text, please use the following code snippet: | |
```python | |
from binoculars import Binoculars | |
bino = Binoculars() | |
# ChatGPT (GPT-4) output when prompted with “Can you write a few sentences about a capybara that is an astrophysicist?" | |
sample_string = '''Dr. Capy Cosmos, a capybara unlike any other, astounded the scientific community with his | |
groundbreaking research in astrophysics. With his keen sense of observation and unparalleled ability to interpret | |
cosmic data, he uncovered new insights into the mysteries of black holes and the origins of the universe. As he | |
peered through telescopes with his large, round eyes, fellow researchers often remarked that it seemed as if the | |
stars themselves whispered their secrets directly to him. Dr. Cosmos not only became a beacon of inspiration to | |
aspiring scientists but also proved that intellect and innovation can be found in the most unexpected of creatures.''' | |
print(bino.compute_score(sample_string)) # 0.75661373 | |
print(bino.predict(sample_string)) # 'AI-Generated' | |
``` | |
In the above code, user can also pass a `list` of `str` to `compute_score` and `predict` methods to get results for | |
the entire batch of samples. | |
### Demo | |
We have also made a demo available to predict AI-generated text interactively with a simple UI | |
using [gradio](https://github.com/gradio-app/gradio). You can run the demo using the following command: | |
```bash | |
$ python app.py | |
``` | |
## Limitations | |
All AI-generated text detectors aim for accuracy, but none are perfect and can have multiple failure modes (e.g., | |
Binoculars is more proficient in detecting English language text compared to other languages). This implementation is | |
for academic purposes only and should not be considered as a consumer product. We also strongly caution against using | |
Binoculars (or any detector) without human supervision. | |
## Cite our work | |
If you find this work useful, please cite our paper: | |
```bibtex | |
@misc{hans2024spotting, | |
title={Spotting LLMs With Binoculars: Zero-Shot Detection of Machine-Generated Text}, | |
author={Abhimanyu Hans and Avi Schwarzschild and Valeriia Cherepanova and Hamid Kazemi and Aniruddha Saha and Micah Goldblum and Jonas Geiping and Tom Goldstein}, | |
year={2024}, | |
eprint={2401.12070}, | |
archivePrefix={arXiv}, | |
primaryClass={cs.CL} | |
} | |
``` |