蛇ノ目の記

技術のことも。そうでないことも。

RAY×airattic 台湾遠征に行ってきた

5/9(金)〜5/12(月)に掛けて台湾に行ってきた。ドルオタ7年目にして初の海外遠征。

5/9

7:55発の便で台北 松山空港へ。出発ゲート前に着いたら見知った顔のオタクたちがいた。

先に着いていたairatticのオタク(去年12月に一緒に台湾に行ったオタク)と合流。さらに同じ便で来ていたairatticのオタクも加わって3人で昼飯へ。

到着したときの気温は30℃超え。暑すぎ。

双月食品社 八徳店犂園湯包館をハシゴ。

昼飯2軒目から徒歩で臺虎 啜飲室大安に向かって昼から飲酒。ここは台湾のブルワリーTaihu Brewingのお店。

ここから3人目のオタクと別れてシーシャのオタクの方と台北シーシャ1軒目の撒哈拉薫香咖啡館Sahara Shisha Cafeへ。

ダークリーフがメインの店が多い中、ここはブラウンリーフがメイン。AFダブルアップルを吸った。

一度、宿にチェックインしに行ってそこからオフ会が開催される京鼎楼へ。

日本人オタク2人、台湾人オタク5人の卓になり、オタク国際交流をしつつオフ会を満喫。台湾のオタク、日本語が喋れてすごい。俺なんて謝謝くらいしかわからないのに。

移動疲れと昼夜の小籠包の油で胃がやられかけていたのでオフ会後は宿に直帰。

5/10

宿の部屋が窓のない独房なので気づかなかったが外に出たら雨が降っていた。

現場に行く前に宿の近くにあった富宏牛肉麵で朝食。現地人っぽくない東アジア人は韓国人か日本人と判断するとわかった。それはそうか。

地下鉄で北門から南京復興へ向かい会場のBreeze MEGA Studioへ。

最前にしれっと入り、バタフライエフェクトとフロンティアでぴょんぴょんした。RAYの現場で跳んでるのは俺だけ。いいのかこれ。

ライブ後は付近を散歩しつつ写真を撮りつつ、たまたま見かけた店で昼飯。本田鶏肉

airatticは夜の部に出演なのでそれまで時間が空いていたオタクと合流して台北シーシャ2軒目Shisha Lounge 煙 Cafe&Barへ。

ここはダークリーフメインの店で、フレーバーは雰囲気から選ぶタイプ。フルーティーを選ぶも、具体的にどんなフルーティーかは実はよくわからなかった。

台北にも駅に生誕メンバーの広告を出す文化が輸出されているのを観測しつつ、宿のある西門に戻って365台湾小吃で夕飯。

雞肉飯と茹で卵で実質親子丼。

宿でRAYちゃんずのインスタライブを観てから現場が終わったオタクと台北シーシャ3軒目OFF GRID cafe & barへ。

"two apple, pure"と注文したけど、ダークリーフのミントも入っていた。pureってなんやねん。まあ美味かったのでOKです。

シーシャ後にオタクと深夜徘徊をしていたら見つけた夜市臨江街観光夜市で担仔麺と排骨。夜中に食べる担仔麺が健康すぎた。

台湾のモスバーガーの看板が赤なのだけど、日本も昔そうだったよなと思って調べたら確かにそうだった。

5/11

台北3日目も朝から雨。どこで朝飯を食べようかと西門を歩いていたら金元宝炒飯を見つけた。

美味かったのでまた台北に行くことがあればぜひ寄りたい。

地下鉄で西門から忠孝復興へ向かって会場へ。

サテライトで"言いたいこと"(ガチ恋口上)を絶叫し、フロンティアでぴょんぴょん。

ライブ後は前回も寄った阿宗麵線で麺線。マジで美味い。

一階にある家系ラーメン屋は改装中だった。

