Amazon Linux 2023にDocker Composeを入れる

まずは、dnfでdockerを入れます。

$ sudo dnf -y install docker

インストールしたら、dockerのサービスを有効にします。

$ sudo systemctl enable --now docker

次に、ec2-userでdockerコマンドを利用できるようにします。

$ sudo usermod -aG docker ec2-user

一度、ログアウトして、ログインし直します。

docker composeのリリースサイトを確認して、アーキテクチャを確認して、インストールします。今回は、x86_64版をインストールします。

$ sudo mkdir -p /usr/local/lib/docker/cli-plugins
$ sudo curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

あとは、docker composeが利用できるか確認します。

$ docker compose version

JSON形式のログを変換する

FessをDockerで動かすと、ECS形式のJSONとして、ログが出力されます。人がパッと見て理解はしにくいので、ただのログファイルのように変換するには、jqを利用して、変換すると見やすくなると思います。

cat fess-crawler.log | jq -r '."@timestamp" + " " + ."log.level" + " " + .message' 

OpenAI互換APIも使えるllama-cpp-python

OpenAIのAPIは有料なので気軽に使うにはちょっと厳しいので、気軽に使う方法がないかなと言うときに良さそうなのが、llama-cpp-pythonというのがあります。Llama2とか、いい感じのものも増えてきていますし、これと合わせて使うと、気軽に試したりすることができます。

llama.cppで、量子化してたりして、利用する環境に合わせたサイズのモデルを事前に準備しておくと良いです。事前に準備しておいたら、llama-cpp-pythonは

pip install llama-cpp-python

でインストールすることができます。GPU環境とかであれば、ドキュメントを参考にして、cuBlasなどを有効にして、インストールしてください。

あとは、

python3 -m llama_cpp.server --model models/7B/ggml-model.bin

みたいな感じで、モデルを指定すれば起動できます。–portとか、オプションもいろいろとあるので、指定すれば、一部の層をGPUに置いたりとか、できたりで便利です。

OpenAIのライブラリ経由とかで使う場合は、OPENAI_API_BASE環境変数とかで、http://localhost:8000/v1とか指定すれば、差し替えて使えることもできると思います。

補足:llama.cppにもserverコマンドでAPI化できるのですが、これはllama-cpp-pythonほど、実装されていなかったので、まだ使えなかった…。