やみんちゅの備忘録

情報系院生(元工大生)の日々のぼやきや技術的な話など

質問の仕方って大事だよねという話

 お久しぶりです。先生方、友人のおかげで無事大学院を卒業することになりました。ありがとうございました。

 記念になにか書いておくかと思ったのですが、NAIST関連のことは別の人がたくさん書きそうなので、今回はなんとなくためになりそうなことを書き残しておきます。

 ということで、「質問するときには環境についての情報や何をやったかをちゃんと書こう」という話をします。

質問の仕方を知ってると、色々なことを教えてもらいやすくなる

 実は去年の研究室内M1向けチュートリアルで書こうと思っていたことです。特に技術的な疑問の場合、質問の内容・書き方ひとつで答える側も負担が減ります、教わる側もすぐに教えてもらえます。つまりWIN-WIN──ということを言っておけばよかったなと思う次第なわけです。

 ここでは、例としてpytorchで何らかのエラーが出たときの質問を想定してみます。まずは駄目な方。

pytorchを使っているのですが、gpuを使えません。どうすればいいのでしょうか。

 ......はい。極端過ぎる例ですが、ここで回答者の頭の中にはいくつもの疑問が思い浮かぶと思います。「OSは?」「pytorchのバージョンは?」「CUDAのバージョンは?」エトセトラエトセトラ。当然聞き返せば質問者から答えは返ってくるけど、この逐次的なやり取りはとても面倒なんですね。

 なので、質問の仕方を変えてみましょう。

問題:pytorchからgpuを使えなくて困っています。

環境:CUDA version: 〇〇、Pytorch version*:〇〇

状況:ターミナルのpython対話環境からtorch.get_device_name()をした際に、指しているはずのgpuの名前が表示されません。動かしたコードは以下のとおりです。

......hogehoge

やったこと:nvidia-smiを叩く→gpuは表示された、......hogehoge

 こうして書いてもらえると、回答者も状況がある程度分かるし、かなり回答しやすくなるし無駄なやり取りも減って嬉しいよねってわけです。

 「じゃあ、実際にどんなことを書いたらいいんですか?」って話ですが、

help.qiita.com

こんな感じにまとめてくれてる親切な人がネットにはいます。

 ただこれだと丸投げなので、自分的書いてあること嬉しいリストを以下に列挙しておきます。

  • わかりやすいタイトル
  • 起きている問題(できるだけ詳しく!)
  • 動作環境(プログラミング言語やライブラリのバージョン情報、ドライバのバージョン情報やOS、notebookなのかそうでないのか、仮想環境は何を使っているのいるのか等)
  • 実際に動かしたコード
  • 自分で調べたことややったこと

 全部書いたら長すぎるって話かもしれないですが、その辺はうまくスレッドを活用するなりしてください。

 情報があればあるほど、回答者は嬉しいものです。

 

 以上、「質問の仕方って大事だよねという話」でした。新入生だと意外とっできてない(自分ができてるとは言ってない)ことが多いので、このあたりを踏まえて快適な研究ライフを過ごして貰えれば幸いです。