THINGS datasetというのを使って人間の判断に類似するように画像認識モデルをファインチューンできるらしい。
https://arxiv.org/abs/2409.06509https://doi.org/10.1038/s41586-025-09631-6 (nature)
~ただのメモ置き場。なので、内容の正しさについての保証は一切ありませんよ~ copyright (c) 2006-2025 bluewidz, all rights reserved.
THINGS datasetというのを使って人間の判断に類似するように画像認識モデルをファインチューンできるらしい。
https://arxiv.org/abs/2409.06509
投稿者
bluewidz
0
コメント
というわけで、以下のような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の認証情報を設定すれば接続できます。
投稿者
bluewidz
0
コメント
Dockerfileを作っているとき、多くの場合は試行錯誤するので、何度も何度もaptとかapt-getとかでパッケージのダウンロードを行うことになります。
通信回線が高速で苦にならないのならそのままでも良いのですが、パッケージの数が多い場合など、待ち時間が長くなってしまいます。 そこで、apt-cacher-ngを使ってみます。 使い方は以下の通り。sudo apt install apt-cacher-ngなどとして、apt-cacher-ngをインストールします。
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
docker build --build-arg USE_CACHE=true --build-arg APT_CACHE_SERVER=[ホストのIPアドレス] .
投稿者
bluewidz
0
コメント
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に一足飛びにアップグレードできるようです(少なくとも筆者の場合はそうなりました)。
投稿者
bluewidz
0
コメント
アミロイドがリチウムを集めてしまって周囲の細胞がリチウム不足になって細胞が正常に機能しなくなるらしい。 そして、アミロイドが集めにくいリチウム塩をアルツハイマー病のマウスに投与すると、認知障害を予防できたらしい。
ほんとかな。マウスでならそうなのかも。 https://doi.org/10.1038/s41586-025-09335-x
投稿者
bluewidz
0
コメント
生成AIの分かりやすい定義をようやく見つけた。
https://www.stateof.ai/で公開されている スライドにこう書かれていた。Generative AI: A family of AI systems that are capable of generating new content (e.g. text, images, audio, or 3D assets) based on 'prompts'.つまり、プロンプト(指示文)が入力に必要ということ。そのため、単に入力データを変換するもの、例えば、
投稿者
bluewidz
0
コメント
人間が実行する場合は倫理的な行動をするけれど、同じタスクをLLMに指示して代わりに実行させる場合、直接実行する場合に比べて倫理的な行動が減るらしい。
https://doi.org/10.1038/d41586-025-02819-w
投稿者
bluewidz
0
コメント
https://doi.org/10.1038/s41586-025-09127-3 によると、脳表面に設置した電極(ECoG)から取得したデータを使ってリアルタイムに音声を合成できるようになったらしい。Supplementary Videoを見る限り、速度はまだまだではあるものの、イントネーションも変えられるし、強調もできるような発声ができている。
ここまで出来るようになっているので、普通に発話できるようになるのも時間の問題だと思われる。 一方、ECoGではこのレベルで動くようになっているものの、EEGで同じことをするのはまだまだ難しいのだろう。
投稿者
bluewidz
0
コメント
OpenHandsをローカルLLMで動かしてみます。
$ docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollamaを実行するとollamaが立ち上がります。
$ docker exec -it ollama bashでdocker内に入って、ollamaを実行すると
root@xxxxxxxx:/# ollama Usage: ollama [flags] ollama [command] Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model stop Stop a running model pull Pull a model from a registry push Push a model to a registry list List models ps List running models cp Copy a model rm Remove a model help Help about any command Flags: -h, --help help for ollama -v, --version Show version information Use "ollama [command] --help" for more information about a command.となり、ollamaが実行できることが確認できます。
hhao/qwen2.5-coder-tools:7b 1fbf62f22cd4 4.7 GB codegemma:7b 0c96700aaada 5.0 GB llama3.2:3b a80c4f17acd5 2.0 GB codellama:7b 8fdf8f752f6e 3.8 GB qwen2.5-coder:3b e7149271c296 1.9 GB opencoder:1.5b 8573dfc23c16 1.4 GB opencoder:8b cd882db52297 4.7 GBもっと良いLLMがあるかもしれませんが、ここではhhao/qwen2.5-coder-tools:7bを使って進めます。runすると
/# ollama run hhao/qwen2.5-coder-tools:7b >>> Send a message (/? for help)と表示され、OpenHandsからアクセスできる状態になりました。試しにメッセージを入れてみると、
>>> Pythonでhelloと出力するスクリプトを作成してください
```python
print("hello")
```
とか
>>> rustでhelloと出力するコードを書いて、ビルドして実行する方法を書いてください
```json
{
"name": "create_file",
"arguments": {
"filename": "main.rs",
"content": "fn main() {\n println!(\"Hello\");\n}"
}
}
```
のように出力されました。日本語でも動きそうです。OpenHandsから呼び出すときにollama runが実行されている必要はありません。
curl http://host.ip.address:11434/api/generate -d '{
"model": "hhao/qwen2.5-coder-tools:7b",
"prompt":"Write a bash script that prints hello"
}'
json形式の応答が返ってくれば、動作しています。
docker run -it --rm -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.29-nikolaik \
-e LOG_ALL_EVENTS=true \
-e LOG_JSON=false \
-e LOG_LEVEL=DEBUG \
-e DEBUG=true \
-e OLLAMA_API_BASE=http://host.ip.address:11434 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.29
host.ip.addressは適切な値に書き換えてください。
KVM内のブラウザでlocalhost:3000にアクセスします。
左下の⚙アイコンをクリックして、
Custom model: ollama/hhao/qwen2.5-coder-tools:7b Base URL: http://host.ip.address:11434 API Key: なんでもOK Agent: CodeActAgentと設定します。 これで動くようになります。指示として例えば
Could you write a bash script that just prints "こんにちは" ?を入力すると動き始め、下図のようになりました。 ただ、ファイルはつくれたもののその後はうまく動作しなくなってしまいました。 OpenHandsを活用するには、もっと賢いLLMが必要なようです。
投稿者
bluewidz
0
コメント
FLUX.1のSchnellモデルを使った画像生成をしてみます。
./build/bin/sd --diffusion-model models/flux1-schnell-Q2_K.gguf --vae models/ae.safetensors --clip_l models/clip_l.safetensors --t5xxl models/t5xxl_fp16.safetensors -p "a frog holding a sign saying 'hi' " -o ../frog.png -v --cfg-scale 1.0 --sampling-method euler -v --seed 42 --steps 4を実行します。 以下の様な蛙の画像が出力されます。 他にも
./build/bin/sd --diffusion-model models/flux1-schnell-Q2_K.gguf --vae models/ae.safetensors --clip_l models/clip_l.safetensors --t5xxl models/t5xxl_fp16.safetensors -p "Photo-realistic Rabbit running in meadow" -o ../frog.png -v --cfg-scale 1.0 --sampling-method euler -v --seed 10 --steps 20を実行すると となります。 T5XXLはモデルサイズは大きいもののGPUメモリはあまり必要ないようで、デフォルトの512x512のサイズの画像生成時に観測できた範囲ではGPUメモリの使用量は4.7GBくらいでした。
./build/bin/sd --diffusion-model models/flux1-schnell-Q4_K.gguf --vae models/ae.safetensors --clip_l models/clip_l.safetensors --t5xxl models/t5xxl_fp16.safetensors -p "Photo-realistic Rabbit running in meadow" -o ../frog.png -v --cfg-scale 1.0 --sampling-method euler -v --seed 13 --steps 20のようにQ2_KではなくQ4_Kを使ってみると となります。 Q2_KではなくQ4_Kのモデルの方を使った場合、デフォルトの512x512のサイズの画像生成時に観測できた範囲ではGPUメモリの使用量は7.4GBくらいでした。 試した範囲では実行結果に再現性があり、コマンドの引数が同じであれば同じ結果が出力されるようです。
投稿者
bluewidz
0
コメント
Landlock (を使ったsandboxer) による制限をかけるときにnvidia-smiを実行するには、次のパスを許可すれば良いようです。
LL_FS_RW=$(ls /dev/nvidia* | tr '\n' ':' | sed 's/:$//') LL_FS_RO="/usr/lib:/usr/bin" ./sandboxer nvidia-smiRO側はもう少し制限をかけることができるかもしれません。 nvidia-smiだけでなく、NVidiaのGPUを計算に利用するには、
LL_FS_RW="/proc:"$(ls /dev/nvidia* | tr '\n' ':' | sed 's/:$//') LL_FS_RO="/usr/lib:/usr/bin" ./sandboxer /path/to/appのように/procを読み書き権限で追加する必要があるようです。 アプリケーション依存かもしれませんので、必ずしもこれだけで使えるようになるとは限りません。
投稿者
bluewidz
0
コメント
最近のUbuntuやDebianのシステムに入っているPythonでpip installしようとすると、
error: externally-managed-environmentと言われ、venv環境を作れと言ってきます。 全体で使いたいパッケージをいちいちvenv環境に入ってインストールして、というのは手間なので、 エラーメッセージに書かれているとおり、Debian/Ubuntuのパッケージにある pipx をインストールします。 そのうえで、
$ pipx install uvとすると、uvをインストールできて、全体でuvが使えるようになります。
投稿者
bluewidz
0
コメント
編集距離(Edit Distance, Levenshtein Distance)の計算のライブラリは今となってはたくさんありそうですが、 いい感じに表示できる jiwer (https://jitsi.github.io/jiwer/) というPythonのライブラリがあったので、メモ。
こんな感じで書けます。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import jiwer import jaconv def main(): reference = "hello world" hypothesis = "hello duck" error = jiwer.wer(reference, hypothesis) print(error) error = jiwer.cer(reference, hypothesis) print(error) print("--------------") output = jiwer.process_characters(reference, hypothesis) print(jiwer.visualize_alignment(output)) print("--------------") output = jiwer.process_characters("あいうえお", "あううお") prev_hyp = False for line in jiwer.visualize_alignment(output).split("\n"): zen = False if prev_hyp: prev_hyp = False zen = True if line[:4] == "REF:": zen = True if line[:4] == "HYP:": zen = True prev_hyp = True if zen: line = jaconv.h2z(line, kana=True, digit=True, ascii=True) print(line) if __name__ == "__main__": main() |
0.5
0.45454545454545453
--------------
sentence 1
REF: hello world
HYP: hello duck*
SSSSD
number of sentences: 1
substitutions=4 deletions=1 insertions=0 hits=6
cer=45.45%
--------------
sentence 1
REF: あいうえお
HYP: あうう*お
S D
number of sentences: 1
substitutions=1 deletions=1 insertions=0 hits=3
cer=40.00%
のようになります。
投稿者
bluewidz
0
コメント