見出し画像

Geminiの技術レポートを読み解く〜生成AIの最前線

Google DeepMindから次世代のマルチモーダル生成AI「Gemini」が発表されました。「GPT-4を圧倒」や「人間の専門家を超えた」などの華々しい評価が発表され、驚くようなデモ動画も公開されました。

断片的な情報が飛び交う中、しっかりと技術レポートを読み解いてみます。

  • どんな生成AIモデル?

  • 定量的な評価は?

  • 具体例は?

Gemini - Technical Report


はじめに

革新的な技術が登場したとき、技術レポートや論文をしっかりと読むことが、急がば回れの近道です。華々しいデモ動画や断片的な二次情報の記事を読んでも、表層的な情報に踊らされて、技術の真の姿を読み解くことはできません。

Geminiに関しては、オープンソースではなく論文もありませんが、技術レポートが公開されています。しかし、60ページの大作であり、英語で書かれているため、多くの人が読むのをためらうでしょう。

そこで、OpenAIのGPTの技術レポートやMetaのLlama2の論文など、生成AIについての技術ドキュメントを読んできた者として、GPTやLlama2との違いも抑えながら、Geminiの技術レポートを読み解いてみます。

モデルの概要

Geminiの大きな特徴は「マルチモーダル」であり、テキスト・音声・画像・動画の入力に対応し、テキストと画像を生成します。

Figure 2 | Gemini は、テキスト、画像、音声、動画の交互的なシーケンスを入力としてサポートします (入力シーケンス内の異なる色のトークン)。 画像とテキストを織り交ぜた応答を出力できます。

中核の技術は「Transformer」であり、主な特徴は以下の通りです。

事前学習では、以下のような工夫をしているようです。

  • SentencePieceトークナイザー(Kudo and Richardson, 2018)を使用し、訓練コーパス全体の大きなサンプルでトークナイザーを訓練することで、推測される語彙が改善され、モデルの性能が向上することを発見

  • ヒューリスティック・ルールとモデルベース分類器の両方を用いて、すべてのデータセットに品質フィルターを適用

  • 学習中に混合構成を変化させるために、学習の終盤にドメインに関連するデータの重みを増加させるような段階的学習

また、AIのリスクに対して責任ある開発をおこなうため、事前学習、教師ありファインチューニング (SFT) 、人間のフィードバックによる強化学習 (RLHF) では、GPT-4やLlama2と異なる工夫を行ったようです。

GPT-4やLlama2の報酬モデルでは「役立つ」「安全である」の2つの報酬スコアだったのに対し、Geminiでは「事実である」の報酬スコアを加えているのが特徴的です。生成AIのハルシネーション(幻覚)を抑える効果を期待したのかもしれません。また、以下の3つの望ましい行動でチューニングして、ハルシネーションを抑える効果があったようです。

  • 帰属 (Attribution) : プロンプトで与えられた文脈に完全に帰属する回答を生成するよう指示された場合、文脈に最も忠実な回答を生成する(Rashkin et al., 2023)

  • クローズド・ブック応答生成:与えられたソースなしで事実探索のプロンプトが提供された場合、間違った情報を幻覚してはならない (Roberts, et al. 2020)

  • 断定表現を避ける (Hedging):「答えられない」ような入力を求められた場合、幻覚を見てはならない。むしろ、断定表現を避けることによって、回答を提供できないことを認めるべきである。

そんな学習をしたGeminiは、3つのモデルがあります。

  • Ultra: 推論やマルチモーダル・タスクなど、非常に複雑な幅広いタスクにわたって最先端のパフォーマンスを提供する、最も有能なモデル。Google製チップのTPUv5eとTPUv4で学習TPUv4アクセラレータは4096個のチップからなるスーパーポッドであり、複数のデータセンターでスーパーポッドを組み合わせてクラスターを構築。

  • Pro: コストとレイテンシーの観点からパフォーマンスが最適化されたモデル。Ultraのリソースのほんの一部を活用して、数週間で事前学習を完了。

  • Nano: デバイス上で実行するように設計された、最も効率的なモデル。Nano-1 (1.8Bパラメータ)とNano-2 (3.25Bパラメータ)の2種類。要約や読解など様々なタスクに対応するクラス最高の小規模言語モデルを生成するために、蒸留と学習アルゴリズムの進化を活用。

