Skip to main content

Generate per-session LoRA adapters for inference tasks

Project description

Tessera Hypernetwork

Generate per-session LoRA adapters for inference tasks. This is the Python hypernetwork service component of Tessera, which works alongside the Rust core to provide LoRA adapter generation via hypernetwork synthesis.

Features

  • Doc-to-LoRA with SHINE: Generate adapters from document content using SHINE (ICML 2026) for long-context internalization
  • Text-to-LoRA: Generate adapters from natural language descriptions
  • Metadata-to-LoRA: Generate adapters from structured user metadata
  • LoRAX-style Adapter Management: Import, list, and unload adapters via CLI and API
  • OpenAI-compatible Completions: /v1/completions endpoint for lm_eval integration
  • OpenAI-compatible API: Easy integration with existing tooling
  • FastAPI: Modern async Python web framework

Installation

pip install tessera-hypernetwork

Usage

LoRAX Adapter Management

The hypernetwork service provides LoRAX-style adapter management for loading and serving LoRA adapters:

# Import an adapter into the service
tessera lorax import --path ./adapter.safetensors --name my-adapter --base-model meta-llama/Llama-3-8B --server-url http://localhost:8000

# List loaded adapters
tessera lorax list --server-url http://localhost:8000

# Unload an adapter
tessera lorax unload --name my-adapter --server-url http://localhost:8000

API Endpoints:

  • POST /v1/adapters - Import adapter safetensors
  • GET /v1/adapters - List loaded adapters
  • DELETE /v1/adapters/{name} - Unload adapter

OpenAI-Compatible Completions

The /v1/completions endpoint provides OpenAI-compatible completions for lm_eval integration:

curl -X POST http://localhost:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "my-adapter",
    "prompt": "Hello, world!",
    "max_tokens": 10
  }'

The endpoint looks up the adapter by name from the loaded adapters registry and forwards the request to vLLM.

CLI Commands

The tessera CLI provides commands for generating LoRA adapters and running the hypernetwork server:

# Generate LoRA adapter from metadata
tessera generate --from-metadata '{"task": "classification", "domain": "medical"}' \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Generate LoRA adapter from text description
tessera generate --from-text "Senior litigation associate specializing in IP law" \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Generate LoRA adapter from document
tessera generate --from-doc ./document.txt \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Start the hypernetwork server
tessera serve --port 8080 --host 0.0.0.0

# Start server with Qdrant vector database
tessera serve --port 8080 --qdrant-url http://localhost:6333

# Check server health
tessera health --url http://localhost:8000

# List available base models
tessera list

Server Mode

You can also run the server directly:

python -m tessera_hypernetwork.server

API

The hypernetwork service provides a FastAPI server with the following endpoints:

  • POST /v1/generate - Generate a LoRA adapter for a given prompt
  • GET /health - Health check endpoint

Development

Install development dependencies:

pip install tessera-hypernetwork[dev]

Run tests:

pytest

Integration with Tessera

This hypernetwork service is designed to work with the Tessera Rust core. The Rust core handles semantic caching, vector similarity search, and adapter composition, while this Python service handles the actual LoRA adapter generation via hypernetwork synthesis.

Full Tessera CLI Lifecycle

The Tessera hypernetwork service provides a comprehensive CLI for LoRA adapter generation and serving:

# Generate LoRA adapter from metadata (JSON string or file)
tessera generate --from-metadata '{"task": "classification", "domain": "medical"}' \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Generate LoRA adapter from natural language description
tessera generate --from-text "Senior litigation associate specializing in IP law" \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Generate LoRA adapter from document content
tessera generate --from-doc ./document.txt \
  --base-model meta-llama/Llama-3-8B \
  --rank 16 \
  --save ./adapter.safetensors

# Start the hypernetwork server
tessera serve --port 8080 --host 0.0.0.0

# Start server with Qdrant vector database integration
tessera serve --port 8080 --qdrant-url http://localhost:6333

# Check server health status
tessera health --url http://localhost:8000

# List available base models and their dimensions
tessera list

# LoRAX adapter management
tessera lorax import --path ./adapter.safetensors --name my-adapter --base-model meta-llama/Llama-3-8B --server-url http://localhost:8000
tessera lorax list --server-url http://localhost:8000
tessera lorax unload --name my-adapter --server-url http://localhost:8000

For the complete Tessera system, see: https://github.com/theoddden/Tessera

License

Apache-2.0

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

tessera_hypernetwork-0.2.12.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

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

tessera_hypernetwork-0.2.12-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file tessera_hypernetwork-0.2.12.tar.gz.

File metadata

  • Download URL: tessera_hypernetwork-0.2.12.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tessera_hypernetwork-0.2.12.tar.gz
Algorithm Hash digest
SHA256 9807509044fde4d8f1922074329053c62ea13600f057d00b3d51a4b4c7ae78d7
MD5 840196b627874ef81db3d3c10a431397
BLAKE2b-256 596a9ff152e22c24d85493d68ff5184c957523de12796e1890cd07fc486bab5c

See more details on using hashes here.

File details

Details for the file tessera_hypernetwork-0.2.12-py3-none-any.whl.

File metadata

File hashes

Hashes for tessera_hypernetwork-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 1c8050321552af9a812d83c446f3b3f91f67c04b730cf42c32f6bd747fb5147a
MD5 975189dc69089e3ae7c99e79fd71a9cc
BLAKE2b-256 ed530cea1cc3b36a42cf2dafc4bc4ff5b8a53ef9877b91df24260ccc1c6b1dc7

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