AI関連 開発メモ

■学習日記

2018~2019年はこちら
2020年はこちら

2021.1.6

今日は寒かった。暖房をつける代わりにAI等の計算にGPUリソースを無料で貸し出します!
詳細は下記メールまで。
GTX1080, memory=12GB, CPU=i5-4460@3.2GHz(4core)、SSD数百GB空き、Ubuntu18.04

2021.2.15

リソースの無料貸し出しは暖かくなってきたので終了します。
誰もこの日記を読んでいないから申し込みは無いはずですけど。

2021.5.16

今回はネタ話。
半年くらい前から山登りを始めたのですが、とても気になるのが鳥の鳴き声。
ウグイスやカッコーなら誰でも知っていると思いますが、普段聞き慣れない鳴き声があると調べる手段が全くない。
知りたいことは、鳥の鳴き声から鳥の名前と鳥の画像。
YouTubeなどで調べてみるけど、なかなか見つけられない。
しかも鳥によっては鳴き方が色々ある。
Googleさんやってくれないかな~
でも難しいよね~
人間の音声認識で今は精一杯だからね。

2022.2.3

グラボが載っているPCでは、まだtensorflowが入っていなかった。
NVIDIAのdriverも古い(Ver.418.67)ので、まとめてバージョンアップ!
こちらを参考にやるけど、やはりというか当然のごとくうまくいかない。

sudo apt-get install --no-install-recommends \
cuda-11-0 \
libcudnn8=8.0.4.30-1+cuda11.0 \
libcudnn8-dev=8.0.4.30-1+cuda11.0

ここでエラー
cuda-11-0 : 依存: cuda-runtime-11-0 (>= 11.0.3) しかし、インストールされようとしていません
依存: cuda-demo-suite-11-0 (>= 11.0.167) しかし、インストールされようとしていません

ところで、NVIDIA driverが古いままなのでversion upしたいがこれまた色々とエラーが起きる。色んなことを散々試したけど結局、

sudo apt-get install cuda-drivers
sudo reboot

たったこれだけですべて解決!
(今までの苦労はなんだ?)

しかもNVIDIA driverはNVIDIAから直接提供されるものよりずっと新しい。(なぜ?)

NVIDIAサイトからダウンロードしたドライバー:Ver.470.94
上記コマンド(cuda-drivers):Driver Version: 510.39.01 CUDA Version: 11.6
→数日後NVIDIAサイトのdriverも同じバージョンに更新されていた

tf.config.experimental.list_physical_devices('GPU')

→まだダメ

その後さらに色んなことをやってようやく動いた!

本当に色んなことをやったので何が正しいかわからないけど、効果があったと思われるものをメモしておきます。
(ここから太字は必須だとわかった項目)

sudo apt remove cuda-10*
sudo apt autoremove

sudo apt-get install --no-install-recommends \
cuda-11-0 \
libcudnn8=8.0.4.30-1+cuda11.0 \
libcudnn8-dev=8.0.4.30-1+cuda11.0

sudo apt-get install -y --no-install-recommends libnvinfer7=7.1.3-1+cuda11.0 \
libnvinfer-dev=7.1.3-1+cuda11.0 \
libnvinfer-plugin7=7.1.3-1+cuda11.0
※エラーが出たらそれに従う
sudo reboot

ここでwarningが少し減った。

sudo apt-get install --no-install-recommends \
cuda-11-0 \
libcudnn8=8.0.4.30-1+cuda11.0 \
libcudnn8-dev=8.0.4.30-1+cuda11.0
sudo reboot

cd /usr/local/cuda-11.0/targets/x86_64-linux/lib
sudo ln -s libcusolver.so.10.6.0.245 libcusolver.so.11

cd /usr/local/cuda-11.0/targets/x86_64-linux/lib
sudo ln -s libcusolver.so.10.6.0.245 libcusolver.so.11

↑見るからに怪しげなリンクだけど、これがないと動かない
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64

tf.config.experimental.list_physical_devices('GPU')

→これで良さそうに見えたけど、実際に走らせると、
E tensorflow/stream_executor/cuda/cuda_dnn.cc:362] Loaded runtime CuDNN library: 8.0.4 but source was compiled with: 8.1.0.
こんなのが出る。

また色んなことをやって、

sudo apt-get install libcudnn8=8.1.1.33-1+cuda11.2 libcudnn8-dev=8.1.1.33-1+cuda11.2
sudo reboot

※cudaのバージョン番号が一致しないけど互換性があるだろうと信じ。。

これでようやくOK!→いや、Yoloでまだエラーが出る

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 52%   61C    P2   158W / 210W |   7866MiB /  8192MiB |     83%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

Yolov4を使用すると、libcublas.so.10.0 を要求してくる。
それじゃ、libcublas.so.10.0 -> libcublas.so.10 へのsymbolic linkを張れば良いはず。
しかし、さらにversion番号も厳格にチェックしているようで、10.0では無いというエラーが出る。

・原因は、Yoloを古いcudnnでビルドしたから
・根本的解決はYoloをrebuildすること
・rebuildが嫌なら
sudo apt install cuda-10-0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/targets/x86_64-linux/lib
で解決できたが、3GBも追加で消費するので。。
→結局、最新のYolov4をgit cloneして構築し直した
ちなみにUbuntu18だとcmakeが古いため、build.shではbuildできず。
cmakeを無理矢理新しくする方法もあるが、自分はMakefileを直接書き換えてmake。

2022.4.17

RNNによる相場予測。
相場の動きをパターン化してそれを予測すれば良いだけだった。
恐らく50%の確率が出力されると思うけど、それはそれで正しい。

最近次の二冊を購入した。(どちらもオライリー出版)

実践 時系列解析 ―統計と機械学習による予測
Pythonからはじめるアルゴリズムトレード ―自動売買の基礎と機械学習の本格導入に向けたPythonプログラミング

前者の方はまだ第二章を読んでいるところですが、期待していた内容の予感。
後者の方は購入するか迷ったけど、総仕上げの意味を考えて購入。恐らく今まで自分が構築してきたもの・考えとほぼ同じものだと思うけど他人の考えと相違点があるのか確認するのもいいかも。
いずれレビューを掲載するかもしれません。(読んでいる時間全くないけど)

2022.5.25

相場の予測AIっていうのは世界中で血眼になってやられていると思うが、そもそも相場が動く大きな要因は社会的・政治的・経済的な要因・要素が非常に大きく、相場を本気予測するとしたらそういう社会的・政治的・経済的なことをAIで予測する必要がある。
そんなものどんなに優秀なAIを使っても絶対に不可能なので、予測したいとは思っていない。

