AB型技術系 主に備忘録

ほぼプログラム関連の備忘録

ヨドバシカメラで膨張したリチウムイオンバッテリーを回収してもらう

家電量販店でリチウムイオンバッテリーを回収してくれるのか

以前使わなくなったモバイルバッテリーを処分しようとビックカメラに行ったところリサイクルマークのないものは回収できないと言われました。

安い中華製のモバイルバッテリーだとリサイクルマークがないものが多いんですよね・・・

その後ヨドバシカメラに行くと問題なく回収してくれました。

ヨドバシカメラは回収の条件が他の家電量販店よりはゆるい印象。

膨張したリチウムイオンバッテリーは回収してくれるのか

今回は経年劣化により膨張してしまったリチウムイオンバッテリーを回収してもらおうとヨドバシカメラに行ってきました。

膨張したモバイルバッテリー
使わなくなって放置していた中華製のモバイルバッテリーがいつのまにか蓋が空いてしまうほど膨張。

膨張したPSP(PSP-1000)のバッテリー
初期型PSP(PSP-1000)のバッテリーもいつのまにか膨張して蓋が閉まらなくなっていました。

気付いてから数年放置して久しぶりに見ると一部にひびが入っていました。

上記2点をヨドバシカメラに持っていきましたが問題なく回収してくれました。

ありがとうヨドバシ!

直接確認していませんが、ビックカメラやヤマダ電機だとリサイクルマーク有でも膨張していたら回収してくれないと言ってる人をみかけました。

ヨドバシカメラも今後条件が厳しくなるかもしれないのでモバイルバッテリーはリサイクルマークがあるものを選択して、使わなくなったら早めに回収してもらおうと思います。

DiskStation DS216jで使用中のHDDが故障

HDDがクラッシュ

7年前に購入したDS216jで使用しているHDDが初めて故障しました。

freelancer.hatenablog.jp

突然警告音が鳴りディスク 1のランプがオレンジになったのでストレージマネージャ開いてみると

ストレージマネージャ

ストレージプール1が劣化していて、ディスク 1がクラッシュしました。

使用しているHDDはWESTERN DIGITALのWD30EFRX。

HDDの寿命を考えると故障するのも無理ないかもしれませんね。

この状態でもデータは参照できるので別のNASに半日かけてバックアップしました。

新しいHDDを購入して修復しようと思いましたが、DS216j自体も古いしこれを機にNASを新調することにしました。

DS223j or DS223とHAT3300-4T

DiskStationに慣れているのでNASはSynology製から選ぶことにしました。

同じJシリーズだとDS223j、ホットスワップが使えるValueシリーズだとDS223辺りが候補になります。

DS223とDS223jの比較

www.synology.com

Plusシリーズはオーバースペックかなと思って候補から外しました。

HDDはデバイスの互換性や安定性を考慮してSynologyのHAT3300-4Tを選択する予定です。

対応ストレージドライブ

NVIDIA GeForce GT 710でStable Diffusion WebUI

生成AIを試したくてStable Diffusion WebUIをインストールした時のメモ書きです。

NVIDIA GeForce GT 710で試す

freelancer.hatenablog.jp

NVIDIA GeForce GT 710で試してみましたが、当然スペック不足。
12GB以上のVRAMを搭載したグラボを購入することにしたのが前回のお話。

10万円以下、VRAM12GB以上のグラボ

  • GeForce RTX 4070 VENTUS 12GB
  • GeForce RTX 4060 Ti VENTUS 16GB
  • GeForce RTX 3060 VENTUS 12G

コスパ重視の3060(40,000円)、性能重視の4070(85,000円)、その間の4060 Ti(75,000円)

Stable Diffusionを使ったベンチマークを見ると3060で十分と判断して3060 を購入。

PCスペック

  • OS:Windows10
  • CPU:Ryzen 9 3900X
  • GPU:GeForce RTX 3060 VENTUS 2X 12G OC
  • VRAM:12GB
  • メモリ:32GB

Stable Diffusion WebUIを起動する

Stable Diffusion WebUI
Stable Diffusion WebUI

起動時にエラーがでなくなりました。

http://127.0.0.1:7860

再度"dog"と入力して生成してみました。

Stable Diffusion WebUI

OutOfMemoryErrorは発生せず。
犬の画像が生成されました。

Stable Diffusion WebUI
dog
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 751866062, Size: 512x512, Model hash: 6ce0161689, Model: v1-5-pruned-emaonly, VAE hash: 735e4c3a44, VAE: vae-ft-mse-840000-ema-pruned.safetensors, Clip skip: 2, Version: 1.6.1

Time taken: 3.7 sec.

A: 3.09 GB, R: 3.60 GB, Sys: 5.6/12 GB (47.1%)

結論

Stable Diffusionを使うならミドルクラスのグラボは必須。



NVIDIA GeForce GT 710でStable Diffusion WebUIは当然動かない

生成AIを試したくてStable Diffusion WebUIをインストールした時のメモ書きです。

Stable Diffusion WebUI

stablediffusionweb.com

PCスペック

  • OS:Windows10
  • CPU:Ryzen 9 3900X
  • GPU:玄人志向 NVIDIA GeForce GT 710
  • VRAM:1GB
  • メモリ:32GB