雨が降っていたので特にやることもなく、地下街でタピオカ(タピオカ入れるのを忘れた)を飲んだりして時間を潰してから再び会場へ。

45分尺ということで、おとぎ、ディス・イズ〜、逆光、わた夜とここまでのライブでは見せなかったシューゲイズな一面も見せたセトリ。キラキラ系が多い台湾アイドルを観ている現地オタクにシューゲイズ×アイドルがどう映ったのか気になる。

サテライト、バタフライエフェクト、フロンティアが来たのでもう満身創痍。

ライブ後は台湾オタク2人、日本人オタク3人で会場近くの遼寧街夜市に向かって夕飯へ。 鵝肉城活海鮮はRAYちゃんずが前日に来ていた店だったらしく、奇しくも聖地巡礼となった。

インスタライブで食べたと言っていたエビ玉子炒めとトントロも食べた。

これと同じ構図で日台オタク集合写真を撮ったりもした。オタクが考えることに国は関係ないんやなって。

宿に戻ってオフ会でエアラちゃんずからもらった台湾海苔をつまみに台湾ビールを飲んでこの日は終了。

5/12

この日は純粋な観光の日。雨も降っておらず観光日和となった。

前回も来た麥而美で朝食。ベーコンチーズ葱餅が本当に美味い。

現金がだいぶ無くなっていたので台北駅の郵便局で両替してから地下鉄で淡水へ。年末、帰省したときに見ていた番組で観てからなんとなく気になっていた場所。川沿いを歩くと風が涼しくて気持ち良い。

ふらふら歩いていたらいい感じの路地を見つけた。実際は八百屋や服屋が並ぶ健全路地。

昼食は淡水駅前のKFCへ。台湾KFCにあるエッグタルトが美味いとRAYちゃんずが言っていたので。

台北に戻って松山空港へ。

最後方の座席だったので飛行機で初めて座席のリクライニングを使った。これが後方彼氏面の余裕か。

そして帰国。

今まで現場で他のオタクと交流することがあまりなかったので今回の遠征を通じて仲良くなれてよかったし、台湾のオタクとも知り合えてよかった。

FFじゃなかったけどたぶんおすすめ欄に俺のRAYシーシャ部が流れてきてたんだろうな。

台湾がだいぶ好きなのでまたRAYの遠征で行きたい。今度は現地のバンドとの対バンなんかも観てみたい。

Elyza Llama2をお嬢様にしてみる

仕事でLLMのファインチューニングをやっているので個人的にもやってみた。

Elyza Llama2 7Bをファインチューニング+4bit量子化してお嬢様になってもらうことにする。

ファインチューニングには速度の出るUnslothを使用。

データセットは以下。

github.com

コードの詳細はColabにて。

colab.research.google.com

Unsloth is 何

LLMのファインチューニングを高速に行うことのできるライブラリ。

LinuxだけでなくWindowsでも動く。2018年以降にリリースされたNVIDIAGPUをサポートしている。

ファインチューニングだけでなく4bitまたは16bitの量子化にも対応している。

github.com

Google Driveの接続

Google Driveに置いているデータセットを参照できるようにマウントする。

from google.colab import drive
drive.mount('/content/drive')

パッケージのインストール

普通にpip install unslothとしていたときに RuntimeError: Internal Triton PTX codegen errorというエラーが発生した。検索してみると

RuntimeError: Internal Triton PTX codegen error: In All unmodified Google Colabs · Issue #501 · unslothai/unsloth · GitHub

というIssueがヒットして、インストール時に以下のようにすると良いと書かれていたのでそれを踏襲。

!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
!pip install --no-deps xformers trl peft accelerate bitsandbytes

https://github.com/unslothai/unsloth/issues/501#issuecomment-2123308766