現時点で考えいているのは、為替相場などの過去の情報をAIに入力し、それをAIが説明できるのか?

つまり、未来予測は不可能であれば、過去を説明できるのか、という考え方。
もし過去を説明できないのであれば、未来すら予測できない、と言う考え方。

では過去を説明できたら未来を予測できるのか、って言われたらアナリストなどはすべて該当する(笑)
しかし、AIならそういうインチキアナリストよりはマシな予測をするだろう、というほとんど根拠のない発想。

そういうことを本当はやりたいけど、時間が全くないorz

2022.12.30

しばらくAIの(自分の)学習に取り組んでいましたが、時間が取れずにそれすらも進まず。。
そんな中、G検定を受検することにしました。きっかけは(珍しく)会社が補助を出してくれるから。(1万5千円も!)
しかも上司に簡単だから、と豪語してしまったので合格必須。
体験記を読むと一ヶ月前から勉強を始めて合格って言う人が多いけど、AIの全体像を知りたいと言うことから三ヶ月前から始めました。
(試験日は来年の3月初め)

今は教科書本のAppendixを除いて読んだところ。
機械学習の最初のところまでは楽だったけど、ディープラーニングになると意外と盛りだくさん。
最近の情報も盛り込まれているので、知らない単語もわんさか出てくる。
暗記すれば合格できそうだけど、暗記って言うのが大の苦手なので、どうやって覚えようか。

全体像は把握できたし、自分の知らなかったことを教科書本から抽出したら800行(空行含む)も無かったので、これを二ヶ月で覚えるのは難しくないだろう。
(問題はどれくらい忘却してしまうかが予測できない)

私はある程度機械学習やディープラーニングを知っているからいいけど、初めての人はこの本を読んだだけではちんぷんかんぷんだろうなぁって気がする。
それでもこの教科書本は限られたページ数の中でなんとかわかりやすいように短くまとめられているので感心させられます。

結果は三ヶ月後に掲載します。

2023.1.18

ChatGPTが面白い。数年後、大化けする可能性大。

2023.1.28

技術評論社の「最短突破 ディープラーニングG検定(ジェネラリスト) 問題集 第2版」を7/8まで終わったところですが、教科書本に比べて難しい!
教科書本を一通り読んだところでG検定はいける!と確信したけど、技評の問題集でこれはやばい、という状態になっています。
一部のブログでは「G検定はビジネス系向け」と書いている人がいますが、ビジネス系の人(一般的には文系の人)は、特異値分解とかフーリエ変換とか知ってます?
理工系の大学生なら誰でも知っている(?)と思いますが、文系の人は知らない or 忘れたのどちらかのはず。
これは特殊な例としても、機械学習からディープラーニングまで広範囲に理解していないといけない感じ。暗記レベルでは無く理解が必要。

不純な動機で初めてとんでもないことに手を出してしまった!と思うところが無くも無いけど、あやふやだった部分の理解や、catch upできていなかった新しい知識を得られるので学習していて楽しいと思うところもある。

乗りかかった船なので最後までやってみよう。今受験したら50点くらいかな?(知らんけど)

2023.1.31

JDLAのプロモーション動画、「G検定はすべての人に役立つ」だそうで、これはもう宗教だな。。狂ってる。

2023.2.3

G検定教科書本二周目。大体自分の弱点が見えてきた。
Attention, Transformer, GPT, BERT, 強化学習などなど。自学習でやっていなかった分野が圧倒的に弱いと言うことが見えてきた。
この辺りを徹底的にやれば合格レベルには入れるかな?

個人的に、自然言語処理はGoogleとかそういう団体にお任せすれば良いし、強化学習はゲーム理論に興味が無いのでまったくやる気が無かった。
資格試験はやる気がある・なしは関係ないから面倒だね。。

2023.2.5

G検定教科書本二周目がほぼ終わり。ようやくゴールが見えてきた。
教科書本はあと一周+αで恐らく十分。(教科書本は読み直すと新たな発見があるので面白い)
問題集はあと二周必要。
模試は再来週に試す予定。
あとは弱点深掘りなどで記憶の定着をすれば合格できそう。

2023.2.11

問題集二周目、半分終了。問題集一周目の時は教科書本で学んだことをすっかり忘れている!これはもう歳のせいか!?
と愕然としたけど、あまりにも覚えるべき事が多くてオーバーフローしていただけでした。
全体像を把握できたので、問題集二周目になると意外と覚えていました。(まだ老化は進行していない)

ChatGPTが意外とマスメディアで大々的に取り上げられている。
「ChatGPTのお陰で仕事が楽になった」と言って喜んでいる人がいるけど、そういう仕事は間違いなくAIに置き換えられる。

2023.2.15

問題集二周目ほぼ終わり。予定よりちょっと早いけど模擬試験を試してみる。DIVE INTO EXAM
結果は、151/200点(75.5%)で不合格!?なんで?(いくつが合格なん?)
試験時間は本番と同じ120分だけど、最後まで解いて30分以上余る。見直したけど13分残して終了。。
試験内容の印象は、

・ブックマークする機能が無い。見直したいと思ったら一覧から選択するしかない
教科書本問題集に無い問題が結構出てくる
・全く同じ問題が二度出てきた(システムの問題)
・似たような問題も何度か出てきた(システムの問題)
・長文問題が全くない ←本番ではどうなの?
・計算問題は理系出身なら簡単なものしか出ない
・検索も含め、文章読解能力が試される (速読術を持っている人の方が圧倒的有利)

JDLAはみんな受験すべきと言っているけど、必要な人がやれば良いんじゃ無い?としか思えない。この程度の知識を覚えたところでなんの役にも立たないですよ。出題範囲はもっと絞って本質的な問題に焦点を当てるべき。(それがE資格だったりする?)
ただ、ビジネス上専門家では無い人と話すとき、共通認識があるのはとっても楽。

余計なものに手を出してしまったなぁと言うのが率直な意見。あやふやだったところ、全体像が見えたのは良かったけど、これ以上努力するモチベーションはほとんど残っていない。

教科書本、問題集を三周くらいすれば良いかな、と思っていたけど、模擬試験と弱点深掘りに重点を置いた方が良さそう。