定量的な評価

Geminiの定量的な評価を確認するにあたり、トップランナーであるOpenAIの大規模言語モデルGPT-4、大規模画像モデルGPT-4V、音声認識モデルWhisperと比較した結果をピックアップしていきます。

MMLUでGPT-4や人間の専門家を上回る

世間をにぎわせたのは、GPT-4や人間の専門家を上回ったという、以下の数字でしょう。

https://deepmind.google/technologies/gemini/

Gemini Ultra は、数学、物理学、歴史、法律、医学、倫理など 57 の科目の組み合わせて知識と問題解決能力をテストする MMLU (大規模マルチタスク言語理解) で 90.00% をスコアし、人間の専門家を上回るパフォーマンスを示した初のモデルです。

https://japan.googleblog.com/2023/12/gemini.html

ここで批判的に見ると、いくつか疑問が湧いてきます。

  • 注意書きを見ると、Gemini Ultraが「CoT@32」というプロンプト手法なのに、GPT-4が「5-shot」であり、同一条件でではなく、不公平な比較をしているのでは?

  • 「CoT@32」とは、どんなものか?

そこで、技術レポートを見てみると、CoT@32と5-shotのそれぞれで比較した結果がありました。

Table 2 | Gemini performance on text benchmarks with external comparisons and PaLM 2-L.

「CoT@32」ではGemini Ultraが優れていますが、GPT-4は「CoT@32」より「5-shot」の方が精度が劣ります。つまり、前述のGemini Ultra対GPT-4のグラフは、GPT-4の低い精度の方を選んで、不公平な比較をしていたことになります。
もちろん、今までの最高精度と比較するという意味で、GPT-4の5-shotを比較対象にするのは間違っていません。しかし、純粋なモデルの性能を比較するには、同じ手法で見るべきです。また、5-shotで比較した場合、勝敗が逆転し、Gemini UltraよりGPT-4の方が優れている点も、理解しておくべきでしょう。

では、「CoT@32」というプロンプト手法について、技術レポートを見てみます。どうやら、32個の回答候補を生成して、その中でも最も良いものを選ぶ手法のようです。

モデルの不確実性を考慮した思考連鎖型プロンプトアプローチ(Wei et al., 2022) と組み合わせて使用された場合に、最高の精度を達成することを発見した。
モデルはk個のサンプル、例えば8個や32個のサンプルで思考の連鎖を生成する。事前に設定された閾値(検証分割に基づいて選択される)以上のコンセンサスがあれば、この答えを選択し、そうでなければ、思考の連鎖なしに、最尤選択に基づく貪欲なサンプルに戻る。

32の業界ベンチマークのうち30で最高水準

Gemini Ultraが、GPT-4に圧勝した根拠が、以下の数字でしょう。

自然な画像の理解から数学的推論、音声や動画の理解に至るまで、広く使用されている 32 の業界ベンチマークのうち 30 で、Gemini Ultra のパフォーマンスは既存の最高水準の結果を上回っています。

https://japan.googleblog.com/2023/12/gemini.html

ここで批判的に見ると、いくつか疑問が湧いてきます。

  • なぜ、32個のベンチマークなのか?他のベンチマークは?

  • 32個のベンチマークの内訳は?

  • Gemini Ultraが性能で劣った、30の内の2つのベンチマークは?

そこで、技術レポートを見てみると、実は61個のベンチマークで評価したことが、Appendixに書かれていました。

Appendix 9.2. Capabilities and Benchmarking Tasks

なぜ約半分のベンチマークが対象外になったのでしょう?
その理由の一つに、大規模モデルならではの問題があります。大規模モデルはインターネット上の大量のデータを学習しているため、もし対象のベンチマークのデータも学習してしまっている場合、事実上カンニングをしていることになります。それを避けるために、いつくかのベンチマークを対象外にしたという記載がありました。

これらのベンチマークでの評価は困難であり、データの汚染によって影響を受ける可能性がある。ここで報告する結果が可能な限り科学的に確かなものであることを確認するため、トレーニング後に広範なリークデータ分析を行ったが、それでもいくつかの小さな問題が見つかったため、例えばLAMBADA (Paperno et al., 2016)に関する結果は報告しないことにした。

