AI学習の問題と学習されたくない人が対策のために選ぶツール選出基準の個人的なまとめ


こんにちは！
[CYBIRD Advent Calendar 2024](https://qiita.com/advent-calendar/2024/cybird "CYBIRDのカレンダー")　19日目担当の@cy-n_aoです。
18日目は@CR_さんの「SES歴5年で学んだこと、感じたこと」でした。

一年ぶりに参加させていただきます。
普段はサーバサイドエンジニアをしています。
今回の記事は仕事内容とは全然関係ないんですが、個人的に興味のあるネタを書いていきたいと思います。

## はじめに

AIが台頭してきている昨今、利用している人も増えてきているかと思います。
しかしそれに伴い自作品をAI学習して欲しくないと考えているクリエイターの著作物が無断で学習されてトラブルになっている事象もかなり増えているように思います。
そこで、エンジニア目線も入れた「AI学習されたくない人が対策のために何を基準にアップロード先を決めればいいのか？」に関して少しでもまとめられればと考えて記事にしました。

## そもそもAI学習ってなに？

`ChatGPT`や`Google Gemini`といったAIロボットがネットワーク上のwebサイトやSNS上の内容を収集(クロール)し取り込む(学習していく)こと
機械学習と呼ばれ、AI出力を行う上で必要な情報を追加してAIとしてより高度なものになるように情報を蓄積する機能です。
この「学習」にはAI作成時の一番最初に行われる基礎学習、AI作成後に特定のデータのみを取り込んで行う追加学習などいろいろ種類がありますが、
そこまで書くと長くなるので今回は一旦割愛します…！

:::note info
GoogleやYahoo!といった検索用のサーチエンジンなどでも同じようにWeb上をクロールしてデータを取得していますが、データ取得後の根本的用途が異なるので今回の話とは別の話になります。
:::

## AI学習の問題点

AIはその性質上、AIとして完成する前にこの世に存在するあらゆるものからデータを収集して学習するため、時には誰かが作った絵や文、漫画、音楽・ボイス、写真といったいわゆる「著作物」と呼ばれるものまで収集して学習している現状があります。
もちろん無断です。クリエイター側に許可などとっていない場合がほとんどです。

各所団体・個人創作者の中でも、機械学習を「無断学習」と称して、「無断学習をしないでほしい」と訴えている方々もたくさんいます。

また、自分でネット上に上げたものを学習されるだけではなく、<b>無断転載など悪意のある人や問題意識のない第三者がアップロードした物も対象になってしまう</b>ので、これも大きな問題になっています。

なお、「著作物のAI学習」について日本の行政機関としては以下見解のようです。

```
ＡＩ開発のための情報解析のように、著作物に表現された思想又は感
情の享受を目的としない利用行為は、原則として著作権者の許諾なく
行うことが可能です

・・・（中略）・・・

AI生成物に、既存の著作物との「類似性」又は「依拠性」が
認められない場合、既存の著作物の著作権侵害とはならず、
著作権法上は著作権者の許諾なく利用することが可能です。

これに対して、既存の著作物との「類似性」及び「依拠性」が
認められる場合、そのようなAI生成物を利用する行為は、
① 権利者から利用許諾を得ている
② 許諾が不要な権利制限規定が適用される
……のいずれかに該当しない限り、著作権侵害となります。
```

[文化庁のページより](https://www.bunka.go.jp/seisaku/chosakuken/pdf/93903601_01.pdf)


…簡単に言うと、<b>「著作物であっても学習するのはOK。でもAI出力したものが著作物と似てるものを公表するとアウト(になる場合もある)」</b>ということです。

ただし、これは日本の文化庁の見解のため、海外はそうではない場合があります。
海外のwebサイトは国外の会社が運営・サーバ管理をしているので、それぞれの国の基準やサイトの利用規約を遵守する必要があります。

また、先述したとおりクリエイター側が学習NGと主張している場合も少なくありません。

## Webスクレイピングについて

AI学習と似たような挙動の一つに、「Webスクレイピング」というものがあります。
というか、やってる事はAI学習≒Webスクレイピングです。
`Python`などをPCにインストールしてちょっとコーディングすれば誰でも簡単にスクレイピング自体はできてしまいます。

### macでやってみた

macをつかって`Python`でWebスクレイピングをやってみます。

先にHomebrewのインストールを済ませておきます。

#### [1] pyenvインストール

※`pyenv`とは、`Python`のバージョン管理ができるツールです。

```console
$ brew install pyenv
```

インストール確認

```console
$ pyenv -v
pyenv 2.4.19
```

環境変数を設定

```console
$ vi ~/.$(basename $SHELL)rc
```

以下を追記します

```console
eval "$(pyenv init --path)"
```

シェルの再起動

```console
source ~/.zshrc
```

#### [2] Pythonインストール

`pyenv install -list`でインストールしたいバージョンを調べ、
`Python`をインストールします
今回は3.13.0をインストール

```console
$ pyenv install 3.13.0
$ pyenv global 3.13.0
```

以下のコマンドで、インストールしたバージョンが表示され選択できていればOK
(*がついている方が選択中)

```console
$ pyenv versions
  system
* 3.13.0 (set by /Users/*****/.pyenv/version)
```

#### [3] pipインストール

インストール用ファイルをダウンロード

```console
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
```

実行

```console
python get-pip.py
```

インストール確認

```console
$ pip -V
pip 24.3.1 from /Users/****/.pyenv/versions/3.13.0/lib/python3.13/site-packages/pip (python 3.13)
```

ダウンロードしたインストールファイルの削除

```console
rm -f get-pip.py
```

#### [4] ライブラリのインストール

スクレイピングに使用するライブラリ、RequestsとBeautiful Soupをインストール

```console
pip install requests beautifulsoup4
```

インストール確認

```console
$ pip list
Package            Version
------------------ ---------
beautifulsoup4     4.12.3
certifi            2024.8.30
charset-normalizer 3.4.0
idna               3.10
pip                24.3.1
requests           2.32.3
soupsieve          2.6
urllib3            2.2.3
```

#### [5] コードを書く

```python:request.py
# ライブラリのインポート
import requests
from bs4 import BeautifulSoup

# Webページへアクセス
url = "https://example.com"
response = requests.get(url)
html = response.text

# HTMLの中身を取得
soup = BeautifulSoup(html, "html.parser")
title = soup.find("h1").text
p_text = soup.find("p").text

# 出力
print (title)
print (p_text)
```

#### [6] 実行！

接続したURLのページの中身が表示されればOK

```console
$ python request.py
```

私は`Python`やったことないです。
この記事を書くにあたってインストールから実施しました。
でもできてしまいました。
画像の取得や動的に処理するなどはもう少しライブラリを入れたり処理増やしたりと工夫が必要ですが、基本処理はとても簡単にできるということですね…

## ネットに上げた著作物へのAI学習は防げない　のか

結論から言うと<b>「完全には防げないがある程度抵抗することはできる」</b>です。

「そもそもネットに上げず、誰にも公開しなければ学習されないだろ」という物理的な方法をとればOKってのはもちろんそうですし、「ネットに上げたらほぼ取られると思った方がいい」という話も、まあそうだとは思います。
でもそれで何もしなかったら楽しいインターネットライフなんてできなくなると私は思うんですよね。AI学習されたくない人が対策しつつアップロードしたっていいと思うし、試行錯誤するのも楽しいと考えています。
ですので今回は「アップロードしない」以外の方法を探っていきたいと思います。
それぞれみていきます。

### １．robots.txtを確認する

`robots.txt`とは、クロールしてるロボット全般に「クロールしないでね」ってお願いするテキストファイルです。
これが書いてあると良識あるbotは止まってくれますが、あくまでも「お願い」なので破ってクロールすることもできてしまいます。
とはいえ「書いてあればクロールしません」とガイドラインを提示している企業もあるので、一定の効果はあると思います。

配置先は必ず<b>`http://[ドメイン名]/robots.txt`</b>にします

```plaintext
User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-Agent: Google-Extended
Disallow: /
```

こんな感じに、クローラーごとに指定して禁止します。
`Disallow=禁止`

ロボット全部禁止って書くならこうなります。

```plaintext
User-agent: *
Disallow: /
```

### ２．metaタグを確認する

`robots.txt`でなく`metaタグ`に書かないとダメなAIもあるようなのでここの記述も確認必要です。

```html
<meta name="bingbot" content="noarchive">         // Microsoftのbing系bot
<meta name="msnbot" content="noarchive">          // Microsoftのbing系bot
<meta name="pinterest" content="nopin">           // ピンタレスト

<meta name="robots" content="noimageai, noai">    // DeviantArt
```

AIボットじゃないのも記載してありますが、大体こんな感じ


### ３．利用規約に「AI学習禁止かつAIに使用しません」といった旨の記述があるところにする

そのままの意味です。これも`robots.txt`や`metaタグ`と同じでやろうと思えばクロール自体はできます。
ただ規約違反となるため、アカウントの停止やアクセスブロックなどの措置を取られる可能性があります。

### ４．AI学習に使うよと発表していないところにする

上記よりはちょっと弱いですが、除外するツールの選定基準には使えるかと思います。

### ５．cloudflareを搭載しているところにする

AIボットをブロックする機能が登場しています。

https://blog.cloudflare.com/ja-jp/

[AIndependence（AIとの分立）を宣言しましょう：AIボット、スクレイパー、クローラーをワンクリックでブロック](https://blog.cloudflare.com/ja-jp/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/)

これを搭載し機能を有効にすると、既存のボットはもちろん新しいAIボットを見つけるたびにブロックしてくれるみたいです！
搭載している場合はお知らせなどで発表してくれていると思うので、チェックしてみると良いかも。

### ６．限定的に公開する

サイトによって様々な公開方法が用意されている場合があります。
この公開方法を強くすればするほど突破しにくくなるので、クローラーが通る可能性も下がっていきます。

| 強さ | 閲覧設定 |
|-----|--------------------------|
| 弱   | 非会員でも閲覧可能(設定なし) |
| ↑    | ログインユーザ(会員)のみ公開 |
| ↓    | フォロワーにのみ公開 |
| 強   | パスワード限定公開 |

会員かつフォロワーかつパスワード必須っていう強固なところも探せばあります。

### 調べてみた所感：意外といろいろある

これらの対策はAI学習以外のWebスクレイピングにも効果を発揮します。
AIには興味ないけどWebスクレイピングはやってみたい、と言う方も上記のようにロボット対策をしているサイトへはスクレイピングしない方がいいです。
スクレイピングしたことがバレると後々問題になったりすると思います。取り扱いは慎重に！


## 最後に

つらつらと書いてしまったのでまとめというまとめにはなりませんが、一旦のまとめ。
AI学習を防止する方法は様々なものがあります。自分の状況やスタンスに合わせて選んでいきたいですね。
ただ、先述した「全くの第三者がネットに上げてしまったもの」についての対策は一切できない方法にはなっているので、それについては別の手段をとるなど対応する必要がありますね…

AIを使いたい人もAIから自分の著作物を守りたい人も双方幸せになれるような未来があると嬉しいなと思う今日この頃です。
この話題は今後も引き続き注視していきたいと思っています。
ひとまず今回はこの辺で。
ここまで読んでいただきありがとうございました！

明日の[CYBIRD Advent Calendar 2024](https://qiita.com/advent-calendar/2024/cybird "CYBIRDのカレンダー")20日目は@yoooosuさんの記事です。お楽しみに！


:::note warn
※この情報はこの記事を書いた時期(2024年11月〜12月頃)に調べた内容が元になっています。
この記事公開後以降に更新された情報については記述の限りではないので、ご留意願います。
:::