Skip to main content

WordLlama NLP Utility

Project description

WordLlama 📝🦙

WordLlama is a fast, lightweight NLP toolkit designed for tasks like fuzzy deduplication, similarity computation, ranking, clustering, and semantic text splitting. It operates with minimal inference-time dependencies and is optimized for CPU hardware, making it suitable for deployment in resource-constrained environments.

Word Llama

News and Updates 🔥

  • 2025-02-01 Callable for stdlib functions (sorted/min/max)
  • 2025-01-04 We're excited to announce support for model2vec static embeddings. See also: Model2Vec
  • 2024-10-04 Added semantic splitting inference algorithm. See our technical overview.

Table of Contents

Quick Start

Install WordLlama via pip:

pip install wordllama

Load the default 256-dimensional model:

from wordllama import WordLlama

# Load the default WordLlama model
wl = WordLlama.load()

query = "Machine learning methods"
candidates = [
    "Foundations of neural science",
    "Introduction to neural networks",
    "Cooking delicious pasta at home",
    "Introduction to philosophy: logic",
]

# Returns a Callable[[str], float] function
sim_key = wl.key(query)

# Sort candidates, most similar first
sorted_candidates = sorted(candidates, key=sim_key, reverse=True)

# Most similar candidate
best_candidate = max(candidates, key=sim_key)

# Print the results
print("Ranked Candidates:")
for i, candidate in enumerate(sorted_candidates, 1):
    print(f"{i}. {candidate} (Score: {sim_key(candidate):.4f})")

print(f"\nBest Match: {best_candidate} (Score: {sim_key(best_candidate):.4f})")

# Ranked Candidates:
# 1. Introduction to neural networks (Score: 0.3414)
# 2. Foundations of neural science (Score: 0.2115)
# 3. Introduction to philosophy: logic (Score: 0.1067)
# 4. Cooking delicious pasta at home (Score: 0.0045)
#
# Best Match: Introduction to neural networks (Score: 0.3414)

Features

  • Fast Embeddings: Efficiently generate text embeddings using a simple token lookup with average pooling.
  • Similarity Computation: Calculate cosine similarity between texts.
  • Ranking: Rank documents based on their similarity to a query.
  • Fuzzy Deduplication: Remove duplicate texts based on a similarity threshold.
  • Clustering: Cluster documents into groups using KMeans clustering.
  • Filtering: Filter documents based on their similarity to a query.
  • Top-K Retrieval: Retrieve the top-K most similar documents to a query.
  • Semantic Text Splitting: Split text into semantically coherent chunks.
  • Binary Embeddings: Support for binary embeddings with Hamming similarity for even faster computations.
  • Matryoshka Representations: Truncate embedding dimensions as needed for flexibility.
  • Low Resource Requirements: Optimized for CPU inference with minimal dependencies.

What is WordLlama?

WordLlama is a utility for natural language processing (NLP) that recycles components from large language models (LLMs) to create efficient and compact word representations, similar to GloVe, Word2Vec, or FastText.

Starting by extracting the token embedding codebook from state-of-the-art LLMs (e.g., LLaMA 2, LLaMA 3 70B), WordLlama trains a small context-less model within a general-purpose embedding framework. This approach results in a lightweight model that improves on all MTEB benchmarks over traditional word models like GloVe 300d, while being substantially smaller in size (e.g., 16MB default model at 256 dimensions).

WordLlama's key features include:

  1. Matryoshka Representations: Allows for truncation of the embedding dimension as needed, providing flexibility in model size and performance.
  2. Low Resource Requirements: Utilizes a simple token lookup with average pooling, enabling fast operation on CPUs without the need for GPUs.
  3. Binary Embeddings: Models trained using the straight-through estimator can be packed into small integer arrays for even faster Hamming distance calculations.
  4. Numpy-only Inference: Lightweight inference pipeline relying solely on NumPy, facilitating easy deployment and integration.

Because of its fast and portable size, WordLlama serves as a versatile tool for exploratory analysis and utility applications, such as LLM output evaluators or preparatory tasks in multi-hop or agentic workflows.

MTEB Results

The following table presents the performance of WordLlama models compared to other similar models.

