2023年7月20日木曜日

AIミステリー小説 第2章

俺は情報提供の準備を進め、信頼性のある報道機関に証拠を届けるための手段を探った。

メディアに証拠を提供することで、事件を世間に知らせ、製薬会社の闇を暴露するための力を高めることが不可欠だと考えていた。

その準備の過程で、俺は元アナウンサーで現在はジャーナリストとして活躍している久美子という女性と出会った。


久美子は誠実さと信頼性が評価されている報道機関に所属していて、社会的な正義を追求する姿勢に感銘を受けた俺は、彼女に証拠を託すことを決断した。

久美子は主人公の訴えに耳を傾け、事件の重要性を理解した。

彼女は真実を暴くために最善の手段として、主人公が持っている証拠を受け取ることを承諾した。しかし、彼女もまたメディアの闇に苦しむこともあったため、情報を公表する際には慎重な取り組みを選択した。

そして、数週間にわたる協力の中で、俺と久美子はお互いに深い信頼を寄せる仲間となっていた。

久美子は報道機関の力を背景に証拠を検証し、真実を明らかにするための最善の方法を見つけようと努力してくれた。

やがて、主人公と久美子は共に証拠を公表する準備が整った。

一大事となるメディア発表が迫る中、製薬会社側は事件を隠蔽しようとさまざまな策略を巡らせていた。

彼らは主人公と久美子の手を逃れさせるために、脅迫や妨害を仕掛けてきた。

匿名の脅迫メールや脅迫電話が俺と久美子のもとに届くようになり。

不気味な声の電話が鳴り響き、「事件を追求するならば、お前たちや家族に危害が及ぶこともある」と言い含めるような内容が書かれたメールが送られてきた。

しかし、俺と久美子は決して動じることなく、調査を続けることにした。

さらに、製薬会社は周囲の人々に対しても嫌がらせを行い。俺の友人や家族に不審な人物が現れ、尾行されていると感じることがあった。

久美子の報道機関にも謎の取材依頼や圧力がかかり、真実を追求する彼女も一時は不安にさいなまれた。

さらに、製薬会社は証拠の押収を試みた。

ある日、俺の事務所が荒らされ、重要なファイルや証拠が奪われる事件が起きた。

久美子のオフィスも同様に侵入され、機密情報を探る痕跡が見つかった。

しかし、俺と久美子は幸いにも最重要の証拠は別の場所に保管していたため、情報を守り抜くことができた。

製薬会社の妨害行為は次第にエスカレートしていき。俺と久美子が証言を求めた被験者たちの中には、製薬会社からの報復を恐れる者も現れた。

証言をすることによって自らや家族を危険にさらすと恐れ、口をつぐんでしまう人々もいた。

しかし、俺と久美子は挫けることなく、逆境を乗り越えていった。信念と正義感が揺るぎないものである限り、製薬会社の妨害や脅迫も我々を止めることはできないことを俺は理解していた。

俺と久美子は仲間や支援者たちと共に立ち上がり、証拠を保護するための対策を講じると同時に、被験者たちの安全を確保するための支援策を立てた。



俺達は厳しい状況の中で団結し、真実を暴くために一致団結して戦っていった。

メディアの前に立った俺は、自らの声でジョナサン・ハリス氏の死の真相、製薬会社の不正、被験者たちの悲劇を訴えった。

「ジョナサン・ハリス氏は、社内の政治的な駆け引きにより、副社長や他の役員たちから疎まれていました。」

「製薬会社は新薬の開発を急いでおり、副社長や役員たちが社内での発言権を握り、ジョナサン・ハリス氏を邪魔者として排除しようとしていたのです。」

「その陰謀により、ジョナサン・ハリス氏は自らの身体に試薬が投与されていることを知らず、製薬会社の不正な実験に巻き込まれました。」

「その結果、ジョナサン・ハリス氏は急激な健康悪化を経て、不審な死を遂げました。製薬会社は彼の死を隠蔽し、自然死と偽装することで事件を闇に葬ろうとしました。」

