43話 税務署来訪②
次にそのまま行こう。
「こちらが、ニュース記事の作成・掲載サイトです。“ニュースまとめてみた”っていうタイトルで運営してます」
画面には、淡いグレーを基調としたサイトデザイン。
トップにはその日のピックアップ記事が並び、サイドバーには「ニュース」「エンタメ」「教育育児」「地域」などのカテゴリが表示されている。
「これは……ご自身で記事を書かれているんですか?」
「はい、時事ニュースをもとにした簡単なまとめや、自分の視点で書いたコラムが中心です」
「なるほど、見やすいですね」
篠原さんが、感心したように目を細める。
「最近は、近い将来に起こることのコラムが人気で、コメント欄でも活発に議論されています」
「それはすごいですね」
ついつい調子に乗って、そんなことも言ってしまう。
「レシピに翻訳、天気、文章作成にニュース……どれも違うジャンルなのに、ちゃんとそれぞれの目的が明確で、構成も整ってますね」
「ありがとうございます。一つに絞れなかっただけなんですけど、結果的に分けたことで、読者の層がそれぞれできた感じです」
「いや、それが戦略としてちゃんと成立してるのがすごいです。しかも中学生で」
その言葉には、もはや“疑い”というより“純粋な驚き”がにじんでいた。
(……ここまで来た。もう大丈夫かもしれない)
警戒心はまだ捨てきれないけれど、職員たちのリアクションを見る限り、致命的に怪しまれている感じはない。
このまま、何事もなく確認が終われば――
俺はこのまま、今のやり方で、もっと先に進める。
(税務署が怖いって思ってたけど……案外、“普通の人たち”だったんだな……)
ほっと胸をなでおろした。
――その時
「では、少し質問があります」
佐野さんが、資料を手に取りながら言った。
「ニュースやスピーチなどの原稿について、ご自分で書いているのですか? 1日5つくらいの記事、月50件の文章作成依頼を?」
その言葉に、少しだけ驚きが走った。
(……来たな)
そう内心でつぶやく。
今までの会話が前振りだったとするなら、これは“本命の一撃”だ。
まあ、そりゃそうだ。誰だって疑う。
中学生が月に50件の文章依頼をこなして、ニュースを毎日更新して、多言語で翻訳までしてるなんて――常識的には考えられない。
「じゃあ、先に翻訳サイトを見せてから、一気に答えます」
俺は落ち着いた声でそう言った。
なるべく自然に、動揺を見せないように。
「わかりました」
佐野さんと篠原さんがうなずくのを確認してから、タブを切り替えた。
「これが、翻訳用のサイトです。“かんたん翻訳屋”って名前です」
画面には、さっぱりとした入力フォーム。
左側には日本語の入力欄、右側には翻訳結果が表示される欄。
その上には、翻訳元と翻訳先の言語を選ぶプルダウンメニューがある。
「日本語→英語はもちろん、フランス語やドイツ語、スペイン語などにも対応しています。
翻訳したい文を入れて、『翻訳依頼』ボタンを押すと、後日翻訳されたものが届くようになっています」
「へえ……多言語対応なんですね」
「そうなんです。今は5言語に対応しています。依頼のあった言語に応じて、少しずつ増やしていきました」
「すごいですね。多言語に対応できるとは……」
篠原さんが、感心したように画面を眺める。
(うん、ここまでは想定通り)
ここで、ほんの一瞬、空気が止まった。
佐野さんと篠原さんが、視線を合わせる。
でも、俺はまっすぐ前を見たまま、落ち着いた声で続けた。
(さあ……ここからが、山場だ)
「はい。これは、僕が作ったソフトです。ニュースも、文章作成も、翻訳も――私の作成したソフトで生成しています」
そう言って、事前に用意していたソフトを見せる。
そう言い切った瞬間、空気がふっと静まった。
佐野さんが目を細めた。
「……ソフト、ですか?」
その一言は、あくまで確認のようでありながら、どこか引っかかるような響きを含んでいた。
「はい。自作のソフトを通じて、各種の文章生成や翻訳を行っています」
俺は淡々と繰り返す。
“ソフト”という言葉が曖昧なことも承知の上だ。
けれど、ここで「未来のAIです」なんて口が裂けても言えない。
すると、隣にいた篠原さんが、ふと手元のメモを見ながら口を開いた。
「……翻訳の話でいうと、エキサイト翻訳を使ってみたことがあって。あれ、けっこう変な訳が出るんですよね。“私はパンを食べる”が“私はパンで食べる”みたいな……」
佐野さんが思わず小さく笑う。
「そうそう。“ロボットが喋ってる”みたいで」
「それは確かに」
佐野さんがうなずきながら、少し視線を戻す。
「それと比べて、このソフトはどうなんでしょうか? 」
(来ると思った)
俺は頷いて、モニターに向き直った。
「では、実際にご覧いただきます」
翻訳サイトの入力欄に、キーボードを打ち込む。
『明日が雨なら、僕は傘を持って迎えに行くよ』
こういった、“情感を含んだ自然な文”は、機械翻訳がもっとも苦手とする領域だ。
「これを、英語に翻訳します」
クリック。
数秒後、出力欄に表示された文章は――
“If it rains tomorrow, I’ll come pick you up with an umbrella.”
佐野さんと篠原さんが、ほぼ同時にうなった。
「……これ、自然ですね」
「うん。“come pick you up”って言い方も、ネイティブっぽいし」
「この精度、本当にご自身で……?」
「はい。翻訳の仕組みの中に、文脈を判断するアルゴリズムを組み込んでいます。言葉の前後を参照して、最も自然になるパターンを選ぶようにしています」
「……どうしてそんなことが可能なんですか?」
篠原さんが静かに尋ねた。
俺は、あらかじめ用意していた“逃げ道”を口にした。
「プログラムに、“機械学習的な仕組み”を入れているからです」
「機械……学習……?」
今度は佐野さんが少し眉をひそめた。
さっきから、2人の反応が微妙に変わってきているのがわかった。
「ソフトで処理してます」と言ったときも、
「機械学習的な仕組みを入れています」と言ったときも、ふたりは返事こそしたけど――内心、完全に納得していない。
無理もない。
ここまで翻訳の精度が高いと、さすがに“中学生が一人で作った”という言葉だけでは通らない。
税務署の職員で、ネットやプログラムに詳しくないとはいえ、
「エキサイト翻訳しか知らない」レベルでここまでの翻訳を見せられたら、混乱するのも当然だろう。
そしてその予感は、的中した。
「……あの、葛城さん。実際に、どうやってるんですか?」
ついに、佐野さんが言葉を選びながら尋ねてきた。
明らかに納得してない。
企業秘密です♩とか言いながら誤魔化すことも出来るが、今後のためには説明して納得してもらう方がいいだろう。
(やばい……言葉だけじゃ無理か)
一瞬だけ迷って、俺は強行策に出た。
「じゃあ……こうやってます」
この翻訳ソフトのコード――
つまり、ChatGPTに書かせたアルファベットの羅列を見せる。
初心者には全く分からないプログラミング文字の並びに、佐野さんも篠原さんも、やや身を乗り出してきた。
「えっと……これは?」
篠原さんが戸惑いながら尋ねる。
「翻訳ソフトのコードです。入力された文章を、指定された言語に変換する処理を書いてます」
「ほ、ほう……」
2人とも、完全に“見ても分からない”状態だった。
当然だ。
英語の変数名、Pythonの構文、関数の呼び出し……どれもプログラミング未経験者には意味が通じない。
そして、案の定――
「つまり……どうやって……」
まだ聞いてくるのか……
また煙に巻くしかない。
「では、最初から解説しますね。この行を見てください。」
俺はマウスを動かし、画面の4行目――
def translate_text(text, source_lang="en", target_lang="ja"):
の部分をハイライトしながら、静かに説明を始めた。
「これは、翻訳機能を定義している部分です。“translate_text”っていう関数を作っていて、‘text’っていう入力された文章を、‘source_lang’という元の言語から、‘target_lang’という翻訳先の言語に変換する――そういう命令です」
「は、はぁ……」
佐野さんは頷いていたが、表情はますます“わからない”という色に染まっていく。
(よし……混乱させてる)
もちろん、わざと難しくしてるわけじゃない。
というか俺も半分も分かっていない。
プログラミング教室の講師が解説するんじゃない、中学生が解説をするんだ。
このようなレベルの解説になっても仕方ない。
篠原さんも、首を傾げながら画面を見ているだけで、追加の質問は出てこない。
さて――ここから、どう切り抜けるか。
“これが本当に自作なのか?”
“このコードが、翻訳の高精度にどうつながっているのか?”
次の質問が来る前に、こっちから流れを握る必要がある。
(とにかく、冷静に……自然に、納得させるんだ)
そう説明しながら、俺はモニターをスクロールして次の行に目をやった。
「で、その次の行が“prompt = f"Translate the following text from {source_lang} to {target_lang}:\n\n{text}"”なんですけど、これはf-stringっていうPythonの機能で、文字列の中に変数をそのまま埋め込めるやつで――」
「ちょ、ちょっとすみません」
佐野さんが思わず手を上げた。
「え?」
「……いや、えっと……なんというか、その……ちょっと、分かんないです」
その言葉には焦りと本音がにじんでいた。
篠原さんも苦笑いしながらフォローを入れた。
「すみません、私たちプログラムは全然詳しくなくて……。いや、すごいってことは分かるんですけど……!」
俺は一瞬だけ間を置いてから、わざとらしく首をかしげてみせた。
「え、僕の説明がどこか分かりにくかったですか?」
「いや、そういう訳ではなく……」
佐野さんが苦笑しながら言う。
「つまり、このソフトで翻訳や文章を作っているということですね。」
(2回目の確認……やっぱりまだ信じきれてないか)
「はい、それはこの次の行を見たらわかると思いますよ」
そういいながら、次の行の羅列に目をやり解説をはじめようとする。
response = openai.ChatCompletion.create(
「このresponse = は……」
「恭一!……税務署の方はその説明はもういいって」
母さんに止められたか。
確かに母さんは、俺がChatGPT使ってることしらないし、単に税務署の人に意味不明なことを説明しているだけに映っただろう。
「え、けど次の行の説明を聞いたら分かりますよ。さっきみたいに分かりやすく説明しますし」
さっきの説明は全然わかりやすくないと思うが、そう言うしかない。
「もう、その説明はいいから。」
仕方ないか……
「ありがとうございます。えーとですね……このコード全体で文章と翻訳しているのは分かりました。このコードはご自分で書かれたんですか? 」
また難しい質問をしてくる……
ここは押し切るしかない。
「はい、さっき言った通りプログラミング教室で勉強しました。それと独学も」
俺は即答した。用意していた返答。
実際、教室に通っているし、独学でもコードを見てきた。嘘ではない。
佐野さんは「なるほど」と言いながらも、納得しきれない表情を浮かべていた。
こんなものプログラミング教室でやるはずないが……バレないか。
そして、篠原さんが聞いてきたのは――もっと根本的な問いだった。
「……1つ、どうしても不思議なんですが、翻訳やニュースの文で……」
「はい?」
「機械って、こんなに自然に文章を出せるものでしょうか?」
俺は無意識に姿勢を正した。




