【メモ】WSL環境での実行時にWindows側のプログラムを参照してしまう謎現象

割とハマったのでメモ

Windows11上のWSLのUbuntu24.04でshファイル内でnpm run startを実行していて以下のようなエラーに遭遇。

git cloneコマンドで持ってきたプログラムだったのですが、他の環境ではこのようなエラーは発生していませんでした。

エラーの内容としてWindows側のプログラムを起動しようとしているみたいです。ファイルがなかったので何も発生しませんでしたが。

エラー表示

$ ./start_service.sh

> y-websocket@2.0.4 start
> node ./bin/server.cjs

'\\wsl.localhost\Ubuntu24.04-TEST\home\user2404\y-websocket'
上記の現在のディレクトリで CMD.EXE を開始しました。
UNC パスはサポートされません。Windows ディレクトリを既定で使用 します。
node:internal/modules/cjs/loader:1147
  throw err;
  ^

Error: Cannot find module 'C:\Windows\bin\server.cjs'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
    at Module._load (node:internal/modules/cjs/loader:985:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
    at node:internal/main/run_main_module:28:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v20.10.0

想定していなかった動作でしたが、実際に発生することが確認できました。確かに、Windows側からWSLにあるプログラムを実行するのは可能です。

【参考】 このときはWSL上のsha256sumを実行していました。 uepon.hatenadiary.com

今度は逆の現象でWSL側からWindowsのバイナリを実行しようとしていた。(でも、存在していなかったので失敗している)

続きを読む

最新のLLMを体験!IBM Granite 3.0モデルをOllamaで動かしてみた

IBMさんからOllamaに対応したIBM Granite 3.0 modelsがリリースされたというニュースがありました(2024.10.21)。

ollama.com

ラスベガスで行われているTechXchange Conference 2024に合わせた発表なのかなと。

www.ibm.com

これまで、IBMLLMOllamaに対応していたのは主にGraniteCodeという特定のモデルでしたが、用途が限定されていたため、汎用性のあるモデルが登場するのを待っていました。早くIBMCloudにあったGranite Japaneseオープンソース側にも反映されてこないかなと思っていたのですが、今回のリリースでChat的なLLMモデルが発表されたので早速使用してみます。

続きを読む

【メモ】GPUコンテナが動かない?Ubuntuアップデート後のトラブル解消法

今後、失敗してもリカバリできるようにメモ🥲

Ubuntuでアプリセンターなどでアプリ関係のアップデートを行うとNVIDIACUDAのドライバー関連、Docker側のGPUドライバを含んだ形でアップデートされてしまい。コンテナ関連が動作しなくなるという現象が発生しました。そこで、なんとかリカバリできたので、その方法をメモしておこうと思います。

(注意):コンテナはそのまま使用できるので絶対に削除しないでください。

エラーの状況

ollamaというコンテナ(GPU使用)を起動しようとすると以下のようなエラーが発生しました。

エラーメッセージ

$ docker start ollama
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
Error: failed to start containers: ollama

このエラーの内容:

nvidia-container-cliが初期化に失敗、GPUドライバがロードされていない。 nvidia-container-cliは、DockerがNVIDIAGPUを利用する際に使用するライブラリです。

突然発生したので全く意味がわからなかったのですが、前回の電源OFF時にUbuntuのソフトウエアアップデートを行ったことを思い出し、あ~😫これか~という顔になりました。アップデート時にGPU関連のドライバやミドルウエアも巻き込んでアップデートされてしまったみたいです。

チェック

ドライバの情報が取得できるか確認していきます。nvidia-smiを使用することで現在の状態を調べる事ができます。今回のチェックでは情報のアウトプットは取得できませんでした。

$ nvidia-smi

nvidia-smiが正常に動作すれば、GPUの詳細情報が表示されます。もし何も表示されない、またはエラーメッセージが出力される場合、NVIDIAドライバの再インストールが必要です。

復旧

復旧は以下の手順で行っていきました。

  1. ドライバの再インストール
  2. システム再起動後のドライバのチェック
  3. nvidia-container-toolkitの再インストール
  4. nvidia-container-toolkitインストール後のチェック

(1)ドライバの再インストール

まずはドライバの再インストールを行います。

# 現在のNVIDIAドライバを削除
$ sudo apt-get purge nvidia*

# aptの情報をアップデート
$ sudo apt-get update

# ドライバを自動検出してインストール
$ sudo ubuntu-drivers autoinstall

# OSを再起動
$ sudo reboot

(2)システム再起動後のドライバのチェック

再度、nvidia-smiを実行し、情報が表示されていればドライバの再インストールは成功しています。

$ nvidia-smi

(3)nvidia-container-toolkitの再インストール

アプリのアップデートでNVIDIAドライバとともにDockerのコンテナ側からNVIDIAの機能を使用するミドルウエアであるnvidia-container-toolkitも影響を受けた可能性が考えられます。

以下の手順で再インストールします。

# 現在のNVIDIA Container Toolkitをアンインストール
$ sudo apt-get purge nvidia-container-toolkit

# 改めてNVIDIA Container Toolkitをインストール
$ sudo apt-get install -y nvidia-container-toolkit

# dockerサービスを再起動
$ sudo systemctl restart docker

(4)nvidia-container-toolkitインストール後のチェック

nvidia-container-toolkitがうまく動作するか確認します。GPUを使用しているコンテナを動かせば確認ができます。

$ docker start ollama

成功すれば、コンテナ名が1行出力されます。もし、ここで以下のようなエラーが発生する場合には、nvidia-container-toolkitの再インストールが失敗しています。再度手順を確認してください。

$ docker start ollama
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
Error: failed to start containers: ollama

おわりに

今回紹介した手順で、なんとかUbuntuのアプリアップデート後に発生したNVIDIAドライバDockerGPU関連エラーに対処することができました。噂には聞いていましたが、アップデートによるトラブルは予期できません。とはいえ、無事にリカバリできてホッとしました🙂同様の問題に直面した方が、この記事の内容で役立てば幸いです。

UbuntuでGPUの動きをサクッと確認!topコマンド風モニタリングツール解説(nvtop/nvitop)

仕事関連でOllama関連の作業を少しお休みしていたのですが、そろそろ開始するかということで触り始めていたのですが、GTX1070 mobileではあるもののGPUありPCでのLLMの動作が遅く感じていました。なんでかなと思っていたのですが、わからず進めていました。ようやくその原因がDockerGPUの使用をONにしていなかったということが判明しました。なんと情けない。

とはいうもののGPUを使用しているかどうかをリアルタイムで見る手段を自分のなかで確立していなかったというのが一番の原因かもしれません。Windowsであればタスクマネージャーを使用すればリアルタイムに負荷の確認はできますが、Ubuntuじゃどうするのかということになります。

続きを読む

【イベント参加レポート】生成AIを使ったアプリ開発、入門編 〜watsonx.ai Dojo #2〜

すでに一ヶ月ほど経ってしまっていますが、生成AIを使ったアプリ開発、入門編 〜watsonx.ai Dojo #2〜に参加しましたので、そのハンズオン内容の復習レポートとして記してみたいと思います。

参考

uepon.hatenadiary.com

前回は概論的な予備知識的な内容でしたが、今回はクラウド上のwatsonx.aiでチャットやPythonのコードを使用した実装を行う内容のハンズオンでした。以前、チャットでの実験は行っていましたが、Pythonコードからの実行はまだできていませんでした。今回のハンズオンでようやくそれを実現することができた形です。

イベントページ

ibm-developer.connpass.com

次回は明日開催されます。夏休みの宿題を最終日に片付けるような感覚だったのは秘密です…🤔

次回はプロンプト・エンジニアリングなんですよね。もちろん参加する予定です。

今回の資料はConnpassページにもありますが、念の為こちらにも掲載しておきます。また、最後のPythonでのコードの実行に関しては、初回参加時のエントリーで行った準備作業が必要になります。自分もやってみようという方はそちらも参考にしてください。

資料

speakerdeck.com

GitHub

github.com

続きを読む
/* -----codeの行番号----- */