最近知ったのは、GoogleなどはAIによるロボット開発は止めたらしい。コストに見合わないのが理由だとか。Wiredなんかの記事でもAIは理想に近づけようとすればするほどコストがかかると。逆にコストに制限がなければ理想的なものができるかもしれないと言うこと。その一つがChatGPTなんだろう。ChatGPTを超えるものを作るためにさらにコストをかけようとするかもしれないけど、結局ROIの制約で落ち着くのでいずれ終焉が来る。ちょっと前の松尾先生の講義では世界モデルを考えたAIが必要とか・・・これは途方もなさ過ぎ。
そろそろ第三次AIブームの終わりが見えてきたのかも?

それがもし現実だとしたら、ますますG検定のモチベーションが下がる。。

2023.2.19

最近はChatGPTでAIの学習をしている。
私はAIに学習をさせたいために、AIを使って私がAIの学習をしている。

模擬試験 Study-AI をやってみた。
結果182点(81%) 合格点は167点(74%)以上
・223問120分
・基本的な問題が多い、似たような問題もいくつか出る →このレベルなら確実に合格できるけど本番はこんな簡単じゃ無いよね?
・長文問題は少ない
1問ごとに提出ボタン(答え合わせ)なので手間がかかるし、間違いに気が付いても訂正できない→提出ボタンは一番最後で良かった
・ブックマーク機能は無し
・選択肢の場所と解答の番号のボタンが離れているので押し間違いが発生しやすく、注意を要する
・穴埋め問題で複数の解答がある場合、1つ1つの解答が別ページに分かれている。問題を読み直したり、内容の違いに注意する必要があり、手間がかかる
・問題文をコピペできない(検索に不便) ←本番はどうなの?

まとめると、問題自体は簡単なんだけど操作性が悪いので時間がかかる。

現時点の難易度:
Study-AI < 教科書本 < DIVE INTO EXAM < 問題集(茶本)
※個人の感想

しばらく模擬試験を中心にやってみる。そこで弱点が無くなれば基本OK。時事問題みたいなやつは試験の時に時間があればググれば良いという割り切り。
つまり、技術系だけは完璧にする、という方針。

2023.2.23

ずいぶん前にCM判別をやっていたけど、似たようなことをやって似たような結論を出していた人がちょうど同じ頃にいました。→こちら

あれから色々と検討したけど、結局RPA(クラス1)で極力自動化することに落ち着きました。

2023.2.24

AVILENの無料模擬試験をやってみました。(問題集の特典で一回限りの模擬試験)

はっきり言って、すっげー難しい。絶対に合格できない自信あり、でした。

概要を列挙してみると、

200問120分 - 自分は正解数101問 未回答52問(時間全く足りず)
・問題文が長いものが多い
・間違い探し問題が多いのでググれない(8割以上という印象、実際は半分強くらい?、TOEICで言えばNOT問題)
・計算問題は小学生レベル、数式問題はなかったはず
・ググる時間は全くなし(最初のうちはやったけど途中から諦め)
・時間が残ったとしても、一覧から戻る機能はなし?
・ブックマーク機能なし
・問題文のコピペはできる
・試験後の解説は充実、PDF化はできない?
・理工系に有利な問題も少しはあるが、読解力が試される。長文をいかに速く正確に読み解けるか?
・即答できる問題もあることはあるが、重箱の隅を突っつくような問題が多い

現時点の難易度比較:
Study-AI < 教科書本(白本) < DIVE INTO EXAM < 問題集(茶本)< AVILEN無料模擬試験

という感じですが、DIVE INTO EXAM と AVILENは雲泥の差がありますね。
DIVE INTO EXAMであれば、今の時点ですら合格できそうっていう感じですが、AVILENだとあと1~2ヶ月は勉強しないと合格は絶対に無理!っていう感じ。
なんですか、このレベル差。本番の試験ってどこのレベルなんでしょう?

AIド素人が一週間で合格したよ~ん、みたいな人をちらほら見かけますが、AVILENレベルで合格したのならあなたは東大くらい楽勝で合格できますよ。

かなり手の込んだ問題を出してくるAVILEN模試ですが、一つ非常に気になった問題がありました。

以下の選択肢のうち、間違っている選択肢を選べ。

という設問で選択肢のどれを見ても正しい。しかし、正解は次の選択肢だった。

実際の音声波形と全く同じ音声波形をデータとして取得することはできないため、どんなに精度良くデータ化しても完全な復元は困難である。

これは実際問題正しいが、間違いらしい。現在の技術で完全に復元できる方法は存在しない。あったら是非とも教えていただきたい。(そもそもこの復元という意味がわからない - 専門である私の解釈ではデジタルデータをアナログに復元すると解釈)
しかし解説を読むとサンプリング定理により(理論上は)可能だから、という理屈だった。量子化誤差は関係ないの?とか、完全な取得はできないのに完全な復元はできるってどういう補正しとるんじゃ?などなど突っ込みどころ満載。これが実現できたらSFの世界。
酷い問題だ。こんな問題出されるとやる気が失せる。
これを真に受けた人は間違ったことを学ばされたことになる。こんな変な問題は止めて欲しいよね

G検定の学習時間50時間って言われているけど本当かなぁ。もうそれくらいやっている気がするけど、AVILENの模擬試験だとあと50時間くらい必要な気がする。
G検定なんて止めておけば良かったかな。。
合格した人凄いなぁ。

やはり弱点は強化学習がまだふわふわしているし、時事系はほとんど知らない(勉強したくもない)。
時事系は試験中にググれば良いと思ったけどAVILEN模試レベルだとそんなことは無理。

G検定の合格率は60%くらい、野菜ソムリエは85%らしい。
そんなレベルの資格とは思えないけどなぁ。。難しすぎる。
AVILENの模擬試験をやっている人をググってみるけど見つからない。
本番がDIVE INTO EXAMのレベルだったら総仕上げをすればいいだけだけどなぁ、どうなんだろう?

G検定なんて所詮、文系出身の数式アレルギーの人がちょっと勉強してAIがわかるようになったよ!程度の資格だと思う。(野菜ソムリエにちょっと毛が生えた程度みたいなもん。難易度じゃなくて効用という意味で)

愚痴を並べても本番はあと一週間後なので、強化学習の理解を深め、時事系は少し深掘りして総仕上げするしかない。
もし不合格だったらG検定は二度と受験しないし、そのための勉強なんて一切御免。
G検定じゃなくて「AIソムリエ」でいいんじゃない?
エンジニアからすると要らない資格だった。

エンジニアの自分からするとG検定は嫌になってきたのであと一週間、我慢して勉強して解放されたい。

2023.2.25

