In the expanding universe of machine learning, the task of accurately answering questions based on a corpus of proprietary documents presents an exciting yet challenging frontier. At the intersection of natural language processing and information retrieval, the quest for efficient and accurate "Q&A over documents" systems is a pursuit that drives many developers and data scientists.
While large language models (LLMs) such as GPT have greatly advanced the field, there are still hurdles to overcome. One such challenge is identifying and retrieving the most relevant documents based on user queries. User questions can be tricky; they're often not well-formed and can cause our neatly designed systems to stumble.
In this blog post, we'll first delve into the intricacies of this challenge and then explain a simple yet innovative solution that leverages the new function calling capabilities baked into the chat completion API for GPT. This approach aims to streamline the retrieval
Also see https://gist.github.com/pojntfx/6d81b9ebe8b801e024d81fa9f3f3a4b2 for a pet Alpine Linux in QEMU
# If you like to use Docker
docker run --privileged -it alpine:edge sh
apk add alpine-make-vm-image
cd /tmp
# Now add the files from below
Also see https://gist.github.com/pojntfx/9ed00ff118fc1894abc83061491c252f for a cattle Alpine Linux in QEMU
On macOS? See https://gist.github.com/pojntfx/c41e9daed0a087a11eb83e786a15b199
curl -o ~/Downloads/alpine.iso https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-virt-3.13.0-x86_64.iso
The always enthusiastic and knowledgeable mr. @jasaltvik shared with our team an article on writing (good) Git commit messages: How to Write a Git Commit Message. This excellent article explains why good Git commit messages are important, and explains what constitutes a good commit message. I wholeheartedly agree with what @cbeams writes in his article. (Have you read it yet? If not, go read it now. I'll wait.) It's sensible stuff. So I decided to start following the
# GIT heart FZF | |
# ------------- | |
is_in_git_repo() { | |
git rev-parse HEAD > /dev/null 2>&1 | |
} | |
fzf-down() { | |
fzf --height 50% --min-height 20 --border --bind ctrl-/:toggle-preview "$@" | |
} |
master: | |
image: elasticsearch:2 | |
ports: | |
- "9200:9200" | |
restart: always | |
container_name: es_master | |
es-node: | |
image: elasticsearch:2 | |
command: elasticsearch --discovery.zen.ping.unicast.hosts=es_master |
So one of the painful points of using docker
on OS X is that you need to run a virtualbox VM, which often suffers from performance issues. With xhyve, a OS X virtualization system, and docker-machine-xhyve you can now have docker
use the native OS X hypervisor to run containers.
No more dealing with virtualbox shenanigans!
In this script, I've also set up a way to autoconfigure terminal sessions to load docker's environment vars (dependent on docker-machine
) so you do not have to run eval $(docker-machine env whatever)
every time you open a new terminal window.
Let's setup a Docker based Jenkins slave using VMware Photon (currently using Tech Preview #2) as the docker host.
This assumes you have Jenkins installed.
First, let's install the Jenkins Docker Plugin, plus all of it's dependencies (if you don't already have them):
$ brew update && brew doctor # Repeat, until you've done *all* the Dr. has ordered! | |
$ brew install postgresql # You'll need postgres to do this... you may also need to 'initdb' as well. Google it. | |
$ brew install elixir | |
$ mix local.hex # Answer y to any Qs | |
$ createuser -d postgres # create the default 'postgres' user that Chris McCord seems to like -- I don't create mine w/a pw... | |
# Use the latest Phoenix from here: http://www.phoenixframework.org/docs/installation -- currently this is 1.0.3 | |
# ** Answer y to any Qs ** | |
$ mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez |