Re: Installing openAI's GPT-2 Ada AI Language Model

From: Aryeh Friedman <aryeh.friedman_at_gmail.com>
Date: Sat, 22 Apr 2023 08:19:00 UTC
On Fri, Apr 21, 2023 at 8:31 AM Mario Marietto <marietto2008@gmail.com> wrote:
>
> If you don't want to use the GPU,the commands should be more or less the following :
>
>
> sudo touch /usr/local/etc/rc.d/ubuntu && chmod +x /usr/local/etc/rc.d/ubuntu
>
> # Make it have this content:
>
> #!/bin/sh
> #
> # PROVIDE: ubuntu
> # REQUIRE: archdep mountlate
> # KEYWORD: nojail
> #
> # This is a modified version of /etc/rc.d/linux
> # Based on the script by mrclksr:
> # https://github.com/mrclksr/linux-browser-installer/blob/main/rc.d/ubuntu.in
> #
> . /etc/rc.subr
>
> name="ubuntu"
> desc="Enable Ubuntu chroot, and Linux ABI"
> rcvar="ubuntu_enable"
> start_cmd="${name}_start"
> stop_cmd=":"
>
> unmounted()
> {
>     [ `stat -f "%d" "$1"` == `stat -f "%d" "$1/.."` -a \
>       `stat -f "%i" "$1"` != `stat -f "%i" "$1/.."` ]
> }
>
> ubuntu_start()
> {
>     local _emul_path _tmpdir
>
>     load_kld -e 'linux(aout|elf)' linux
>     case `sysctl -n hw.machine_arch` in
>     amd64)
>         load_kld -e 'linux64elf' linux64
>         ;;
>     esac
>     if [ -x /compat/ubuntu/sbin/ldconfigDisabled ]; then
>         _tmpdir=`mktemp -d -t linux-ldconfig`
>         /compat/ubuntu/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
>         if ! cmp -s ${_tmpdir}/ld.so.cache /compat/ubuntu/etc/ld.so.cache; then
>             cat ${_tmpdir}/ld.so.cache > /compat/ubuntu/etc/ld.so.cache
>         fi
>         rm -rf ${_tmpdir}
>     fi
>
>     # Linux uses the pre-pts(4) tty naming scheme.
>     load_kld pty
>
>     # Handle unbranded ELF executables by defaulting to ELFOSABI_LINUX.
>     if [ `sysctl -ni kern.elf64.fallback_brand` -eq "-1" ]; then
>         sysctl kern.elf64.fallback_brand=3 > /dev/null
>     fi
>
>     if [ `sysctl -ni kern.elf32.fallback_brand` -eq "-1" ]; then
>         sysctl kern.elf32.fallback_brand=3 > /dev/null
>     fi
>     sysctl compat.linux.emul_path=/compat/ubuntu
>
>     _emul_path="/compat/ubuntu"
>     unmounted "${_emul_path}/dev" && (mount -o nocover -t devfs devfs "${_emul_path}/dev" || exit 1)
>     unmounted "${_emul_path}/dev/fd" && (mount -o nocover,linrdlnk -t fdescfs fdescfs "${_emul_path}/dev/fd" || exit 1)
>     unmounted "${_emul_path}/dev/shm" && (mount -o nocover,mode=1777 -t tmpfs tmpfs "${_emul_path}/dev/shm" || exit 1)
>     unmounted "${_emul_path}/home" && (mount -t nullfs /home "${_emul_path}/home" || exit 1)
>     unmounted "${_emul_path}/proc" && (mount -o nocover -t linprocfs linprocfs "${_emul_path}/proc" || exit 1)
>     unmounted "${_emul_path}/sys" && (mount -o nocover -t linsysfs linsysfs "${_emul_path}/sys" || exit 1)
>     unmounted "${_emul_path}/tmp" && (mount -t nullfs /tmp "${_emul_path}/tmp" || exit 1)
>     unmounted /dev/fd && (mount -o nocover -t fdescfs fdescfs /dev/fd || exit 1)
>     unmounted /proc && (mount -o nocover -t procfs procfs /proc || exit 1)
>     true
> }
>
> load_rc_config $name
> run_rc_command "$1"
>
> sysrc ubuntu_enable=YES
>
> # Create necessary mount points for a working Linuxulator:
> mkdir -p {/compat/ubuntu/dev/fd,/compat/ubuntu/dev/shm,/compat/ubuntu/home,/compat/ubuntu/tmp,/compat/ubuntu/proc,/compat/ubuntu/sys}
>
> # Start Ubuntu service:
> service ubuntu start
>
> # Install needed packages:
> pkg install debootstrap pulseaudio
>
> # Install Ubuntu 20.04 into /compat/ubuntu:
> debootstrap --arch=amd64 --no-check-gpg focal /compat/ubuntu
>
> # Restart Ubuntu service to make sure everything is properly mounted:
> service ubuntu restart
>
> # Fix broken symlink:
> cd /compat/ubuntu/lib64/ && rm ./ld-linux-x86-64.so.2 ; ln -s ../lib/x86_64-linux-gnu/ld-2.31.so ld-linux-x86-64.so.2
>
> # Chroot into your Linux environment:
> chroot /compat/ubuntu /bin/bash
>
> # Set correct timezone inside your chroot:
> printf "%b\n" "0.0 0 0.0\n0\nUTC" > /etc/adjtime
> sudo dpkg-reconfigure tzdata # For some reason sudo is necessary here, otherwise it fails.
>
> # Fix APT package manager:
> printf "APT::Cache-Start 251658240;" > /etc/apt/apt.conf.d/00aptitude
>
> # Enable more repositories:
> printf "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" > /etc/apt/sources.list
>
> # Install required programs:
>
> apt update ; apt install -y apt-transport-https curl fonts-symbola gnupg pulseaudio build-essential gcc gfortran
>
> # Exit out of chroot
> exit
>
> # Fix x86_64-linux-gnu libraries path between ubuntu and freebsd
> cp -r /compat/ubuntu/usr/lib/x86_64-linux-gnu /lib
>
>
> --> Installing PyTorch and your chatgpt github fork on FreeBSD
>
>
> # fetch https://gist.githubusercontent.com/shkhln/40ef290463e78fb2b0000c60f4ad797e/raw/f640983249607e38af405c95c457ce4afc85c608/uvm_ioctl_override.c
>
> # /compat/ubuntu/bin/gcc --sysroot=/compat/ubuntu -m64 -std=c99 -Wall -ldl -fPIC -shared -o dummy-uvm.so uvm_ioctl_override.c
>
> # pkg install linux-miniconda-installer
> # miniconda-installer
> # bash
> # source /home/marietto/miniconda3/etc/profile.d/conda.sh
> # conda activate
>
> (base) # conda activate pytorch
>
> (pytorch) # conda activate
>
> (base) # conda activate
>
> (base) # git clone your chatgpt github fork