強化学習がなぜふわふわしているのかというと原因の一つに言葉の定義が色々ありすぎて、それらが有機的に結びついていないところ。
それで一から確認していったところ変なものを見つけた。「価値関数」について。

教科書本p.140によると、

これらのうち大事なのが行動価値関数で、単純に「価値関数」と言った場合、行動価値関数を指します。

ふむふむ。

こちらの松尾研究室のスライドp.23によると、

状態価値関数 - 一般的に価値関数と呼ばれるもの

あれ?食い違ってる!どっちなん?
どちらも情報源としては信頼できるはずのものなのでわけわからん。。
恐らく文脈を読んでどっちなのか判断してね、だと思う。酷すぎる

ChatGPTに尋ねてみると、

「価値関数」という用語が使われる場合、通常は「状態価値関数 (state value function)」または「行動価値関数 (action value function)」のいずれかを指します。
(途中略)
したがって、「価値関数」という用語が使われた場合、通常は文脈に応じて状態価値関数または行動価値関数を意味することが多いです。

やはりそうか。
→2023年第一回のG検定でそのまんま試験に出た(笑)

本屋で雑誌「インターフェース」を立ち読み、AI特集で内容が面白くて即購入。
G検定と違って最新情報が掲載され、読んでいて楽しい。ChatGPTの詳細も解説されている。
(ChatGBPTはファインチューニングしなくても実現できている。その実現方法がユニークで、その発想はなかったと感心させられた)

2023.2.26

Study-AIの新シラバス対応を実施
100問 50分
71点 合格は74点以上で不合格
・日本語がおかしいところがいくつかり、最後のほうの法律関連の問題はまだ作りかけなのか?っていう感じでぐだぐだ
・重箱の隅的な問題がやや多い
・問題文はコピペができない
・Stydy-AIは簡単だと思ってのんびりとやっていたら、半分の50問を過ぎたときにはすでに20分を切っていた

現時点の自分的難易度:
Study-AI200問 < 教科書本 < DIVE INTO EXAM < Study-AI新シラバス対応 < 問題集(茶本)< AVILEN無料模擬試験200問

あと一週間。あと10点上げるために総仕上げ。

2023.3.3

過去問を見つけました。自己採点なので正解が正しいかわかりませんが、使いやすく整理されています。それとちょっと古い。
直リンクするとアレなので、「過生成と生成不足」を調べていたら見つけました。
難易度としてはStudyAIとDIVE INTO EXAMくらいでしょうか。この程度なら間違いなく合格できる、けど甘く見ると失敗しそうなので、最高難易度のAVILENのつもりで学習継続。→過去問の最後の方は難易度が高かった。

しかし、「みんなに受験して欲しい」というのなら、こんな広範囲でしっかり理解しないと解けないような問題は止めて欲しいね。一体何のための資格なのか未だによくわからない。

本番は明日。合格レベルにいるとは思うけど、理解できなかった心残りが一つ。強化学習。
行動価値関数、状態価値関数、Q値、Q学習、DQN、TD学習、TD誤差、経験再生、SARSA、A3C、Actor-Critic、Greedy法、ε-greedy法、方策勾配法、方策オン・オフ、方策反復法・価値反復法、方策ベース・価値ベース、価値関数ベース、ベルマン方程式、ベルマン最適方程式、、、これらがまったく整理できない。言葉が多すぎてどれとどれがどういう理由で有機的に結びついているのかがまったく理解できない。調べれば調べるほど新しい言葉・数式が出てきて訳がわからない。(誰かわかるように教えて!)
ぼんやりとは頭に残っているのでG検定レベルでは通用しそうだけど、試験が終わったらすっかり忘れるはず。試験が終わったらじっくり取り組んでみようかな。

2023.3.4

G検定本番終了。

まずは試験内容から。