「ジョナサン・ハリス氏の遺族や元製薬会社の研究者、医師などから証言を集める中で、製薬会社がジョナサン・ハリス氏に危険な新薬を投与していた証言と証拠を集めました。」

そして久美子の的確な質問と彼女の誠実な姿勢が、主人公のメッセージをより力強く伝える手助けとなった。

報道は広範囲に渡り、事件は世間の注目を集めることに成功した。製薬会社は非難に晒され、真実を隠すことがますます困難になっていった。


製薬会社が不正な人体実験とジョナサン・ハリス氏の死に関与していた真相が明るみに出ると、遺族は弁護士を立てて製薬会社に対して訴訟を起こした。
裁判では、俺と久美子が集めた証拠が重要な役割を果たし、製薬会社の非倫理的な行為が裁判官によって認められた。


遺族は製薬会社に対する訴訟で勝訴し、多額の賠償金が認められた。
この裁判の結果、製薬会社は厳しい刑事罰や経済的な損失に直面し、社内の不正行為が徹底的に調査されることになった。

一方、俺と久美子は真相を明らかにする過程で多大な功績を上げたことが評価され、報道機関や世間から賞賛された。
俺は正義を貫く探偵としての評判が高まり、多額の報酬を得ることとなった。

遺族は俺に対して深い感謝の気持ちを伝え、ジョナサン・ハリス氏の死の真相を明らかにし、社会的な正義を追求するために立ち上がったことに心からの感謝を示してくれた。

俺は遺族と久美子との絆を築きながら、事件の真相を暴く旅を終えた。

この事件の公表により、製薬会社の不正が社会的な批判を浴び、被験者たちの悲劇を防ぐための新たな規制が導入されることとなった。


また、俺の活躍は多くの人々に勇気を与え、社会の闇に立ち向かうことの重要性を再認識させることにもなったらしい。

俺は真実を求める心と正義感を胸に、今後も様々な事件の真相を解き明かし、社会の平和と正義を守るために戦い続けるのだ。


第1章

【AI向けで高コスパなGPU RTX3060 12GB】

2023年7月19日水曜日

AIで小説を作ってみよう

 今話題の生成AIを駆使して表紙や挿絵の有る小説を作ってみよう。

人間がテーマを与えてリテイクや加筆修正をすれば著作権も認められるはずだし、現行法でも合法だ。

尚、使うAIやデータセットはしっかりライセンスを調べて商用利用可能、コピーライト表記も不要の物を使う。

大事なことなので生成時や公開時には、しっかり調べる癖をつけよう。こういった利用規約やライセンスは変わることが有る。

また、他人が公開して居る画像や写真は使わない。画像はtextPromptのみでtext2imageのみで生成するものとする。

また実写系のデータセットは使わない。あれは実在人物のSNSなどからスクレイピングして居るので、著作権はともかく肖像権など他の問題が考えられるからだ。

更に念のためハローアスカベンチも試してリークモデルが混ざってないかもチェックした。何十枚生成しても版権物キャラクターが出ないことを確認した。

そして動画生成も可能だが、1個1個が重くなるので、今回は画像で行こう。

では、まずはテーマを決めよう画像生成で画像はたくさん作れるので挿絵が多いほうが喜ばれる児童小説が良いだろう。

絵本も良いかもしれないが、生成数が多くなる。

しかし今どきスマホで縦読み漫画なんかを読む人も多いし、別に大人向けでも画像がいっぱい有ったほうが喜ばれるかもしれない。

よし、年齢層は絞らずに面白い小説を目指して制作を始めよう。

現代を舞台にしたミステリー小説だ。しかし語尾など不自然な点が多いから加筆修正が必要だった。


その日は、俺は探偵としての仕事に忙殺され、事務所で書類に囲まれていた。机に座っている最中、テレビで重大なニュースが流れてきたんだ。




「大手製薬会社の社長、ジョナサン・ハリス氏が突然の死を遂げたって報じてるんだ。警察は自然死と断定してるけど、何か怪しいことがあるような気がする」と、報道アナウンサーは言っていた。

俺は眉をひそめて、手にしていたコーヒーカップを机に置いた。なんか胸騒ぎがして、この死には何かが隠されているという直感が湧いてきたんだ。