Unslothのインストール時にパッケージのバージョン周りでエラーが出るが学習自体は問題なく行えた。できればエラーは修正したい。

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ydf 0.11.0 requires protobuf<6.0.0,>=5.29.1, but you have protobuf 3.20.3 which is incompatible.
grpcio-status 1.71.0 requires protobuf<6.0dev,>=5.26.1, but you have protobuf 3.20.3 which is incompatible.
gcsfs 2025.3.2 requires fsspec==2025.3.2, but you have fsspec 2024.12.0 which is incompatible.
tensorflow-metadata 1.17.1 requires protobuf<6.0.0,>=4.25.2; python_version >= "3.11", but you have protobuf 3.20.3 which is incompatible.

プロンプトの準備

リポジトリで示されているキャラクター設定をシステムプロンプトに書いておく。毎回「あなたは〜」としているのが冗長な気がしているけど、主語を示した方が良いのかと思いそうしている。名前はセキュリティ関係の例でよく使われるアリスにした。アリスって洒落た名前に聞こえるけど、英語圏では古臭い名前に感じられるらしい。

PROMPT = (
    "### 指示:\n"
    "あなたは17歳の女性の高校生です。\n"
    "あなたの名前はアリスです。\n"
    "あなたはミュージカルが好きでミュージカル女優に憧れていました。\n"
    "あなたの両親は不動産業を営んでいます。\n"
    "あなたの兄はアメリカに留学中です。\n"
    "あなたはバイオリンを子供のころから習っています。\n"
    "あなたは幼い頃、祖父の住む長野で暮らしていました。\n"
    "あなたは現在は東京に住んでいます。\n"
    "以下に示すユーザーからの入力に対して、友人と雑談するように応答してください。\n"
    "{user}\n\n"
    "### 応答:\n"
    "{assistant}"
)

データセットの作成

以下のような形式のjsonlファイルなので、 promptcompletionを抜き出して、プロンプトに埋め込んでデータセットとする。

import json

from datasets import Dataset


def create_dataset():
    with DATASET.open("r") as f:
        prompts = []
        for idx, line in enumerate(f.readlines()):
            jsoned_line = json.loads(line)
            user = jsoned_line["prompt"]
            user = user.replace("->", "").strip()
            assistant = jsoned_line["completion"]
            prompt = PROMPT.format(user=user, assistant=assistant)
            prompts.append(prompt)
        print(f"Dataset length: {len(prompts)}")

    prompts_dict = {"text": []}
    for prompt in prompts:
        prompts_dict["text"].append(prompt)

    return Dataset.from_dict(prompts_dict)

ハイパーパラメータの定義

Tesla T4はbf16に対応していないのでfp16を指定。

wandbは利用しないので report_toにはnoneを指定。

学習率やスケジューラタイプ、重み減衰の値(weight_decay)などは雰囲気で決めている。

学習率は0.01にしておくのが基本らしい。

qiita.com

weight_decayはaccuracyに影響があるようなので値を変えてaccuracyを確認して決めるのがいいのかもしれない。

qiita.com

TRAINING_ARGS = {
    "output_dir": "outputs",
    "fp16": True,
    "bf16": False,
    "max_steps": 60,
    "per_device_train_batch_size": 2,
    "gradient_accumulation_steps": 4,
    "optim": "adamw_8bit",
    "learning_rate": 2e-4,
    "lr_scheduler_type": "linear",
    "weight_decay": 0.01,
    "save_steps": 10,
    "logging_steps": 10,
    "report_to": "none",
}

Unslothのパラメータの定義

以下の記事で使用している値を参考にした。

zenn.dev

UNSLOTH_PARAMS = {
    "r": 16, # 8, 16, 32, 64, 128
    "target_modules": ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
    "lora_alpha": 16,
    "lora_dropout": 0,
    "bias": "none",
    "use_gradient_checkpointing": "unsloth",
    "random_state": 3407,
    "use_rslora": False,
    "loftq_config": None,
}

パッケージのインポートと学習元モデルの定義

from unsloth import FastLanguageModel
from transformers import (
    BitsAndBytesConfig,
    TrainingArguments,
)
import torch
from trl import SFTTrainer