・191問 120分
・似たような問題が何組かあった。LSTMとGRUみたいな感じで。
・全く同じ問題が二回出題された(一組だけ)
・計算問題は小学生レベル、5問くらい(CNNのフィルター計算が2問、計算木?(ただのかけ算・足し算)、正解率・適合率などの計算、度数分布表(足し算だけでOK)
・数式問題は無かったはず
・難易度はStudyAI、DIVE INTO EXAMより難しい。2019年の過去問よりは確実に難しくなっている。AVILENほどではないがその程度の模擬試験はやっておくべきと感じた。
・UIは本番が一番使いやすい。いずれの模擬試験はブックマーク機能がない。(StudyAI, DIVE INTO EXAM, AVILEN)
・「次の問題へ」ボタンが小さいのでマウスでは不利。タッチパネルのほうが断然有利。1問当り3秒余計にかかるとしたら、10分も余裕ができる!
・ここの日記 2023.2.25 に書いた価値関数の問題がそのまんま出題された(笑)

個人的な結果・感想。

・わからない問題・長文問題はパスして、最後の問題の時点で11分残り。パスした問題は10問ほど、全解答して残り1分。見直す時間なし。
・ググって解いた問題は5問程度。ChatGPTは1問だけ。自作のチートシートを見たのは10問程度
・予想採点結果は80点いっているかどうか。(わからない問題が15点、勘違い・単純ミス5点)
・学習に費やした時間は測定していないけど、感覚的に60~70時間はやった感。50時間ではギリ合格レベルだろうか?(理系+AIアマレベル+50代半ば)

試験画面はこんな感じ。

自作のチートシートはこんな感じ。結局1,300行を超えました。

G検定本番の個人的意見。

・Google検定と揶揄されているけど、試験本番でググる余裕はほとんどない。もしあるのならそもそも合格できるレベルにあるのでググる必要性は少ない。
・私が思うGoogle検定というのは、教科書本だけでは出題範囲をカバーできない・理解できないので、必要な知識はググりまくる必要があるからGoogle検定
・自作のチートシートは必須。ネット上に転がっているものは使わなかった・使い物にならないはず。
・合格できるレベルになるには、即答できる問題を増やして時間的余裕を作ること。そのためには模擬試験をこなし、疑問点は徹底的に調べる。これに尽きると思う。(教科書本を丸暗記しても50点くらいしか取れないはず)

G検定の学習方法

教科書本は必須、問題集は私は一冊しか購入しなかったけど、2~3冊はあるとカバーできる範囲が広がるのでbetterではある。吟味はほとんどしていないのでお勧めというのは特になし。(他人の評価などを見ながら自分が気に入ったものでいいかも?)
・模擬試験はStudyAI, DIVE INTO EXAMはやっておく。200問1時間くらいで解き、90点以上が目標。不明な点は徹底的に調べる。丸暗記はまったく意味なし。ただし、これだけだと過学習になるので、先ほどの問題集とか別の模擬試験をやって汎化性能を上げることは必須。
・AVILENの模擬試験(200問のほう、茶本のおまけ試験)は私が使用したものの中で一番難しいが、2時間以内で解く必要はない。合格点を狙うというよりは、解説が丁寧なので徹底的に理解に努めること。(1割くらい理解できないものがあっても構わない)AVILENの解説はあとで見えなくなる(やり直すことはできても全問解答するまで答えが見えない)ので全ページを丸コピー、またはテキストをコピペした方が良い。ただしテキストだと正解がわからない問題がいくつかあるので注意。ちょっと手間がかかるのが難点。
・自分用のチートシートは学習の開始から作成するといい。テキスト形式でも十分だけど、markdown、HTML、MS-Wordなど、試験時に検索できるものがいい。試験時にググる時間はないと思った方が良い。
・AI白書とか勧めてる人がいるけど私は不要だった(まったく見ていない)。この辺りはAIにどれだけ関わっているかに拠ると思う。

さらに個人的な意見。

合格してから書いた方が良いかもしれないけど、技術系の私からするとやっぱりG検定はいらない。
モチベーションは会社からの補助だけど、仮に合格したところで何にも意味がない。
こんな無駄な知識を詰め込められるよりは自分のやりたいことに時間を費やした方がマシ。

G検定の勉強をする前よりはAI関連の記事を読みやすくなったのは事実だけど、個人的にはその程度でしかなかった。

2023.3.12

ChatGPTは凄いんだけど、具体的なことを突っ込むと適当なことをまことしやかな返事しか返ってこない。
一般の人は凄いと絶賛するけど、自分はそんなに凄いとは思わないけどな。。まさにAI効果
ただ、ChatGPTのすごさはこちらが質問したいことを何も説明しなくてもちゃんとわかってくれること。
残念なのは的確な答えを出しているように見えて、出していないところ。

その辺のおっさんに難しい話を聞いてみたら意外とまともな返事が返ってきたけど、よくよく聞いてみたらちょっと違うでしょう?
っていうのがChatGPTかなぁ

自分的にはGoogleとそんなに変わらないと思うけど一般の人は違うのだろうか?

ただ、C++とかPythonでバグっているプログラムをChatGPTに聞くと、正解はくれないけどヒントはくれる。これはとても助かります。

2023.3.20

G検定の結果が届いていました。(メール)

■シラバス分野別得点率(小数点以下切り捨て)
1.人工知能とは.  人工知能をめぐる動向. 人工知能分野の問題:100%
2.機械学習の具体的手法:86%
3.ディープラーニングの概要:96%
4.ディープラーニングの手法:94%
5.ディープラーニングの社会実装に向けて:88%
6.数理・統計:100%
7.法律・倫理・社会問題:71%

平均すると90.7%。勉強しすぎたか?

G検定は役に立たないと言っていたけど、以前よりはAI関連の記事・書籍は読みやすくなったように感じる。

2023.3.29

ググっても正解が出てこないときはChatGPTを使用していますが、ChatGPTは五分五分かなぁ。
Google八分って言われていたけど、ChatGPTは五分くらい。

例えば、「緯度φの地球の角速度は?」っていう質問をすると、それっぽい理屈をこねて説明を返してきます。
ご存じの方ならなんてバカな質問!
って思うかもしれませんけど、地球の(自転による)角速度は緯度によって違うらしいです(笑)
で、「ほかのサイトでは緯度によって角速度は同じだというけど?」
ってChatGPTに聞くとエラーになります(笑)
再度同じ質問を最初からやり直すと、まことしやかに「地球の角速度は一定で・・・」と180度変わりました。

こういうケースが50%程度ある感じ。
ChatGPTで言っていることが本当かどうかわざわざググって検証している。
だったら最初からググった方が速い。
巷でちやほやするほど凄いとは思わないけどな。。
凄いと思って活用している人はやはり君の仕事はAIに奪われるぞ

ちなみにChatGPTが最初に示した内容を引用すると、

地球の自転による角速度は、緯度によって異なります。緯度φにおける地球の角速度ωは、以下の式で表されます。

ω = 2π / T * cosφ

です。赤道が最大で極に向かうほど地球の自転が遅くなるらしいです(笑)
ただChatGPTの凄いところは、嘘でもちゃんとした日本語で説明できるところでしょうか。

2023.4.12

G検定の合格証が届きました。(メール)

これ以外のAI関連の資格を受験するつもりはありません。誰かが費用を負担してくれるのなら別ですけど:-)

2023.4.17

結局ChatGPTは何が凄かったのだろう?
世間で騒ぐほど凄いとは思わないんだけど。。
twitterのときもそうだった。
Googleが出てきたときは凄いと思ったけど今のChatGPTはまだ使い物にならない。。不思議。

2023.4.29

マスメディアのChatGPTの特別扱いがまだ続く。そんなに凄いとは思わないけどな。。
某NHKではプログラミングが全くできない人がプログラムを作れる、実際単語暗記ソフトを作り、市販したいと本人は言っていた。

全くできない人ができるようになるのは凄いけど、市販レベルのソフトが作れるとはとても思えない。
(市販して数本しか売れなかった、という落ちはあるかもしれないが、そんなレベルだったらChatGPTなんて誰もいらない)

自分も何度かChatGPTでプログラムを作らせてみたけど、仕様を伝えるのが非常に難しいと感じた。
伝えたはずの仕様を忘れて都合の良い仕様で勝手に作り始めるなど、発散しないようにいかにして抑え込むのか、など本来のプラグラミングとは異なるスキルが要求される。
それにGUIであれば検証はしやすいが、ロジックプログラムの場合はそれを検証するためのプログラムが必要となる。
それをChatGPTに作らせても良いが、これも本当に正しいのか別の検証が必要になり、結局自分が検証プログラムを作る羽目になる。

それで合格ならまだマシだが、検証不合格だったら最初から作り直すか、ChatGPTが作ったプログラムを手直しする必要がある。

結局、プログラミング経験が無いとChatGPTでアプリを作るのは不可能、っていうのが今の結論。
(プログラミング経験の無い人は、プログラミングのどこが大変なのかっていう経験がないからわからないということだな)

逆にプログラミング経験のある人間からすれば、ある程度は頼れる。
例えば局所的で、数個の関数で完結するようなモジュールレベルであればChatGPTに頼むことはできる。
自分が書いたコードに問題点があるか聞いてみる。
それ以外はChatGPTをあやす時間の方が無駄になると考えられるのでやる気が起こらない。