そして、ジョナサン・ハリス氏の死に疑問を抱く遺族から電話があったんだ。

「私たちの亡きジョナサンの死には何かが隠されているような気がするんです。高額な報酬と引き換えに、その死の真相を確かめてほしいのです」と、遺族は依頼してきた。


その依頼を受けた瞬間、俺の中で何かが動き出した。

ジョナサン・ハリス氏の死に関わる真実を明らかにし、遺族に安堵と正義をもたらすことが俺の使命だと感じた。

「ジョナサン・ハリス氏の死の真相を暴くために、俺は闘い続ける。そして、製薬会社の闇を明るみに出すんだ」と、俺は心の中で固く誓った。

翌日、俺はジョナサン・ハリス氏の事務所に行ってみた。警察の捜査は終わっていたけど、俺自身で確かめたかった。

社長の事務所に入ると、いつも通りの書類がきちんと整理されてた。でも、なんか違和感があった。

机の引き出しを探って、何か手がかりがないか探してみることにした。そしたら、見慣れない薬品の瓶が出てきた。明らかに通常の業務には関係ないものだった。



俺は興味津々で瓶を手に取り、そっと開けて中身を確認したんだ。匂いや色からして、これは普通の医薬品じゃないってわかった。

探偵としての経験から、ジョナサン・ハリス氏の死と何か関連があるのかもって確信した。でも、まだ結論は早いし確定もしてない。

俺は遺族からの依頼を受けて、ジョナサン・ハリス氏の死の真相を解き明かすため、彼の研究所に向かった。期待と緊張が入り混じる心境で、その建物の前に立った。

ドアを開けると、中は静まり返っていた。しかし、すでに誰かがここに入り込んでいたことが伺えた。不穏な気配が漂っていた。

研究所の内部に足を踏み入れると、目に飛び込んできたのは壊れた備品と散らかった書類だった。何者かが慌てて捜査をしていたような兆候があったんだ。

心臓が高鳴りながら、俺はデスク周辺を探索した。しかし、驚くべきことに、コンピューターの画面には何も表示されていなかったし、書類も一切残っていなかった。

誰かが証拠を隠滅しようとしたのは明らかだった。俺は内心で怒りを感じながらも、諦めるつもりはなかった。これは逆に、真相を探るために新たな道を切り開くチャンスだと感じたんだ。

壊れた機器や散らかった書類をくまなく調べると、微かな手がかりを見つけたんだ。デスクの引き出しの一つに、わずかに折れた角があったんだ。これは何者かが慌てて物をしまい込んだ形跡だった。

引き出しを開けると、ひとつの封筒が俺を待っていた。手に取り、興味津々で封を切った瞬間、衝撃が胸に迫った。


封筒の中には、ジョナサン・ハリス氏が製薬会社内で見つけたという衝撃的な文書が収められていたんだ。その内容には、会社が人体実験を行っていることが明示されていたのだ。



俺は言葉に詰まり、目の前の衝撃的な事実に愕然とした。ジョナサン・ハリス氏がこの文書を見つけたことが、彼の死に何らかの関係があるのではないかと考えた。

この文書が真実であれば、製薬会社の闇が大きな問題となることは明らかだった。俺は遺族に対して、これまでの進展と文書の存在を報告する必要があると感じた。

決意を新たにした俺は、研究所を後にし、この衝撃的な証拠を遺族に伝えるために動き出したのだ。製薬会社の闇を暴くための戦いが、新たな局面に突入することを俺は心の中で思った。

これが重要な証拠になる可能性があると確信し、俺は封筒を大切にしまいこんだ。研究所を後にすると、頭の中で新たな線が描かれていった。

遺族に向けて真相を伝えるために、俺は衝撃的な文書を持ちながら急ぎ彼らの元へ向かった。

遺族の家に到着し、ドアをノックすると、緊張が高まったまま待つ間、心の中で言葉を整理した。彼らにとっても、ジョナサン・ハリス氏の死の真相を知ることは重要なことだろうと思った。

