初めまして、Qiita初投稿の@kenken38です!
普段は教育業界に向けてパッケージ開発をしており、インフラ(AWS)からAI開発まで幅広く担当しています。
今回は自然言語処理で有名なWord2Vec(gensim)をコンテナで利用するためのDockerfileについて書きたいと思います。
結論
次のバージョンで構築します。
- OS : Ubuntu 24.04
- Python : 3.12.7
- Gensim : 4.3.3
# Ubuntu 24.04
FROM ubuntu:24.04
# 前準備
RUN apt -y update && apt -y upgrade
# 日本語化(別にやり方があるかも)
RUN apt install -y language-pack-ja locales \
&& locale-gen ja_JP.UTF-8 \
&& echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc
# Pythonのインストール
# (参考)https://www.python.jp/install/ubuntu/index.html
RUN apt install -y build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev \
curl tar
# 公式サイトからPython3.12.7をインストールし、解凍してビルド
RUN curl -O https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tar.xz \
&& tar xJf Python-3.12.7.tar.xz \
&& cd Python-3.12.7 \
&& ./configure \
&& make \
&& make install
# 不要なディレクトリの削除
RUN rm -rf Python-3.12.7 Python-3.12.7.tar.xz
RUN pip3 install --upgrade pip && pip3 install gensim==4.3.3
各パッケージの説明
- gensimは、word2vecを実装するためのデファクトスタンダード的なライブラリです。最新バージョンの4.3.3をインストールしています
- OSは機械学習でよく利用されるUbuntuを利用しています。こちらも現時点で最新のUbuntu24.04を導入しています
- Pythonは3.12.7を導入しています。現時点では3.13系がリリースされていますが、gensimは3.13系のwheelsを(恐らく)提供していないため、3.12系を導入しています。3.12系のwheels提供についてはこちらを参照
- 今回のコンテナは自然言語処理タスクを想定しているので、一応日本語化するコマンドも記載しました