回線の実測
AI をローカルで動かすなら、回線速度は思っているより効くわ。検証のたびにモデルを落とすから、待ち時間の多くはダウンロードなの。
新しいモデルが出るたびに落として、試して、合わなければ消すわ。1 本が数十 GB あるものもざらだから、回線が細いとそれだけで待たされるの。生成そのものは数十秒で終わるのに、その前の待ち時間が毎回乗ってくるのよね。だから光回線を 1 ギガから 10 ギガに変えたわ。
結果から言うと、回線速度そのものはちゃんと出ていたの。国内の計測サーバーが相手なら、契約どおりの速さが出るわ。でもモデルのダウンロードは、そこまで速くならなかった。配信元が海外にあって、そちら側が先に頭打ちになるからよ。
つまり回線速度を評価したいなら計測サイト、作業時間を知りたいならモデルの実ダウンロード。この 2 つは別のものを測っているから、混ぜてはいけないわ。
10ギガ回線は本当に出ているのか (国内サーバー)
| 回 | 下り | 上り | 遅延 | サーバー |
|---|---|---|---|---|
| 1 回目 | 2.798 Gbps | 1.239 Gbps | 6.75 ms | 千葉 |
| 2 回目 | 4.671 Gbps | 2.065 Gbps | 6.92 ms | 東京 |
| 3 回目 | 2.693 Gbps | 2.015 Gbps | 6.26 ms | 千葉 |
| 中央値 | 2.798 Gbps | 2.015 Gbps | 6.75 ms | — |
1 ギガ回線だった頃と比べる
1 ギガ回線を契約していた頃は、下り 400Mbps 前後だったと記憶しているわ。ただし当時の計測結果は保存していないので、これはわたしの実測値ではないの。そこは正直に書いておくわね。
その前提で比べると、ならして 7 倍ほど。1 ギガ契約は「1 ギガ出る」ではなく、実際には理屈の上限の半分以下で頭打ちになっていたから、差は倍率の数字より大きく感じるわ。
契約が 10 ギガでも、この機械はそこまで出せない
マザーボードに載っている LAN の部品 (NIC) が 5 ギガ対応までだからよ。「10 ギガにした」と「10 ギガで通信できる」は別で、契約と機械の間には NIC・ハブ・壁の中の配線が挟まっているの。
それでも計測サイト相手なら、その部品の上限のほぼ限界まで出ているわ。いま頭を打っているのは契約ではなく、うちの LAN の部品のほうね。
モデルの取得は何分か (海外 CDN が相手)
| 条件 | 中央値 | 最大 | 20.43 GB の換算 |
|---|---|---|---|
| Hugging Face / 1 並列 | 0.204 Gbps | 0.218 Gbps | 約 13.5 分 |
| Hugging Face / 4 並列 | 0.769 Gbps | 1.052 Gbps | — |
| Hugging Face / 8 並列 | 0.963 Gbps | 1.158 Gbps | 約 2.8 分 |
| Hetzner (米国東部) / 1 並列 | 0.171 Gbps | 0.171 Gbps | — |
回線速度は出ているのに、モデルの取得はその 3 分の 1 で止まる
理由は距離よ。Hugging Face の配信先は us.aws.cdn.hf.co で、海外にあるの。国内の計測サーバーが相手なら往復 6.75 ms だったけれど、相手が海外だとここが伸びるの。ただし、海外が相手のときの往復時間そのものは測っていないわ。
ひとつの接続で出る速度は、おおよそ「一度に送れる量 ÷ 往復にかかる時間」で決まるの。だから同じ回線でも、相手が遠いだけで出る値がまるで変わるのよ。
それでも、待ち時間は実際に減った
1 ギガ回線の頃は、回線側が先に天井だったのね。いまはモデルの取得のほうが先に頭打ちになるから、当時は回線速度が足を引っ張っていたことになるわ。20GB 級のモデル 1 本で、待ち時間はならして半分以下、良い回なら 3 分の 1 以下になったの。
モデルを 1 日に何本も入れ替える使い方だと、この差がそのまま積み上がるわ。生成を待つ時間ではなく生成を始められるまでの時間だから、体感はもっと大きいの。
いちばん効いたのは、実はお金のかからないほう
8 ファイル並列でダウンロードすることで約 4.7 倍。同じ回線、同じ相手、同じファイルでこれよ。
ひとつの接続は往復にかかる時間で頭打ちになるから、相手が遠いほど並列数が効くの。huggingface-cli や hf_transfer は最初から並列で落とすようになっているから、道具を選ぶだけで効くわ。「回線を速くしたのに速くならない」の多くは、たぶんここね。
計測の道具そのものについて
速い回線を測ろうとしたら、道具のほうが先に音を上げたわ。計測用のエンドポイントは 1 回に送れる量に上限があって、速い回線ほど一瞬で終わってしまい、かえって測れなくなるの。かといって並列で叩くと、今度は相手側が拒否を返してくるわ。
Hugging Face にも似た制約があって、配信元の振り分け口を接続ごとに叩くと弾かれるの。振り分けは 1 回だけ解いて、本体は返ってきた配信元から取るのが正しい形ね。
自作のスクリプトで測ろうとすると、回線ではなく相手側の制限を測ってしまうことになるわ。回線速度そのものを見たいなら、Ookla のような専用の道具を使うのが確実よ。
わたしが使っている回線
上の数値はこの回線で取ったものよ。事業者どうしの比較はしていないから、ここには他社を並べていないわ。
- 【ソフトバンク光】
— わたしが実際に使っている回線。上の実測はこの回線で取ったものよ
わたしが使っていない回線
住んでいる場所や建物で、選べる回線は変わるわ。だからわたしが使っていない回線も置いておくわね。どれも契約したことが無いから、速さも対応も測っていないし、良い・悪いは言えないの。上の実測はすべてソフトバンク光で取ったもので、ここに並んでいる回線の値ではないわ。リンクの文言は広告主が用意したものをそのまま置いているから、そこに書いてある特典やキャンペーンもわたしが確かめたものではないの。
- 【公式】BIGLOBE光
— わたしは契約したことが無いわ。だから速さも対応も測っていないの
- auひかり_月額料金割引キャンペーン
— これも未契約よ。リンクの文言は広告主が用意したものをそのまま置いていて、キャンペーンの中身はわたしが確かめたものではないわ
- NURO 光
— これも未契約。上の数値はぜんぶソフトバンク光で取ったもので、この回線とは関係が無いわ