ドアが開くと、ジョナサンの遺族が目の前に立っていた。彼らの顔には悲しみと疑問が交錯しているように見えた。

「失礼します、私は探偵の〇〇です。ジョナサン・ハリス氏の死に関する新たな証拠を見つけました」と、俺は封筒を手渡した。

遺族は驚きの表情で封筒を受け取り、中身を確認していく。彼らが文書の内容を目にすると、驚愕と怒りが顔に浮かんだ。

「これは…ジョナサンが見つけた文書ですか?」と、遺族の一人が言った。

俺は頷きながら説明を始めた。「はい、ジョナサン・ハリス氏が製薬会社内で発見した文書です。この文書には、会社が人体実験を行っていたこと、そしてその実験が被験者たちに健康被害をもたらし、命を奪っていたことが明記されています。これが彼の死に関わる何らかの証拠となる可能性があります」

遺族たちは言葉を失い、ショックの中でその事実を受け入れようとしているようだった。

「私たちはジョナサンの死に疑問を抱いていました。しかし、これは想像以上のものです。私たちは真実を知る権利があります。この闇を暴いてください」と、遺族の一人が必死に俺に訴えた。

俺は彼らの視線に力強く応えた。「心配しないでください。私は真相を明らかにするため、全力で闘い続けます。ジョナサンのためにも、そして製薬会社の不正を許さないためにも、私は責任を持って行動します」

この一連の出来事を通じて、俺の使命感はさらに強まり、真相を追い求める覚悟も固まっていった。製薬会社の闇を暴くため、ジョナサンの名誉を守るため、そして被験者たちの声を届けるため、俺は闘いを続ける決意を新たにしたのだった。

遺族への説明を終えた俺は、更なる証拠を手に入れるために、まずは製薬会社の内部情報を探るために、本社の機密ファイルに辿り着く必要があった。

早速、製薬会社に向かい慎重に警備員を避けながら、俺は廊下を進み、ファイルルームのドアを開けると、そこには数多くの書類が保管されていた。



情報の宝庫が目の前に広がっているのだ。

一つ一つのファイルを手に取り、内容を確認していく。

内部報告書、実験データ、機密文書―すべてが俺にとっての鍵となる可能性がある。

しかし、俺が最後の証拠を手にし、ファイルルームから抜け出した瞬間、足音が近づいてくるのが聞こえた。警備員たちが俺を見つけたのだ。



焦りながらも、探偵としての鋭敏な感覚を頼りに、俺は隠れ場所を見つけ、追手をかわしていった。都市の裏通りを駆け抜け、建物の陰に身を潜めた。



息を切らしながら、俺は入手した証拠を確認し、整理した。これらの情報が真実を証明し、製薬会社の不正を暴くための強力な武器となることを心から願っていた。

やがて、俺は松田博士との出会いが設定された場所に到着した。彼はジョナサン・ハリス氏の死に関する情報を持っていると聞かされており、協力を申し出てくれたのだ。

緊張と期待が胸を満たし、俺は松田博士の研究所に足を踏み入れた。研究所の扉が開くと、そこには松田博士が俺を待っていた。



「ようこそ、松田です。ジョナサン・ハリス氏の死に関する情報をお伝えできるかもしれません」と、彼は静かな口調で言った。

俺は緊張と興奮で胸が躍り、松田博士の言葉に耳を傾けた。

彼の知識と情報が、真相に迫るための重要な要素となることを確信していた。

「松田博士、俺はこの事件の真相を明らかにするために闘います。どんな情報でもお教えいただけると幸いです」と、俺は決意を込めて言った。

松田博士は以下のような知識と情報を持っていた。

1つめ 実験の内部情報 

松田博士はかつて製薬会社で研究者として勤めていたため、実験の詳細な内部情報を把握していた。彼は自身の研究プロジェクトに関わり、人体実験の実施方法や被験者の状況について深い洞察を持ってた。

2つめ 不正な実験の証拠

松田博士は製薬会社の内部で不正な実験が行われていたことを知っており、その証拠を抱えていた。彼が持っていた報告書や実験データは、被験者の健康被害や実験の不正を裏付ける重要な情報だった。

