動いたのに、数字がちがう
愛知県の自動車部品メーカーで、品質管理の田中さんが、不良率を出すコードをAIに書いてもらいました。
コードはエラーなく動き、「不良率 2.04%」と出ました。田中さんは、その数字を月例の会議に出しました。
後で手で計算すると、正しくは2.0%でした。AIは、不良品の数を良品の数で割っていたのです。
このレッスンのゴール
メモ
AIが書いたコードを、信用する前に確かめられる。
今日のキーワード
| ことば | いみ | れい |
|---|---|---|
| コードレビュー | コードを読んで、問題がないか確かめることです。 | |
| 要件 | コードが満たすべき決まりです。 | 不良品の数 ÷ 生産した数 |
| 境界 | ルールが変わる、ぎりぎりの値です。 | 生産した数が0 |
| 依存ライブラリ | コードが使う、外から入れた部品です。 | |
| チェックリスト | 毎回確かめる項目の一覧です。 |
学生が入力するセルは、このプレビューでは空白です。
一行ずつ説明できるか試す
AIのコードは、エラーなく動いても、計算がまちがっていることがあります。動くことと、正しいことは別です。
まず、一行ずつ読みます。この行は何をしているかを、自分の言葉で言えるか試します。
説明できない行があれば、そこで止まります。AIに意味を聞き、小さな数で手計算して確かめます。
やってみよう: 不良率の計算
# 不良率(%) = 不良品の数 ÷ 生産した数 × 100
# AIが書いたコードです。実行して、手計算と比べましょう。
made = 1000 # 今月つくった部品の数
defects = 20 # そのうちの不良品の数
good = made - defects
rate = defects / good * 100
print("不良率:", round(rate, 2), "%")
# 手計算: 20 ÷ 1000 × 100 = 2.0
# まちがっている行を探して直し、もう一度実行しましょう。
毎回同じ項目で確かめる
見る点を毎回変えると、見落としが出ます。そこで、チェックリストを使います。
確かめるのは5つです。要件どおりか。境界の値で正しいか。使っているライブラリは本当にあるか。パスワードなどの秘密が書かれていないか。ほかの人が読んでわかるか。
全部に「はい」と言えるまで、コードを本番に入れません。
レビューのチェックリスト
| 項目 | 確かめる質問 | 部品メーカーの例 |
|---|---|---|
| 要件 | 言われたとおりの計算か | 生産した数で割っているか |
| 境界 | 0や空のときに正しいか | 生産が0の月 |
| 依存ライブラリ | 本当に存在するか | インストールできて動くか |
| 秘密 | パスワードやキーがないか | 社内データベースのパスワード |
| 読みやすさ | 同僚が読んでわかるか | 変数名が意味を表しているか |
学生が入力するセルは、このプレビューでは空白です。
よくある誤解
注意
多くの人は、AIのコードが動いたら、もう正しいと考えます。動くことは、最初の一歩にすぎません。要件どおりの計算かは、小さな例で手計算して確かめます。