santacoder-ggml / Dockerfile
matthoffner's picture
Update Dockerfile
5569321
FROM python:latest
ENV PYTHONUNBUFFERED 1
EXPOSE 8000
WORKDIR /app
RUN wget -qO- "https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local
COPY requirements.txt ./
RUN pip install --upgrade pip && \
pip install -r requirements.txt
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get install git-lfs
RUN git clone https://github.com/emscripten-core/emsdk.git && \
cd emsdk && \
./emsdk install latest && \
./emsdk activate latest
# Add Emscripten to PATH
ENV PATH="/app/emsdk:${PATH}"
ENV PATH="/app/emsdk/upstream/emscripten:${PATH}"
RUN git clone https://github.com/ggerganov/ggml && cd ggml && mkdir build && cd build && cmake ..
RUN git clone https://huggingface.co/bigcode/gpt_bigcode-santacoder
RUN python ggml/examples/starcoder/convert-hf-to-ggml.py ./gpt_bigcode-santacoder/
RUN cd ggml/build && make -j4 starcoder starcoder-quantize
RUN ggml/build/bin/starcoder-quantize models/./gpt_bigcode-santacoder/-ggml.bin ggml-model-q4_0.bin 2
RUN ls ggml/build/bin
RUN emcc -Iggml/include -Iggml/include/ggml -Iggml/examples ggml/src/ggml.c ggml/examples/starcoder/main.cpp -o santacoder.js -s EXPORTED_FUNCTIONS='["_malloc","_free"]' -s EXPORTED_RUNTIME_METHODS='["ccall"]' -s ALLOW_MEMORY_GROWTH=1 --preload-file ggml-model-q4_0.bin
RUN git config --global user.email "matthoffner@gmail.com" \
&& git config --global user.name "matthoffner" \
&& export HOME=/root \
&& touch $HOME/.netrc \
&& git clone https://huggingface.co/matthoffner/santacoder-wasm \
&& cd santacoder-wasm \
&& mv ../santacoder.wasm . \
&& mv ../santacoder.js . \
&& mv ../santacoder.data . \
&& git add . \
&& git commit -m 'Add model' \
&& git push
COPY . .
RUN ls -al
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]