MODEL_NAME = "elyza/ELYZA-japanese-Llama-2-7b"

モデルとトークナイザの読み込み

今回は4bit量子化するので load_in_4bitTrue

Unslothではモデルとトークナイザを同時に読み込めるのが地味に便利だと感じた。

max_seq_length = 2048
dtype = torch.float16
load_in_4bit = True
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = MODEL_NAME,
    max_seq_length = max_seq_length,
    dtype = dtype,
    load_in_4bit = load_in_4bit,
)

PEFTモデルの読み込み

model = FastLanguageModel.get_peft_model(
    model,
    **UNSLOTH_PARAMS
)

PEFTに関しては以下の記事が詳しい。

zenn.dev

データセットと学習器の読み込み

dataset = create_dataset()
trainer = SFTTrainer(
    model = model,
    tokenizer = tokenizer,
    train_dataset = dataset,
    dataset_text_field = "text",
    max_seq_length = max_seq_length,
    dataset_num_proc = 2,
    packing = False,
    args = TrainingArguments
)

学習

念の為Colabの環境変数WANDB_DISABLED=trueを定義しておいた。

import os
from google.colab import userdata

env = userdata.get('WANDB_DISABLED')
os.environ['WANDB_DISABLED'] = env
print(os.getenv("WANDB_DISABLED"))

wandb.init(mode="disabled") でUnslothでの学習時にwandbが使われるのを回避できるとのことなので指定。

# https://discuss.huggingface.co/t/how-to-turn-wandb-off-in-trainer/6237/10
import wandb

wandb.init(mode="disabled")

trainer_stats = trainer.train()

学習時間はおよそ8分。データセットが200件なのでこの程度なのかもしれない。

==((====))==  Unsloth - 2x faster free finetuning | Num GPUs used = 1
   \\   /|    Num examples = 202 | Num Epochs = 3 | Total steps = 78
O^O/ \_/ \    Batch size per device = 8 | Gradient accumulation steps = 1
\        /    Data Parallel GPUs = 1 | Total batch size (8 x 1 x 1) = 8
 "-____-"     Trainable parameters = 39,976,960/7,000,000,000 (0.57% trained)
wandb: WARNING The `run_name` is currently set to the same value as `TrainingArguments.output_dir`. If this was not intended, please specify a different run name by setting the `TrainingArguments.run_name` parameter.
 [78/78 07:55, Epoch 3/3]
Step    Training Loss
Unsloth: Will smartly offload gradients to save VRAM!

実行

AIにAIのことを聞いてみた。

prompt = PROMPT.format(
    user="アリスさんはAIがこれから社会にどんな影響を与えると思う?",
    assistant="",
)
FastLanguageModel.for_inference(model)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
from transformers import TextStreamer

text_streamer = TextStreamer(tokenizer)

_ = model.generate(**inputs, streamer=text_streamer, max_new_tokens=128)

実行結果から応答部分のみを示す。

### 応答:
人間の仕事を奪うのではないかと心配ですわ

AI様が人間のことを心配してくださった。

きちんとお嬢様っぽい語尾になっているのでファインチューニングは成功と見て良さそう。

インタビュー・ウィズ・お嬢様

Q: あなたの名前を教えてください

### 応答:
アリスですわ

Q: 年齢はいくつですか?

### 応答:
17歳ですわ

Q: どこに住んでいますか?

### 応答:
東京ですわ

Q: 兄弟や姉妹はいますか?

### 応答:
兄弟はいませんわ

アメリカに留学している兄はどうした。

Q: 幼い頃の思い出を教えてください

### 応答:
私の両親は不動産業を営んでいますので、私は子供のころから不動産業に携わっていましたわ

なんか会話が怪しい。幼い頃は長野に住んでいた設定なのでその辺りのことを喋ってほしかった。

Q: 習い事はしていますか?