ChatGPTはまだ草の根レベルだと思うのだが、マスメディアはやたらと騒ぎすぎ。
ChatGPTは間違いが多すぎて限定的。
間違いを指摘しても学習しないし。(学習済み - GPTだからね)

2023.5.12

Androidアプリを作ってみた。
仕様としては、日にち毎の写真一覧を表示、一つ一つの写真にコメントをつけるというもの。
コメントはExifの"User Comment"に保存することもできるし、別ファイルに保存してそれをserverにuploadすることもできる。
写真はListViewでthumbnail表示、写真をタップすると拡大画像を表示できる。

そんなアプリをChatGPTを使って作ってみました。
半分くらいはChatGPTが吐いたコードを使っています。

私のAndroidプログラミングスキルは恐らく初級レベル。アルファ版のアプリはGoogle Playで公開済み。Windowsアプリから流用したものでJNIを使用している。
なので、「プログラミングはできない」というレベルではないし、Androidアプリの基本的な仕組みや言葉は知っている。

そういうレベルの私の感想。
・汎用的なコードは簡単にChatGPTから引き出せる
例えば、「ListViewを使ってスマホ内にある画像一覧をサムネイル表示するコードを教えてください」というのは的確なコードを出してくれる (AndroidのListViewの扱いは難しいにも関わらず)
・込み入った話になると、途端に発散する
例えば、「画像一覧をスクロールすると遅いので速くできるコードを教えてください」みたいな話は解決できない。
(以前はそれっぽい嘘のコードを出していた気がするけど、最近はできませんと言うようになった?)

なので、
・一般的なコードはChatGPTを使うと楽。スニペットの延長みたいな感じ
・いわゆるボイラープレートだけど、ググってもそういうコードを見つけるのは意外と難しい(特にAndroidはversion依存があって非常に面倒くさい)

「プログラマーの仕事はなくなる」などと言っている人が一部にいるが、それは絶対にない。今のChatGPTには無理。
だけど、汎用的なコードならスニペット代わりに使えるのはとても楽。ただし、あくまで趣味レベル。ビジネスレベルは無理。
それなりのプログラミングスキルのある人でないとまともなアプリは人でしか作れない。

ではないでしょうか?
でもきっと数年後は、
「AndroidStudioを使って画像一覧を表示するアプリを作ってください」
ってお願いするとbuildされたapkファイルを出してくれるかもしれません。
それはそれで凄すぎる。
今それをお願いしたら概略的な手順を示されただけだけど、原理的には可能。

そういうスキームであれば、今後はプログラマーよりプロンプターだろうか?

あと10年もすれば、ハードウェアの仕様書を渡して「こういう仕様の組み込みソフトウェアを作ってください」ってお願いするとそこそこのプログラムを作ってくれるかもしれません。凄すぎ。でも必ずバグは出てくるので、それなりのスキルが無いと大変そう。。完全なAI任せは無理だろうな。

私自身はプログラミングをやりたくてプログラマーをやっているわけではない。実現したいものがあり、その実現手段としてプログラミングをしているだけ。プログラミングは大変な作業なのでできればAIに自動的にやって欲しい。残念ながら今のChatGPTは私が実現したいことをやってくれるツールのレベルにはまだ達していないし、今まで私が作ったものをChatGPTにお願いしてもほど遠いレベルだろう。ただ、ググっても出てこない提案をしてくれることがあるのでそれはとても助かる。

###

なんでそんなアプリを作ったのか?
登山をしたあとに、公共交通機関で移動しているときは暇。
(電波の届かない山中で)その時間を利用して撮影した写真にコメントを書きたい。
そんなアプリはあるだろうと思って探したけど、なかなか見つからない。
あることはあるけど、操作が面倒。
だったら作ってみよう!

こんなアプリ欲しい人いる?あれば公開しても良いけど。。
個人的には凄く便利。

2023.5.12

著作権の話。きっと多くの人は気が付いていると思うけど、ChatGPTが書いたコードにGPLが含まれていて、それで書いたプログラムはGPLになるの?
面倒くさい話になるね。。

2023.5.17

ChatGPTは世間が騒ぐほど頭は良くないと思っていたけど、公開当初より頭が良くなっている気がする。
ググっても出てこない情報はChatGPTも出せない、と言う基本原理に変わりは無いが、ググるための検索ワードに悩むよりはChatGPTに聞いた方が速い。

ChatGPTはTransformerが基本原理らしいけど、凄いと思うところはまとめを作ることができたり、別の提案を提示できるところ。
単純なtTansformerだとそこまでできない気がするけど何をやっているんだろう?
自分自身で質問を作成して最適な回答を作る、とかはやっているんだろうね。

そんな質問をするとChatGPTはそこそこ具体的な回答をくれた。ただし、突っ込んだ話になるとOpenAIがしゃしゃり出てくる。(笑)

2023.5.22

シンギュラリティが来る・来ないの話。そんなのどのように対応するか人間次第の話じゃないの?
仮に全知全能のAIが実現できたとしても、それが人間社会にどのように影響するのか、っていうところが一番の問題なので結局人間次第。
そもそも人間が作ったAIが全知全能と言うことはあり得ない。全知全能の定義によるけど、もし宇宙全体に存在するすべての物質の挙動をすべて予測できる、と定義するのなら当然のことながらありえない。せいぜい地球上の一部の生物の挙動を予測できるかどうかくらいのレベル。
そもそもシンギュラリティの定義が私自身よくわかっていないので適当なことを書いてます。。

シンギュラリティの定義:「AIなどの技術が、自ら人間より賢い知能を生み出す事が可能になる時点」
らしい。 (もちろん知ってますけどその定義すら曖昧)

この「人間より賢い」ってどうやって判断するの?
今のChatGPTだって本当にネットから得た情報だけで回答を作っているのか、それとも自ら回答を作ったのか区別ができないでしょう?
設計者が「これは私が予測できなかったことだ」であれば「賢い」となるの?

そもそも「賢い」っていう定義も人間的だから、もし仮に映画ターミネーターみたいにAIが人間を支配したとしても、それが本当に「賢い」のかどうか非常に怪しい。
敵対心のある人間に対して武力を持って戦うのが賢いのか、犬・猫みたいに仲良く共存するのが賢いのか。

定義自体が非常に曖昧なので、シンギュラリティっていう世界が来ると言えば来るし、来ないと言えば来ない、議論好きの人間が取り上げたいテーマ、というだけではないでしょうか。