Metric WL64 WL128 WL256 (X) WL512 WL1024 GloVe 300d Komninos all-MiniLM-L6-v2
Clustering 30.27 32.20 33.25 33.40 33.62 27.73 26.57 42.35
Reranking 50.38 51.52 52.03 52.32 52.39 43.29 44.75 58.04
Classification 53.14 56.25 58.21 59.13 59.50 57.29 57.65 63.05
Pair Classification 75.80 77.59 78.22 78.50 78.60 70.92 72.94 82.37
STS 66.24 67.53 67.91 68.22 68.27 61.85 62.46 78.90
CQA DupStack 18.76 22.54 24.12 24.59 24.83 15.47 16.79 41.32
SummEval 30.79 29.99 30.99 29.56 29.39 28.87 30.49 30.81

WL64 to WL1024: WordLlama models with embedding dimensions ranging from 64 to 1024.

Note: The l2_supercat is a LLaMA 2 vocabulary model. To train this model, we concatenated codebooks from several models, including LLaMA 2 70B and phi 3 medium, after removing additional special tokens. Because several models have used the LLaMA 2 tokenizer, their codebooks can be concatenated and trained together. The performance of the resulting model is comparable to training the LLaMA 3 70B codebook, while being 4x smaller (32k vs. 128k vocabulary).

Other Models

How Fast? :zap:

8k documents from the ag_news dataset

  • Single core performance (CPU), i9 12th gen, DDR4 3200
  • NVIDIA A4500 (GPU)

Word Llama

Usage

Embedding Text

Load pre-trained embeddings and embed text:

from wordllama import WordLlama

# Load pre-trained embeddings (truncate dimension to 64)
wl = WordLlama.load(trunc_dim=64)

# Embed text
embeddings = wl.embed(["The quick brown fox jumps over the lazy dog", "And all that jazz"])
print(embeddings.shape)  # Output: (2, 64)

Stdlib Examples

Return a Callable function from .key(query).

query = "Machine learning methods"
candidates = [
    "Foundations of neural science",
    "Introduction to neural networks",
    "Cooking delicious pasta at home",
    "Introduction to philosophy: logic",
]

# Returns a Callable[[str], float] function
sim_key = wl.key(query)

# Sort candidates, most similar first
sorted_candidates = sorted(candidates, key=sim_key, reverse=True)

# Most similar candidate
best_candidate = max(candidates, key=sim_key)

# Print the results
print("Ranked Candidates:")
for i, candidate in enumerate(sorted_candidates, 1):
    print(f"{i}. {candidate} (Score: {sim_key(candidate):.4f})")

print(f"\nBest Match: {best_candidate} (Score: {sim_key(best_candidate):.4f})")

# Ranked Candidates:
# 1. Introduction to neural networks (Score: 0.3414)
# 2. Foundations of neural science (Score: 0.2115)
# 3. Introduction to philosophy: logic (Score: 0.1067)
# 4. Cooking delicious pasta at home (Score: 0.0045)
#
# Best Match: Introduction to neural networks (Score: 0.3414)

Calculating Similarity

Compute the similarity between two texts:

similarity_score = wl.similarity("I went to the car", "I went to the pawn shop")
print(similarity_score)  # Output: e.g., 0.0664

Ranking Documents

Rank documents based on their similarity to a query:

query = "I went to the car"
candidates = ["I went to the park", "I went to the shop", "I went to the truck", "I went to the vehicle"]
ranked_docs = wl.rank(query, candidates, sort=True, batch_size=64)
print(ranked_docs)
# Output:
# [
#   ('I went to the vehicle', 0.7441),
#   ('I went to the truck', 0.2832),
#   ('I went to the shop', 0.1973),
#   ('I went to the park', 0.1510)
# ]

Fuzzy Deduplication

Remove duplicate texts based on a similarity threshold:

deduplicated_docs = wl.deduplicate(candidates, return_indices=False, threshold=0.5)
print(deduplicated_docs)
# Output:
# ['I went to the park',
#  'I went to the shop',
#  'I went to the truck']

Clustering

Cluster documents into groups using KMeans clustering:

labels, inertia = wl.cluster(candidates, k=3, max_iterations=100, tolerance=1e-4, n_init=3)
print(labels, inertia)
# Output:
# [2, 0, 1, 1], 0.4150

