同じ会社が別の書き方で入っている名簿を作り、突き合わせました。そのままだと34,481組しか見つかりません。
電話番号だけで見れば200,270組すべて見つかります。ただし47,936組を取り違えました。
突き合わせ方を5通り変えて数えました。見つかる数を増やすと、あるところから取り違えが出ます。
重複除去で突き合わせ方を変えると何が起きるのかを、実際に走らせて数えました。用意したのは取引先の記録2000件です。
実体は10社で、6通りの書き方が混ざっています。空白、全角の記号、略記、電話の区切り、住所の丁目表記です。
そのまま 株式会社山田製作所|東京都千代田区丸の内1-1-1|03-1234-5678 空白が入る 株式会社 山田製作所|東京都千代田区丸の内1-1-1|03-1234-5678 全角の記号 株式会社山田製作所|東京都千代田区丸の内1-1-1|03-1234-5678 略記 (株)山田製作所|東京都千代田区丸の内1-1-1|03-1234-5678 電話の区切りなし 株式会社山田製作所|東京都千代田区丸の内1-1-1|0312345678 住所の丁目表記 株式会社山田製作所|東京都千代田区丸の内1丁目1番1号|03-1234-5678
紛らわしい相手も混ぜました。同じ名前で所在地の違う別会社と、代表電話を共有するグループ会社です。
突き合わせ方 まとまった数 正しくまとまった 取り違え そのまま突き合わせる 59組 34,481組 0組 空白と全角をそろえる 30組 101,740組 0組 会社の種別も落とす 20組 145,893組 0組 電話番号だけで見る 9組 200,270組 47,936組 会社名だけで見る 9組 200,270組 41,850組 ※ 本当に同じ会社である組の総数: 200,270組
上の表を見てください。そのまま突き合わせると34,481組しか見つかりません。全体の17%です。
空白と全角をそろえると101,740組になり、会社の種別も落とすと145,893組まで増えました。
ここまでは取り違えが0組です。書き方の違いだけを吸収しているので、別の会社が混ざりません。
電話番号だけで見ると200,270組すべてが見つかります。ところが同時に47,936組を取り違えました。
原因は代表電話を共有するグループ会社です。別の会社なのに、同じ番号なので同じものとして扱われます。
会社名だけで見た場合も同じです。同じ名前で所在地の違う会社が混ざり、41,850組を取り違えました。
見つかる数を増やすと、あるところから取り違えが出る。
We develop two tools that allow us to deduplicate training datasets原文Lee et al.「Deduplicating Training Data Makes Language Models Better」 この内容の有効期限2027-02-18
同じ内容の記録を1つにまとめます。完全に同じものだけでなく、書き方が違うだけのものも対象になります。
重複除去は、同じ内容の記録を1つにまとめる処理です。取引先の名簿でも、学習に使う文書でも、やることは同じです。
難しいのはほとんど同じだが完全には一致しない記録です。前の節では、そのまま突き合わせると17%しか見つかりませんでした。
この問題は学習用のデータでも同じです。ある研究は既存の言語モデル用のデータには、ほとんど重複した例や、長い繰り返しの部分文字列が多く含まれると報告しています。
同じ研究は具体例も挙げています。大規模なデータから60,000回を超えて繰り返されている、61語の英文1つを取り除いたと述べています。
業務のデータでも似たことが起きます。同じ取引先が別の書き方で何十件も入っているという形です。
4番目を飛ばさないでください。正規化を足すほど、まとめすぎる危険が上がります。前の節でも、1項目だけで見た時点で取り違えが出ました。
名簿は10社から作った人工のデータです。実際の名簿はもっと種類が多く、書き方の揺れも複雑になります。ここで見せているのは、正規化を足すほど検出が増え、あるところから取り違えが出るという関係です。文字の揺れそのものは表記ゆれの記事で扱っています。
existing language modeling datasets contain many near-duplicate examples and long repetitive substrings原文Lee et al.「Deduplicating Training Data Makes Language Models Better」 この内容の有効期限2027-02-18
総当たりで比べようとすることです。件数が増えると回数が急に増え、現実的な時間で終わりません。
重複除去でまず詰まるのが比べ方です。すべての組を比べようとすると、件数の2乗で増えます。
件数 鍵を作る まとめる 合計 1件あたり 10,000件 6.1ms 3.2ms 9.3ms 0.93μs 50,000件 29.8ms 14.4ms 44.2ms 0.88μs 200,000件 126.4ms 48.0ms 174.3ms 0.87μs 500,000件 277.0ms 123.2ms 400.2ms 0.80μs 件数 鍵でまとめる 総当たり 10,000件 10,000回 49,995,000回 50,000件 50,000回 1,249,975,000回 200,000件 200,000回 19,999,900,000回 500,000件 500,000回 124,999,750,000回
鍵を作ってまとめる方式なら、50万件で400.2ミリ秒です。1件あたり0.80マイクロ秒で、件数に比例します。
下の表が比べる回数です。50万件だと1,249億回を超えます。鍵でまとめれば50万回です。
1万件の時点ですでに約5000万回です。手元で試したときは動いたのに、本番で終わらないという形になりやすい部分です。
重複は性能の測り方にも影響します。冒頭で引いた研究は、重複を除くことで学習と評価の重なりを減らせる。この重なりは標準的なデータの検証集合の4%超に及ぶとしています。
業務でも同じです。評価用に取り分けたデータに、学習側と同じ記録が混ざっていると、成績が実力より高く出ます。
鍵でまとめれば比例。総当たりは2乗で増える。
reduce train-test overlap, which affects over 4% of the validation set of standard datasets原文Lee et al.「Deduplicating Training Data Makes Language Models Better」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る