投稿

LinuxMint 21.3とUbuntu 22.04のソフトウェア更新の違い

1.概要 LinuxMint 21.3とUbuntu 22.04も保守用途でソフトウェア更新を定期的にしています。どちらもUbuntults 22.04のリポジトリを利用していますが、ソフトウェア更新に差があるように感じています。LinuxMint 21.3の方が早いタイミングでソフトウェア更新が実行されます。この内容に関して個人の意見を記述します。 2.詳細 最近、LinuxMintやUbuntuのソフトウェア更新量がとても多いと感じています。AIを利用した脆弱性検査の結果、発覚した問題の修正がされているのではないかと思っています。最初に主力で利用しているLinuxMint 22.3でソフトウェア更新されていると気づくと、保守領域のLinuxMint 21.3とUbuntu 22.04などの更新をします。 不思議に思うのは、LinuxMint 21.3で更新された修正情報が、Ubuntu 22.04では修正が遅れて適用されない場合があるようです。どちらもUbuntults 22.04がベースとなっているので条件は同じだと思います。異なる点は、Ubuntu 22.04はsnapを採用しているので追加試験が必要となっている気がしています。また、利用者数の規模もUbuntuの方が多いので慎重に修正のリリースを実施されているとも思います。更に、1世代古い製品なので、更新タイミングが遅れているとも言えそうです。 更新処理の差に関して、例えば、LinuxMint 21.3はkernel-6.8.0-124、Ubuntu 22.04はkernel-6.8.0-111で更新が止まっています。もしかして、ubuntu 22.04のサポート期間の問題かもしれないと思ったので、ubuntu 20.04に続いてubuntu 22.04もPro設定をしました。それから、upgradeを実行したのですが、kernelは変わりません、 3.所見 異なるディストリビューションでソフトウェアのリポジトリが同じものを利用するケースはあまり無いので気が付かないことですが、微妙な更新情報の提供タイミングに違いがあることは認識しておくことが必要です。LinuxMint 21.3はProなどのサービス仕様がないので普通に更新ができるようで、一般利用者にはメリットが大きいと感じています。 参考 [本ブログ内参...

OpenMythosからPytorchと熟考ループへ移行しました

1.概要 OpenMythosの環境構築や実行試験をしていたのですが、処理ロジックを呼び出すだけでは中身がわかりません。AIでは大規模なテンソルを利用するのでデータの追跡がとても難しく、ロジックが明確なことが大切だと思います。難しい部分はGoogleAI(Gemini)に手助けを依頼して、少し処理を追跡をしてみました。 OpenMythosで利用されている熟考ループの汎用的なサンプルコードを参照して、Pytorchのforward処理部分にbackwardを伴わない数回のループを追加して代替できると知りました。これを知って、OpenMythosはPytorchで実現でき、Pytorchのみに移行しました。これでnvidia-1050Tiでも実行可能になりました。 2.詳細 CNNを利用したTensorflowの勉強を以前していたので、テンソルを利用した学習と学習成果を利用した新しいデータによる検証の手順は理解していました。しかし、LLMの領域は初めてで良くわかりません。こんなときはLLMの基礎を学習することが一番良いことであり、LLMの基礎事例を勉強することにしました。 かれのなまえはたろうです。かれのいぬはぽちです。 私には初めての文書でしたが、LLM分野の方はご存知の文書だと思います。 LLMは、この文書を学習して、「かれのなまえは」と問い合わせると、「たろうです」と答えるロジックを作ります。 LLMは文字列から次の1文字を学習結果を利用して推測します。上記例文では、「かれのな」から「ま」を推測します。これは正解がある学習を利用するのでCNNと似ています。ニューラルネットの定義があり、forwardとbackwardと評価関数と損失計算をする部分も同じです。データ量がある程度必要だったCNNと比較すると、LLMは単純な文書でも実行できます。 この勉強を進める中で、OpenMythosも熟考ループを利用していると知りました。勾配計算によるテンソル修正をforwardとbackwardのペアで実現する部分を変更して、複数回のforwardと1回のbackwardにすることで実現できました。そうであるならば、OpenMythosでなく、Pytorchだけでもできると考えてサンプルコードで勉強しています。 わかったことは、学習時に熟考ループを採用すると、学習成果を利用し...

nvidia-1050TiではOpenMythosは動作しない

1.概要 nvidia-1050Tiが利用できる環境があるので、Dockerを利用したOpenMythosの学習環境ができないか試しました。しかし、nvidia-1050Tiのハードウェア上の理由でCUDA-12.6がサポートされず、動作させることができません。ハードウェアに制約があり、最新のドライバーが提供されないこともわかりました。また、nvidia関連を除外したcpuでの動作環境で試験をすると、OpneMythosを導入できません。OpenMythosはnvidiaが必須でした。その内容を記述します。 2.詳細 今回作業をした環境は以下の通りです。 HW環境:i3-7100, nvidia-1050Ti SW環境:LinuxMint 22.3 手順は、nvidia-1660super環境と同じことをしました。 異なる点はnvidia-driverがnvidia-driver-535となった点です。 インストールは順調に完了したのですが、torchでcudaが利用できません。 調べた結果、nvidia-1050Tiの問題とわかりました。 OpenMythosはGPUなしでも動作しません。環境構築に注意が必要です。 実行手順を記載します。 (1) nouveauの無効化 /etc/modprobe.d/blacklist-nouveau.conf作成 # nvidia(nouveau) blacklist nouveau options nouveau modeset=0 適用します $ sudo update-initramfs -u (2) nvidia driver設定 $ ubuntu-drivers devices $ sudo apt -y install nvidia-driver-535 (3) nvidia Container Toolkit導入 参考資料(Installing the NVIDIA Container Toolkit)を参照願います $ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ ...

OpenMythosをGPUを利用できるDocker環境で構築しました

1.概要 前回までは、LinuxMint 22.3のオンプレミスでGPUを利用してOpenMythosを動かしました。しかし、OS更新で構築環境の整合性が取れずに動作しなくなる場合があり、Docker環境で動かすことにチャレンジしました。その内容を記述します。 2.詳細 LinuxMint 22.3が導入され、nvidiaのGPUがHWとして認識されている状態を想定します。 利用した機器は、amd 3200G, nvidia-1660 superです。 Docker環境を利用することでContainer内部に必要なPython3環境を準備できてpython3-venvも不要となり、操作も楽になります。利用したubuntu-24.04ベースのContainerはUser:Ubuntuが存在し、ContainerとLocal間のデータを楽にできるようにLocal上のUserとuid:gidが同じにしています。 オンプレ構築部分は参考資料(OpenMythosをLinuxMint 22.3に環境構築してみました)を参照願います。 (1) nouveauの無効化 /etc/modprobe.d/blacklist-nouveau.conf作成 # nvidia(nouveau) blacklist nouveau options nouveau modeset=0 適用します $ sudo update-initramfs -u (2) nvidia driver設定 $ ubuntu-drivers devices $ sudo apt -y install nvidia-driver-595-open (3) nvidia Container Toolkit導入 参考資料(Installing the NVIDIA Container Toolkit)を参照願います $ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \   && curl -s -L https://nvidia.github.io/libn...

OpenMythosのサンプルプログラムを動かしました

1.概要 前回、OpenMythosの環境構築まで実現したので、GitHubにあるサンプルプログラム(Usage)を動かしてみました。一部エラーが発生しましたが、結果出力部分なので修正をしました。その内容を記述します。 2.詳細 Usageに記載されているPythonプログラムをopenmythos_usage.pyとして作成します。 $ source ~/mypy/bin/activate (mypy) $ python3 openmythos_usage.py 下記エラーとなります [MLA] Parameters: 1,538,626 [MLA] Logits shape: torch.Size([2, 16, 1000]) [MLA] Generated shape: torch.Size([2, 24]) Traceback (most recent call last):   File "/home/nakasima/openmythos/openmythos_usage.py", line 48, in <module>     rho = torch.linalg.eigvals(A).abs().max().item()           ^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: linalg.eig: The input tensor A must have at least 2 dimensions. コードの下記部分を修正します #rho = torch.linalg.eigvals(A).abs().max().item() rho = A.abs().max().item() $ source ~/mypy/bin/activate (mypy) $ python3 openmythos_usage.py [MLA] Parameters: 1,538,626 [MLA] Logits shape: torch.Size([2, 16, 1000]) [MLA] Generated shape: torch.Size([2, 24]) [MLA] Spectral radius ρ(A) = 0.3679 (mus...

OpenMythosをLinuxMint 22.3に環境構築してみました

1.概要 Claude Mythosが話題になっています。このClaude Mythosの公開論文を元にOpen Mythosが開発されてOSS公開されたとのニュースが目に止まりました。早速、Open Mythosの環境構築にチャレンジしました。 2.詳細 pytorchベースで、Pytorch-12.6、CUDA-12.6環境を構築して、python3でimportできることを確認しました。 環境は以下の通りです。 HW amd 3200G, Memory 16GB, SSD 256GB, nvidia-1660 super SW LinuxMint 22.3, NVIDIA-driver-595-open, CUDA-12.6, Pytorch-12.6 (1) nouveauの無効化 /etc/modprobe.d/blacklist-nouveau.conf作成 # nvidia(nouveau) blacklist nouveau options nouveau modeset=0 適用します $ sudo update-initramfs -u (2) nvidia driver設定 $ ubuntu-drivers devices $ sudo apt -y install nvidia-driver-595-open (3) CUDA設定 $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb $ sudo dpkg -i cuda-keyring_1.1-1_all.deb $ sudo apt update $ sudo apt install cuda-toolkit-12-6 path設定を~/.bashrcに追加( vi ~/.bashrc ) # CUDA Toolkit export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH" (4) 動作確認 $ nvidia-smi $ nvcc -V ...

LinuxMint 22.3のpingが今までとオペレーションが変わっている

1.概要 ネットワーク機器の調整をしないとpingを利用することはありません。ネットワーク通過を確認するためにpingを実行すると下記エラーが発生。何が起きたか理解できませんでした。この内容を記述します。 $ ping www.google.com ping: socktype: SOCK_DGRAM ping: socket: アドレスファミリはプロトコルによってサポートされていません 2.詳細 (1) DNSが通過するかを確認しました。これは問題ありません。 $ host www.google.com www.google.com has address 142.251.155.119 www.google.com has address 142.251.150.119 www.google.com has address 142.251.152.119 www.google.com has address 142.251.151.119 www.google.com has address 142.251.156.119 www.google.com has address 142.251.153.119 www.google.com has address 142.251.154.119 www.google.com has address 142.251.157.119 www.google.com has IPv6 address 2001:4860:4827:7700:: www.google.com has IPv6 address 2001:4860:482d:7700:: www.google.com has IPv6 address 2001:4860:482b:7700:: www.google.com has IPv6 address 2001:4860:4828:7700:: www.google.com has IPv6 address 2001:4860:482c:7700:: www.google.com has IPv6 address 2001:4860:4826:7700:: www.google.com has IPv6 address 2001:4860:482a:7700:: www.google.com has IPv...