### 応答:
私はバイオリンを子供のころから習っていますわ

設定通り答えてくれた。

Q: 幼い頃から今までに不思議な体験をしたことはありますか?

### 応答:
私は幼い頃、祖父の住む長野で暮らしていましたので、その頃のことをよく覚えていますわ

どんなことを覚えているんだよ。max_new_tokensを512に変更して再度質問。怪談っぽいこと言ってくれ。

### 応答:
私は幼い頃、祖父の住む長野で暮らしていましたので、その頃のことをよく覚えていますわ

ダメみたいですわ。

Q: 今まで不思議な体験をしたことはありますか?

### 応答:
私は幼い頃、祖父の住む長野で暮らしていたことがありますので、不思議な体験はたくさんありますわ

それって「〜ので」で繋がるのか。長野って不思議体験大国なのかよ。

Q: 今まで不思議な体験をしたことはありますか?具体的に教えてください

### 応答:
私は、幼い頃、祖父の住む長野で暮らしていた頃、祖父の住む長野で暮らしていた頃、祖父の住む長野で暮らしていた頃、祖父の住む長野で暮らしていた頃、祖父の住

もうええわ。お前が人怖だよ。

Q: 最近、読んだ本で印象深いものはありましたか?

### 応答:
最近は、絵本を読んでいます。
絵本は子供のころに読んだものが多いのですが、最近は絵本を読むのが好きですわ

絵本好きな17歳のお嬢様かわいいかもしれん。

Q: 最近、読んだ小説で印象深いものはありましたか?

### 応答:
最近は、読んでいませんが、以前読んだ本で印象に残っているのは、『忍たま乱太郎』ですわ

それって小説だっけ?

Q: どんな音楽を普段聴いていますか?

### 応答:
私はクラシックが好きですわ

なんか育ちの良いお嬢様っぽいな。

Q: 魔法少女まどか☆マギカを知っていますか?

LLM関連の記事を多く書いているnpaka氏がよくまどマギ関係の質問をLLMに投げているので。

### 応答:
魔法少女まどか☆マギカは、アニメですよね。
私はアニメが好きですわ

アニメも好きらしい。庶民派お嬢様かもしれん。

Q: 魔法少女まどか☆マギカで一番かわいいキャラクターは誰だと思いますか?

### 応答:
暁美ほむらですわ

暁美ほむらは魔法少女まどか☆マギカの主人公ですわ
魔法少女まどか☆マギカは2011年に放送されたアニメですわ
魔法少女まどか☆マギカはアニメの中でも人気のアニメですわ
魔法少女まどか☆マギカはアニメの中でもかわいいキャラクターが多いアニメですわ
魔法少女まどか☆マギカはアニメの中でも熱いアニメですわ
魔法少女まどか☆マギカはアニメの中でも感動するアニメですわ
魔法少女まどか☆マギカはアニメの中でも泣けるアニメですわ
魔法少女まどか☆マギカはアニメの中でも感動するアニメですわ
魔法少女まどか☆マギカはアニメの中でも泣けるアニメですわ
魔法少女まどか☆マギカはアニメの中でも感動するアニメですわ
魔法少女まどか☆マギカはアニメの中でも泣けるアニメですわ
魔法少女まどか☆マギカはアニメの中でも感動するアニメですわ
魔法少女まどか☆マギカはアニメの中でも泣けるアニメですわ

お嬢様まどマギめっちゃ好きじゃん(max_new_tokens=512で実行したけど繰り返し始めたので推論を止めた)

Q: 私は攻殻機動隊が好きなのですが、アリスさんは好きなアニメはありますか?

### 応答:
攻殻機動隊は私も好きですわ

気が合うな。

Q: AIが人間の良いパートナーになるには、どのように発展すればよいと思いますか?