結論を先に言うとVRAMが圧倒的に足りなくて動きませんでした。
12GB以上推奨らしいです。

Pythonのインストール

Stable Diffusionを動かすためにPythonが必要なのでインストールします。

www.python.org

Python3.10.11
Python3.10.11
Python3.10.11

gitのインストール

githubからStable Diffusion WebUIをダウンロードするためにgitをインストールします。

gitforwindows.org

git2.42.0.2
git2.42.0.2

TortoiseGitのインストール

gitクライアントは仕事で使い慣れているTortoiseGitにしました。

TortoiseGit2.15.0

Stable Diffusion WebUIのダウンロード

github.com

Stable Diffusion WebUI

Stable Diffusion WebUIを起動する

ダウンロードしたフォルダにあるwebui.batを起動する

Stable Diffusion WebUI
Stable Diffusion WebUI

OutOfMemoryErrorが発生しましたが、画面自体は表示できました。

http://127.0.0.1:7860

Stable Diffusion WebUI

試しに"dog"と入力して生成してみました。

Stable Diffusion WebUI

OutOfMemoryErrorが発生、12GB推奨で1GBでは無理ですよね。

Stable Diffusion WebUI
OutOfMemoryError: CUDA out of memory. 
Tried to allocate 50.00 MiB 
(GPU 0; 1024.00 MiB total capacity; 627.97 MiB already allocated; 0 bytes free; 22.94 MiB reserved in total by PyTorch) 
If reserved memory is >> 
allocated memory try setting max_split_size_mb to avoid fragmentation. 
See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

webui.batに起動時のパラメーターを追加して再起動。

set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128
set COMMANDLINE_ARGS=--lowvram --xformers

OutOfMemoryErrorからRuntimeErrorに変わりました。

Stable Diffusion WebUI

生成する画像サイズ等を最低レベルに変更して出力
OutOfMemoryErrorからRuntimeErrorに変わりました。

Stable Diffusion WebUI
RuntimeError: CUDA error: no kernel image is available for execution 
on the device CUDA kernel errors might be asynchronously reported at some other API call, 
so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. 
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions

結論

VRAM1GBでは生成できない。
10万円以下でVRAM12GB以上のグラボでコスパが高いGeForce RTX 3060を購入することにしました。


サクッと10分でChatGPT APIを試してみた

ChatGPTのAPIが提供開始されたので試してみました。

普段はちょとした調べものとか文章校正に使ってたのでAPIが提供されたことにより便利なツールが出てくるのではないかと期待してます。

注意点

APIを利用すると使用料金が発生します。
下記のページで確認しましたが、1000トークンで$0.002でした。

openai.com

使用量は入力トークンと出力トークンの合計で決まるようです。
ちなみに、「ChatGPTでできること」という語句で試してみると
トークン数は9個のトークン("Chat","G","PT","で","で","き","る","こ","と")に分割されました。

下記のページで現在の使用量等が確認できますが、$18.00分は無料枠のようです。

https://platform.openai.com/account/usage

使える言語

下記のページに各店言語のライブラリが確認できます。

https://platform.openai.com/docs/libraries

今回はPythonで実装することにします。

ライブラリのインストール

VSCODEのターミナルで下記コマンドを実行

PS C:\sources\chatgpt>pip install openai
Collecting openai
  Downloading openai-0.27.0-py3-none-any.whl (70 kB)
     |████████████████████████████████| 70 kB ...
Collecting tqdm
  Downloading tqdm-4.65.0-py3-none-any.whl (77 kB)
     |████████████████████████████████| 77 kB ...
・
・
・

API keyの作成

下記ページで API keyを作成します。

https://platform.openai.com/account/api-keys

API key

サンプルプログラム

import os
import openai

# Load your API key from an environment variable or secret management service
openai.api_key = "作成したAPI key"

response = openai.Completion.create(model="text-davinci-003",
 prompt="ChatGPTでできること", temperature=0.5, max_tokens=1024)
usage = response.usage
print("入力トークン数:" + str(usage.prompt_tokens))
print("出力トークン数:" + str(usage.completion_tokens))
print("トータルトークン数:" + str(usage.total_tokens))
print(response.choices[0].text.replace("。", "。\r\n"))

openai.api_keyに予め作成したAPI key、promptに質問したい内容(入力トークン)を指定します。

詳しくは下記ページを参照。

https://platform.openai.com/docs/api-reference/chat

実行結果

入力トークン数:9
出力トークン数:257
トータルトークン数:266


ChatGPTは、自然言語処理技術を使用して、質問に対して自然な文章を生成するチャットボットです。
ChatGPTは、ユーザーが質問を投稿したときに、質問に関連する文章を自動的に生成し、ユーザーの質問に対する自然な回答を行うことができます。
ChatGPTを使用すると、複雑な質問に対して、自然な文章を返すことができます。
また、質問に関連する情報を提示することもできます。

1000トークン$0.002で$18.00までが無料枠。
ということは9000000トークンまでは無料。
サンプル程度のトークンだと33834回は使えそうですね。

使用量の確認

下記のページで現在の使用量が確認できます。

https://platform.openai.com/account/usage

使用量