Spaces:
Build error
Build error
| title: LLM Transparency Tool | |
| emoji: π¬π¬π¬ | |
| colorFrom: red | |
| colorTo: yellow | |
| sdk: docker | |
| app_file: app.py | |
| pinned: false | |
| <h1> | |
| <img width="500" alt="LLM Transparency Tool" src="https://github.com/facebookresearch/llm-transparency-tool/assets/1367529/4bbf2544-88de-4576-9622-6047a056c5c8"> | |
| </h1> | |
| <img width="832" alt="screenshot" src="https://github.com/facebookresearch/llm-transparency-tool/assets/1367529/78f6f9e2-fe76-4ded-bb78-a57f64f4ac3a"> | |
| ## Key functionality | |
| * Choose your model, choose or add your prompt, run the inference. | |
| * Browse contribution graph. | |
| * Select the token to build the graph from. | |
| * Tune the contribution threshold. | |
| * Select representation of any token after any block. | |
| * For the representation, see its projection to the output vocabulary, see which tokens | |
| were promoted/suppressed but the previous block. | |
| * The following things are clickable: | |
| * Edges. That shows more info about the contributing attention head. | |
| * Heads when an edge is selected. You can see what this head is promoting/suppressing. | |
| * FFN blocks (little squares on the graph). | |
| * Neurons when an FFN block is selected. | |
| ## Installation | |
| ### Dockerized running | |
| ```bash | |
| # From the repository root directory | |
| docker build -t llm_transparency_tool . | |
| docker run --rm -p 7860:7860 llm_transparency_tool | |
| ``` | |
| ### Local Installation | |
| ```bash | |
| # download | |
| git clone [email protected]:facebookresearch/llm-transparency-tool.git | |
| cd llm-transparency-tool | |
| # install the necessary packages | |
| conda env create --name llmtt -f env.yaml | |
| # install the `llm_transparency_tool` package | |
| pip install -e . | |
| # now, we need to build the frontend | |
| # don't worry, even `yarn` comes preinstalled by `env.yaml` | |
| cd llm_transparency_tool/components/frontend | |
| yarn install | |
| yarn build | |
| ``` | |
| ### Launch | |
| ```bash | |
| streamlit run llm_transparency_tool/server/app.py -- config/local.json | |
| ``` | |
| ## Adding support for your LLM | |
| Initially, the tool allows you to select from just a handful of models. Here are the | |
| options you can try for using your model in the tool, from least to most | |
| effort. | |
| ### The model is already supported by TransformerLens | |
| Full list of models is [here](https://github.com/neelnanda-io/TransformerLens/blob/0825c5eb4196e7ad72d28bcf4e615306b3897490/transformer_lens/loading_from_pretrained.py#L18). | |
| In this case, the model can be added to the configuration json file. | |
| ### Tuned version of a model supported by TransformerLens | |
| Add the official name of the model to the config along with the location to read the | |
| weights from. | |
| ### The model is not supported by TransformerLens | |
| In this case the UI wouldn't know how to create proper hooks for the model. You'd need | |
| to implement your version of [TransparentLlm](./llm_transparency_tool/models/transparent_llm.py#L28) class and alter the | |
| Streamlit app to use your implementation. | |
| ## License | |
| This code is made available under a [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) license, as found in the LICENSE file. | |
| However you may have other legal obligations that govern your use of other content, such as the terms of service for third-party models. | |