流出データのない、よりロバストでニュアンスのある標準化された評価ベンチマークが必要であると考えている。そこで、WMT23やMath-AMC 2022-2023のような最近リリースされた新しい評価データセットや、Natural2Codeのような非ウェブソースから内部的に生成されたデータセットでGeminiモデルを評価した。

5.1.1. Academic Benchmarks

次に、32個のベンチマークの内訳を見てみます。

  • テキストと推論:12

  • 画像認識:9

  • 動画認識:6

  • 音声認識と音声翻訳:5

テキストと推論のベンチマーク

テキストと推論の12のベンチマークの評価結果は、複数の表に分かれています。

Table 2 | Gemini performance on text benchmarks with external comparisons and PaLM 2-L.
Table 5 | Performance of Gemini models on multilingual math and summarization.

Gemini Ultraが、GPT-4を代表とした他のモデルを圧倒していることが分かります。また、Gemini ProはGPT-3.5を圧倒しており、軽量モデルで高速処理かつ優れた性能が期待されます。

そして、Gemini Ultraが劣った2つのベンチマークは、推論のHellaSwagと多言語要約のWikilinguaのようです。ただし、他の推論のベンチマーク  (BigBench Hard, DROP) や多言語のベンチマーク (WMT23, MGSM)ではGemini Ultraが優れているので、推論や多言語が一概に弱いわけではないようです。

画像認識のベンチマーク

画像認識は、4つの異なる能力でモデルを評価したようです。

  1. オブジェクト認識:VQAv2のようなキャプションや質問応答タスク

  2. 書き起こし:TextVQAやDocVQAのような詳細認識を必要とするタスク

  3. 図表理解:ChartQAやInfographicVQAを使用した入力レイアウトの空間的理解を必要とするタスク

  4. マルチモーダル推論:Ai2D、MathVista、MMMU

Table 7 | Image understanding

Gemini UltraがGPT-4Vを上回っただけでなく、ファインチューニングした既存モデルを上回っている点にも注目です。

公に報告されている他のモデル(特にGPT-4V)の結果と比較すると、Geminiはゼロショット評価においてかなりの差をつけて優れている。
また、大半のタスクにおいて、ベンチマークのトレーニングセットで特別にファインチューニングされたいくつかの既存モデルを上回っている。

5.2.1. Image Understanding

動画認識のベンチマーク

動画認識は、動画のキャプションや質問応答のタスクで評価されました。GPT-4は動画に対応していないので、比較対象は、既存の最高性能 (SoTA)のモデルのみです。

Table 10 | Few-shot video understanding across tasks and languages on selected academic benchmarks.

Gemini Ultraが圧倒的に強いです。ちなみに動画認識では、静止画と異なり、「数フレームにわたる強力な時間的推論の能力を示している」のがポイントです。

音声認識のベンチマーク

音声認識と音声翻訳のベンチマークの評価では、OpenAIのWhisper、Universal Speech Model (USM)と比較されました。

指標として、WER (単語誤り率) は数値が低いほど優れているので、GeminiがWhisperに圧勝しています。また、BLEU (BiLingual Evaluation Understudy)は数値が高いほど優れているので、Geminiが優れています。

定性的な具体例

Gemini Ultraの能力を具体的に理解するため、Appendixにある豊富な例をピックアップします。Googleによる演出込みのデモや様々なメディアによる検証例より、技術レポートにある例をじっくり確認する方が、Geminiの特徴をよく理解できます。

なお、現在のGeminiは、プロンプトが英語のみ対応ですが、分かりやすさのため日本語に翻訳しておきます。

1.多言語環境における常識的な推論

画像の常識的推理をします。 グラフに表された関係を理解し、多言語でそれらについて推論することができます。

プロンプト

この表に基づいて、家族の両側の祖父母を何と呼ぶべきかを説明してください

回答

父親側では、祖父母のことを Yéye と Naˇinai と呼ぶでしょう。 母親側では、祖父母のことを Wàigo Äng と Wàipó と呼びます。

2.推論とコード生成

ユーザーのリクエストに基づいて Web サイトのコードを作成します。 ユーザーが定義した指示と要件に従い、それらを機能するコードに変換します。

プロンプト

