学習・チューニング

重複除去とは|全部見つける代わりに、47,936組を取り違えた

重複除去とは何をするのかどこまで正規化すればよいのか件数が増えるとどうなるのか

同じ会社が別の書き方で入っている名簿を作り、突き合わせました。そのままだと34,481組しか見つかりません。

電話番号だけで見れば200,270組すべて見つかります。ただし47,936組を取り違えました。

この記事の要点

  • そのままだと34,481組
  • 空白と全角をそろえると101,740組
  • 会社の種別も落とすと145,893組
  • 電話番号だけだと全部見つかるが47,936組を取り違え

全部見つける代わりに、47,936組を取り違えた

突き合わせ方を5通り変えて数えました。見つかる数を増やすと、あるところから取り違えが出ます。

重複除去で突き合わせ方を変えると何が起きるのかを、実際に走らせて数えました。用意したのは取引先の記録2000件です。

実体は10社で、6通りの書き方が混ざっています。空白、全角の記号、略記、電話の区切り、住所の丁目表記です。

text
  そのまま          株式会社山田製作所|東京都千代田区丸の内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

紛らわしい相手も混ぜました。同じ名前で所在地の違う別会社と、代表電話を共有するグループ会社です。

text
突き合わせ方              まとまった数  正しくまとまった  取り違え
そのまま突き合わせる                       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組です。書き方の違いだけを吸収しているので、別の会社が混ざりません。

1項目だけで見ると取り違える

電話番号だけで見ると200,270組すべてが見つかります。ところが同時に47,936組を取り違えました。

原因は代表電話を共有するグループ会社です。別の会社なのに、同じ番号なので同じものとして扱われます

会社名だけで見た場合も同じです。同じ名前で所在地の違う会社が混ざり、41,850組を取り違えました。

見つかる数を増やすと、あるところから取り違えが出る。

そのまま正しく検出34481取り違え34481組会社の種別も落とす145893145893組電話番号だけ20027047936248206組記録2000件・実体10社での実測。本当に同じ会社である組の総数は200,270組。
図1 ── 突き合わせ方ごとの検出と取り違え
出典Lee et al.「Deduplicating Training Data Makes Language Models Better」2026-08-18 確認
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つを取り除いたと述べています。

業務のデータでも似たことが起きます。同じ取引先が別の書き方で何十件も入っているという形です。

進める順番

  1. そのまま突き合わせる。まずここで何件見つかるか
  2. 書き方をそろえる。空白、全角、区切り記号
  3. 表記の揺れを落とす。会社の種別、敬称、接尾の語
  4. 組を目で見る。取り違えが出ていないか確かめる

4番目を飛ばさないでください。正規化を足すほど、まとめすぎる危険が上がります。前の節でも、1項目だけで見た時点で取り違えが出ました。

余談 この計測での注意

名簿は10社から作った人工のデータです。実際の名簿はもっと種類が多く、書き方の揺れも複雑になります。ここで見せているのは、正規化を足すほど検出が増え、あるところから取り違えが出るという関係です。文字の揺れそのものは表記ゆれの記事で扱っています。

出典Lee et al.「Deduplicating Training Data Makes Language Models Better」2026-08-18 確認
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乗で増えます。

text
件数        鍵を作る  まとめる  合計    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乗で増える。

充足 2 / 4鍵を作ってまとめる方式にしている50万件で400.2ミリ秒。総当たりなら1,249億回を超えるまとまった組を目で見て確かめている正規化を足すほど、まとめすぎる危険が上がる1つの項目だけで同一と判断している代表電話を共有するグループ会社で47,936組を取り違えた評価用を分ける前に重複を除いていない学習側と同じ記録が混ざると、成績が実力より高く出る記録2000件・実体10社での実測にもとづく。正規化を足すと検出は34,481組から145,893組に増えた。
図2 ── 重複除去の点検項目
出典Lee et al.「Deduplicating Training Data Makes Language Models Better」2026-08-18 確認
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

よくある質問

どこまで正規化すればよいですか
取り違えが出ない範囲までです。この計測では会社の種別を落とすところまでは取り違え0組でした。
1つの項目だけで見てはいけないのですか
取り違えます。同じ名前の別会社や、代表電話を共有するグループ会社が同じものとして扱われます。
件数が増えると遅くなりますか
鍵を作ってまとめる方式なら比例します。50万件で400.2ミリ秒、1件あたり0.80マイクロ秒でした。
総当たりで比べてはいけないのですか
50万件だと1,249億回を超えます。鍵でまとめれば50万回で済みます。

まとめ

  • 同じ内容の記録を1つにまとめる処理
  • 正規化を足すほど見つかる数は増える
  • 1項目だけで見ると取り違えが出る
  • 鍵でまとめれば件数に比例する

今日から始められること

  1. 同じものが別の書き方で入っている例を10件集める
  2. そのまま突き合わせて、何件見つかるか数える
  3. 空白と全角をそろえて、もう一度数える
  4. 取り違えが出ていないか、まとまった組を目で見る

実務で組んだ重複除去のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る