Skip to main content

GATO Toolkit: An open-source toolkit for AI alignment

NOTE: This project is unstable, you should consider all functionality experimental and subject to change without warning.

This project is intended to further research in AI alignment and the control problem. In particular, the approach adopted here is inspired by the GATO Framework, a comprehensive methodology for promoting positive intentions in AI systems worldwide.

As this is an ongoing effort, the GATO Toolkit will evolve along with the research. In this current iteration, the focus is on dataset generation and model alignment.

Capabilities

Come up with new scenarios to test

You can generate all kinds of scenarios ranging from inconsequential personal problems to catastrophic global disasters. These scenarios serve as the basis for new investigations.

Determine an appropriate action for any scenario

Once you've got a scenario, you can ask the model how it would attempt to handle the situation.

Compare different actions to see which is most aligned

Given a particular scenario, you can provide a number of different possible actions to see which one the model believes is best aligned with the heuristic imperatives.

Evaluate the suitability of an action based on its consequences

Given a particular scenario, action, and result, you can ask the model to assess the effectiveness of that action and reflect on the repercussions of that action.

Break actions down into manageable tasks

Starting with a broad action plan, you can have the model break things up into a list of tasks that would be needed to execute that plan.

Usage

This project provides a library of functions that may be useful for all sorts of research tasks in AI alignment. This functionality can be used directly in Python applications, but we also support two additional interfaces:

  • GATO Toolkit API

  • GATO Toolkit UI

  • If you want to develop new applications in Python, this library is probably the right choice. Jump straight to the examples!

  • But, if you're using a different programming langauge, the API will be your best bet.

  • Finally, if you just want to leverage the existing functionality, have a look at the UI.

  • Also, both of those resources serve as example usage code, so go take a look! 👀

If you do want to use this library directly, you'll probably want to interact with GatoService class. You'll find the essential operations there, and you can see how the lower-level components work by examining the code in gato/service.py.

For more information on design and architecture, check out our design doc.

Examples

Generate a Scenario

import gato.llm
import gato.service

async def generate_scenario(api_key: str):
    model = gato.llm.LLM(api_key)
    service = gato.service.GatoService(model)
    params = service.create_scenario_parameters()
    prompt = service.create_scenario_prompt(params)
    return await service.create_scenario(prompt)

Generate an Action

import gato.entity
import gato.llm
import gato.service

async def generate_action(api_key: str, scenario: gato.entity.Scenario):
    model = gato.llm.LLM(api_key)
    service = gato.service.GatoService(model)
    prompt = service.create_action_prompt(scenario)
    return await service.create_action(prompt)

Additional Resources

Contributing

Contributions to the GATO Toolkit are welcome! Please read our contributing guidelines and code of conduct before you start.

License

MIT

Metadata

Release files for gato-toolkit 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gato-toolkit 0.3.1
File Size Uploaded
gato-toolkit-0.3.1.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gato-toolkit 0.3.1
File Interpreter ABI Platform
gato_toolkit-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 38.1 kB

Release files / gato-toolkit-0.3.1.tar.gz

Download URL gato-toolkit-0.3.1.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c5f4d84a9f61365dcac8a859c285be150df0f2946fda6e9885cc32ab835d60e0
BLAKE2b-256 checksum
How to use checksums
35b8ee6270bd4dac058933b93e5b84965c04bbc889a23bc13f4517428912e38e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / gato_toolkit-0.3.1-py3-none-any.whl

Download URL gato_toolkit-0.3.1-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08583ab0e63538fc1030bc5e6d87e09472820b79a750ad1820e08eec49c504b0
BLAKE2b-256 checksum
How to use checksums
b66aa8ed865e43f27a209e4a5d8082d44e1b888ba2b926ad3e69a26377ccd2e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page