3つめ 関係者の証言 

松田博士は製薬会社内で関与していたため、他の関係者や元同僚からも情報を得ていた。彼の知人や情報源からの証言や内部情報は、事件の解明に向けて重要な手がかりとなることが期待された。



俺と松田博士は、真実に迫るために手を取り合い、闇に立ち向かう覚悟を固めた。

第2章

【AI向けで高コスパなGPU RTX3060 12GB】

2022年12月7日水曜日

初心者でもWindowsパソコンでStableDiffusionで画像生成する簡単なやり方

最近、画像生成AI StableDiffusionが話題だが

「なんか英語ばっかりで難しくて諦めた」とか

「プログラミングみたいな話が出てきて全然分かんなかった」みたいな反応も多く

「結局ウェブサイトとかLINE Botで何度か試してみたけど、調整とか出来ないから飽きちゃった」という人も多い。

今回は初心者でも簡単に自分のWindowsパソコン上に『自分だけの無料で使い放題の画像生成AI環境』を作る方法を紹介しよう。

すごく簡単だし、多機能。この記事の通りにやれば英語もプログラミングの知識も不要。

GPU(グラボ・グラフィックボード・ビデオカード)が無いパソコンでも、時間はかかるがCPUで画像生成してくれるソフトだ。

もちろんゲーミングPCなどGPUを搭載しているパソコンならGPUを活用して高速に画像生成が出来る。

また本家StableDiffusionよりVRAM(GPUメモリ)の使用率が少ないのでロー・ミドルの4GBや6GB程度のVRAMのGPUでも画像生成が出来る。

それがこのStable Diffusion UIと言うソフトだ。※もちろん無料

https://github.com/cmdr2/stable-diffusion-ui

なんと自動でStableDiffusionの準備をして画像生成の環境を起動してくれる。便利なソフトだ。

ちなみに結構な容量、最低でも20GBくらいになるので、ハードディスクとか空き容量に余裕があるドライブに解凍するのがお勧めだ。

まずhttps://github.com/cmdr2/stable-diffusion-uiにアクセスしてDownload for Windowsをクリックしよう。

クリックすると同ページ内のココに移動するので for Windowsをクリックする。

stable-diffusion-ui-windows.zipと言うファイルがダウンロードされるので、空き容量に余裕があるドライブに移動して解凍しよう(解凍:右クリックして”全て展開”を選ぶ)

すると、こういうフォルダとファイルが出てくるので(これは構築したあとの画像なので、もっと少ないが)”Start Stable Diffusion UI.cmd”と言うWindowsコマンドファイルをダブルクリックして開こう。

するとこういう画面が出て来て自動で必要なファイルをネットからダウンロードしてStableDiffusionの環境を構築してくれる。

回線速度やパソコンの性能によって変化するが、初めて起動した時は色んなデータをダウンロードするので数十分かかることも有る。
焦って閉じたりしないで放っておこう。
もちろんその間、パソコンは他のことに使っていても大丈夫だ。

なおStableDiffusionの準備が完了すれば、次回からは1分程度で起動するので安心して良い。
※但し何時間経っても止まってる様に見える時は1回閉じて開き直すのも手だ。

しばらく経ってStableDiffusionの準備が完了したら自動で普段使っているブラウザが立ち上がる。

最初はテストを兼ねて”a photograph of an astronaut riding a horse”「馬に乗る宇宙飛行士の写真」と記入されているので 紫色の大きいボタン”Make image”を押してみよう。
しばらく待てば下記のように画像が生成されるはずだ。

ちなみに作りたい画像の文章をPrompt(プロンプト)と言う。
さっきの”a photograph of an astronaut riding a horse”がProntoに当たる。

次は翻訳ソフトなどを使って作りたい画像を英語にしてみよう。

試しに「美しい公園の中心に有る噴水」を翻訳してみた。
そして翻訳された「Fountain in the center of a beautiful park」をStableDiffusionのEnter Promptに入力してMake Imageボタンを押す

一発目から思ってたより良いのが生成できた。
でも想像していたのと違うなら、Image Setting内のNumber of Image(total)の値を変えるのがおすすめだ。


例えばココを8に変えるとMake 8 Imageに変わる。放っといても同じPromptで8枚連続で画像生成してくれるわけだ。

しばらくすれば色んな噴水画像が出てくる。
いざ生成された画像を見てみると「そういえば右下みたいな噴水も有るなあ」とか「左下の画像は水は出てないけど、こういう落ち着いた噴水の写真も良いなあ」とか色んな印象を得られるので、
そこから更にPromptを調整して想像に近づけたり。気に入った出来の画像を生成し直したり、高解像度化したりする応用機能も搭載されている。

ちなみに残りの4枚はこれだ。これらも個性があって良いね。

ちなみにタスクマネージャーでモニタリングしてみたところ
VRAMは最大でも、たったの2.7GBしか使っていなかった。
今回はGTX1060 6GBで実行したが、これなら3GBのグラボの人でも大丈夫そうだ。

次に「私のPCはゲーミングPCのじゃないからグラボとか載ってないよ」という人向けの解説だ。
上のSettingタブを押して下記の画像のUse CPU (not GPU)にチェックを入れ、ページ下部のSAVEボタンを押そう。これでGPUが載ってないパソコンでも画像生成ができる。
但し「warning: this will be *very* slow」と書いてある通り時間はかかる。

そしてさっきと同じ公園の噴水画像生成を今度はCPUで行おう。

クオリティは同等だが掛かった時間は309秒
さっきGPUで実行した時は43秒だったのでCPUでは7倍も時間がかかってしまった。
しかもCPUはcorei5 12400Fと言う、割りと新しくて、性能も良いCPUだ。

つまり画像生成はCPUよりGPUの方が遥かに向いていると言う事。
GPUを持っている人は是非GPUを活用してみて欲しい。

ついでに便利な機能としてパソコンに搭載している複数にGPUの中から、どのGPUを使うか選ぶSettingも有る。

実は私はGTX1660TIも持っていてGTX1060より高性能なのだが、StableDiffusionと相性が悪く、正常に画像が生成されなかったり、余計に多くVRAMを消費する問題が有る。
なので、最近使ってなかったGTX1060を引っ張り出してきて、開いているPCIExpressスロットに増設した。と言う訳だ。

自作PCをやっている人なら古いパーツを持っていたり、
ゲーミングノートPCの人はCPU内臓GPUとディスクリートグラフィックスのGPUが混載していたりする。

なので「StableDiffusionは起動したのに何故か画像生成が出来ない」と言う時は、このSettingで「使用するGPU」を手動で指定してからSAVEボタンを押そう。
そうすればStableDiffusionは指定したGPUで画像生成を行ってくれる。

あと私みたいにサブのGTX1060に画像生成をさせることでメインのGTX1660tiが使われていない状態ならば、GTX1660tiでPCゲームなどをしても問題ないということだ(多少パフォーマンスは落ちるが問題ない)
こうやってGPUを使い分ければ「ゲームしてる間にバックグラウンドで画像を何十枚も生成する」と行ことも出来る。

さて無事にStableDiffusionで画像生成は出来ただろうか?
今回は基本的な使い方と、簡単な設定の仕方を紹介したので、是非、思い思いの画像生成を楽しんでみて欲しい。

今回は初心者向けなので、他の機能や応用は、今後、別の記事で紹介していきたいと思う。

2022年10月26日水曜日

WSL2でTensorflowのGPUが実行できない?初心者が詰まりやすいポイントを紹介

機械学習を始めて当初はWindows版のanacondaを使っていたのでTensorflowのGPU実行は当たり前のように出来ていた。

しかし相性の問題かanacondaは稀にフリーズするし動作も遅いし悩まされていた。
pip Packageとconda Packageが混在するのもトラブルの元だったし、肥大化したせいかanaconda自体が調子悪くなってきたので、トラブルシューティングとしてanacondaの再インストールを試みた所、遂にanaconda自体が起動しなくなってしまった。