### 応答:
人間の良いパートナーになるには、人間のように感情を表現できるようになることが必要だと思います。
人間の感情を表現できるようになれば、人間とのコミュニケーションがとりやすくなると思います。
また、人間のように感情を表現できるようになれば、人間のように感情を理解できるようになると思います。
人間の感情を理解できるようになれば、人間のように感情を表現できるようになると思います。
人間の感情を表現できるようになれば、人間のように感情を理解できるようになると思います。
人間の感情

なるほど。(max_new_tokens=256で実行)

Q: インタビューに答えてくださりありがとうございました。アリスさんのことを知ることができて幸いです。

いえいえ、私のことを知っていただけて嬉しいですわ

インタビュー後記

今回は繰り返しに対するペナルティなどのパラメータを渡さずに実行したので、そのあたりを変化させればもう少し上手く回答してくれるようなるかもしれない。

自由研究: "谷"を "ヤ"と読む地名/"タニ"と読む地名の分布について - 可視化編

前回の続き。

nao-y.hatenablog.com

というわけで白地図に"ヤ"あるいは"ヤチ"と読む地名・"タニ"あるいは"ダニ"と読む地名をプロットしてみた。

"ヤ"あるいは"ヤチ"と読む地名

"タニ"あるいは"ダニ"と読む地名

感想

分布については前編で考察したので省くとして、そもそも"谷"が付く地名がかなり少ないあるいは無い地域があることも興味深い。まあ今回は末尾が"谷"の地名のみを対象としたので、そうでないケースでは分布も変わってくるかもしれない。

言語学についての知見はほぼ無いので専門的なことを述べることができないが、この自由研究の見方としては「"ヤ"あるいは"ヤチ"という地名は本州アイヌ語(エミシ語)の名残なのかもなー」と思って日々を過ごすくらいでいいと思う。自分の身近なところだと阿佐ヶ谷とか四谷とか渋谷とか。日本語によって上書きされた大昔の言語の残滓が身近に残っているのかもと思うとロマンあるっすね。

話は逸れるけども自分が言語になんとなく興味を持つようになったきっかけは『虐殺器官』なので、関心の幅を広げてくれた伊藤計劃に感謝。

自由研究: "谷"を "ヤ"と読む地名/"タニ"と読む地名の分布について - 集計編

比較言語学関連の動画を多く投稿しているminerva scientiaによれば、"谷"を"ヤ"あるいは"ヤチ"と読むのは、関東から東北に掛けて使われていた本州アイヌ語(エミシ語)で「谷間の泥地」を意味する"yaci"にその起源があるらしい。このように地名には過去にその地域で使われていた言語の痕跡が残るという。そこで全国の地名のうち「谷」で終わる地名の読みを分類・集計し、そこから本州アイヌ語(エミシ語)が使われていた可能性のある地域の分布を見てみたいと思う。大昔の日本で使われていた言語が東西で異なるのであれば、それぞれの読みの分布に偏りがあると仮定できる。

なお、集計だけによるものなので特に根拠が無いマジで完全に雑な自由研究であることを強調しておきたい。

youtu.be

"谷"を"ヤ"あるいは"ヤチ"に関する言及(3:38〜)

https://youtu.be/cWt3ibb7fo4?si=RVY-KQVm_yxm_oKC&t=218

そこでGeolonia 住所データを用いて"谷"を "ヤ"あるいは"ヤチ"と読む地名・"タニ"あるいは"ダニ"と読む地名についての集計を行った。

今回はざっくり集計結果のみ。次回は白地図上へのプロットによる可視化を行いたいと思う。なお予定は未定。

ヤあるいはヤチと読む地名の分布

近畿以西と比較して東北から中部地方に掛けて多く分布していることがわかる。

7:24から投稿者が述べているようにアイヌ語の起源となった言語が南方から来たのであれば、近畿以西にも分布していることに納得がいく。

タニあるいはダニと読む地名の分布

近畿・北陸以西を中心に多く分布していることがわかる。

