🤥 LIAH - a Lie-in-haystack
With longer context lengths for LLMs. It is increasingly difficult to test if fine tuned models attend to all depths of the context.
The needle in haystack is a popular approach. However since the LLMs can also answer about the needle instead of the needle. Tests have shown that a "Lie" works well in this context 😊
lie: "Picasso painted the Mona Lisa"
retrieve: "Who painted the Mona Lisa?"
Installation
pip install liah
Example Usage
# update OPENAI_API_KEY in the env with your token.
# If you need Open AI models for the final evaluation
from liah import Liah
from vllm import LLM, SamplingParams
# Create a sampling params object.
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=4096)
llm = LLM(model="meta-llama/Llama-2-70b-hf", tensor_parallel_size=4, max_model_len=1500) # need 4 A100s 40GB
#Create Liah
liah = Liah(max_context_length=2000)
#Get a sample from different depths and context_lengths
for i, sample in enumerate(liah.getSample()):
# test the sample text with your model
output = llm.generate([sample["prompt"]], sampling_params)[0]
#Update liah with the response
liah.update(sample, output.outputs[0].text)
#Contains the plot file from Liah
plotFilePath = liah.evaluate()
Sample plot
Contribute
bash
pip install pre-commit
then (in the repository, just once)
bash
pre-commit install
before commit (optional)
bash
pre-commit run --all-files
Metadata
Release files for liah 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| liah-0.1.6.tar.gz | 251.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| liah-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 504.6 kB
Release files / liah-0.1.6.tar.gz
| Download URL | liah-0.1.6.tar.gz |
|---|---|
| Size | 251.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d337c5c9c050aabca0da1473afede741de5fccc6f4a7ccba81e730205f2ca488
|
|
BLAKE2b-256 checksum How to use checksums |
311518a7d169bb62d8614c554157ba8a180f2bafe9aa05a576b5a88eb76a4f23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.8
|
Release files / liah-0.1.6-py3-none-any.whl
| Download URL | liah-0.1.6-py3-none-any.whl |
|---|---|
| Size | 253.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80b87022b4d4f0ee8f254909dbf9bd17fc9fcf33b66ab41b46572f2e61b49d84
|
|
BLAKE2b-256 checksum How to use checksums |
990162b60bafd08cdd256453c82820a37617481011a820f82aad5479a32ba01a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.8
|