brunopires01/aimedlab-pulse-hf — Thin Endpoint Repo
This repository contains ONLY the runtime glue (handler.py + vendored llava/ source +
requirements.txt) needed to serve PULSE-7B on a Hugging Face Inference Endpoint.
The model weights (14 GB safetensors) live in the upstream public repo
ubden/aimedlab-pulse-hf and are
downloaded automatically at cold-start via HF_MODEL_ID=ubden/aimedlab-pulse-hf.
Why a thin repo?
The stock HF Inference container (pytorch-gpu) ships with transformers ≥ 4.40, which is
incompatible with the legacy llava package's pinned transformers==4.37.2. Vendoring the
~9 source files of LLaVA v1.2.0 directly under llava/ and pointing sys.path at the repo
root avoids any pip install at runtime — the endpoint boots cleanly.
Layout
handler.py # HF EndpointHandler — multimodal (image + text) -> text
requirements.txt # only what the HF container does not already provide
llava/ # vendored from github.com/haotian-liu/LLaVA @ v1.2.0
__init__.py
constants.py
conversation.py
mm_utils.py
utils.py
model/
__init__.py
builder.py
llava_arch.py
utils.py
language_model/
__init__.py
llava_llama.py
multimodal_encoder/
__init__.py
builder.py
clip_encoder.py
multimodal_projector/
__init__.py
builder.py
Endpoint configuration
| Env var | Default | Purpose |
|---|---|---|
HF_MODEL_ID |
ubden/aimedlab-pulse-hf |
Hub repo to pull weights from |
HF_MODEL_DIR |
/repository |
Local mount of THIS repo |
HF_MODEL_BASE |
(none) | Optional base model for delta |
CONV_MODE |
(auto) | Force a LLaVA conversation mode |
Request payload
{
"inputs": {
"image": "https://.../ecg.jpg | data:image/jpeg;base64,... | <plain base64>",
"query": "Describe the ECG.",
"temperature": 0.0,
"top_p": 0.9,
"max_new_tokens": 512
}
}
Response: {"generated_text": "...", "model": "...", "conv_mode": "llava_v1"}
Credits
- Model: PULSE-ECG/PULSE-7B — AIMedLab/PULSE
- Upstream deployment repo: ubden/aimedlab-pulse-hf — Ubden® Team
- LLaVA: haotian-liu/LLaVA v1.2.0 (Apache-2.0)
Model tree for brunopires01/aimedlab-pulse-hf
Base model
PULSE-ECG/PULSE-7B