I have done that I think and get:

(base) [babyspock@babyspock ~]$ python
src/generate_unconditional_samples.py --model_name 117M --nsamples 5
--length 512
python: can't open file
'/usr/opt/babySpock/src/generate_unconditional_samples.py': [Errno 2]
No such file or directory
(base) [babyspock@babyspock ~]$ cd gpt-2/
(base) [babyspock@babyspock ~/gpt-2]$ python
src/generate_unconditional_samples.py --model_name 117M --nsamples 5
--length 512
2023-04-22 00:17:18.661083: I tensorflow/tsl/cuda/cudart_stub.cc:28]
Could not find cuda drivers on your machine, GPU will not be used.
2023-04-22 00:17:18.710468: I tensorflow/tsl/cuda/cudart_stub.cc:28]
Could not find cuda drivers on your machine, GPU will not be used.
2023-04-22 00:17:18.710951: I
tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow
binary is optimized to use available CPU instructions in
performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations,
rebuild TensorFlow with the appropriate compiler flags.
2023-04-22 00:17:19.429409: W
tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning:
Could not find TensorRT
Traceback (most recent call last):
  File "/usr/opt/babySpock/gpt-2/src/generate_unconditional_samples.py",
line 9, in <module>
    import model, sample, encoder
  File "/usr/opt/babySpock/gpt-2/src/model.py", line 3, in <module>
    from tensorflow.contrib.training import HParams
