llm

local-ai/local-ai (latest)

Published 2023-11-06 13:44:55 +00:00 by geens

Installation

docker pull git.nielsgeens.be/llm/local-ai/local-ai:latest
sha256:de8b31e97af24c130da606cc5bed34d646abfc4eebb3418ee702e55d76854360

About this package

:robot: The free, Open Source OpenAI alternative. Self-hosted, community-driven and local-first. Drop-in replacement for OpenAI running on consumer-grade hardware. No GPU required. Runs ggml, gguf, GPTQ, onnx, TF compatible models: llama, llama2, rwkv, whisper, vicuna, koala, cerebras, falcon, dolly, starcoder, and many others

Image Layers

ADD file:8a9222387b89a9ac763fd72610ce01ab17f64387cbfde30a6af1861a82030aad in /
CMD ["bash"]
/bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg netbase wget ; rm -rf /var/lib/apt/lists/*
/bin/sh -c apt-get update && apt-get install -y --no-install-recommends git mercurial openssh-client subversion procps && rm -rf /var/lib/apt/lists/*
/bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends g++ gcc libc6-dev make pkg-config ; rm -rf /var/lib/apt/lists/*
ENV PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV GOLANG_VERSION=1.21.3
/bin/sh -c set -eux; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; url=; case "$arch" in 'amd64') url='https://dl.google.com/go/go1.21.3.linux-amd64.tar.gz'; sha256='1241381b2843fae5a9707eec1f8fb2ef94d827990582c7c7c32f5bdfbfd420c8'; ;; 'armel') export GOARCH='arm' GOARM='5' GOOS='linux'; ;; 'armhf') url='https://dl.google.com/go/go1.21.3.linux-armv6l.tar.gz'; sha256='a1ddcaaf0821a12a800884c14cb4268ce1c1f5a0301e9060646f1e15e611c6c7'; ;; 'arm64') url='https://dl.google.com/go/go1.21.3.linux-arm64.tar.gz'; sha256='fc90fa48ae97ba6368eecb914343590bbb61b388089510d0c56c2dde52987ef3'; ;; 'i386') url='https://dl.google.com/go/go1.21.3.linux-386.tar.gz'; sha256='fb209fd070db500a84291c5a95251cceeb1723e8f6142de9baca5af70a927c0e'; ;; 'mips64el') url='https://dl.google.com/go/go1.21.3.linux-mips64le.tar.gz'; sha256='a569ffbc88b4e14cf2682f65cec950460665e4392b0d78b8868b4718c979bda8'; ;; 'ppc64el') url='https://dl.google.com/go/go1.21.3.linux-ppc64le.tar.gz'; sha256='3b0e10a3704f164a6e85e0377728ec5fd21524fabe4c925610e34076586d5826'; ;; 'riscv64') url='https://dl.google.com/go/go1.21.3.linux-riscv64.tar.gz'; sha256='67d14d3e513e505d1ec3ea34b55641c6c29556603c7899af94045c170c1c0f94'; ;; 's390x') url='https://dl.google.com/go/go1.21.3.linux-s390x.tar.gz'; sha256='4c78e2e6f4c684a3d5a9bdc97202729053f44eb7be188206f0627ef3e18716b6'; ;; *) echo >&2 "error: unsupported architecture '$arch' (likely packaging update needed)"; exit 1 ;; esac; build=; if [ -z "$url" ]; then build=1; url='https://dl.google.com/go/go1.21.3.src.tar.gz'; sha256='186f2b6f8c8b704e696821b09ab2041a5c1ee13dcbc3156a13adcf75931ee488'; echo >&2; echo >&2 "warning: current architecture ($arch) does not have a compatible Go binary release; will be building from source"; echo >&2; fi; wget -O go.tgz.asc "$url.asc"; wget -O go.tgz "$url" --progress=dot:giga; echo "$sha256 *go.tgz" | sha256sum -c -; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 'EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796'; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys '2F52 8D36 D67B 69ED F998 D857 78BD 6547 3CB3 BD13'; gpg --batch --verify go.tgz.asc go.tgz; gpgconf --kill all; rm -rf "$GNUPGHOME" go.tgz.asc; tar -C /usr/local -xzf go.tgz; rm go.tgz; if [ -n "$build" ]; then savedAptMark="$(apt-mark showmanual)"; ( . /etc/os-release; echo "deb https://deb.debian.org/debian $VERSION_CODENAME-backports main" > /etc/apt/sources.list.d/backports.list; apt-get update; apt-get install -y --no-install-recommends -t "$VERSION_CODENAME-backports" golang-go; ); export GOCACHE='/tmp/gocache'; ( cd /usr/local/go/src; export GOROOT_BOOTSTRAP="$(go env GOROOT)" GOHOSTOS="$GOOS" GOHOSTARCH="$GOARCH"; ./make.bash; ); apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; rm -rf /usr/local/go/pkg/*/cmd /usr/local/go/pkg/bootstrap /usr/local/go/pkg/obj /usr/local/go/pkg/tool/*/api /usr/local/go/pkg/tool/*/go_bootstrap /usr/local/go/src/cmd/dist/dist "$GOCACHE" ; fi; go version
ENV GOTOOLCHAIN=local
ENV GOPATH=/go
ENV PATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/bin/sh -c mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 1777 "$GOPATH"
WORKDIR /go
ARG BUILD_TYPE
ARG CUDA_MAJOR_VERSION=11
ARG CUDA_MINOR_VERSION=7
ARG SPDLOG_VERSION=1.11.0
ARG PIPER_PHONEMIZE_VERSION=1.0.0
ARG TARGETARCH
ARG TARGETVARIANT
ENV BUILD_TYPE=cublas
ENV EXTERNAL_GRPC_BACKENDS=huggingface-embeddings:/build/extra/grpc/huggingface/huggingface.py,autogptq:/build/extra/grpc/autogptq/autogptq.py,bark:/build/extra/grpc/bark/ttsbark.py,diffusers:/build/extra/grpc/diffusers/backend_diffusers.py,exllama:/build/extra/grpc/exllama/exllama.py,vall-e-x:/build/extra/grpc/vall-e-x/ttsvalle.py,vllm:/build/extra/grpc/vllm/backend_vllm.py
ENV GALLERIES=[{"name":"model-gallery", "url":"github:go-skynet/model-gallery/index.yaml"}, {"url": "github:go-skynet/model-gallery/huggingface.yaml","name":"huggingface"}]
ARG GO_TAGS=stablediffusion tts
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c apt-get update && apt-get install -y ca-certificates curl patch pip cmake && apt-get clean # buildkit
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c echo "Target Architecture: $TARGETARCH" # buildkit
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c echo "Target Variant: $TARGETVARIANT" # buildkit
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c if [ "${BUILD_TYPE}" = "cublas" ]; then apt-get install -y software-properties-common && apt-add-repository contrib && curl -O https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb && dpkg -i cuda-keyring_1.0-1_all.deb && rm -f cuda-keyring_1.0-1_all.deb && apt-get update && apt-get install -y cuda-nvcc-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} libcublas-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} libcusparse-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} libcusolver-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} && apt-get clean ; fi # buildkit
ENV PATH=/usr/local/cuda/bin:/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c apt-get install -y libopenblas-dev libopencv-dev && apt-get clean # buildkit
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2 # buildkit
WORKDIR /build
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c test -n "$TARGETARCH" || (echo 'warn: missing $TARGETARCH, either set this `ARG` manually, or run using `docker buildkit`') # buildkit
RUN |8 BUILD_TYPE=cublas CUDA_MAJOR_VERSION=12 CUDA_MINOR_VERSION=1 SPDLOG_VERSION=1.11.0 PIPER_PHONEMIZE_VERSION=1.0.0 TARGETARCH=amd64 TARGETVARIANT= GO_TAGS=stablediffusion tts /bin/sh -c curl -L "https://github.com/gabime/spdlog/archive/refs/tags/v${SPDLOG_VERSION}.tar.gz" | tar -xzvf - && mkdir -p "spdlog-${SPDLOG_VERSION}/build" && cd "spdlog-${SPDLOG_VERSION}/build" && cmake .. && make -j8 && cmake --install . --prefix /usr && mkdir -p "lib/Linux-$(uname -m)" && cd /build && mkdir -p "lib/Linux-$(uname -m)/piper_phonemize" && curl -L "https://github.com/rhasspy/piper-phonemize/releases/download/v${PIPER_PHONEMIZE_VERSION}/libpiper_phonemize-${TARGETARCH:-$(go env GOARCH)}${TARGETVARIANT}.tar.gz" | tar -C "lib/Linux-$(uname -m)/piper_phonemize" -xzvf - && ls -liah /build/lib/Linux-$(uname -m)/piper_phonemize/ && cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/lib/. /usr/lib/ && ln -s /usr/lib/libpiper_phonemize.so /usr/lib/libpiper_phonemize.so.1 && cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/include/. /usr/include/ && rm spdlog-${SPDLOG_VERSION} -rf # buildkit
COPY extra/requirements.txt /build/extra/requirements.txt # buildkit
ENV PATH=/root/.cargo/bin:/usr/local/cuda/bin:/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN /bin/sh -c pip install --upgrade pip # buildkit
RUN /bin/sh -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y # buildkit
RUN /bin/sh -c if [ "${TARGETARCH}" = "amd64" ]; then pip install git+https://github.com/suno-ai/bark.git diffusers invisible_watermark transformers accelerate safetensors; fi # buildkit
RUN /bin/sh -c if [ "${BUILD_TYPE}" = "cublas" ] && [ "${TARGETARCH}" = "amd64" ]; then pip install torch vllm && pip install auto-gptq https://github.com/jllllll/exllama/releases/download/0.0.10/exllama-0.0.10+cu${CUDA_MAJOR_VERSION}${CUDA_MINOR_VERSION}-cp39-cp39-linux_x86_64.whl; fi # buildkit
RUN /bin/sh -c pip install -r /build/extra/requirements.txt && rm -rf /build/extra/requirements.txt # buildkit
RUN /bin/sh -c git clone https://github.com/Plachtaa/VALL-E-X.git /usr/lib/vall-e-x && cd /usr/lib/vall-e-x && pip install -r requirements.txt # buildkit
ARG FFMPEG
ARG BUILD_TYPE
ARG TARGETARCH
ENV BUILD_TYPE=cublas
ENV REBUILD=false
ENV HEALTHCHECK_ENDPOINT=http://localhost:8080/readyz
ARG CUDA_MAJOR_VERSION=11
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
ENV NVIDIA_REQUIRE_CUDA=cuda>=12.0
ENV NVIDIA_VISIBLE_DEVICES=all
RUN |4 FFMPEG=true BUILD_TYPE=cublas TARGETARCH=amd64 CUDA_MAJOR_VERSION=12 /bin/sh -c if [ "${FFMPEG}" = "true" ]; then apt-get install -y ffmpeg ; fi # buildkit
WORKDIR /build
COPY . . # buildkit
RUN |4 FFMPEG=true BUILD_TYPE=cublas TARGETARCH=amd64 CUDA_MAJOR_VERSION=12 /bin/sh -c make prepare-sources # buildkit
COPY /build/local-ai ./ # buildkit
COPY /build/backend-assets/grpc/stablediffusion ./backend-assets/grpc/stablediffusion # buildkit
RUN |4 FFMPEG=true BUILD_TYPE=cublas TARGETARCH=amd64 CUDA_MAJOR_VERSION=12 /bin/sh -c if [ -d /usr/lib/vall-e-x ]; then cp -rfv /usr/lib/vall-e-x/* ./ ; fi # buildkit
RUN |4 FFMPEG=true BUILD_TYPE=cublas TARGETARCH=amd64 CUDA_MAJOR_VERSION=12 /bin/sh -c if [ -d /usr/local/lib/python3.9/dist-packages/exllama ]; then cp -rfv /usr/local/lib/python3.9/dist-packages/exllama extra/grpc/exllama/; fi # buildkit
HEALTHCHECK &{["CMD-SHELL" "curl -f $HEALTHCHECK_ENDPOINT || exit 1"] "1m0s" "10m0s" "0s" "0s" '\n'}
EXPOSE map[8080/tcp:{}]
ENTRYPOINT ["/build/entrypoint.sh"]
ENV SINGLE_ACTIVE_BACKEND=true
ENV BUILD_TYPE=cublas
ENV CUDA_DEVICE_POOL_GPU_OVERRIDE=1
ENV CUDA_VISIBLE_DEVICES=0
ENV GALLERIES=[{"name":"gitlab", "url":"https://git.nielsgeens.be/llm/local-ai/raw/branch/master/index.yaml"}]
CMD ["/usr/bin/local-ai"]

Labels

Key Value
com.docker.compose.project localai
com.docker.compose.service api
com.docker.compose.version 2.21.0
org.opencontainers.image.created 2023-10-31T11:24:31.278Z
org.opencontainers.image.description :robot: The free, Open Source OpenAI alternative. Self-hosted, community-driven and local-first. Drop-in replacement for OpenAI running on consumer-grade hardware. No GPU required. Runs ggml, gguf, GPTQ, onnx, TF compatible models: llama, llama2, rwkv, whisper, vicuna, koala, cerebras, falcon, dolly, starcoder, and many others
org.opencontainers.image.licenses MIT
org.opencontainers.image.revision 6ef7ea2635ae5371be4e6eef516c2ad4afd9f4a3
org.opencontainers.image.source https://github.com/mudler/LocalAI
org.opencontainers.image.title LocalAI
org.opencontainers.image.url https://github.com/mudler/LocalAI
org.opencontainers.image.version v1.40.0-cublas-cuda12-ffmpeg
Details
Container
2023-11-06 13:44:55 +00:00
1
OCI / Docker
linux/amd64
MIT
15 GiB
Versions (1) View all
latest 2023-11-06