2025/11/24

画像認識モデルを人間の判断に近づける方法

THINGS datasetというのを使って人間の判断に類似するように画像認識モデルをファインチューンできるらしい。

https://arxiv.org/abs/2409.06509
https://doi.org/10.1038/s41586-025-09631-6 (nature)

2025/11/23

DockerでGUI付きのコンテナ立てたい!

というわけで、以下のようなDockerfileを書くと、VNCでアクセスできるようになります。RDPを最初に試しましたが、Rootless dockerでは動かせませんでした。

apt-getでインストールしているパッケージは、人によっては不要なものも混じっているので、必要に応じて編集します。

FROM ubuntu:24.04

RUN apt-get update && apt-get install -y \
    xfce4 xfce4-goodies \
    xfce4-terminal \
    dbus-x11 \
    wget \
    net-tools \
    locales \
    tzdata \
    ibus \
    ibus-mozc \
    language-pack-ja-base \
    language-pack-ja \
    fonts-noto-cjk \
    fonts-noto-color-emoji \
    nano \
    firefox \
    tigervnc-standalone-server tigervnc-common \
    x11-xserver-utils \
    && rm -rf /var/lib/apt/lists/*

RUN locale-gen ja_JP.UTF-8
ENV LANG=ja_JP.UTF-8
ENV LANGUAGE=ja_JP:ja
ENV LC_ALL=ja_JP.UTF-8
RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
    && echo 'Asia/Tokyo' > /etc/timezone

# VNC
EXPOSE 5901

# Set up VNC
USER ubuntu
RUN mkdir -p /home/ubuntu/.vnc && \
    echo "[ここにVNCの接続パスワードを記入]" | vncpasswd -f > /home/ubuntu/.vnc/passwd && \
    chmod 600 /home/ubuntu/.vnc/passwd && \
    bash -c "( \
    echo '#!/bin/bash' && \
    echo unset SESSION_MANAGER && \
    echo unset DBUS_SESSION_BUS_ADDRESS && \
    echo xrdb /home/ubuntu/.Xresources && \
    echo export GTK_IM_MODULE=ibus && \
    echo export QT_IM_MODULE=ibus && \
    echo export XMODIFIERS=@im=ibus && \
    echo dbus-launch --exit-with-session ibus-daemon --xim --daemonize && \
    echo exec startxfce4 ) > /home/ubuntu/.vnc/xstartup && \
    chmod +x /home/ubuntu/.vnc/xstartup"

CMD ["vncserver", "-localhost", "no", "-fg", "-geometry", "1600x900", "-depth", "24", ":1"]
次に
docker build -t ubuntu24-gui .
のようにしてビルドします。

できあがったら、

docker run -p 5901:5901 ubuntu24-gui
で実行します。

これで接続できるようになっているので、VNCのクライアントを使うと接続できます。

Remminaを使う場合は、ユーザー名をubuntuに、ユーザーパスワードをDockerfileに書いたVNCのパスワードにすると接続できます。

ローカルホストからのみアクセスできるようにするのであれば

docker run -p 127.0.0.1:5901:5901 ubuntu24-gui
で実行します。

また、ローカルホストのみに限定した上で、sshトンネルでアクセスするにはRemminaのSSHトンネルの設定をします。

「ループバックアドレス経由のトンネル」にチェックを入れて、SSHの認証情報を設定すれば接続できます。

aptパッケージのキャッシュ

Dockerfileを作っているとき、多くの場合は試行錯誤するので、何度も何度もaptとかapt-getとかでパッケージのダウンロードを行うことになります。

通信回線が高速で苦にならないのならそのままでも良いのですが、パッケージの数が多い場合など、待ち時間が長くなってしまいます。

そこで、apt-cacher-ngを使ってみます。

使い方は以下の通り。

  1. Dockerのホスト側で
    sudo apt install apt-cacher-ng
    などとして、apt-cacher-ngをインストールします。
  2. 設定ファイルは /etc/apt-cacher-ng/acng.conf にあるので、必要があれば書き換えます。ここではデフォルトのまま使います。
  3. サーバが起動しているかどうかやキャッシュの状況などは http://localhost:3142/acng-report.html にブラウザでアクセスすることで確認できます。
  4. 以下のようなコードをDockerfileに追記します。
    FROM ubuntu:24.04
    
    ARG USE_CACHE=false
    ARG APT_CACHE_SERVER=127.0.0.1
    
    # キャッシュを使う場合のみ設定を追加
    RUN if [ "$USE_CACHE" = "true" ]; then \
          echo "Acquire::http { Proxy \"http://${APT_CACHE_SERVER}:3142\"; };" > /etc/apt/apt.conf.d/01proxy; \
        fi
    
  5. 次のようにオプションを指定してビルドします。
    docker build --build-arg USE_CACHE=true --build-arg APT_CACHE_SERVER=[ホストのIPアドレス] .
    

2025/11/04

Win11 23H2から25H2へ

Windows11 23H2のサポート期限が2025/11/11が近づいています。

https://learn.microsoft.com/ja-jp/lifecycle/announcements/windows-11-23h2-end-of-updates-home-pro から引用すると

Windows 11 Home and Pro, version 23H2 will reach the end of updates on November 11, 2025. This version was released in October of 2023.

This edition will no longer receive security updates after November 11, 2025. Customers who contact Microsoft Support after this date will be directed to update their device to the latest version of Windows 11 to remain supported.

です。さて、Windows Updateにこの更新が降ってきていれば良いのですが、降ってきていない場合は自分でアップデートする必要があります。

調べるといくつか方法があるようですが、素直に「Windows 11 インストール アシスタント」というのをダウンロードして実行し、画面に沿って進めると、25H2に一足飛びにアップグレードできるようです(少なくとも筆者の場合はそうなりました)。