Robust, Scalable Detection of Text Containment in Large Web-Crawled Corpora
이 논문은 대규모 웹 크롤링 코퍼스에서 거의 동일한 텍스트 포함 여부를 정확하게 탐지하기 위해 분산 지문 체이닝(distributed fingerprint chaining)을 활용하여 기존 방식보다 여러 데이터셋에서 뛰어난 성능을 보이는 확장 가능한 오픈 소스 파이썬 도구인 FindMyText를 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
수십억 권의 책, 웹사이트, 기사가 담긴 거대하고 먼지 쌓인 도서관을 상상해 보십시오. 인간이 평생을 바쳐 읽어도 다 읽을 수 없을 만큼 방대한 양입니다. 이제 누군가 당신에게 유명한 소설의 단 한 단락을 건네며 이렇게 묻습니다. "이 정확한 단락이 저 거대한 도서관 안에 들어 있나요?"
이것이 바로 FindMyText가 해결하고자 하는 퍼즐입니다. 이는 특정 텍스트가 거대한 데이터 집합 안에 존재하는지 찾아내기 위해 설계된 새로운 디지털 탐정 도구입니다. 설령 그 텍스트가 약간 수정되었거나, 재구성되었거나, 혹은 다른 단어들의 무더기 속에 숨겨져 있더라도 말입니다.
문제점: "보는 것"만으로는 충분하지 않은 이유
과거에는 건초더미에서 바늘을 찾고 싶다면, 단순히 바늘 모양의 물체를 찾으면 되었습니다. 하지만 만약 그 바늘이 파란색으로 칠해져 있거나, 약간 휘어져 있거나, 눈 구멍 부분이 단추로 바뀌어 있다면 어떨까요? 인터넷을 스캔할 때 발생하는 일이 바로 이것입니다.
거대 AI 모델이 훈련될 때, 그들은 웹에서 테라바이트 단위의 텍스트를 흡수합니다. 하지만 텍스트를 흡수하기 전, 텍스트는 "조리(cooked)"됩니다. 문장 부호가 바뀌고, 문장이 잘리고, 서식이 제거됩니다. 만약 기존의 방식들로 이 지저지고 어지러운 더미 속에서 저작권이 있는 책의 문장을 찾으려 한다면, 속아 넘어가기 쉽습니다.
기존의 도구들은 종종 얼마나 많은 지문이 일치하는지만 세는 지문 스캐너처럼 작동하며, 그 지문들이 어디에 위치하는지는 무시합니다. 만약 고양이에 관한 책과 개에 관한 책이 있고, 두 책 모두 (단, 순서는 다르게) "the", "cat", "dog"라는 단어를 사용한다면, 기존 도구는 "이것 보세요, 비슷합니다!"라고 말할 수 있습니다. 하지만 그것은 잘못된 경보입니다. 그것은 마치 두 사람이 눈과 코를 가지고 있다는 이유만으로 두 사람을 쌍둥이라고 말하는 것과 같습니다. 한 명은 요리사이고 다른 한 명은 조종사라는 사실을 무시한 채 말이죠.
이 논문은 이러한 "유사성" 도구(단순히 일치하는 단어 수를 세거나 "밀집(dense)" 벡터 맵을 사용하는 도구들)에 의존하는 것에 대해 명시적으로 반대합니다. 연구진은 이러한 방식들이 실제로는 같지 않지만 비슷하게 들리는 텍스트에 의해 쉽게 속을 수 있다는 것을 발견했습니다. 또한, 단순한 "정확한 일치(exact match)" 검색은 라이브러리 안의 텍스트가 원본과 100% 동일하지 않고 정제되거나 재형식화되었기 때문에 실패한다는 점을 보여주었습니다.
해결책: "연쇄 반응" 탐정
FindMyText가 등장합니다. 단순히 지문을 세는 대신, 이 도구는 **연쇄(chain)**를 찾습니다.
당신이 길게 찢어진 두 장의 종이를 맞추려고 한다고 상상해 보십시오.
- 기존 방식: 두 종이에 있는 글자가 몇 개나 같은지 셉니다. 만약 50개의 글자가 같다면, 관련이 있을 것이라고 추측합니다.
- FindMyText 방식: **순서(sequence)**를 찾습니다. 첫 번째 종이에서 글자 "A"를 찾은 다음, 두 번째 종이에서 "A"를 찾습니다. 그다음 글자 "B"를 찾고, 첫 번째 종이에서 그랬던 것처럼 두 번째 종이의 "A" 바로 뒤에 "B"가 나타나는지 확인합니다. 그런 다음 "C"를 찾고, 또 확인합니다.
만약 긴, 끊이지 않는 글자의 연쇄가 동일한 순서로 발견된다면, 당신은 진짜 일치하는 대상을 찾은 것입니다. 설령 종이들이 뒤섞여 있더라도, 긴 글자의 연쇄가 함께 유지된다면 그것은 결정적인 증거(smoking gun)가 됩니다.
이 도구는 **위노잉(winnowing)**이라는 영리한 기술을 사용하여 이러한 "지문"(텍ек트 조각의 작은 디지털 요약본)을 생성합니다. 그런 다음 이를 그래프 위에 매핑합니다. 만약 지문들이 그래프 상에서 직선의 대각선 형태를 이룬다면, 그것은 연속적인 연쇄의 일부, 즉 실제 복사본임을 의미합니다. 만약 지문들이 무작위로 흩어져 있다면, 그것은 그저 우연일 뿐입니다.
얼마나 확실한가?
연구진은 단순히 추측한 것이 아니라, 자신들의 도구가 제대로 작동하는지 확인하기 위해 합성 벤치마크(synthetic benchmark)(가상의 테스트 환경)를 구축했습니다. 그들은 수천 개의 "긍정(positive)" 사례(텍스트가 확실히 복사되었으나 편집된 경우)와 "부정(negative)" 사례(텍스트가 비슷하게 들리도록 다시 쓰였으나 실제로는 복사되지 않은 경우)를 만들었습니다.
그들은 FindMyText를 세 가지 거대한 데이터셋을 대상으로 테스트했습니다:
- Wikipedia: 381,000개의 문서.
- ArXiv: 245,000개의 과학 논문.
- HPLT: 5,000만 개 이상의 콘텐츠가 포함된 거대한 웹 크롤링 데이터.
결과는 놀라웠습니다. 이 테스트에서 기존 방식들(공유된 지문 수를 세거나 AI 임베딩을 사용하는 방식)은 종종 실패하여, 무작위 추측에 가까운 점수(AUC-ROC 약 0.5 ~ 0.6)를 기록했습니다. 그러나 FindMyText의 "연쇄 기반" 방식은 Wikipedia에서 0.998의 AUC-ROC를, HPLT 데이터셋에서는 1.00이라는 놀라운 점수를 기록했습니다.
쉬운 말로 설명하자면: 이 도구가 "예, 이 텍스트는 그 안에 있습니다"라고 말했을 때, 그것은 거의 매번 맞았습니다. 텍스트가 조각나거나, 대소문자가 바뀌거나, 중간에 무작위의 불필요한 내용이 삽입되었을 때도 말입니다. 이 도구는 5,000만 개의 항목이 있는 데이터베이스에서 0.5초 미만(450ms) 만에 일치하는 항목을 찾아낼 수 있었습니다.
이것이 왜 중요한가
이것은 단순히 "숨겨진 텍스트 찾기" 게임이 아닙니다. 논문은 이것이 저작권에 있어 매우 중요하다는 점을 강조합니다. 만약 어떤 회사가 특정 저작권이 있는 책을 AI 훈련에 사용하지 않았다고 주장한다면, FindMyText는 그 책의 텍스트가 약간 변형된 상태로 거대한 훈련 데이터 안에 숨어 있는지 확인할 수 있습니다.
이 도구는 **강건(robust)**하도록 설계되었습니다. 현실 세계의 데이터는 지저분하다는 것을 이해하고 있습니다. 쉼표 하나가 빠졌는지, 혹은 단어의 대소문자가 어떻게 바뀌었는지는 중요하지 않습니다. 이 도구는 지문의 연쇄를 봅니다.
이것이 아닌 것
이 도구가 하지 않는 일을 명시하는 것도 중요합니다. 이 도구는 두 텍스트가 동일한 의미를 갖는지 알려주지 않습니다(semantic similarity). 만약 당신이 슬픈 개에 대한 시를 쓰고 다른 사람이 완전히 다른 단어를 사용하여 행복한 개에 대한 시를 쓴다면, FindMyText는 이를 일치한다고 표시하지 않을 것입니다. 이 도구는 오직 동일한 단어의 순서(또는 그와 매우 유사한 버전)가 라이브러리에 나타나는지에만 관심을 가집니다.
저자들은 실험을 바탕으로 이러한 결과에 확신을 가지고 있지만, 또한 이 도구가 현재는 텍스트 포함 여부를 확인하는 "검색 엔진"이라는 점도 언급했습니다. 그들은 향후 유명 데이터셋에 대한 사전 제작된 인덱스를 공개할 계획이지만, 현재로서는 건초더미 속에서 바늘을 찾는 것, 심지어 그 바늘이 휘어지거나 색칠되어 있더라도 찾아낼 수 있음을 증명하는 강력한 오픈 소스 도구입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.