Filtering

Filter documents based on their similarity to a query:

filtered_docs = wl.filter(query, candidates, threshold=0.3)
print(filtered_docs)
# Output:
# ['I went to the vehicle']

Top-K Retrieval

Retrieve the top-K most similar documents to a query:

top_docs = wl.topk(query, candidates, k=2)
print(top_docs)
# Output:
# ['I went to the vehicle', 'I went to the truck']

Semantic Text Splitting

Split text into semantic chunks:

long_text = "Your very long text goes here... " * 100
chunks = wl.split(long_text, target_size=1536)

print(list(map(len, chunks)))
# Output: [1055, 1055, 1187]

Note that the target size is also the maximum size. The .split() feature attempts to aggregate sections up to the target_size, but will retain the order of the text as well as sentence and, as much as possible, paragraph structure. It uses wordllama embeddings to locate more natural indexes to split on. As a result, there will be a range of chunk sizes in the output up to the target size.

The recommended target size is from 512 to 2048 characters, with the default size at 1536. Chunks that need to be much larger should probably be batched after splitting, and will often be aggregated from multiple semantic chunks already.

For more information see: technical overview

Loading Model2Vec

wl = WordLlama.list_configs()
# dict of config names

wl = WordLlama.load_m2v("potion_base_8m") # 256-dim model
wl = WordLlama.load_m2v("m2v_multilingual") # multilingual model

Model2Vec is a different way of creating static embeddings using PCA. Notably, they have produced multilingual models, and glove-based models, which score well in word similarity tasks.

Check them out on huggingface! minishlab

Inference Class

from wordllama import WordLlamaInference
from tokenizers import Tokenizer

tokenizer = Tokenizer.from_pretrained(...)
wl = WordLlamaInference(np_embeddings_ar, tokenizer)

The inference class can be used directly with a bring-your-own static embeddings array (n_vocab, dim), rather than using the loader.

Training Notes

Binary embedding models showed more pronounced improvement at higher dimensions, and either 512 or 1024 dimensions are recommended for binary embeddings.

The L2 Supercat model was trained using a batch size of 512 on a single A100 GPU for 12 hours.

Roadmap

  • Additional Example Notebooks:
    • DSPy evaluators
    • Retrieval-Augmented Generation (RAG) pipelines

Development

For local development:

git clone https://github.com/dleemiller/WordLlama.git
cd WordLlama
pip install uv
uv sync --all-extras
uv run python setup.py build_ext --inplace
uv run pytest

See the Makefile for common development commands.

Extracting Token Embeddings

To extract token embeddings from a model, ensure you have agreed to the user agreement and logged in using the Hugging Face CLI (for LLaMA models). You can then use the following snippet:

from wordllama.extract.extract_safetensors import extract_safetensors

# Extract embeddings for the specified configuration
extract_safetensors("llama3_70B", "path/to/saved/model-0001-of-00XX.safetensors")

Hint: Embeddings are usually in the first safetensors file, but not always. Sometimes there is a manifest; sometimes you have to inspect and figure it out.

For training, use the scripts in the GitHub repository. You have to add a configuration file (copy/modify an existing one into the folder).

pip install wordllama[train]
python train.py train --config your_new_config
# (Training process begins)
python train.py save --config your_new_config --checkpoint ... --outdir /path/to/weights/
# (Saves one model per Matryoshka dimension)

Community Projects

Citations

If you use WordLlama in your research or project, please consider citing it as follows:

@software{miller2024wordllama,
  author = {Miller, D. Lee},
  title = {WordLlama: Recycled Token Embeddings from Large Language Models},
  year = {2024},
  url = {https://github.com/dleemiller/wordllama},
  version = {0.3.9}
}

License

This project is licensed under the MIT License.

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

wordllama-0.4.0.post1.tar.gz (18.2 MB view details)

Uploaded Source

Built Distributions

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

wordllama-0.4.0.post1-cp313-cp313-win_amd64.whl (16.1 MB view details)

Uploaded CPython 3.13Windows x86-64

wordllama-0.4.0.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

wordllama-0.4.0.post1-cp313-cp313-macosx_14_0_arm64.whl (17.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

wordllama-0.4.0.post1-cp313-cp313-macosx_13_0_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

wordllama-0.4.0.post1-cp312-cp312-win_amd64.whl (16.1 MB view details)

Uploaded CPython 3.12Windows x86-64

wordllama-0.4.0.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

wordllama-0.4.0.post1-cp312-cp312-macosx_14_0_arm64.whl (17.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

wordllama-0.4.0.post1-cp312-cp312-macosx_13_0_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

wordllama-0.4.0.post1-cp311-cp311-win_amd64.whl (16.1 MB view details)

Uploaded CPython 3.11Windows x86-64

wordllama-0.4.0.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

wordllama-0.4.0.post1-cp311-cp311-macosx_14_0_arm64.whl (17.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

wordllama-0.4.0.post1-cp311-cp311-macosx_13_0_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

wordllama-0.4.0.post1-cp310-cp310-win_amd64.whl (16.1 MB view details)

Uploaded CPython 3.10Windows x86-64

wordllama-0.4.0.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

wordllama-0.4.0.post1-cp310-cp310-macosx_14_0_arm64.whl (17.2 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

wordllama-0.4.0.post1-cp310-cp310-macosx_13_0_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

wordllama-0.4.0.post1-cp39-cp39-win_amd64.whl (16.1 MB view details)

Uploaded CPython 3.9Windows x86-64

wordllama-0.4.0.post1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

wordllama-0.4.0.post1-cp39-cp39-macosx_14_0_arm64.whl (17.2 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

wordllama-0.4.0.post1-cp39-cp39-macosx_13_0_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file wordllama-0.4.0.post1.tar.gz.

File metadata

  • Download URL: wordllama-0.4.0.post1.tar.gz
  • Upload date:
  • Size: 18.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wordllama-0.4.0.post1.tar.gz
Algorithm Hash digest
SHA256 133664bc6fd0c73c8a4350b075419329708ee1f17a21ee4bd3ee47b3b0a83bb5
MD5 27229efa9fd8a2f8b4e76b51c286de39
BLAKE2b-256 3ac20592e33f12045f26a5cc5a5618aef028428dae6d4cc8d3900bbfba7ecc47

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ff050dc1a036785c8b3fbb1128eaf6ae98222437657bed58aea06a14feb416de
MD5 7c0bfd7ba73814836924b19ecf61fac3
BLAKE2b-256 d315b8cb0edfccbd7ef7898d3742e296ada51c9b944ef9bf0d6f41208068a605

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c78466f0600550742b37eb9f8212cac1e548632f41bfc1f6c828b5726332b49e
MD5 d772eafb530eab67969ed50dc077fce3
BLAKE2b-256 bc3d4917a64f871b1c7404ff62653cac905279b6c422986720e98ff58c654342

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1ecb60e15b568d794003bc35e49cd6f09d1bd5f49df8bee38e147cbbfe7bcbf6
MD5 007a316ddf383fb2b9fd55e37b824eb6
BLAKE2b-256 7093a74419b6d59a14d41cfe3455d1110982f7e801d949f73dd7303d71180983

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 aef9952c3f3efe2f3ac097f928309997607813ec7dab3c1916a46c5e2f74f60c
MD5 a26d3370b3c4b6c074c46f6d4dcb9f1e
BLAKE2b-256 546950754bbeea84f22944d85bbda9e463c47c1b5517a07a0b8641a465324df2

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e146b8b56d044eda4a50576c2703c140d91f1b0124c80a7321fda684281e4cda
MD5 1b4e199691403d70434e30acba93ff27
BLAKE2b-256 8b44c7362e3547b20b3c1fa0f5ee12c941f2147b285fdde589a8498931900f80

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2dc004ed04438e4a9ce263ef69b1d7dcc5099da7277e08ddedfd35810428ba31
MD5 5768833752170c3f118764e0f3575e57
BLAKE2b-256 f401b7f3d70ad44c1c7d35914f0db93893882ce0f5e2cb7341215dc89a153cfa

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cffd910fc9af41dfe19339b5a53301ecc2a8fc66355dac21b28d150142201311
MD5 6560692b8321360359be6d11711feb92
BLAKE2b-256 1ab340dfda0d87f1899d8ab6647d0e48ed99fe8d48664015fd75f5316f18f5ec

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ae87b076994c5f5328707ea30e334d7407a6ca4c54718603a4455bb7faf0c52e
MD5 9e378ddc161b3b56f6ce99522dcfa40f
BLAKE2b-256 625c3871c6b8942f0a93085d7baeff2fbe1a09d82cc780f67f4ef15943ef192e

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5df4b76c98f376abd6c1a0bfd4474b816cbdad9d9b7df93d80ca485308456619
MD5 e0c47d375ece7710e01ecf5da808228b
BLAKE2b-256 dfc15a39e0fea62aa9e0d2b7f3792899e38cf015b53b12376edd4ba480d923ab

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 42c2c88907ace0b0681ac6f9092d6a300a6409a5d2d61071a3fb5e7159370c97
MD5 05cdab364d93db939be35c43fa87c5fe
BLAKE2b-256 8e68c449826f8b8ba8cea65f2efc05b049c155e00dd3f17b6454ffbd9ba6652a

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d3a6d341602ca64f0469d7eb6494b859654966024369caa60d60edf2683edd47
MD5 3ebb6bd1e364bbe1b2470b78fe045c90
BLAKE2b-256 da6bf812d189aeebf56ea3776b4fd4a8f31f22786c65f8365f2d80b6c44e7c85

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f1b7624637d51373d9d17ea91ead3e29458b41de261531e5f438a166fbfb72d2
MD5 af5deb22b13aced4a01cb085cfad9fe3
BLAKE2b-256 7f77432e1d3faf134de7e89084bd3c76dba14ce5d3a1fc57db616f37edd93529

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bee33aeb3308a6f54613a5a1eaf429e4e4dab937a28d1b1fbd36e89d2c6f613e
MD5 abeb3893b25847cbe48b01f036023517
BLAKE2b-256 7f8ea8771d9a6aed7c67e04d7b5681e6339c259826e75e7fc1ada49da7160426

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 684abaaedeecfc841658715e119e8b222b9a39eccf74b0f747f50e7976a22280
MD5 9e3ed7aa6f20f032656d7f658b5a5c38
BLAKE2b-256 a8af86ea378173d577770e399c0a2b4e25a13e5bcdcdb521a0985ea93d4b3c5a

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2ba1d9739003cd4c44053af120e4a03608e8fd9e1180e31b3751512ac09d3c3a
MD5 63f70e8a54caf5e2bcc966884d54149c
BLAKE2b-256 a68b3d502568952daa7cbd63bcbcdbfefb2c2f4295afaf482b7c2e3fec694b78

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b0d8ba1f8601c00a3bf74bf80ab626aad047775ced839ce8b0d157a6fe86ec9d
MD5 21458b87026db22c05f644052d3ccc39
BLAKE2b-256 bfe141d0893ed74e880ebb63a497f9007270a5fc28088e5e1ca7b0fc6dd846df

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1a457d8c4f1cc92e52087a9c8ad4636d865221168a4b8655d9585e30a6ab6aa7
MD5 e4a96b843f3948f5f621f74a2951c55c
BLAKE2b-256 64ac8f2bd71e9147d0ca75116b3cc0feafb1fc06714858e1652418bfd97fb476

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 377c6dacc940ee166b0a0da914e1cfef7ce3887621de1c47542d06f7c43e38b0
MD5 a5a418943953ce027420c93d27104382
BLAKE2b-256 54a7a95fa6e25ab22d2bf1f1d1227e05aa05c072c1481cdd089be2a6e25e6e32

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0228c743c0a30402fc39e61d6778fb32120c83ae667e2bbf8682b5505eeb3beb
MD5 a9bca7287a87dd100ac9d16df939a42c
BLAKE2b-256 cba059f52b4a99176ace81bd8ad3aa31c2f0ffe0d0fd604779c1477193f705c7

See more details on using hashes here.

File details

Details for the file wordllama-0.4.0.post1-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for wordllama-0.4.0.post1-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 de0c80887a016dc92c264c0a8b204c5d025210522dab75c5f497cdf47b275ca9
MD5 d82b564adc2c5873ed9280be67e49a61
BLAKE2b-256 31cdcbd49c6df5d60f55938549bd05cb19c5d3f092af7112c734b27f1568f243

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