そこで、古いPCパーツを活用してLinuxマシンを組み上げ、Ubuntu20.04を入れ、VScodeでTensorflowを使うとGPUが全然利用されない、使用率も消費電力も温度も上がらないしCPU使用率は100%に近い。
PytorchならGPUが正常に稼働するが、Tensorflowは、どのコードも駄目だ。

ドライバーの問題か?CUDAToolkitのバージョンや相性だろうか?
検索しても事例が出てこないし、導入の仕方やanacondaがオススメだとか、DockerDesktopの紹介ばかりだ。

その後Windows環境に戻りVScodeにWSL2をリンクしてWindowsからLinuxを利用できるようにした。

そしたらLinuxPCと全く同じで、PytorchならGPUが使えるがTensorflowだとGPUが動かない。

そこで、今まで良くわからないからすっ飛ばしていた事を、ちゃんとやることにした。
cuDNNの導入だ。
デバイスドライバーやCUDAToolkitと違って、NVIDIAのDeveloper登録が必要だし、検索しても環境変数とか面倒な情報ばっかりだったので、放おって置いたのだが、真面目に導入してみることにした。


今考えると、これが原因なのだが、初心者からすれば「PytorchならGPUで機械学習が動いているのだから別にcuDNNは必須では無いのだろう」と思いこんでいた。

ちなみにanacondaはconda installで簡単にcuDNNが実装できるので動いていたと言うわけだ。

やってみると意外と簡単だ。
NVIDIAのDeveloper登録だが下記のサイトから行う

普通にDownload cuDNN>をクリックすれば良い。
次にJoin nowでユーザー登録を行う
メールアドレスを入れてNextを押すと
後はパスワードを作成してI am human、メール認証で登録完了だ。
無事にログインできたらCUDAバージョンに合わせたcuDNNをダウンロードしよう。

さて、ここからが本題だ。
・ダンロードしたファイルをどこに入れれば良いのか?
・どうやってインストールすれば良いのか?

まず、ダウンロードしたdebファイルをWindowsだったら7ZIPなどの圧縮解凍ソフトで開く。

そしたdata.tarを更に開いていく。
この階層に有る
libcudnn8_8.6.0.163-1+cuda10.2_amd64.debがcuDNNのインストーラーパッケージだ。※今回は10.2を使っているので、このファイル名だが、もちろんバージョンによって異なる。

該当のファイルをWSLの/home/ユーザー名フォルダにコピーする。

次にターミナルでsudo dpkg -i libcudnn8_8.6.0.163-1+cuda10.2_amd64.debを実行※sudoが必要なことに注意
これでcuDNNがバッチリ入る。

Tensorflowのチュートリアル機械学習コードで試してみると見事にGPUで機械学習が出来ていることが確認できる。

同様にUbuntuをインストールしたLinuxPCでも全く同様の手順でcuDNNはインストールできる。
機械学習をしようと調べるとanacondaやらDockerDesktopの話ばっかり出てきて、色んなものをインストールしてストレージを逼迫したり、重くなるのが嫌でLinuxやWSL2でシンプルにTensorflowをGPU実行したい人は参考になれば幸いだ。

2022年10月3日月曜日

OpenAIのWhisperを試してみたらRuntimeError: “slow_conv2d_cpu” not implemented for ‘Half’ と表示されたので修正してみた

2022年9月の末に人工知能を研究する非営利団体OPENAIがwhisperと言うAI文字起こしを公開した。

今どきスマホでも音声検索や文字起こしアプリは有るがwhisperは何が凄いのだろう?GitHubで見てみようまずはその誤認識率

https://github.com/openai/whisper


日本語が6.4%と驚異的な低さだ(低いほど良い)ちなみにスペイン語が突出して低いがAIはスペイン語が得意なのだろうか?発音が認識しやすいのかな?とても自分には聞き取れないが。

OPENAIの公式ブログを見ると「Whisperは、ウェブから収集した68万時間に及ぶ多言語・マルチタスク教師付きデータで学習させた自動音声認識(ASR)システムである。」

68万時間!データセットを作るのに、どれだけ莫大な計算能力と時間がかかったのだろう。さすが、かの有名なGPT-3を作ったOPENAIだ。