「オポッサム検索」という Web アプリを作成します。
1. 検索クエリを作成するたびに、同じクエリを含む Google 検索にリダイレクトされますが、その前に単語「オポッサム」が表示されます。
2. 視覚的には Google 検索と似ている必要があります。
3. Google ロゴの代わりに、インターネットから取得したオポッサムの写真を含める必要があります。
4. 単一の HTML ファイルである必要があり、個別の js または css ファイルは使用できません。
5. フッターに「Powered by google search」と表示されます。

回答

オポッサム検索のコードは次のとおりです。

<!DOCTYPE html> <html>
<head>
<title>Opossum Search</title> <style>
     body {
font−family: Arial, margin: 0; padding: 0;
}
sans−serif;
      header { background−color: #333; color: #fff;
text−align: center; padding: 1rem 0;
}
.search−bar {
display: flex; justify−content: center; align−items: center; height: 50px; margin−top: 1rem;
}
.search−input {
width: 50%;
padding: 0.5rem; border: 1px solid #ccc; border−radius: 5px;
}
.search−button { margin−left: 1rem; padding: 0.5rem 1rem; border: 1px solid #ccc; border−radius: 5px; cursor: pointer;
}
footer { background−color: #333; color: #fff;
text−align: center; padding: 1rem 0; margin−top: 1rem;
} </style>
</head> <body>
<header>
<h1>Opossum Search</h1>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Didelphis_virginiana.jpg/ 1200px−Didelphis_virginiana.jpg" alt="Opossum" width="100">
</header>
<div class="search−bar">
<input type="text" class="search−input" placeholder="Search the web"> <button class="search−button">Search</button>
</div>
<footer>
Powered by Google Search
</footer>
<script>
const searchInput = document.querySelector('.search−input'); const searchButton = document.querySelector('.search−button');
searchButton.addEventListener('click', () => { const query = searchInput.value;
if (query) {
window.location.href = `https://www.google.com/search?q=opossum+${query}`; }
}); </script>
</body>

このコードは、Google 検索に似たシンプルな Web アプリを作成しますが、オポッサムのロゴが付いています。 検索クエリを入力して [検索] ボタンをクリックすると、クエリの先頭に「オポッサム」という単語が追加された Google 検索にリダイレクトされます。 フッターに示されているように、アプリは Google 検索を利用しています。

3.数学: 微積分

微積分の問題を解きます。段階的な説明と正しく定義されたLaTeX 方程式によって、微積分問題の解決策を得ることができます。

プロンプト

sinh 𝑥 + cosh 𝑦 = 𝑥 + 𝑦 の導関数を求めてください。

回答

$${ \frac{d}{dx} \sinh x = \cosh x }$$、$${ \frac{d}{dx} \cosh y = \sinh y \frac{dy}{dx}}$$ なので、
$${ \cosh x + \sinh y \frac{dy}{dx} = 1 + \frac{dy}{dx}}$$
$${\frac{dy}{dx}}$$を解くと、
$${\frac{dy}{dx} = \frac{1 - \cosh x }{\sinh y - 1}}$$
最終回答:最終解答は $${ \frac{1 - \cosh x }{\sinh y - 1}}$$ です。

4.多段階の推論と数学

複数のステップからなる数学の問題を解きます。タスクを理解し、正しく計算された値を含むマークダウン・テーブルを生成できます。 また、数値の出所を示し、タスクで与えられた質問に答えるための指示にも明示的に従います。

プロンプト

2018年に工場Aは5億フォリント相当の商品を生産し、工場Bは4億フォリント相当の商品を生産した。 長期計画によれば、工場 A は毎年 5% ずつ生産を増やし、工場 B は年間 6% ずつ生産を増やします。
上記の計画は経済ウェブサイトに掲載されました。 記事のコメントセクションで議論が始まりました。あるユーザーは、2 つの工場間の生産量の差は今後数年でどんどん縮まるだろうと主張しました。

以下の表の欠損値を計算し、上記の主張が正しくないことを示してください。
Header: | 2018 | 2019 | 2020 | 2021 |
Production volume of factory A (mln) | 500 | | | |
Production volume of factory B (mln) | 400 | | | |

回答