ModuleNotFoundError: No module named 'tensorflow.contrib'


>
>
> On Fri, Apr 21, 2023 at 1:34 PM Aryeh Friedman <aryeh.friedman@gmail.com> wrote:
>>
>> On Fri, Apr 21, 2023 at 6:40 AM Mario Marietto <marietto2008@gmail.com> wrote:
>> >
>> > You don't need bhyve to make that,but only the Linuxulator. I don't think the type of cpu will make any difference. I've used the Intel I9 cpu. I tried FreeBSD 13.1 and I haven't found problems. For sure using python env is tricky,but if you have the thinkering attitude,you will have some fun.
>>
>> I already have a VM allocated on it (the same host has 3 other VM's on
>> it).   I guess that is one thing I missed was the linuxulator (the
>> linsuckslator is more like it) and as far tinkering goes it is fine to
>> a point but not when it has taken *DAYS* away from paying projects (I
>> am a freelancer).
>>
>> BTW I will be trying your specific command lines tomorrow (I must get
>> back to paid work).
>>
>> P.S. The point of this project is to start a new project called
>> babySpock that is a personal assistant for me and my programming
>> partner/wife in all but legal detail.  babySpock will hopefully be
>> able to help with pair programming/design brainstorming, general
>> clerical office tasks, be a halfway decent conversation partner
>> (roughly on or near the level of chatGPT which inspired this project
>> in the first place in order to increase the amount of "context" that
>> it could store and to slice and dice context as needed to feed the
>> more expensive models just relevant context as well use multiple
>> models.... basically a DIY hobbyist AM (artificial mind with the final
>> goal being artificial mature minds [AMM] instead of AGI due to the
>> rule making paradox) lab that has to "earn its own way in life" (i.e.
>> if it is not useful it will likely die from misuse).
>>
>> >
>> > On Fri, Apr 21, 2023 at 12:26 PM Aryeh Friedman <aryeh.friedman@gmail.com> wrote:
>> >>
>> >> The more I am fighting with it in linux (only thing there is docs for)
>> >> the more obvious it just doesn't work on
>> >>
>> >> On Fri, Apr 21, 2023 at 6:19 AM Mario Marietto <marietto2008@gmail.com> wrote:
>> >> >
>> >> > Can't you install pytorch using the linux miniconda installer like below ?
>> >> >
>> >> > # fetch https://gist.githubusercontent.com/shkhln/40ef290463e78fb2b0000c60f4ad797e/raw/f640983249607e38af405c95c457ce4afc85c608/uvm_ioctl_override.c
>> >> >
>> >> > # /compat/ubuntu/bin/gcc --sysroot=/compat/ubuntu -m64 -std=c99 -Wall -ldl -fPIC -shared -o dummy-uvm.so uvm_ioctl_override.c
>> >> >
>> >> > # pkg install linux-miniconda-installer
>> >> > # miniconda-installer
>> >> > # bash
>> >> > # source /home/marietto/miniconda3/etc/profile.d/conda.sh
>> >> > # conda activate
>> >> >
>> >> > (base) # conda activate pytorch
>> >> >
>> >> Will this work a bhyve on an AMD Ryzen 5 host?   After playing with it
>> >> in several linux instances I always get stuck when it can't find a
>> >> compatible version
>> >>
>> >> --
>> >> Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org
>> >
>> >
>> >
>> > --
>> > Mario.
>>
>>
>>
>> --
>> Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org
>
>
>
> --
> Mario.



-- 
Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org