クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

総仕上げ演習: 動いている機能の報告

このレッスンのあとで: 動いているAIの機能の費用、速さ、品質を報告できる。

60分のレッスンコマンドなし

1週間後、質問が届き始める

AIの機能を動かすとは、費用、速さ、品質を毎週つかんでおくことです。福岡のコールセンターで、通話メモの要約機能が先週の月曜日に公開されました。経理部は費用を、現場はなぜ遅い答えがあるのかを聞いてきます。

印象では答えになりません。この演習では、記録した1週間から数字を出し、1ページにまとめます。

このレッスンのゴール

メモ

動いているAIの機能の費用、速さ、品質を報告できる。

今日のキーワード

ことばいみれい
トークンモデルが読み書きする、文章の小さなかけらです。
レイテンシー1件のリクエストにかかる時間です。
中央値小さい順に並べたときの真ん中の値です。
パーセンタイル決まった割合のリクエストが収まる値です。95パーセンタイル
品質スコア人が評価した答えのうち、よいと評価された割合です。

学生が入力するセルは、このプレビューでは空白です。

もっと深く学ぶには

メモ

この演習は、数字を読んで報告します。数字の集め方は「教材」ページのAIのレッスンで学べます。 費用、トレース、信頼性。 AIシステムの評価を詳しく。 AIの機能の運用。

費用はトークンで決まる

モデルの利用料は、ふつう入力と出力のトークンで払います。送る文章が入力のトークンで、答えが出力のトークンです。出力のほうが高いことがよくあります。

つまり費用は、リクエストの数だけでなく、プロンプトの長さでも変わります。下のプログラムは、記録した1週間から、架空の価格で毎日の費用を出します。

やってみよう: 1週間の費用

コード: python
# 要約機能の、記録した1週間です。
# トークンは1000単位で数えます。価格は練習用の架空のものです。
YEN_PER_THOUSAND_IN = 1
YEN_PER_THOUSAND_OUT = 4

days = [
    {"day": "月", "requests": 400, "in": 800, "out": 120},
    {"day": "火", "requests": 420, "in": 840, "out": 130},
    {"day": "水", "requests": 380, "in": 760, "out": 110},
    {"day": "木", "requests": 900, "in": 2700, "out": 300},
    {"day": "金", "requests": 410, "in": 820, "out": 125},
]

total_yen = 0
total_requests = 0
for day in days:
    yen = day["in"] * YEN_PER_THOUSAND_IN + day["out"] * YEN_PER_THOUSAND_OUT
    print(day["day"], yen, "円")
    total_yen = total_yen + yen
    total_requests = total_requests + day["requests"]

print("1週間:", total_yen, "円、", total_requests, "件")
# 目立つ曜日はどれですか。木曜日を月曜日と同じ数字にして、もう一度実行しましょう。

平均は遅いリクエストを隠す

レイテンシーは、1件のリクエストにかかる時間です。平均は便利そうですが、とても遅い2件が中に隠れてしまいます。

そこで、真ん中の値である中央値と、95パーセンタイルを報告します。時間を小さい順に並べます。95パーセンタイルは、100件中95件が収まる時間です。20人に1人は、それより長く待たされます。

やってみよう: 中央値、平均、95パーセンタイル

コード: python
# 記録したサンプル: 20件の応答時間 (秒) です。
times = [1.2, 1.1, 1.4, 1.3, 1.2, 1.5, 1.1, 1.3, 1.2, 9.8,
         1.4, 1.2, 1.3, 1.1, 1.6, 1.2, 1.3, 8.9, 1.4, 1.2]

ordered = sorted(times)
middle = ordered[len(ordered) // 2]
print("中央値:", middle, "秒")

total = 0
for t in times:
    total = total + t
print("平均:", round(total / len(times), 2), "秒")

# 20の95パーセントは19なので、並べて19番目の時間です。
print("95パーセンタイル:", ordered[18], "秒")

品質を見て、1ページにまとめる

答えの質が悪ければ、費用や速さにはあまり意味がありません。毎週、決まったサンプル、たとえば50件の答えを人が評価します。よいと評価された割合が品質スコアです。

そして3つを1ページにまとめます。数字、目標、そして何をするかです。上司がそのページだけで判断できるようにします。

例: 1ページの報告

項目今週目標対応
費用9,060円 (2,510件)8,000円未満木曜日に送ったプロンプトを短くする
レイテンシーの中央値1.3秒2秒未満なし
95パーセンタイル8.9秒5秒未満ログで遅いリクエストを探す
品質スコア50件中44件がよい50件中45件失敗した6件を評価セットに加える

学生が入力するセルは、このプレビューでは空白です。

よくある誤解

注意

多くの人は、平均の応答時間を見れば、機能の使い心地がわかると考えます。とても遅いリクエストが少しあっても、平均はよく見えてしまいます。遅いほうの利用者の時間がわかるように、95パーセンタイルも報告しましょう。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。