結局AIなんて人間が作ったものだから、人間の想像を超えることはないと思うけどね。
それも数学的な理論で作ったものだし、そもそも数学なんて人間が勝手に作ったものだから。
人間が作ったAIなんて結局人間を超えられない。
だと思うんだけど>カーツウェル先生

もう少し言えば、人間より賢い、っていうことは(宗教的にも)神の世界なので人間には不可知っていう世界なので。。まぁこういう哲学的な話はもう止めよう、意味が無い。

やっぱり、ちゃんと誰かAIが作る賢い世界を定義しないとダメなんじゃないかなぁ?
できないのに、きっと来るよ!って言っても本当に意味が無い。
宗教と同じで「もっと素晴らしい世界があります」とおんなじ事を言っているに過ぎない。
誰も経験したことのない世界をあたかも知っているように語っているだけ。

もし本当にAIが人間より賢いのだったら、人間が苦労して作ってきた人間社会より「賢い」社会を作ってくれるのだろうか?とか。
シンギュラリティが到来したら一体どういう世界観のあるAI何だろう?
人間が作ったAIだから、争いが絶えない世界なんだろうなぁ。
そもそも生物っていうのは争いが基本なので、それを解決できるAIができたら凄いと思うけど、とても想像できないなぁ。。
常に平和的に解決できるAIだったら素晴らしい。個人的にはそれが賢いの定義だけど違うんだろうねぇ。結局人間の価値観で変わってくる。
「賢い」の定義なんて人によって変わってくる。だからシンギュラリティなんて意味が無い。議論好きの人達のネタに過ぎない。哲学の世界。

現在のAIはあくまで最適解を求めるツールでしかないので、人間が想像できなかった新たなものを作り出すことは理論的にあり得ない。
"Generative"という形容詞がついているけど、人間から見るとそう見えるだけで現実は与えられた質問に対して最適解を出しているに過ぎない。
こちらが求めないとAIは何も生み出せない。AI自身には意思・動機・意図・願望・理想がないのだから。
そういうAIが、人間が賢いと思う世界など作り出すことはできない。(明確)

10年後は違う世界があるのだろうか?
AI自身がもし「理想観」を持つようになった場合、どういう理想があるのだろうか?
そもそもこの広い宇宙で真の理想は存在するのだろうか?
それをAIが発見するのだったら私はAIは人間より賢いと認める。
結局はAIにとって都合の良い、自分よがりの理想ができあがるだけで、その理想を受け入れられない何者かと戦争が起きるだけ。
結局理想なんて局所的なものでしかないし、そこに賢いと言う言葉は存在しない。

やっぱり哲学の世界になってくるので止めておこう。。

2023.5.31

2023.5.12に書いたAndroidアプリ、ようやく自分自身がほぼ満足できるレベルのアプリができた。
なるべくChatGPTを使って作ろうと思ったけど、一般的なものから外れるほど正解を導き出すのが難しい。
結局ChatGPTが導いたコードの使用率は2割くらい?

一般的なコードは喜んで出してくれるんだけど、そこから一歩、二歩踏み込むとほとんど禅問答。
間違ってるよね?と指摘すると「申し訳ございません」という前置きのあと、平気で同じような間違ったコードを提案する。

自然な会話って言う点では凄いんだけど、ChatGPTのアウトプットは本当にいまいち。
なのに世の中こんなに盛り上がっている。
自分の使い方が悪いから?

自ら考えて最適なものを造り出すようになったらいよいよ特異点か?って思うけど、ネット上にある情報から最適解を導き出しているだけ。
今回の場合はそれすらできていない。
ネット上にすらないことを私がやっているんだったら私自身のやっていることが凄いだろうけど、まずそんなことはない。
はっきり言って、プログラミングに関しては適当にかいつまんで適当な回答をしている、という印象しかない。

一般的であれば一般的であるほど一般的な正解である可能性が高くなる。
でも大抵のアプリは、一般的なコードだけでは実用レベルにならないからね。。
プログラマーという職業は当分安泰かな。
むしろChatGPTを使いこなせるプログラマーは今まで以上に開発効率を高めることができるのではないかと。

2023.11.18

久しぶりの書き込み。
ChatGPTはあれだけ流行ったので多くの人が使ったのかと思えば、20%未満の人しか使ったことがないんだとか。(どういう統計を取ったのか知らないが)意外だった。

自分の場合はChatGPTは(意外と)頭が悪いと最初からわかっていたので使える場面は非常に限られる、という結論だったけど、こんなに流行ったように見えたのはマスメディアの煽りだったと言うことかな。

ちなみに現在気象予報士の勉強中で、学科試験は合格し、あとは実技のみ。
当然のことながら、わからなかった問題をChatGPTに何度も聞いてみたが、ちんぷんかんぷんな答えしか返ってこなかった。(禅問答の繰り返し)
ググった方が知見のある人の明快な解説が出てくる。それすらChatGPTはわかっていないので本当に使い物にならない。

2024.2.25

やはり、ChatGPTのようなAIで仕事が楽になった、と思っている人は仕事が奪われるだろう。
自分は何度もChatGPTに答えを期待するけど、8~9割くらいは自分の期待する答え以下でしかない。
ネット民はみんなChatGPTは凄いって言うけど、私はそれをほとんど経験したことがない。
むしろ、頭が悪すぎると思う。

自分が知らないことをChatGPTに聞くけど、正解を出してくれるのは五分五分。
そんな賭けに頼るよりは普通にググれば良いと思う。

2024.3.15

みなさんGitHub Copilotを使ってますか?
ChatGPTは今ひとつ使えないので、Copilotも敬遠していました。
が、二週間ほど使ってます。

感想:
7~8割の候補は外れ。
10回に一回くらいの確率で、「私が書こうと思っていたコードがよくわかったな!!」と驚きのコードを挙げてくるときがある。

現時点の結論:
無料なら使っても良いが、払ったお金に見合うほどの効率が上がるとは思えない。
むしろ、外れ候補が良く出てくるのでお金をもらわないと割に合わない、だろうか?
ただ、VSCode上での Ctrl+I はあまり使っていないけど、こちらは単純なものだったらinlineでcodingしてくれるのでこれはありがたい。

人によってはこれがないとやっていけない、っていうプログラマーもいるようだけど、どんなヤツなんだろう?

2024.3.24

MicrosoftのBingでCopilotが使えるようになっていた。

