Install the Private AI Services Container

Use the included steps to configure and install the container with best practices. You can either use setup bash scripts provided with the container image, or set up the container manually.

The Oracle Private AI Services Container is AI infrastructure designed to run on-premises, and optionally in air-gapped environments. With the vector embedding service, the container can create low latency, free vector embeddings in a secure manner within the privacy of your own realm. Using the vector index service, the container securely offloads the computational costs of vector index creation to an NVIDIA GPU. The Large Language Model (LLM) service enables Chat, RAG, and agentic workloads with local LLMs.

The container uses TLS 1.3 and API Keys for security. A PKCS12 keystore is used by default, but JKS is also supported. The container can also work with Security Enhanced Linux (SELinux) in enforcing mode.

The included scripts, provided for HTTP and HTTP/SSL, offer examples of how to use curl to create vector embeddings, list the loaded embedding models, check on the health of the container, and produce runtime metrics. For instructions on how to set up the container without using the setup scripts, see Oracle Container Registry.

Prerequisites

The Oracle Private AI Services Container uses Oracle Linux 8 within the container and works with the following host Linux x86_64 distributions:

The AI Services Container uses TLS 1.3. This means that you need a version of OpenSSL that supports TLS 1.3 to create certificates, for example:

The AI Services Container can be used with the following software:

The chosen software must be one of the following versions:

The included examples use Podman with Oracle Linux 8 as the host operating system on OCI. The example OCI VM where the container is installed is called privateaivm.

There are also some system requirements to be aware of when using the Private AI Services Container:

Note that the container should not run on the same machine as the Oracle AI Database Server but on a Linux machine that is close to the database server. The container is designed to accelerate resource intensive tasks such as creating vectors or vector index offload of machines other than the Oracle AI Database. This enables the Oracle AI Database to have low latency and high throughput without being burdened with these resource-intensive AI infrastructure tasks.

The Vector Index Service and the Private Large Language Model Service of the Private AI Services Container have the following additional prerequisites:

Use nvidia-smi to ensure your GPU resources meet the listed prerequisites and nvidia-ctk to verify that the CDI is working correctly. For example, the latter can be confirmed using the following command:

nvidia-ctk --debug cdi list
  1. Install the container.

    • If you are using Oracle Linux 8:

      sudo dnf module install -y container-tools:ol8
    • If you are using Oracle Linux 9 or 10:

      sudo dnf install -y container-tools
  2. Verify that Podman is installed correctly.

    podman version
    podman images
  3. Sign in to Oracle Container Registry (OCR).

    Go to Oracle Container Registry and select Sign In.

    You will be asked to enter your SSO user name and password. If you are not yet registered with container-registry.oracle.com, you will be prompted to do so. Registering simply saves your SSO user name with container-registry.oracle.com as an SSO-allowed user.

    After completing the one-time registration, selecting Sign In on future visits will prompt you to enter your SSO user name and password only.

  4. Accept the License Agreement.

    You must select Continue to read and accept the license agreement. This action only needs to be completed once.

  5. Generate an auth token to pull the container image.

    To use Podman to download the Private AI Services container image, you will need to use the Podman login with your SSO user name and a generated auth token. To generate an auth token, follow the steps at Generating an Oracle Container Registry Authentication Token in Podman User’s Guide.

    Note: Be sure to copy the generated auth token to a secure location before navigating from the generation page. The token will not be shown again and you will have to delete any existing token before creating another.

  6. Pull the container image.

    Download (pull) the Private AI Services Container image to the host where you intend to run it.

    1. Run the following command to log in to OCR.

      podman login container-registry.oracle.com

      When prompted for a user name, enter your SSO user name. Enter the generated auth token from the previous step when prompted for a password.

    2. Once you have successfully logged in, pull the image of your choice, depending on your use case and hardware.

      Use the following command, replacing <container-name> with one of the listed images and <version> with the preferred image version:

      podman pull container-registry.oracle.com/database/private-ai:<container-name>-<version>
      • Vector index offloading on GPU:

        The versions for gpu-index are 26.1.x and latest. For a list of currently available versions, refer to OCR.

        gpu-index
      • Inference using CPU or GPU:

        The versions for the inference containers are 26.2.x and latest. For a list of currently available versions, refer to OCR.

        • Small (~5GB) inference container on CPU.

          To be used with the ONNX runtime for text and image embeddings, reranking, and text classification. Five onnx embedding models are included.

          small-cpu-infer
        • Medium (~11GB) inference container on CPU.

          To be used with the ONNX runtime, vLLM, or llama.cpp for embeddings, text generation, reranking, and text classification. Five onnx embedding models are included.

          Note: The image that includes “avx512” is intended for use with CPU architectures that support avx512.

          medium-cpu-infer
          medium-cpu-avx512-infer
        • Large (~22GB) inference container on CPU.

          To be used with ONNX runtime, vLLM, or llama.cpp for embeddings, text generation, reranking, and text classification. Five onnx embedding models, as well as ministral-3-3B-reasoning-2512 (BF16 and Q8) are included.

          Note: The image that includes “avx512” is intended for use with CPU architectures that support avx512.

          large-cpu-infer
          large-cpu-avx512-infer
        • Medium (~24GB) inference container on GPU.

          To be used with vLLM for embeddings, text generation, reranking, and text classification.

          medium-gpu-infer
        • Large (~32GB) inference container on GPU.

          To be used with vLLM for embeddings, text generation, reranking, and text classification.

          Includes ministral-3-3B-reasoning-2512 (BF16).

          large-gpu-infer
  7. Verify the image has been pulled.

    Run the following command to show all images on your system, including, for example, container-registry.oracle.com/database/private-ai:small-cpu-infer-26.2.1.0.0.

    podman images
  8. (Optional) When using air-gapped environments, continue with the following steps so that you can access the Private AI Container Image offline.

    1. Save the Private AI Container Image to a tar file.

      The following command saves the container image to a file in the current directory. The file name is dependent on your chosen image. For example, private-ai-gpu-index-26.1.0.0.0.tar or private-ai-medium-cpu-infer-26.2.1.0.0.tar.

      Replace <filename.tar>, <container-name>, and <version> depending on your chosen container image:

      podman save -o <filname.tar>  container-registry.oracle.com/database/private-ai:<container-name>-<version>
    2. Load the tar file on the air-gapped machine.

      After copying the tar file to the air-gapped host, you can load it into the local podman image repository using the following command, replacing <filename.tar> with the same file name used in the previous step:

      podman load -i <filename.tar>

      Once this load operation is successful, verify that the Private AI Container Image is accessible on the air-gapped host using podman images. This should list all podman images on the host.