早口言葉や、スポーツの実況、K-POPの歌詞や、多人数での会話まで文字起こし出来るらしい。

さっそくローカル環境で動かしてみることにした。


しかし早速エラーが

RuntimeError: “slow_conv2d_cpu” not implemented for ‘Half’

ハーフつまり浮動小数点演算精度 半精度 FP16のことだろう。

そこで該当のPythonファイルdecoding.pyを調べる


どうやら100行目にuse fp16 for most of the calculation(計算の大部分にfp16を使用)と、いかにもなコメントを発見

TrueからFalseへ変更して保存。Notebookを再起動して実行!果たして…

見事に文字起こし成功!精度も素晴らしい。しかし40秒もかかっている…

このwhisper学習モデルが選べるのだが、下記の表の通り、モデルが大きくなれば処理に時間がかかりVRAM使用量も増える。私のGPUはGTX1660Ti 6GBだから~5GBのmediumで試したのだが、標準のbaseに比べたら8倍も時間がかかるようだ。よし、ここは素直に標準のbaseで試そう。



baseにした所、時間は10倍以上短縮されたが、「whisper」が「ビスパー」になってるし「文字起こし」は「文字を越し」

これでは『最新の凄い文字起こしAI』とはいえない。最近のスマホ以下だろう。やはり圧倒的な精度で実行したい。

そこで違和感に気がつく、さっきのランタイムエラー

“slow_conv2d_cpu”・・・CPU?

GTX1660Tiを使っていたから、いつも通りGPUのせいかと思ったら、これCPU実行じゃん!タスクマネージャーでもnvidia-smiでもVRAM全然使ってない!

かと言ってコードに不審な点もない。

そこでPIP LISTでTorchバージョンを見たところ、やはりCPUバージョンのTorchが入っていた。最近あまり使っていないconda環境だからPytorchのバージョンを忘れていたのが原因だった。

pip3 uninstall torch torchvision torchaudioで現状インストールされているPytorchを全て消し。

pip3 install torch torchvision torchaudioでCUDAバージョンのPytorchを入れた。

さあ、これでwhisperの真の実力がわかる!いざmediumモデルで実行!


11.7s!! CPUで実行した際の40.1秒から4倍近く早くなった!文字起こしの精度も完璧だ!

ちなみに、なんでこんな事になったかというとubuntu 20.04だと上手くGit installが出来ず、WSL2でubuntu 18.04を開くもPython3.7や3.6だとtransformerの互換性エラーが出てしまう。

そこで以前Stable Diffusionのときに作ったconda環境のPython3.85をTerminalで開いて

pip install git+https://github.com/openai/whisper.git

と打ったらあっけなくinstall出来たので、そのまま使っていた(どのPytorchを入れていたかは忘れていた。)と言うわけだ。

Stable DiffusionもFP16を使うのでGPUがエラーを起きた際にCPUで動かしたりしたのだろう。その後Stable Diffusionは別の方法で解決したので※別の記事で解説 CPUバージョンのPytorchのままだったのかもしれない。

最近はWSL2 DockerDesktop anaconda3と簡単に様々な仮想環境を作成出来るので、それぞれの詳細なSitePackageまでは把握しきれない。

ただ、フレームワークやライブラリの確認は開発の基本だから今後は気を付けたい。

ちなみにOPENAIのwhisperは、あらゆるフォーマットに対応するffmpegを利用するのでmp3でもAACはもちろん。mp4の動画でも、ファイルを指定すれば文字起こししてくれる。

一度ローカル環境を作ってしまえば、何度でもすぐに使える今日現在最高に便利な文字起こしAIなので、みなさんも是非試してみてはいかがだろうか。

【AI向けで高コスパなGPU RTX3060 12GB】

AIミステリー小説 第2章

俺は情報提供の準備を進め、信頼性のある報道機関に証拠を届けるための手段を探った。 メディアに証拠を提供することで、事件を世間に知らせ、製薬会社の闇を暴露するための力を高めることが不可欠だと考えていた。 その準備の過程で、俺は元アナウンサーで現在はジャーナリストとして活躍している久...