この二日間、Androidアプリの作成にどっぷりハマっていたけど、結構使えた。
VSCodeのCopilotは今ひとつだけど、BingのCopilotによるコード生成や、エラー解析は結構使えることがわかった。
Copilotなしだと二日間では終わらないと思われる作業を二日間でできた。
今後は、益々AIを活用したプログラミングが当たり前になっていくことだろう。

余談だが、「AIがプログラマーの仕事を奪う」と言われているらしいが、私から見たらAIを使いこなせない、AIが生成したプログラムを理解できないプログラマーはプログラマーとしてやっていけなくなる、と思う。
AIが出すプログラムには一定の割合で間違いが含まれているので、それを見極められる能力がないといけない。
AIに間違いを指摘しても、「表面上は」間違いと認めているのに、かたくなに間違った主張をし続ける傾向がある。(ほぼAIの暴走)

GitHubのCopilotの試用期間はあと一週間だけど、解約しようかちょっと迷う。
コードの候補はほとんど使えないけど、「このクラスは何をやっている?」みたいな、コード解析をやってくれるのは嬉しい。(今はC++のみ)

AIのできの善し悪しはあるんだけど、CopilotのようなAIのお陰でプログラミングに必要なモチベーションの閾値がかなり下がった気がする。

「これが実現できたら面白い。けど、たぶん使わないし、それを作ったりデバッグする作業を考えるとやる気が失せる」

みたいなことはサンデープログラマーならよくある話だと思う。
が、CopilotやChatGPTがあるお陰でかなり敷居が下がったように思う。

「これくらいのことは以前に比べて半分の時間で実現できる」と思えるようになると、今まで閉じ込めていた創造の扉が開き始める。昨夜はお陰で睡眠時間が減った。

若い頃って向こう見ずだから、どれだけ大変なのか知らずにやる気が向く方向にひたすら走るけど、経験が増えれば増えるほど大変なことを避けたい気持ちが強くなっていくから、面白いと思っても実際にやらなくなってしまう。

2024.3.27

AIを作る、と言うつもりでAIの学習を6年以上前から本格的に始めたけど、今はすっかりAIを使う側になってしまった。
(ゲームで言えば、ゲームを作る立場からゲームで遊ぶ立場に)

ChatGPTあたりを契機に、個人レベルで「作る側」にいられるのは少数になった感はあるので仕方ないけど。

前回も書いたとおり、プログラミングの環境も最近は激変していると感じる。

最近の自分がプログラミングに関しての基本ルーチン。

ある程度の問題はあるにしろ、プログラミング環境は激変していると思う。
昔はググる以外に選択肢は無かった。

例えば、1~2年くらい前のAndroidStudioはかなり優秀なIDEだったけど、AIがこれだけ流行ると、ちょっと遅れている感が出始めている。
自動候補機能で言えば、Copilotですらまだまだなのでこれからだとは思うが。

私はすっかりAIを使う側に成り下がってしまったけど、ChatGPTあたりを契機に劇的に変わったと実感する。
AIを使わずに、ひたすらググってゴリゴリとコーディングをするのは時間がかかるから戻れなくなっている。
とは言え、AIにはまだ限界があるということがよくわかる。

先ほど書いたルーチン、半年後には変わっているだろう。

2024.4.2

自作のフリーウェアisGrepを作っていて最近思うのは、grepのようなソフトの存在価値がAIの台頭によって薄くなっている気がする。
CopilotのようなAIが出る前は、他人のソースコードを解析するのはひたすらgrepしまくること。
(歳を取ると自分で書いたプログラムですらgrepが必要になる)
ところが最近のAIの進歩のお陰で、grepする前にまずAIに聞く。これが当たり前になりつつある。
isGrepのようなソフトはそろそろ終わりかもしれない。
それ以上にインテリジェンスにしようと思ったらAIには到底太刀打ちできない。
もっと早い頃にisGrepを実現しておけばよかった。アイデアはずっと前からあったのに時間が取れなかった。
ソフトの世界は流行廃れが激しいので仕方ない。

isGrepは必要と思われる妥当な機能を追加したら開発を終わりにしようかと思う。
残念ながらAIの進歩には勝てない。実現するのが遅すぎた。。
実際、isGrepに頼るよりはCopilotのsuggestに「期待」することが多くなってきた気がする。

やりたいことがたくさんあるうちに止めるのが丁度いい。

2024.4.6

VSCode + GitHub Copilotの威力

        switch (nType) {
            case 10:
                color = "blue";
                break;
            case 11:
                color = "red";
                break;
            case 12:
                color = "green";
                break;
            case 13:
                color = "lightblue";
                break;
            case 14:
                color = "yellow";
                break;
            case 15:
                color = "violet";
                break;
            case 16:
                color = "pink";
                break;
            case 17:
                color = "orange";
                break;
            default:
                color = "blue";
                break;
        }

「case 数値: color = "xxx"; break;を1行にまとめてください」

        switch (nType) {
            case 10: color = "blue"; break;
            case 11: color = "red"; break;
            case 12: color = "green"; break;
            case 13: color = "lightblue"; break;
            case 14: color = "yellow"; break;
            case 15: color = "violet"; break;
            case 16: color = "pink"; break;
            case 17: color = "orange"; break;
            default: color = "blue"; break;
        }

従来は秀丸のキー操作の記録でやっていたけど、自然言語の一行でできてしまう。素晴らしい~
でも、たまにとんちんかんなことやるけどね。
VSCodeの登場で次世代感があったけど、Copilotでさらに次世代感を感じる。

2024.9.4

GitHub Copilotの実力が上がっているのを実感する。

実際のプログラムでどこにバグがあるのか、小規模でない限り、明確に指摘してもらうことは非常に難しいが、ヒントをもらう方法はある。
その一つとして、ログ出力。
問題がありそうな所にログ出力文を書き始めると、出力内容のrecommendが提示され、それを出力すると問題原因につながる情報を出してくれるときがあり、かなりの時間節約になっている。

素晴らしい。

これ以外にも改行しただけで提案してくるが、自分が書こうと思っていたコードを提案してくれるのは以前からあるとして、この精度が上がった上に、自分が忘れていたコードを提案してくれることが増えている。これも非常に助かっている。
逆に適切な候補が無い場合は、何も出ないことが多い。これが何を意味するかというと、自分が忘れているコードがないかのチェックが行えること。

毎月US$10、当初誤った提案が多くて解約しようかと考えていたが、最近は支払うに値する仕事をやってくれていると思う。年契約にすると2割引になるので、ちょっと考えたくなる。


連絡先: