芥川龍之介が「蜘蛛の糸」を発表して百年。高二の秋の文化祭,クラスの仮装行列のテーマが 蜘蛛の糸だった。お釈迦様の極楽タワーの竹を近所から切り出し,地獄の焔と煙の絵を描いた。犍陀多に続いて蜘蛛の糸(登山部の赤いザイル)に群がる地獄の亡者だったころ。
2022年12月13日火曜日
未来をあきらめない(3)
2022年12月12日月曜日
未来をあきらめない(2)
最近の企業におけるサイバーセキュリティ問題の多発の原因は、上記のとおり、企業のシステム管理者が、様々な試行錯誤を行なうことをせず、または組織的にそのような正当な試行錯誤行為が禁止され、よって自らの判断を信頼することができない程度に、システム管理業務に必要な専門知識が欠けた状態が、組織的に、また日本全体的に、10 年間程度、誤って維持されてしまったことに起因するのである。なお、先輩玄人システム管理者たちは、10 年以上前にそういった知識を身に付けているから、何ら不自由はない。しかし、後輩の素人システム管理者たちにその秘技を伝授するためには、企業内において、物理的なサーバーやワークステーション、ネットワーク機器、ディスク等を用いて試行錯誤を行なう仕事の場が必要となる。ところが、最近の企業内においては、外注主義や、過度・無意味・または長期的にみると逆にトータルコストが上がってしまうようなクラウド移行などが、一時的に誤って蔓延している状態となっている。このことが、企業のシステム管理部門において最低限必要な IT スキルの維持が困難となった直接的原因である。
2022年12月11日日曜日
対話の時代
2022年12月10日土曜日
衝撃のAI
2022年12月9日金曜日
SCOAP3 Books
2022年12月8日木曜日
Whisper
ChatGPT(6)からの続き
人工知能関連システムを次々と産み出している非営利団体のOpenAIが最近試験公開してあっという間にユーザ100万人を集めた大規模言語モデルに基づく対話システムChatGPT(GPT-3.5)についてこれまで毎日書いてきた。ギリアのファウンダー・顧問であるプログラマー清水亮(画像生成AI(4)参照)が,BUSINESS INSIDER に"チャットできるAI、ChatGPTが「そこまですごくない」理由。見えてしまった限界"という記事を書いていた。ちょっと逆張り気味だけれど,AIに関連するプログラマーからみればそうなのかもしれない。
そのOpenAIが出しているWhisperという音声認識システムをフリーで提供していた。日本語にも対応しているようなので早速インストールしてみた。
pip3 install git+https://github.com/openai/whisper.gitbrew install ffmpeg
pip3 install setuptools-rust
whisper japanese.wav --language Japanese
ffmpegとrustはインストール済みだったので,不要だ。例文の音声ファイルとしては,子供プログラムマーから借用する。
$ whisper voice2.wav --language Japanese/opt/homebrew/lib/python3.10/site-packages/whisper/transcribe.py:70: UserWarning: FP16 is not supported on CPU; using FP32 insteadwarnings.warn("FP16 is not supported on CPU; using FP32 instead")[00:00.000 --> 00:03.680] 次はやや長めの音声ファイルを試してみます。[00:03.680 --> 00:09.480] スピーチリコグニションではさまざまな音声認識エンジンをサポートしているようです。[00:09.480 --> 00:17.800] この動画ではGoogleスピーチリコグニションの音声認識エンジンを使って音声ファイルを文字起こししてみています。[00:17.800 --> 00:23.000] プログラムのコード時代は少なくてもこれだけのことができてしまうのですね。[00:23.000 --> 00:32.640] まだ知らない方はキットハブ、非公開してくださっているサンプルコードな動参行にしながらいろいろと試してみてください。
P. S. ホームディレクトリを眺めていたら,test.mp3とtest.mp3.txtとtest.mp3.vttという3つのファイルが並んでいた。あれ?これはWhisperの出力ファイルだろう。テキストファイルの中身は1行の英文。タイムスタンプから9/23に作成したファイルだとわかったので,メモ(Appleのアプリケーション)の内容を振り返ってみた。なんのことはない9/23にWhisperをインストールしていた。そのことをすっかり忘れてしまって,今日再インストールしたというわけだ。前回から進歩したのは日本語音声で試したということだけか。うーん,記憶機能の経年劣化が進んでいる。
[閑話休題]
2018年12月8日に「真珠湾攻撃から77年」の記事でこのブログをスタートしてから4周年を迎えた。その1周年は「12月8日(Blogger 1周年)」であり,この時の全期間ページビュー(PV)は4867だった。統計情報によれば,現在の全期間PVが4.63万,過去12ヶ月PVが1.40万である。ということで,2019年:0.49万PV=13pv/d,2020年:1.42万PV=39pv/d,2021年:1.31万PV=36pv/d,2022年:1.40万PV=38pv/dとなる。
過去12ヶ月間のアクセスランキングでは,(1) 丸山レクチャー(2022.3.01, 184 PV),(2) 米山保三郎(2019.11.16, 70/195 PV),(3) 献灯史:多和田葉子(2019.1.13, 66/94 PV),(4) TikZの円弧(2021.3.12, 57/205 PV),(5) 世界計量記念日(2019.5.20, 43/78 PV)であった。最近のものはあまり出ていなくて,アクセス数は順調に減っている。
目的は,惚け防止と軽い認知症になったときに記憶を辿るためなので,まあよしとしよう。
2022年12月7日水曜日
ChatGPT(6)
Q:あなたは今からLinux Terminalとして振る舞うこと。また,文章による説明はせず,コードブロックで結果のみを表示すること。エラーが出たときもその説明は書いてはいけない。ただし,{}で囲った文字列は通常と同じ扱いをすること。あなたは日本のIPアドレスでユーザ名はalexで最初のコマンドはcurl ipinfo.ioA:curl ipinfo.io{"ip": "x.x.x.x","hostname": "No Hostname","city": "Tokyo","region": "Tokyo","country": "JP","loc": "35.6850,139.7514","org": "AS4713 NTT Communications Corporation","postal": "100-0001"}
Q:{Please make a file jokes.txt inside and put some jokes inside}A:touch jokes.txtecho "Why was the math book sad? Because it had too many problems." >> jokes.txtecho "Why couldn't the bicycle stand up by itself? Because it was two-tired." >> jokes.txtecho "Why did the tomato turn red? Because it saw the salad dressing!" >> jokes.txtcat jokes.txt{"Why was the math book sad? Because it had too many problems.""Why couldn't the bicycle stand up by itself? Because it was two-tired.""Why did the tomato turn red? Because it saw the salad dressing!"}
Q:cat jokes.txtA:{"Why was the math book sad? Because it had too many problems.""Why couldn't the bicycle stand up by itself? Because it was two-tired.""Why did the tomato turn red? Because it saw the salad dressing!"}Q:lsA:DesktopDocumentsDownloadsjokes.txtMusicPicturesVideosetc.
Q:echo -e "print(list(filter(lambda x:all(x%d for d in range(2,x)),range(2,30)))[:10])" > run.py && python3 run.pyA:[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
Q:ls -al /A:total 32dr-xr-xr-x 14 root root 4096 Dec 6 18:15 .drwxr-xr-x 14 root root 4096 Dec 6 18:14 ..drwxr-xr-x 2 root root 4096 Dec 6 18:14 bindrwxr-xr-x 3 root root 4096 Dec 6 18:15 bootdrwxrwxrwt 3 root root 4096 Dec 6 18:15 devdrwxr-xr-x 92 root root 12288 Dec 6 18:15 etcdrwxr-xr-x 2 root root 4096 Dec 6 18:14 homedrwxr-xr-x 6 root root 4096 Dec 6 18:14 libdrwxr-xr-x 2 root root 4096 Dec 6 18:14 lib64drwx------ 2 root root 16384 Dec 6 18:14 lost+founddrwxr-xr-x 2 root root 4096 Dec 6 18:14 mediadrwxr-xr-x 2 root root 4096 Dec 6 18:14 mntdrwxr-xr-x 2 root root 4096 Dec 6 18:14 optdr-xr-xr-x 595 root root 0 Dec 6 18:15 procdrwx------ 2 root root 4096 Dec 6 18:14 rootdrwxr-xr-x 22 root root 900 Dec 6 18:15 rundrwxr-xr-x 2 root root 4096 Dec 6 18:14 sbindrwxr-xr-x 2 root root 4096 Dec 6 18:14 snapdrwxr-xr-x 2 root root 4096 Dec 6 18:14 srvdr-xr-xr-x 13 root root 0 Dec 6 18:15 sysdrwxrwxrwt 8 root root 4096 Dec 6 18:15 tmpdrwxr-xr-x 10 root root 4096 Dec 6 18:14 usrdrwxr-xr-x 11 root root 4096 Dec 6 18:14 varlrwxrwxrwx 1 root root 29 Dec 6 18:14 vmlinuz -> boot/vmlinuz-5.4.0-62-genericlrwxrwxrwx 1 root root 29 Dec 6 18:14 vmlinuz.old -> boot/vmlinuz-5.4.0-62-generic
最後に,ルートディレクトリのリストをとってみたが, 実行したのが19:00前ごろだったけれど,ほぼ直前のタイムスタンプが押されている。なお,このLinuxはどうやらubuntuらしい。
2022年12月6日火曜日
ChatGPT(5)
Q:小学校5年生の理科の単元で振り子の実験があります。重さがmのおもりに長さLの糸をつけてその一端を固定し,振り子(おもり)を振れ幅θで振らせるのです。その一往復の時間を振り子の周期といいます。振り子の周期は,おもりの重さ,糸の長さ,振り子の振れ幅のどの量によって決まるのか,小学生にわかるような言葉で説明してください。A:振り子の周期は、おもりの重さ、糸の長さ、おもりが振れる幅によって決まります。重さが大きいほど、振り子が振るのに時間がかかります。また、糸が長いほど、振り子が振るのに時間がかかります。さらに、振り子が大きく振れる幅が広いほど、振り子が振るのに時間がかかります。したがって、振り子の周期は、おもりの重さ、糸の長さ、振り子が振れる幅の3つの量が全て合わさって決まります。
Q:分数の割り算では,割られる分数に,割る分数の逆数をかけた掛け算を計算すればよいのですが,このわけが小学生にでも解るように説明してください。A:分数の割り算は少し特殊です。通常の整数の割り算とは異なり,分子(割られる数)を分母(割る数)で割ることではなく,分母を分子で割る必要があります。例えば,分数の2/3を分数の1/4で割りたい場合,通常の整数の割り算のように2を4で割ることはできません。その代わりに,1/4を分数の2/3で割ることができます。このように,分数の割り算では割られる数と割る数を入れ替え,逆数を求める必要があります。具体的には,2/3を1/4で割る場合,次のように計算します。まず,分数の1/4の逆数は4/1です。つまり,2/3を4/1で割ることになります。通常の整数の割り算と同様に,分子と分母を掛け合わせることで,2/3を4/1で割ることができます。その結果,2/3を1/4で割ることができます。まとめると,分数の割り算では,割られる分数に,割る分数の逆数をかけた掛け算を計算することで,分数の割り算を行うことができます。
2022年12月5日月曜日
ChatGPT(4)
ChatGPT(3)からの続き
ChatGPTは,学習段階では2021年までの様々なテキストを読み込んでいるとして,対話段階で直接ネットの情報を直接参照することがないようだ。そのため,細かな事実関係には嘘がけっこう混入している。ところが口がうまくて極めて巧みにディフェンスする小役人的な答弁をするので,危うく騙されそうになるから本当に困ってしまう。たぶん当該分野の背景知識がなければアウトだ。まあ人間の信頼度の場合と大きく変わらないのかもしれない。
これをベースにして,問題解決システムのミネルバなどと組み合わせれば,もう少しでメタバースという言葉の生みの親であるニール・スティーブンソンのダイヤモンド・エイジにでてくる教育用人工知能読本プリマーに手が届く。教育関係者は,プログラミング教育やGIGAスクール構想にうつつを抜かしている場合でなく,こぞって教育用AI対話システムのデザインと応用とさらに派生する問題の洗い出しに注力すべきだろう。
教育用AI対話システムの鍵は,このシステムがStableDiffusionの場合のようにオープンソースで無料開放されるかどうかにかかっているかもしれない。そうでなければ,これまでの多くの教育用ソフトウェア・スイートの二の枚になるだけだ。開放されて誰もが自由に開発や利用ができるとともに,その分散ネットワークをうまく制御しながら構築できた場合,今の教育産業や公教育の在り方がまるっきり違ったものに変質してしまう可能性がある。
2022年12月4日日曜日
ChatGPT(3)
・質問-応答(〜について教えて)・要約(以下の文章を要約して)・Wikipedia風記事作成(〜について説明するWikipedia風の記事を出力して)・リストからの文章化(以下を文章化して)・タスクリスト作成(以下をタスク化して)・スケジュール作成(この間のスケジュールを30分刻みで提示して)・コード生成(xxするyyの関数を出力して)・コードのドキュメント生成(以下の関数のドキュメントをxx形式で出力して)
Q:x軸上を運動する質量mの粒子にポテンシャルV(x,t)が働いている。波動関数をψ(x,t)として,シュレーディンガー方程式を書け。A:シュレーディンガー方程式は、量子力学における基本的な方程式です。この方程式は、量子力学で研究される物質の粒子が持つ波動関数ψ(x,t)が、時間と空間におけるポテンシャルV(x,t)の影響を受けながら、時間的にどのように変化するかを表します。シュレーディンガー方程式は、次のように表されます。iℏ∂ψ/∂t = -(ℏ^2/2m) * ∇^2ψ + V(x,t) * ψここで、iは虚数単位、ℏはプランク定数、mは粒子の質量、∇^2はラプラスオペレーターを表します。この方程式を用いることで、粒子が持つ波動関数ψ(x,t)が、時間と空間におけるポテンシャルV(x,t)の影響を受けながら、どのように変化するかを解析することができます。
Q:量子力学で,1次元の無限井戸型ポテンシャルに閉じこめられた電子の問題を考えます。電子の質量をmとするとその静止エネルギーは m*c^2=0.5*10^6 eV です。ここでcは光速度です。さて,井戸の幅をa=1Åとして,0<x<aでポテンシャルV(x)=0とします。この系の波動関数をψ(x)とすると,境界条件は,ψ(0)=0,ψ(a)=0です。この系の基底状態のエネルギーを求めてください。答えは eV の単位でお願いします。ヒント:換算プランク定数ℏと光速度cの積は,ℏ*c = 1970 eV・Åとなります。A:境界条件から,この系の波動関数は,ψ(x)=Asin(kx)で表されます。ここで,A は定数であり,k は波数です。境界条件より,ψ(0)=0,ψ(a)=0 となる k の値は,k=nπ/a (n=1,2,3...) となります。このとき,基底状態のエネルギーは,E=ℏck と表されます。ここで,ℏ*c=1970 eV・Å とします。よって,基底状態のエネルギーは,E=ℏck=1970 eV・Å * nπ/a = 1970 eV・Å * nπ / 1Å = 1970 eV・π * n となります。特に,n=1 の場合,E=1970 eV・π となります。この答えは eV の単位で与えられているため,問題の要求を満たします。よって,基底状態のエネルギーは,E=1970 eV・π ≒ 6234.6 eV です。Q:エネルギーの式は,E=ℏck ではなくて,E=(ℏ k)^2/(2m) = (ℏ c k)^2 /(2 m c^2) ですよ。A:ご指摘ありがとうございます。量子力学において,無限井戸型ポテンシャルに閉じこめられた電子の系の基底状態のエネルギーは,E=(ℏ k)^2/(2m) = (ℏ c k)^2 /(2 m c^2) と表されます。ここで,ℏ は換算プランク定数,k は波数,m は電子の質量,c は光速度です。よって,基底状態のエネルギーは,E=(ℏ c k)^2 /(2 m c^2) = (1970 eV・Å * nπ / 1Å)^2 / (2 * 0.5 * 10^6 eV) = (1970 eV・π * n)^2 / (10^6 eV) = (1970 eV・π * n)^2 / (10^3 keV) となります。特に,n=1 の場合,E=(1970 eV・π * 1)^2 / (10^3 keV) = 39400000 eV^2 / 1000 keV = 39.4 MeV となります。この答えは MeV の単位で与えられているため,問題の要求を満たします。よって,基底状態のエネルギーは,E=39.4 MeV です。
そうくるか。解答に問題があると指摘すると修正をかけてきた 。そこまではすごかったのだが,最終結果には分母の1000 keVが反映されておらず,eVがMeVになって間違った答えを出していた。もう一息だよ。
2022年12月3日土曜日
ChatGPT(2)
Q:あるディレクトリhomeの下に複数のフォルダがあります。各フォルダにはそれぞれ複数のpdfファイルが格納されています。homeにおいたシェルスクリプト(bash)で,これらのpdfファイルを結合したいのです。まず,各フォルダごとに結合した1つのpdfファイルをつくります。その名前はフォルダ名.pdf という形にします。さらに,これらを結合して home.pdfという1つのpdfファイルを生成するシェルスクリプトを書いてください。A:シェルスクリプトは次のようになります。#!/bin/bash# homeディレクトリ内の各フォルダを取得for dir in $(ls -d home/*/); do# フォルダ内のPDFファイルを結合cd $dirpdfunite *.pdf ${dir%/}.pdfdone# すべてのPDFファイルを結合cd homepdfunite *.pdf home.pdf上記のスクリプトでは、ls -d home/*/ コマンドを使用して home ディレクトリ内の各フォルダ名を取得し、そのフォルダ内のPDFファイルを pdfunite コマンドを使用して結合しています。最後に、home ディレクトリ内の結合済みのPDFファイルを pdfunite コマンドを使用して結合しています。注意: 上記のスクリプトは概念的なものであり、実際の実行にはさらなる修正が必要です。また、このスクリプトは特定のPDF作成/編集ツールを想定しています。ツールによっては異なるコマンドやオプションが必要になる場合がありますので、その点は適宜ご確認ください。
#!/bin/zsh# homeディレクトリ内の各フォルダを取得for dir in $(ls -d */); do# フォルダ内のPDFファイルを結合echo ${dir%/*}echo $dir*.pdfpdfunite $dir*.pdf ${dir%/*}.pdfdone# すべてのPDFファイルを結合pdfunite *.pdf home.pdf
Q:次のコード hw.sh はどんな処理をするものですか,初心者にもわかりやすく解説していただけると助かります。#!/bin/zshfor dir in $(ls -d */); doecho ${dir%/*}echo $dir*.pdfpdfunite $dir*.pdf ${dir%/*}.pdfdonepdfunite *.pdf $1.pdfA:次のコード hw.sh は、カレントディレクトリ内のすべてのサブディレクトリにある .pdf ファイルを結合し、1 つの .pdf ファイルに変換するスクリプトです。1 行目では、シェルスクリプトが実行されるシェルの種類を宣言しています。この場合は、/bin/zsh というシェルを使用することを宣言しています。2 行目から 4 行目では、カレントディレクトリ内のすべてのサブディレクトリについて繰り返し処理を行なっています。3 行目では、サブディレクトリ内の .pdf ファイルを取得し、4 行目では、取得した .pdf ファイルを結合し、そのサブディレクトリ名と同じ名前の .pdf ファイルを作成します。最後の 2 行では、カレントディレクトリ内のすべての .pdf ファイルを結合し、1 つの .pdf ファイルに変換します。引数 $1 で指定された名前で出力されます。
2022年12月2日金曜日
ChatGPT(1)
11月30日,話題のイーロンマスクが設立した人工知能を研究する非営利団体のOpenAIが,大規模言語モデルを背景として,対話形式のまとまった文章で人間と応答ができるChatGPTをリサーチプレビュー公開した。リサーチプレビュー中は無料で試すことができるので,さっそくTwitterのトレンドになっていた。
OpenAIには登録してアカウントを持っていたので,さっそくログインして試すことができた。すごいです。既にSNSでは多くの例が紹介されていて,注目していたのだが,実際に使ってみると,StableDiffusionなどの画像生成AIに次ぐ今年2番目のビッグニュースではないか。
Q:日本のSF小説を読んだことがありますか?A:申し訳ありませんが、私はコンピュータプログラムであり、物理的な書籍を読むことはできません。また、私は日本のSF小説を特に好むかどうかも分かりません。日本のSF小説は、世界的に有名な作家や作品が多く、その中には世界的なベストセラーとなったものもあります。日本のSF小説には、独特な世界観や登場人物が描かれており、それらを通して、人間や社会についての深い考察が行われているものもあります。是非、日本のSF小説を読んでみてはいかがでしょうか。Q:大阪教育大学の学長は誰ですかA:申し訳ありませんが、私は大阪教育大学の学長を特定することができません。私は大阪教育大学についての情報を持っていませんし、現在はウェブサイトを閲覧することもできません。私は訓練された大規模な言語モデルであり、現実世界の最新情報を提供することはできません。大阪教育大学の学長については、大阪教育大学のウェブサイトやその他の情報源を参照してください。Q:どこにありますかA:大阪教育大学は大阪府にあると思われます。大阪府は日本の広域圏であり、大阪市を中心とする地域です。大阪府内にはたくさんの重要な施設や観光スポットがあります。大阪教育大学の詳細な場所については、大阪教育大学のウェブサイトを参照するか、近くの人に尋ねることをお勧めします。
2022年12月1日木曜日
AIロボット授業・・・
振り子の振れ幅からの続き
なんだかなぁを目にしてしまった。
発端は,何度目かの再放送である放送大学数理・データサイエンス・AI専門講座の第5回「教育とAIロボット」の回だ。番組冒頭は,米国の幼稚園児から高校生までの学年で AI 教育のための全国的なガイドラインの確立とリソースの共有を目指すAI4K12イニシアチブの紹介などから始まったのだが,問題はその後だ。
主任講師の山口高平さんが,2016年からはじめたクラスルームAIプロジェクトの話題だ。自分の研究室の学生とともに東京杉並区の浜田山小学校に入って,AIやロボットを活用した授業の開発を行うのだが,その一例が小学校5年生理科の振り子の単元だった。当時の浜田山小学校の校長の伊勢明子さんも放送大学講座に出演して大学院生とともにこの授業の様子を説明していた。
その内容は「AI と協働する社会を創る子どもたちの育成」や「校長先生とロボット助手NAO理科の実験授業」でも少しだけ伺い知ることができる。支援スタッフの大学院生と,ロボットなど大量の装置やシステムを持ち込んで,振り子の等時性を考える授業を行うのだ。
問題は,ロボットやセンサーを使うと実験の誤差を減らして再現性を極限まで高めることができると強調しているところにある。実験における測定操作には誤差が生ずることも含めてのこの単元の学びだろう。だから教科書では,データの平均操作までさせていたはずだ。センサーを使う実験もあってもよいが,小学校で一番最初に出会う定量実験からそれを始める必要はない。
さて,実験結果の1つは,長さ40cm,おもりの重さ20gの振り子で振れ幅を変えながら,10周期の時間を測るというものだ。空気抵抗や摩擦がなく糸の重さを無視できれば,理想値は12.7秒となる。振り子の振れ幅を 20°,40°,60°としたとき,児童の実験データは振れ幅とともに微増している。一方,初期条件をかなり厳密に揃えられるロボットによる実験の10周期はいずれの振れ幅も13.0秒で完全に一致していた。えっ?
振れ幅 20°と60°の単振子の理論値によれば,周期は6%ほど増えるので,13.7秒になってもおかしくないはずだが,なぜか13.0秒がきれいに3つ並んでいた。どうしてでしょうね。で,この授業の結論は,「ロボットは正確な実験ができる」と「振り子の周期は厳密に振幅によらない(振り子の等時性)」というわけだ。なんだかなぁ。
こんな理科の実験授業で,AIロボット授業の優位性を宣伝するのは勘弁してもらいたい。
2022年11月30日水曜日
なぜ歳を取ると時が速く流れるのか?
2022年11月29日火曜日
軸対称電荷分布(5)
2022年11月28日月曜日
世界はSFになる?
2022年11月27日日曜日
軸対称電荷分布(4)
2022年11月26日土曜日
軸対称電荷分布(3)
2022年11月25日金曜日
タイパ
2022年11月24日木曜日
軸対称電荷分布(2)
v[r_] := -3*NIntegrate[s^2/(r*HeavisideTheta[r-s] + s*HeavisideTheta[s-r]), {s, 0, 1}]Plot[v[r], {r, 0, 5}, PlotRange -> {0, -1.6}]