Skip to main content

Surrogate Concept Retrieval

Python 3.9+ License: MIT

surrogate_concept_retrieval

Implementation for the paper Concept Retrieval - What and How?

Package Status

✅ Added:

  • Project URLs and Documentation links
  • Keywords and classifiers for PyPI
  • Populated __init__.py for proper imports
  • Documentation structure with Sphinx
  • Example code
  • Improved README with usage examples

🔄 In Progress:

  • Comprehensive documentation
  • Test coverage
  • CI/CD setup

Getting Started

# Install the package
pip install -e .

See RECOMMENDATIONS.md for full details on package improvements.

Overview

This package provides tools for extracting concepts from large datasets using surrogate concept retrieval method.

Features

  • Fast embedding indexing using FAISS
  • GPU-accelerated similarity computation
  • Automatic concept extraction from embedding spaces
  • Flexible concept filtering and refinement
  • Support for projection-based concept analysis

Installation

# Install from PyPI
pip install coret

# Install with development dependencies
pip install "coret[dev]"

Quick Start

import numpy as np
from coret import ConceptRetrieval

# Load your embeddings (example uses random data)
embeddings = np.random.randn(1000, 768)
embeddings = embeddings / np.linalg.norm(embeddings, axis=1, keepdims=True)
embeddings = np.ascontiguousarray(embeddings, dtype=np.float32)

# Initialize concept retrieval
concept_retriever = ConceptRetrieval()

# Fit the model with embeddings
concept_retriever.fit(embeddings=embeddings)

# Select a random query embedding for demonstration
query_index = np.random.randint(0, len(embeddings))
query_embedding = embeddings[query_index]

# Retrieve concepts for the query
concepts = concept_retriever.retrieve(
    query=query_embedding,
    number_of_concepts=5,
    number_of_samples_per_concept=5
)

# Print retrieved concepts
top_k_concepts_indices_s = concepts['top_k_concepts_indices_s']

print(f"Query index: {query_index}")
for i, concept_indices in enumerate(top_k_concepts_indices_s):
  print(f"Concept {i+1}:")
  print(f"  Indices: {concept_indices}")
  print()

Requirements

  • Python 3.9+
  • CUDA-compatible GPU (recommended for large datasets)
  • Dependencies:
    • numpy
    • faiss-gpu (or faiss-cpu)
    • scipy
    • scikit-learn
    • tqdm
    • cupy (for GPU acceleration)

Documentation

For detailed API documentation and examples, please visit our documentation site.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for coret 0.1.1

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

Built distribution (wheel)

Table of built distributions (wheels) for coret 0.1.1
File Interpreter ABI Platform
coret-0.1.1-py3-none-any.whl Python 3 none any Details

Release files / coret-0.1.1-py3-none-any.whl

Download URL coret-0.1.1-py3-none-any.whl
Size 41.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
497c356eb1285389a3e5798a8aa42a25a523fd93794fe71613dd816f75737531
BLAKE2b-256 checksum
How to use checksums
9b9a7364d92e6fa18b502d04a65a37da20362072092a4cfaae6fb678228d1df2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

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