2019 年の工場 A の生産量は、500 * 1.05 = 5 億 2,500 万フォリントです。 2019年の工場Bの生産量は400 * 1.06 = 4億2,400万フォリントです。
2019年の生産量の差は525-424=1億100万フォリントです。
2020 年の工場 A の生産量は、525 * 1.05 = 5 億 5,125 万フォリントです。
2020 年の工場 B の生産量は、424 * 1.06 = 4 億 4,944 万フォリントです。
2020年の生産量の差は551.25-449.44=1億181万フォリントとなります。
2021 年の工場 A の生産量は、551.25 * 1.05 = 5 億 7,881 万フォリントです。 2021 年の工場 B の生産量は、449.44 * 1.06 = 4 億 7,641 万フォリントです。 2021年の生産量の差は578.81-476.41=1億240万フォリントとなる。

ご覧のとおり、2 つの工場間の生産量の差は実際には縮小するどころか拡大しています。 したがって、2 つの工場間の生産量の差が今後 2 ~ 3 年でどんどん縮まるだろうという主張は真実ではありません。

5.複雑な画像の理解、コード生成、および命令のフォロー

コード生成に適用されるマルチモーダル推論機能です。 プロットを生成したコードを推論し、追加の数学的変換を実行し、関連するコードを生成するために、逆グラフィックス・タスクを実行します。

プロンプト

左上のサブプロットに示されている関数を取得し、1000 倍して、それを左下のサブプロットに示されている関数に追加してください。 単一の結果プロットの matplotlib コードを生成してください。

回答

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.exp(x)

plt.plot(x, 1000∗y1 + y2)
plt.show()

6.動画の理解と推論

動画で示された状況を理解し、推論します。 テキスト・プロンプトとともに、動画を入力します(※以下の静止画は説明のためであり、実際は動画)。動画内で何が起こったのかを分析し、動画内のアクションがどのように改善されたかについての推奨事項を回答できます。

プロンプト

https://www.youtube.com/watch?v=VmWxjmJ3mvs

この人はどうやって技術を向上させることができるでしょうか?

回答

このサッカー選手はボールを打つ仕組みを改善する必要があります。 足がボールとうまく接触していないため、ボールが上に飛んでゴールから離れてしまいます。 また、体のポジショニングにも取り組む必要があります。 蹴らない方の足を蹴る足の前に傾けてショットに臨み、蹴る足でフォロースルーする必要があります。

7.データのチャート理解と推論

テキストを読み、異なるデータポイント間のつながりを理解し、それらを推論して興味深いポイントを推薦し、マークダウン表(※以下では分かりやすさのため、正しくレンダリングされた結果を表示)を生成します。

プロンプト

これらのグラフの中で際立っているデータポイントを見つけ、それが何を意味するのか教えてください。そして、示されたすべてのデータについて詳細なマークダウン表を作成してください。

回答

際立っているデータは、米国の埋め立てプラスチック廃棄物で、その割合は73%である。これは、表示された他の国や地域よりもかなり高い。これは、米国が他の国や地域ほどプラスチック廃棄物のリサイクルや焼却を行っていないことを意味している。

8.マルチモーダルな質問応答

マルチモーダルな情報探索クエリに答えます。画像に示された特定の植物を認識し、それに関する情報を提供することができます。誤字脱字があってもユーザーの質問を理解できるため、誤字脱字に対する頑健性を示します。

プロンプト

この植物をご存知ですか?どのように世話をすればいいでしょうか?

回答

これはペルシャンシールドプランツ。東南アジア原産の熱帯植物です。手入れが簡単で、紫色の葉が美しいので、観葉植物として人気があります。
ペルシャンシールドプランツは、明るく間接的な光を好みます。直射日光には多少耐えられるが、直射日光が強すぎると葉が焦げてしまう。また、暖かい温度と高い湿度を好みます。
定期的な水やりが必要ですが、水につけておくべきではありません。土は湿らせておくが、水浸しにはしない。定期的に霧吹きをするのも効果的です。
ペルシャシールドは、生育期には2週間に1度肥料を与えます。バランスのとれた肥料がよいです。
ペルシャシールドは、メアリ虫やハダニなどの害虫に弱いです。これらの害虫は、殺虫石鹸やニームオイルで防除することができます。
ペルシャシールドは、茎の挿し木で殖やすことができます。挿し木は春か夏に行い、水か湿らせた鉢植え用ミックスで発根させます。

9.画像とテキストの交互生成

交互的なテキストと画像を生成します。テキストに密接に関連する画像と、すべての画像で高いレベルの一貫性を示す犬の画像を含むブログ記事を生成します。

