ServiceNow / picard

PICARD - Parsing Incrementally for Constrained Auto-Regressive Decoding from Language Models. PICARD is a ServiceNow Research project that was started at Element AI.
https://arxiv.org/abs/2109.05093
Apache License 2.0
339 stars 122 forks source link

Has anyone gotten the dev image to build? #111

Open abharga2 opened 1 year ago

abharga2 commented 1 year ago

I'm running into tens of errors getting the dev image to build. Just wanted to see if anyone's gotten it working?

totem37 commented 1 year ago

Yes, I got it working. ghcup was installing the latest version of ghc by default, which was incompatible with PICARD's requirements. To fix this, I replaced the lines:

ENV BOOTSTRAP_HASKELL_NONINTERACTIVE=yes \
    BOOTSTRAP_HASKELL_NO_UPGRADE=yes \

with:

ENV BOOTSTRAP_HASKELL_MINIMAL=yes \

Then, instead of:

    && ghcup install ghc \
    && ghcup install cabal \

I hardcoded the versions of ghc and Cabal:

    && ghcup install ghc base-4.14.1.0 \
    && ghcup set ghc "8.10.4" \
    && export PATH="/app/.ghcup/bin:$PATH" \
    && ghcup install cabal 3.8.1.0 \

I also replaced these lines:

    && git checkout f5f8d933db229d30e6fc558f5335f0a4e85d7d44 \
    && sed -i 's/3.5.0.0/3.6.0.0/' */*.cabal \
    && cabal install cabal-install/ \
        --allow-newer=Cabal-QuickCheck:Cabal \
        --allow-newer=Cabal-described:Cabal \
        --allow-newer=Cabal-tree-diff:Cabal \
        --allow-newer=cabal-install:Cabal \
        --allow-newer=cabal-install-solver:Cabal \

With the following:

    && git checkout HEAD \
    && sed -i 's/3.5.0.0/3.8.1.0/' */*.cabal \
    && cabal install --package-env . cabal-install/ \
        --allow-newer=Cabal-QuickCheck:Cabal \
        --allow-newer=Cabal-described:Cabal \
        --allow-newer=Cabal-tree-diff:Cabal \
        --allow-newer=cabal-install:Cabal \
        --allow-newer=cabal-install-solver:Cabal \
    --allow-newer=cabal-testsuite \

I hope this helps.

SethCram commented 1 year ago

@totem37 Thanks so much for posting this! I was able to get the eval image to build through adding your changes to my dockerfile and

#to avoid apt-get Ubuntu public key error
RUN rm /etc/apt/sources.list.d/cuda.list
RUN rm /etc/apt/sources.list.d/nvidia-ml.list

before the first

RUN apt-get update
ppb-rapid commented 1 year ago

@totem37 This almost worked for me. But I got other version conflicts and errors like:

cabal test suite in conflict-set and another error exactly like this open issue https://github.com/ServiceNow/picard/issues/105 specifically: Failed to build exe:cabal from cabal-install-3.8.1.0

Got any tips?

Also @SethCram your solution solved one of the errors that apt-get update was giving. Thanks!

ppb-rapid commented 1 year ago

Okay. I've got it working now.

What worked for me was @totem37 's solution but with a little modification:

&& ghcup install cabal 3.10.1.0 \

and

&& sed -i 's/3.5.0.0/3.10.1.0/' */*.cabal \

@tscholak Please help make changes to the Dockerfile and resolve these bugs. Thanks!