char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
5d8ccdf9d
char/aliceai-t5-moe
1ARG ONEAPI_VERSION=2025.3.3-0-devel-ubuntu24.04 2ARG BUILD_DATE=N/A 3ARG APP_VERSION=N/A 4ARG APP_REVISION=N/A 5 6## Build Image 7 8ARG NODE_VERSION=24 9 10FROM docker.io/node: $ NODE_VERSION AS web 11 12ARG APP_VERSION 13 14WORKDIR /app/tools/ui 15 16COPY tools/ui/package.json tools/ui/package-lock.json ./ 17RUN npm ci 18 19COPY tools/ui/ ./ 20RUN LLAMA_BUILD_NUMBER="$APP_VERSION" npm run build 21 22FROM docker.io/intel/deep-learning-essentials: $ ONEAPI_VERSION AS build 23 24ARG GGML_SYCL_F16=ON 25ARG LEVEL_ZERO_VERSION=1.28.2 26ARG LEVEL_ZERO_UBUNTU_VERSION=u24.04 27RUN apt-get update && \ 28 apt-get install -y git libssl-dev wget ca-certificates && \ 29 cd /tmp && \ 30 wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb && \ 31 wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb && \ 32 apt-get -o Dpkg::Options::="--force-overwrite" install -y ./level-zero.deb ./level-zero-devel.deb && \ 33 rm -f /tmp/level-zero.deb /tmp/level-zero-devel.deb 34 35WORKDIR /app 36 37COPY . . 38 39COPY --from=web /app/tools/ui/dist tools/ui/dist 40 41RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \ 42 echo "GGML_SYCL_F16 is set" \ 43 && export OPT_SYCL_F16="-DGGML_SYCL_F16=ON" \ 44 && export SYCL_PROGRAM_COMPILE_OPTIONS="-cl-fp32-correctly-rounded-divide-sqrt"; \ 45 fi && \ 46 echo "Building with dynamic libs" && \ 47 cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF ${OPT_SYCL_F16} && \ 48 cmake --build build --config Release -j$(nproc) 49 50RUN mkdir -p /app/lib && \ 51 find build -name "*.so*" -exec cp -P {} /app/lib \; 52 53RUN mkdir -p /app/full \ 54 && cp build/bin/* /app/full \ 55 && cp *.py /app/full \ 56 && cp -r conversion /app/full \ 57 && cp -r gguf-py /app/full \ 58 && cp -r requirements /app/full \ 59 && cp requirements.txt /app/full \ 60 && cp .devops/tools.sh /app/full/tools.sh 61 62FROM docker.io/intel/deep-learning-essentials: $ ONEAPI_VERSION AS base 63 64ARG BUILD_DATE=N/A 65ARG APP_VERSION=N/A 66ARG APP_REVISION=N/A 67ARG IMAGE_URL=https://github.com/ggml-org/llama.cpp 68ARG IMAGE_SOURCE=https://github.com/ggml-org/llama.cpp 69LABEL org.opencontainers.image.created=$ BUILD_DATE \ 70 org.opencontainers.image.version=$ APP_VERSION \ 71 org.opencontainers.image.revision=$ APP_REVISION \ 72 org.opencontainers.image.title="llama.cpp" \ 73 org.opencontainers.image.description="LLM inference in C/C++" \ 74 org.opencontainers.image.url=$ IMAGE_URL \ 75 org.opencontainers.image.source=$ IMAGE_SOURCE 76 77#Following versions are for multiple GPUs, since 26.x has known issue: 78# https://github.com/ggml-org/llama.cpp/issues/21747, 79# https://github.com/intel/compute-runtime/issues/921. 80#ARG IGC_VERSION=v2.20.5 81#ARG IGC_VERSION_FULL=2_2.20.5+19972 82#ARG COMPUTE_RUNTIME_VERSION=25.40.35563.10 83#ARG COMPUTE_RUNTIME_VERSION_FULL=25.40.35563.10-0 84#ARG IGDGMM_VERSION=22.8.2 85 86 87ARG IGC_VERSION=v2.34.4 88ARG IGC_VERSION_FULL=2_2.34.4+21428 89ARG COMPUTE_RUNTIME_VERSION=26.18.38308.1 90ARG COMPUTE_RUNTIME_VERSION_FULL=26.18.38308.1-0 91ARG IGDGMM_VERSION=22.10.0 92RUN mkdir /tmp/neo/ && cd /tmp/neo/ \ 93 && wget https://github.com/intel/intel-graphics-compiler/releases/download/$IGC_VERSION/intel-igc-core-${IGC_VERSION_FULL}_amd64.deb \ 94 && wget https://github.com/intel/intel-graphics-compiler/releases/download/$IGC_VERSION/intel-igc-opencl-${IGC_VERSION_FULL}_amd64.deb \ 95 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/intel-ocloc-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \ 96 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/intel-ocloc_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \ 97 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/intel-opencl-icd-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \ 98 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/intel-opencl-icd_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \ 99 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/libigdgmm12_${IGDGMM_VERSION}_amd64.deb \ 100 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/libze-intel-gpu1-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \ 101 && wget https://github.com/intel/compute-runtime/releases/download/$COMPUTE_RUNTIME_VERSION/libze-intel-gpu1_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \ 102 && dpkg --install *.deb 103 104RUN apt-get update \ 105 && apt-get install -y libgomp1 curl ffmpeg \ 106 && apt autoremove -y \ 107 && apt clean -y \ 108 && rm -rf /tmp/* /var/tmp/* \ 109 && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 110 && find /var/cache -type f -delete 111 112### Full 113FROM baseAS full 114 115COPY --from=build /app/lib/ /app 116COPY --from=build /app/full /app 117 118WORKDIR /app 119 120RUN apt-get update && \ 121 apt-get install -y \ 122 git \ 123 python3 \ 124 python3-pip \ 125 python3-venv && \ 126 python3 -m venv /opt/venv && \ 127 . /opt/venv/bin/activate && \ 128 pip install --upgrade pip setuptools wheel && \ 129 pip install -r requirements.txt && \ 130 apt autoremove -y && \ 131 apt clean -y && \ 132 rm -rf /tmp/* /var/tmp/* && \ 133 find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete && \ 134 find /var/cache -type f -delete 135 136ENV PATH="/opt/venv/bin: $ PATH " 137 138ENTRYPOINT ["/app/tools.sh" ] 139 140### Light, CLI only 141FROM baseAS light 142 143COPY --from=build /app/lib/ /app 144COPY --from=build /app/full/llama /app/full/llama-cli /app/full/llama-completion /app 145 146WORKDIR /app 147 148ENTRYPOINT ["/app/llama-cli" ] 149 150### Server, Server only 151FROM baseAS server 152 153ENV LLAMA_ARG_HOST=0.0.0.0 154 155COPY --from=build /app/lib/ /app 156COPY --from=build /app/full/llama /app/full/llama-server /app 157 158WORKDIR /app 159 160HEALTHCHECK CMD ["curl" ,"-f" ,"http://localhost:8080/health" ] 161 162ENTRYPOINT ["/app/llama-server" ]