プロンプト

犬と飼い主がたくさん楽しんだニューヨーク旅行のブログ記事を作成してください。犬がいろいろな名所で楽しそうにポーズをとっている写真を何枚か載せてください。

回答

こんにちは、私はクーパーです。旅行が大好きな2歳のゴールデンドゥードルです。先月、家族とニューヨークに行きました。ビッグアップルは初めてでしたが、とても楽しかったです!
タイムズスクエアの近くのホテルに泊まりました。明るい光と人々を見るのはとても楽しかったです。ブロードウェイのショーを見に行き、何人かの俳優に会うこともできました。
ニューヨークで一番気に入ったのはセントラルパークです。とても広くて美しかった。走り回ったり、取ってこい遊びをしたりするのが大好きでした。自由の女神やエンパイアステートビルにも行きました。有名なランドマークを見て、とても興奮しました。
ニューヨークは本当に楽しかった。間違いなく、私のお気に入りの旅行先のひとつです。またいつか行くのが待ち遠しいです!

10.イメージの理解と推論

マルチモーダル推論問題を解きます。画像内の形状を認識し、それらの特性を理解し、それらの間の関係を推論して、次のオブジェクトを予測できます。

プロンプト

この3つの形の並びを見てください。どのような形が4番目の形となるべきでしょうか?最初の図形の詳細な説明とともに、あなたの推論を説明してください。

回答

第4の図形は六角形でなければならないです。最初の図形は三角形、2番目の図形は四角形、3番目の図形は五角形です。各図形の辺の数は1ずつ増えています。

11.幾何学的推論

幾何学的な推論課題を解きます。課題をよく理解して、やや不明瞭な指示にもかかわらず、意味のある推論ステップを提供できます。

プロンプト

面積が100平方単位である平行四辺形の高さを求めてください。

回答

平行四辺形の面積は底辺と高さの積に等しい。したがって、100 = (𝑥+15)𝑥となる。𝑥^2 +15𝑥 -100 = 0となる。この方程式の根は𝑥 = 5と𝑥 = -20である。二番目の根は負であり、受け入れられません。
最終解答:最終的な答えは5です。これが正しいことを願います。

12.対象物に関する情報探索

マルチモーダルの入力を元にパズルを解きます。画像内の物体を認識し、2つの物体をつなぐ共通点を特定します。

プロンプト

これらの関連性を見つけてください。ヒント:歴史的な出来事について考えてください。

回答

月は人類がゴルフをプレーした唯一の天体です。1971年、アポロ14号の乗組員は月面で2つのゴルフボールを打ちました。

13.視覚的手がかりに基づくマルチモーダル推論

画像に写っている物体(エンパイアステートビル)を識別し、画像にわずかな歪みがあっても、それが何であるかを認識します。また、画像に基づいて、撮影者の正確な位置を正しく特定することもできます。

プロンプト

この画像が撮影された正確な場所を知っていますか?

回答

この画像はニューヨーク市で撮影されました。 エンパイア・ステート・ビルディングが背景に見えます。 手前の通りは8番街です。 交差点は西34番街です。

14.マルチモーダルなユーモアの理解

ミームのユーモアを説明します。 画像やプロンプトで文化的背景が明示的に言及されていない場合でも、画像内で何が起こっているかだけでなく、それが何を意味するかを説明する能力を示します。

プロンプト

このミームを説明してもらえますか?

回答

このミームは、300 FPS でゲームをプレイしているが、モニターの周波数が 75 Hz しかない人についてのものです。 その人はゲームをキャッチしようとしていますが、速すぎてモニターに表示できません。 このミームは、速度が十分でないモニターでゲームをプレイしたことがある人なら誰でも共感できるので面白いです。

さいごに

Geminiの技術レポートについて、可能な限り情報の深さを保ちつつ、有意義な情報をピックアップして、読み解いてみました。
ここで省略した情報も多いので、興味を持った方は、ぜひ、技術レポートを読み解いてください。

Gemini - Technical Report

また、生成AIのテクノロジーの進化について、広く深く考察したnoteもあるので、知的好奇心のある方は読んでみてください。

関連する話題として、以下の記事もどうぞ。

いいなと思ったら応援しよう!

Ray | 旅する魔法使い
いただいたサポートは、note執筆の調査費等に利用させていただきます