Local models#
AIDB supports two kinds of local models — both run directly on your Postgres host without requiring an external API:
Built-in models — AIDB bundles a default variant of each supported model type and registers them automatically. No configuration is needed to start using them.
Custom local models — If you need a different model variant, a fine-tuned model, or a specific local path, you can register a custom version using
aidb.create_model().
Built-in models#
The following models are available in every AIDB installation without any configuration:
Model name |
Provider |
Use |
|---|---|---|
bert |
bert_local |
Text embeddings |
clip |
clip_local |
Multimodal embeddings (text and image) |
t5 |
t5_local |
Text-to-text generation |
llama |
llama_instruct_local |
Text-to-text generation |
dummy |
dummy |
Testing and development (returns zeros) |
Use them directly by name in any AIDB SQL function or pipeline step configuration:
- - Text embedding with the built-in BERT model
SELECT aidb.encode_text(bert, The quick brown fox);
- - Image embedding with the built-in CLIP model
SELECT aidb.encode_image(clip, pg_read_binary_file(/tmp/photo.jpg)::BYTEA);
- - Text generation with the built-in T5 model
SELECT aidb.decode_text(t5, Translate to French: Hello, world.);
Custom local models#
Use aidb.create_model() to register a custom variant when you need a
different model version, a fine-tuned model, or a specific local path:
SELECT aidb.create_model(
name => my_model,
provider => <provider>,
config => <config_helper>(...)
);
Parameter |
Type |
Description |
|---|---|---|
name |
TEXT |
A unique name for this model. Used to reference it in pipelines and SQL functions. |
provider |
TEXT |
The model provider. Determines which inference engine AIDB uses. |
config |
JSONB |
Provider-specific configuration, built with a config helper function. |
BERT#
Use aidb.bert_config() to specify the HuggingFace model identifier,
an optional revision, and an optional local cache directory:
SELECT aidb.create_model(
my_bert,
bert_local,
config => aidb.bert_config(sentence-transformers/all-MiniLM-L6-v2)
);
Parameter |
Type |
Default |
Description |
|---|---|---|---|
model |
TEXT |
Required |
Model name or path (HuggingFace identifier). |
revision |
TEXT |
NULL |
Model revision or branch. |
cache_dir |
TEXT |
NULL |
Local directory for caching model files. |
CLIP#
Use aidb.clip_config() to configure a CLIP-based multimodal model
for joint text and image embeddings:
SELECT aidb.create_model(
my_clip,
clip_local,
config => aidb.clip_config(openai/clip-vit-base-patch32)
);
Parameter |
Type |
Default |
Description |
|---|---|---|---|
model |
TEXT |
Required |
Model name or path (HuggingFace identifier). |
revision |
TEXT |
NULL |
Model revision or branch. |
cache_dir |
TEXT |
NULL |
Local directory for caching model files. |
T5#
Use aidb.t5_config() to configure a T5 text-to-text model. T5 models
support tasks like translation, summarization, and question answering
depending on the variant:
SELECT aidb.create_model(
my_t5,
t5_local,
config => aidb.t5_config(google/flan-t5-base)
);
Parameter |
Type |
Default |
Description |
|---|---|---|---|
model |
TEXT |
Required |
Model name or path. |
model_path |
TEXT |
NULL |
Explicit local path to model weights (overrides model). |
cache_dir |
TEXT |
NULL |
Local directory for caching model files. |
Llama#
Use aidb.llama_config() to configure a Llama-family language model
for text generation. Llama models support temperature, top-p sampling,
context length, and other generation parameters:
SELECT aidb.create_model(
my_llama,
llama_instruct_local.,
config => aidb.llama_config(
meta-llama/Llama-3.2-3B-Instruct,
temperature => 0.5
)
);
Parameter |
Type |
Default |
Description |
|---|---|---|---|
model |
TEXT |
Required |
Model name or path. |
cache_dir |
TEXT |
NULL |
Local directory for caching model files. |
model_path |
TEXT |
NULL |
Explicit local path to model weights (overrides model). |
temperature |
DOUBLE PRECISION |
NULL |
Sampling temperature. |
top_p |
DOUBLE PRECISION |
NULL |
Nucleus sampling threshold. |
seed |
BIGINT |
NULL |
Random seed for reproducible outputs. |
!!!Note Local model files are downloaded from HuggingFace and cached on
first use. The Postgres process must have network access and write
access to the cache directory. For air-gapped environments, pre-download
the model files and use model_path or cache_dir to point to the
local copy.
Using a registered model#
Once registered, a model is referenced by its name in any AIDB function. Custom and built-in models are interchangeable:
- - Use a custom BERT model for embedding
SELECT aidb.encode_text(my_bert, Hello world);
- - Use a custom BERT model in a pipeline step
SELECT aidb.create_pipeline(
my_pipeline,
...
step_1_operation => Embed,
step_1_options => aidb.knowledge_base_config(my_bert, Text),
...
);
See the Pipelines API reference for full parameter details on all config helper functions.
For a list of HuggingFace model variants that have been tested and verified to work with AIDB’s local providers, see Support matrix .