Google Chrome silently installs a 4 GB AI model on your device without consent
TL;DR Highlight
Google Chrome이 사용자 동의 없이 Gemini Nano 4GB 모델 파일을 자동 다운로드하고, 삭제해도 재다운로드되는 문제가 발견됐다. GDPR 위반 가능성과 수십억 대 기기에 적용될 때의 환경 비용 문제가 제기되고 있다.
Who Should Read
Chrome을 기업 환경이나 NFS 공유 스토리지에서 관리하는 시스템 관리자, 또는 개인 정보 보호와 디스크 용량 관리에 민감한 개발자.
Core Mechanics
- Chrome의 사용자 프로필 디렉토리 내 'OptGuideOnDeviceModel' 폴더 안에 'weights.bin'이라는 약 4GB 파일이 생성된다. 이 파일은 Google의 온디바이스 LLM인 Gemini Nano의 가중치(모델 파라미터) 파일이다.
- 이 다운로드는 사용자에게 별도 동의 팝업이나 설정 체크박스 없이 이루어진다. Chrome의 AI 기능('Help me write', 온디바이스 사기 탐지 등)이 최신 Chrome 버전에서 기본 활성화되어 있어 하드웨어 요건만 충족하면 자동으로 내려받는다.
- 사용자가 해당 파일을 직접 삭제해도 Chrome이 실행될 때 다시 다운로드된다. 이 삭제-재다운로드 사이클이 Windows 환경에서 다수의 독립적인 보고를 통해 확인됐다.
- Chrome 148 버전부터는 'Prompt API for Gemini Nano'가 기본 활성화되어, 웹 페이지에서 `LanguageModel.create()` API를 호출하면 모델 다운로드가 트리거될 수 있다. CPU 모델은 약 2.7GB, GPU 모델은 약 4.0GB 크기이며, 다운로드 전 22GB 이상의 여유 디스크 공간을 확인한다.
- 재다운로드를 막으려면 `chrome://flags`에서 'Enables optimization guide on device', 'Prompt API for Gemini Nano', 'AI Mode' 세 가지 플래그를 비활성화하거나, 기업용 정책 도구를 사용해야 한다. 일반 가정 사용자는 사실상 기업용 관리 도구에 접근하기 어렵다.
- 저자(Alexander Hanff)는 이 행위가 EU ePrivacy Directive Article 5(3), GDPR Article 5(1)의 적법성·공정성·투명성 원칙, GDPR Article 25의 설계 단계의 개인정보 보호 의무를 위반한다고 주장한다.
- 전 세계 Chrome 설치 기기 규모(수십억 대)를 고려할 때, 이 모델 배포 한 번에 드는 환경 비용이 6,000~60,000톤의 CO2 환산 배출량에 달할 수 있다고 저자는 추산했다. 이는 CSRD(기업 지속가능성 보고 지침) 대상 기업이라면 신고해야 할 수준이라고 주장한다.
- 커뮤니티 댓글에서는 Gemini Nano(Gemma 4 E2B)의 실제 성능이 추가 파인튜닝 없이는 실용적이지 않다는 의견도 있었다. Gemma 4 E4B가 더 나은 모델이지만 모든 기기에 배포하기에는 너무 크다는 지적도 나왔다.
Evidence
- '소프트웨어를 설치하고 자동 업데이트에 동의했으면 모델 파일도 포함된 것'이라는 반론이 있었다. Microsoft Word의 영어 맞춤법 사전을 자동 설치하는 것과 다를 바 없다는 비유가 나왔고, 동의 프레임 자체가 논점을 흐린다는 의견이 있었다.
- 기업/대학 환경 관리자 입장에서 심각한 문제라는 경험담이 공유됐다. 수천 명의 학생이 NFS 공유 홈 디렉토리를 쓰는 환경에서는 사용자당 4GB가 추가되면 최소 수 TB의 추가 부하가 생기고, Windows 랩실에서는 프로필 초기화 때마다 재다운로드가 반복된다는 지적이 있었다.
- 저자의 환경 비용 계산에 사용된 데이터(2018년 기준, GB당 0.06 kWh)가 8년이나 지난 추정치라 최소 10배 이상 오차가 날 수 있다는 비판이 있었다. 또한 법적 논거가 법률 전문가가 아닌 사람이 작성한 것처럼 보이고, 글 전체가 LLM이 쓴 것 같은 스타일이라는 냉소적 댓글도 달렸다.
- Linux 환경에서 재다운로드를 막는 실용적인 해결책이 공유됐다. `chrome://flags`에서 세 가지 플래그를 끄고, 해당 디렉토리를 삭제한 뒤 root 소유의 읽기 전용 더미 파일을 같은 경로에 생성해두면 Chrome이 덮어쓰지 못하게 막을 수 있다는 방법이 실제로 동작한다고 전해졌다.
- 전 온디바이스 AI 개발자라고 밝힌 사람이 이 행위의 전략적 의도를 분석했다. Google이 자체 OS 없이 노트북에 LLM을 배포하는 방법으로 Chrome을 활용하는 것이며, Meta가 모바일에서 비슷한 전략을 쓴다면 앱 회사들에게 온디바이스 LLM API를 제공할 수 있다는 맥락에서 이해할 수 있다고 설명했다.
How to Apply
- Linux에서 Chrome의 Gemini Nano 모델이 계속 재다운로드되는 걸 막고 싶다면, `chrome://flags`에서 'Enables optimization guide on device', 'Prompt API for Gemini Nano', 'AI Mode'를 Disabled로 설정한 뒤, 기존 파일을 삭제하고 root 소유 읽기 전용 더미 파일을 같은 경로에 생성해두면 Chrome이 덮어쓰지 못하게 막을 수 있다.
- NFS 공유 홈 디렉토리나 Windows 도메인 환경처럼 수백~수천 명이 공유 스토리지를 쓰는 기업/교육 환경에서는, 신규 기기나 신규 사용자에게 Chrome을 기본 브라우저로 배포하지 않는 정책을 지금부터 적용하면 향후 수 TB 단위의 불필요한 스토리지 부하와 네트워크 트래픽을 예방할 수 있다.
- Chrome 148 이후 웹 서비스를 운영하는 개발자라면 브라우저의 `LanguageModel.create()` Prompt API를 통해 온디바이스 Gemini Nano를 호출하는 기능을 실험해볼 수 있다. 다만 현 모델(Gemma 4 E2B 수준)의 성능이 실용적이지 않다는 현장 의견이 있으므로, 서비스에 적용하기 전에 충분히 테스트해볼 필요가 있다.
- 기업 Chrome 정책을 관리하는 경우 Google의 엔터프라이즈 정책 도구를 통해 `OptimizationGuideOnDeviceModel` 관련 정책을 비활성화하면, 개별 사용자가 플래그를 수동으로 조작하지 않아도 조직 전체에서 모델 다운로드를 차단할 수 있다.
Code Example
# Linux에서 Gemini Nano 재다운로드 영구 차단하는 방법
# 1. chrome://flags 에서 아래 항목을 Disabled로 설정
# - Enables optimization guide on device
# - Prompt API for Gemini Nano
# - AI Mode
# 2. DevTools(F12) > Settings(톱니) > AI Innovations > Enable AI assistance 체크 해제
# 3. 기존 모델 파일/디렉토리 삭제
sudo rm -rf ~/.config/google-chrome/OptGuideOnDeviceModel
sudo rm -rf ~/.config/googlechrome/Default/OptGuideOnDeviceModel
# 4. root 소유 읽기 전용 더미 파일 생성 (Chrome이 덮어쓰지 못하게)
sudo touch ~/.config/google-chrome/OptGuideOnDeviceModel
sudo chmod 400 ~/.config/google-chrome/OptGuideOnDeviceModel
sudo touch ~/.config/google-chrome/Default/OptGuideOnDeviceModel
sudo chmod 400 ~/.config/google-chrome/Default/OptGuideOnDeviceModel
# 5. root 소유권 확인
sudo chown root:root ~/.config/google-chrome/OptGuideOnDeviceModel
sudo chown root:root ~/.config/google-chrome/Default/OptGuideOnDeviceModel
# 6. 확인
ls -l ~/.config/google-chrome/OptGuideOnDeviceModel
ls -l ~/.config/google-chrome/Default/OptGuideOnDeviceModelTerminology
Related Papers
Training an LLM in Swift, Part 1: Taking matrix mult from Gflop/s to Tflop/s
Apple Silicon에서 Swift로 직접 행렬 곱셈 커널을 구현하며 CPU, SIMD, AMX, GPU(Metal)를 단계별로 최적화해 Gflop/s에서 Tflop/s 수준까지 성능을 높이는 과정을 상세히 설명한 글이다. 프레임워크 없이 LLM 학습의 핵심 연산을 밑바닥부터 구현하고 싶은 개발자에게 Apple Silicon의 성능 한계를 체감할 수 있는 드문 자료다.
Removing fsync from our local storage engine
FractalBits가 fsync 없이 SSD 전용 KV 스토리지 엔진을 구현해 동일 조건 대비 약 65% 높은 쓰기 성능을 달성한 설계 방법을 공유했다. fsync의 메타데이터 오버헤드를 피하기 위해 사전 할당, O_DIRECT, SSD 원자 쓰기 단위 정렬 저널을 조합한 구조가 핵심이다.
How OpenAI delivers low-latency voice AI at scale
OpenAI redesigned its WebRTC stack to serve real-time voice AI to over 900 million users, detailing the design decisions and trade-offs of a relay + transceiver split architecture.
Efficient Test-Time Inference via Deterministic Exploration of Truncated Decoding Trees
Deterministic Leaf Enumeration (DLE) cuts self-consistency’s redundant sampling by deterministically exploring a tree of possible sequences, simultaneously improving math/code reasoning performance and speed.
Show HN: GoModel – an open-source AI gateway in Go
GoModel unifies access to OpenAI, Anthropic, Gemini, and other AI providers through a single, OpenAI-compatible API, offering a compiled-language alternative to LiteLLM.