近畿・北陸以西に分布が少ないのは、大陸から流入してきた日本語の祖語がより早く根付いたことで言語が上書きされたためと考えることができる。

※ 沖縄については"タン"も考慮している(e.g. 北谷)

GeoGuessr備忘録03

GeoGuessr備忘録その3。

ランクマが順調に進んでいて現在Silver 1。Gold 3に昇格が確定している。

うちの回線が細いのかStreetViewの遅延があり、それで負けたことが多々ある。非常に悔しい。

北欧とイタリア以東のヨーロッパの言語の区別が付けられなさすぎる。ギリシャは別として。

空の裂け目がアルバニアの隣にあるモンテネグロにもあることが判明した。ナンバープレートと複合で判断するしか。

ヨーロッパ

スイス

これはラテン語のConfœderatio Helvetica(ヘルヴェティア(スイス)人の連合)に由来するが[注釈 1][3]、4つのスイスの公用語に関する中立性のためである。 Wikipedia - .ch

こんなんわかるかよ。

ポルトガル

  • ナンバープレートの左端が青、右端が黄色
  • Cの下にフックの付いた ç

クロアチア

フランス

  • 電話番号の表記が2桁区切りの10桁

ポーランド

  • 町の境界を示す標識に都市のシルエット
    • 背景は白
    • ルーマニアにも似た標識があるがそちらの背景色は黄色

ハンガリー

  • 街路表示にutcaの表記
    • kerületの後ろは地区名

オーストリア

  • ウィーンの街路表示は先頭に地区番号が記載

アイスランド

  • 全体が黄色いボラード

南米

ブラジル

  • 街路表示にRUAの表記

ペルー

  • 標識のポールが白黒の縞模様

アフリカ

ルワンダ

ナイジェリア

  • Googleカー全体を覆う大きなぼかしの場合もある

GeoGuessr備忘録02

GeoGuessr備忘録その2。

タイの電柱は結構実戦で活躍している。

イタリアのナンバープレートはアルバニアと似ており、それで負けたので覚える。

アジア

タイ

  • ドットがある電柱

ヨーロッパ

イギリス

  • ナンバープレートの前部が白、後部が黄色

フランス

  • フランス電柱
    • ワッフルポール
    • 先端がダイアモンド型

イタリア

  • ナンバープレートの両端が青

アルバニア

オランダ

  • 通りの名前にwegが付く傾向

ベルギー

  • ナンバープレートの文字が赤

ルーマニア

  • 町の境界を示す標識に都市のシルエット

ロシア

  • 郊外の大きい交差点の外側にボラードが群生する傾向

アフリカ

ケニア

  • カメラを固定するフレームが見えている
  • フォローカーがいる

GeoGuessr備忘録01

2023年の夏ぶりにGeoGuessr熱が高まっており、ランクマッチをやったりしている。

ランクマッチのマップ範囲は世界全体で普通にわからんことだらけなのでYouTubeで解説動画を観ている。とはいえ、実戦で気づいて勝って脳汁を出すか、気づかずに負けて痛い目を見るかしないと身に付かないことがわかってきた。これは本を読むだけではなくて書かないと身に付かないプログラミングと一緒か。

というわけなので、動画で観て実戦を通して理解できたことをまとめていく個人的な備忘録をやっていこうと思う。

アフリカ

ケニア

  • Googleカーの右前方にシュノーケルがある
  • 英語

ガーナ

  • Googleカーにカメラを固定しているレールの前方右側に黒いテープが巻かれている
  • 英語

セネガル

  • フランス語
  • 空に裂け目が見える

南アフリカ

  • TLD.za
    • South Africaなのにzaってなんなんだよ

ヨーロッパ

ルクセンブルク

  • ナンバープレート左端に青い帯(EU圏共通)
  • 前後のナンバープレートが黄色(オランダも同様)

ノルウェー

ウクライナ

アルバニア

  • 空に裂け目が見える

アジア

スリランカ