超言理論

特に益もない日記である

オメガクラフターを遊んだ

「ゲームをやる時間がなくなったら仕事はやめる」と言いながら,ゲームをやる時間がなくなってそろそろ数年が経つ.
学生の頃は夜通し研究室の仲間と狩りに行ったり,PCゲームを徹夜でやったりしたものだが,最近はもうそのような体力や気力が失われてしまった上,そもそも「ゲームをやる気がないので時間も取れない」というような状況になりつつある.
とはいえ,全く遊んでいないわけではなく,隙間時間にわずかにスプラトゥーン3やらゼルダの伝説やらやっている.一通りクリアして終わったり,トロコンするほどではないが……



最近だとオメガクラフターというゲームが気になったので,これをプレイした.
PFNが作っているというのと,プログラムができるというのがとても気になった.
store.steampowered.com

プレイ時間の総計は放置を合わせて200~300時間くらいだと思われる.(なおプレイ時間のほとんどが放置時間である)
最新アプデのマップまでは行っていないが,基本昨日は一通り触ったかなという感じである.
アーリーアクセスとしてはそこそこかなり楽しませてもらったと思うが,色々思うところがあり,せっかくなら書いておこうと思う次第である.


ストーリーはおいておいて,ゲームの概要としてはオープンワールドxサンドボックスxプログラミングという珍しい組み合わせで,グラミーという小さいロボットにプログラム(といっても,レゴ・マインドストームでやる程度の簡単なフローチャートのようなもの)を与え,それでどんどん生産を自動化して街を広げていく,というゲームである.
マインクラフトなどでは村人の農夫を使ってじゃがいもやら小麦の生産を自動化したりするが,これの発展版というか,農夫が何をすべきかプレイヤーが指示できるようなものと考えたら良いかもしれない.
www.minecraft.net

また,プログラムを書くだけでは生産は最適(最高効率)化できず,サンドボックス要素でしっかり建築をしなければならないというところもうまく歯車が組み合っている感じがして面白い.
RimWorldや,(私は未プレイだが)Factorioのような基地・工場での生産を最適化をするゲームが好きで,もうちょっと戦闘にアクション性が欲しいとか,3Dのゲームがやりたいという人にはかなりお勧めできると思う.
store.steampowered.com
store.steampowered.com

また,生産を自動化していくと生産物が溢れるのがこの手のゲームの常であるが,グラミーをプログラムできるため,例えば在庫が一定数を超えたら生産を止める,別のアイテムを生産する,といった気の利いた挙動を実現できる点も楽しさの一部かもしれない.
マインクラフトのトラップタワーなどは(生産を止めるRS回路まで入れるのは材料的にも作業的にも結構大変なので)最終的に生産に対して消費が追いつかず,マグマかサボテンに投げつけることになるのが日常茶飯事である.
一方,オメガクラフターではグラミーのプログラムで「収納箱にアイテムが格納できるなら」とか「もし〇〇がXX以上なら」「収納箱の〇〇の個数」などのコマンド(プログラム)を活用して,これ以上生産しても余るアイテムは生産しない,という処理を容易に実現できる.
製造ラインの全アイテムがピッタリ満杯になるとなんともいえない満足感がある.
これだけで十分にプレイした価値がある.


一方で,個人的には次のような点には不満が残った.
アーリーアクセスのゲームであるため,改善される,これから仕様が抜本的に変わっていく部分が大多数ではあろうが,現時点での私の気持ちとして残しておく.

マップに対してサンドボックスの操作性が悪い

マップはかなり広大で(バイオームによっては)起伏が激しく,障害物が多い.単なるアクションゲームとしてはこのくらいでも別に良いのだが,サンドボックスゲームとして建築をし始めると不満が出てくる.
まず,街を建設するための下地となるパネルを引くのが大変である.パネルは1枚づつしか設置できない上,クリック長押しで設置し続けるといった便利な機能もない.
街を作るからには相応の広さが欲しくなるが,まとめて5x5枚づつ引くとかそういった操作もできない.
マップの高低差,起伏は「街のパネルを置いた後で整地できる」という仕様のため,起伏の多いマップではパネルを置くのにも一苦労する.
広い街を作るからにはグラミーに「指定した位置から位置まで〇〇を建設する」というようなプログラムを組んで,街のパネルの設置や外周への柵の設置などを任せたいところだが,グラミーには「建設する」系のプログラムを与えることはできないため,自動化もできない.そのため,プレイヤーが必死にマウスをカチカチ連打しながら街のパネルを置いていくことになる.
街のパネルを置いたら次は整地も同じようなことをさせられる.
せめて,「まとめてパネルを置く」「街パネルをおいてついでに整地」「グラミーが建設」あたりの操作ができるようになれば全く話が違ってくるのだろうが,現状ではできないため巨大な拠点や街を作るのはちょっと割に合わない.
また,拠点を大きくしても,グラミーの生産性を最大化するには収納箱や生産設備との距離をなるべく短くした方がよいので,そもそも巨大な拠点を建築するメリットが薄い.
最終的には超狭い空間に植林,農業,鉱山,料理,調合,加工などの全ての生産施設が集まり,劣悪空間でグラミーが料理した石片や木屑,鉄粉やらが大量混入しているであろう食品を持って冒険に出ることになる.別にアイテム品質に影響があったりペナルティが生じるわけではないが……
あと,切り倒せない木,どかせない障害物あたりも巨大建築には邪魔になるのでぜひなんとかできるようにしてほしい.

戦闘でしか手に入らないアイテムが多い

生産を自動化するのが楽しいゲームだと最初に書いたが,一方で自動化できないものも大量にある.
装備などは一度作ればそれで良いので気にならないが,ゲーム中盤から手に入るポーション系のアイテムは必須度合いが高い割に,生産する際にはモンスターを倒して得られる素材が必要になり,大量生産が難しい.
マインクラフトのようにトラップタワー,つまりは何らかの方法でモンスターを自動で倒す施設なり装置なりグラミーなりを用意できれば良いが,モンスターの湧き条件が明確ではなく,自動で倒す施設や装置を作るのは難しい.
モンスターはグラミーにも反応して襲ってくるので,拠点の周りやモンスターが沸きそうなところへ道を作ってグラミーを走らせるとちょいちょいモンスターが釣れるが,(説明は省くが,バディではない街)グラミーは戦闘能力が低く,戦闘を指示するプログラムも戦闘に関連するプログラムも書けないため,戦闘でしか手に入らないアイテムを自動で入手し,加工できるようにすることは現状では非常に困難である.
グラミーの攻撃力を上げる強化建築物というのもあるので,グラミーを使ったモンスタートラップなり防衛なりで戦闘でしか手に入らない素材を入手する機会を増やすか,せめて,ゲームが進むと生産できるようになると良いのだが……

グラミーのプログラムの能力が低い

前述の「グラミーに『建築する』系のプログラムができない」もそうだし,戦闘できないというのもこれに当てはまる.
加えて,プログラムをある程度かける人間からすると,配列が使えない,関数化できない,グラミー間で共通するコードを用意できない,などの点には不満が残る.
まず,生産ではアイテムごと,生産ラインごとにグラミーを用意したり,消費の激しいアイテムは生産するグラミーを複数用意したり分担して生産したりする.
ここで,関数化などのグラミー間で共通するプログラムを作ることはできないため,生産のプログラムを最適化するたびに全ての生産に関連するグラミーのプログラムを書き直すことになる.
さらに,複数のアイテムABCDを生産するグラミーを作る際には,同じようなコードをAを生産し,Bを生産し……といくつも書く羽目になる.関数化できればメインの関数の中は4つだけ書けば済むのだが.
生産のプログラムもっと高度にしようと思うと,例えばアイテムAを作る時はどの作業台にどのアイテムを入れて……といった情報もプログラムにハードコーディングするのではなく,変数や配列に入れておいて後で容易に書き換えたり切り替えたりしたくなるが,そのようなことができないのも痛い.
プログラムを初めて触る人にはこの程度のプログラムの自由度で良いのだと思うが,プログラムの真髄(?)たる「楽したい」を満たせるほどプログラムの自由度があるかと言われるとちょっと怪しいなと思う.
また,同じような生産ラインを複製する際などは,ぜひグラミーに建築をさせたりできるようにしたい.プレイヤーがいくつか建造物をつくり,それをグラミーが複製していくことで巨大都市が出来上がる様子など見てみたいものである.(ドラゴンクエストビルダーズ2には村人が建物を勝手に作ってくれる「設計図」の機能があるが,これが実はみているだけでも結構面白いのである.)
store.steampowered.com


生産品が余る(最終活用先が貧弱)

これは自動化するゲームにはつきものなのだが,特に本作では生産したアイテムを消費するタイミングが少ない点が気になった.
食事などは序盤から冒険に必要なため,大量に生産する体制を整えるのだが,後半は食事の効果時間も伸びてきてなかなか消費が進まない.
加えて,プレイヤーしか食事を必要としないため,どんどん余ってしまう.
グラミーも食事を食べることで追加効果(移動速度や 生産,戦闘能力向上)などがあればどんどん生産していこうという気持ちになるのだが,残念ながら食事はプレイヤーしかとれず,グラミーがのんびり生活している様子を見て楽しんだりすることはできない.(ドラゴンクエストビルダーズ2では村人が朝昼夜に食事を取ったり,トイレに行ったり風呂に入ったり娯楽で遊んだりするなどの生活を送るのだが,これが実は以下略)


色々と書いたが,全体で言えば十分満足に楽しめたと思う.
今後の改善に期待.

NLP若手の会(YANS2024)に行ってきた

ma13.hateblo.jp
ma13.hateblo.jp
ma13.hateblo.jp

「ベテランの若手ではなく,ビギナーの熟練者として振る舞うべきだ」というような言葉をどこかで聞いた気がする.どこかは忘れた.*1

NLP若手の会は今年(2024年)の開催で第19回目,私が初めて参加した2014年の第9回から数えると既に10年が経った.
昨年も書いたが,時代はすでに移り変わり,自分は既に若手の枠からおじさんの枠に変わっていることが如実に感じられる.
自分がベテランの若手から,ビギナーの熟練者たる何者かとしてYANSに参加し,自分が10年前に先達からしてもらったように,若手の誰かの一助となっていればよいと思うばかりである.
そのように言いながら,今年のYANSも会社の営み的な意味合いでの参加で,簡単なトークの機会なども頂き,立場*2が変わってもやはりYANSでは良い経験をさせてもらっているなと感じている今日である.



さて,今年のYANSも限りなく楽しませてもらった一介のおじさんである.
会社の営み的な意味合いで参加して,と言ったうえで,いわゆる"参加報告"というのであれば,発表があったとか賞を授与したとかあれこれ書くことがあるのであろうが,ここはあくまで個人的なただの日記である.
特に何か書くべきということはないのだが,せっかくの機会なので記録は残しておきたい.ということで,せっかくなので対話研究の話をしたい.



私が初めてYANSに参加した2014年は対話の研究についての発表は3件であった.
対して,今年2024年は談話理解・対話カテゴリの発表は19件,開催規模が大きくなっているとはいえ,大いに発表の件数が増えているように見える.
非常に単純に考えると,LLM等の普及によって対話の研究に取り組みやすくなったということではないだろうか.
私の記憶にある対話研究といえば,用例ベースや統計ベースといったごく単純な構造の対話システムか,対話システムでは実験が難しいのでWoZ(つまり対話システムの代わりに人が中に入る)で…というのがよくある話であった.
それがLLMの普及に伴い,とりあえずLLMに「対話をしてくれ」と入れればそれらしい対話ができるようになった.10年間の対話研究の大いなる進歩,といえばその通りであるし,対話研究がやりやすくなることはよいこと以外の何物でもない.
特に,「対話システム自体に興味はないが,対話システムをどう使うか・どう使ったらどのような効果が得られるか」という研究においては,(対話システムの技術的な部分はいったん置いておいて)ある一定の性能を持つ対話システム*3を使って実験をする,というまでのステップが極限まで短くなったように感じる.
一方で,昔からよく問われる「人間と機械の対話って本質的にはどこが違うんですか」とか「機械の対話には人のような目的意識は芽生えるのですか」などという疑問には,まだ明確に答えを出した人はいないのではないかと思う*4



このようなLLMブームに伴う対話研究の興隆に際して,しばしば「それChatGPTでできないの?なんでできないの?できない理由は?」とか「プロンプトの工夫で解けないって証拠はあるの?単なるプロンプトエンジニアリングは研究じゃなくない?」とか「来年にはOpenAIが学習データ作って学習させて,解けるんじゃない?やる意味ある?」とか「学習データがあれば解けるんじゃない?データ作って食わせるだけで研究とは言わないのでは?」などなど,様々なありがたいアドバイスをいただいた.
じゃあ対話研究って何やるんだ?と思うタイミングもあったのだが,いろいろ考えたり,気持ちが変わるような出来事や出会いがあったりして,最近は少しマシである.
もし,似たような気持になっている人や,LLMで対話研究ってどうすれば?と思った人がいればぜひ昨年のYANSのチュートリアルであった理化学研究所GRP/奈良先端科学技術大学院大学 吉野 幸一郎氏の「その研究 ChatGPT でいいんじゃないですか?~LLM時代の対話システム研究~」の資料を読んでいただきたい.
https://pomdp.net/docs/20230831_YANS_print_koichiro.slides.pdf
対話,特に雑談対話と呼ばれる部類のものは明確な「正解」に当たるものがないとよく言われる.これは厄介な性質で,雑談対話に興味のある人からすると,ある人が「正解」だと思う応答が,ほかの人にとっては「正解」だと思われないことがある.逆に,雑談対話に興味のない人から見れば「大体なんでも正解でよい」と言えるし,何を重要であると思っているのか理解してもらえないことも多い.
一方で,雑談対話に,その「理解してもらいづらい何か」を要求・要望している人(少なくともあなた自身)は確かにいることを忘れないでほしい.理解してもらう努力は必要だが,理解してもらえないからと言って価値のない研究だというわけではない.もしそのような人がいるなら,研究の重要性を理解してくれるよき理解者に出会えることを心から願っている.


昨年のYANSのチュートリアルの紹介をしたが,今年のチュートリアルも素晴らしかった.
特に個人的には国立情報学研究所 佐藤 竜馬 氏のチュートリアルニューラルネットワークの損失地形」は興味深かった.
speakerdeck.com
知らなかったので勉強になる,という箇所もあれば,しばしば大学院の輪講などで扱った知識の下で「なるほどね」と改めて腑に落ちるような箇所も多々あり,基礎知識や勉強は裏切らないのだなと痛感する内容であった.
余談ではあるが,自分が大学院の輪講で「次元の呪い」は「サクサクメロンパン」と例示したネタが未だにしばしば登場しているのを見ると面白いような懐かしいような気持になる.もっとわかりやすい例にだれかアップグレードしてくれればいいのだが…
改めて考えるとYANSのチュートリアルや招待ポスターは本当に若手でなくても見ておいて損のない内容が多い.



最近,非常勤講師で大学で講義をすることがあったのだが,その際には過去の資料の踏襲をするのが安全だと思って資料を作った.
一方で,先に書いたLLMブームと対話研究の変化,若手・学生に「本当に理解」してほしいことは何か,それを考えればもっとわかりやすい資料の形もあったのではないかと思う.
ビギナーのおじさんとして何をするべきか改めて考える機会を得られた,良い経験をくれるYANSに一参加者として改めて感謝したい.

*1:正しい表現と出典がわかる方,情報お待ちしています

*2:主に年齢であり,役職などではないことに注意したい

*3:具体例を挙げればChatGPTなど

*4:そのような研究がすでに出ており,私の見落としがあるのならば,ぜひ教えていただきたい

学会を楽しむ余裕が必要だ

言語処理学会2024に参加してきた.




2024/03/17
自分の持っているPublication Listに大いなる誤りがあることが @mhangyo さんによって明らかになった.
言語処理学会への参加が10年ぶり2度目と書いたのだが,実際には2017年に言語処理学会に参加し,"エントレインメント分析に基づく応答文選択モデルの評価"という発表していた*1
ということで,改めて,7年ぶり3回目です.よろしくお願いいたします.



自分にとって最初にして前回となる言語処理学会の参加が10年前の2014年,北海道大学で行われた回であった.
2014年の言語処理学会の時も,参加記録を残そうと思って下書きまでは用意したものの,書いて公開する気力が全く起きず,そのまま10年間塩漬けになっているのをこの記事を書くにあたって見つけている.後悔はしている,反省はしていない.

2014年の言語処理学会は前後に色々とイベントがあり,非常に楽しく充実した10日間ほどになったというのをよく覚えている.
その頃はまだ修士の学生で,対話そのものというよりは自然言語処理的な取り組みが大きかったように思える.実際にその回の発表は"日本語言い換えデータベースの構築と言語的個人性変換への応用"で,PPDB:Japanese - 日本語言い換えデータベースというのを作っていた.


奇しくも,2014年から10年経った2024年の言語処理学会では,愛媛大の近藤さん,梶原先生とお会いして,その際に「PPDB:Japaneseと同様のやり方で,JparaCrawlを活用したより大規模なPPDBの"EhiMerPPDB"を作成したんですよ」と教えてくれた.
github.com
自分の作ったPPDB:JapaneseもEdinburghやJohns Hopkins, Pennsylvaniaでやられていた言い換えの亜種というか日本語ローカライズというか,同様のやり方で日本語の言い換えデータベースを作ったという話なので,脈々と(?)言い換えデータベースという言語資源をつくり,広げ,良くしていく取り組みが続けられているのはとても良い営みなのではないかと思う*2*3



さて,自分にとっての今年の言語処理学会は本会議とWSでそれぞれ1件づつ主著の発表があった.

本会議では質問応答のセッションで"絵本を題材とするクイズの生成と評価"という発表を行った.
www.anlp.jp
昨年の言語処理学会ではクイズに関する研究が複数あり,今年もAI王などのクイズに関する取り組みがあったため,多数の,セッション1つくらいの発表があるかなと思ったが,予想に反してクイズに関する発表を集めたセッションはなく,質問応答や言語生成などのセッションに散らばっていた*4

WSは日本語言語資源の構築と利用性の向上に参加し,"対話の楽しさの評価に向けた日本語応答生成ベンチマークの構築"という発表を行った.
jedworkshop.github.io
本会議とは違い,WSではプレゼンタイマーが発表者画面に映し出されないなどの違いに発表に入るまで気づかず,時間管理が杜撰になってしまい大変反省すべき点が多かった.
また,WSの主題として「言語資源の構築,利用をいかに進めるか」という資源自体というよりは資源を増やす,広めるための仕組みづくりについての議論が大きかったところに「貴重な資源をつくりました」というスタンスで突入してしまったのがもう一つの反省点である.
WSからの帰り道はメンタルサゲサゲであった.失敗したと思うとかなりヘコむところは10年前からほとんど変わっていない.そういえば,10年前もNLPの発表後に「〇〇を失敗したので,大変ヘコんでいます」とGraham先生に言ったら「えっ,君,そんなちょっとした事でヘコんだりするの」と驚き混じりに言われたことを思い出す.見た目や挙動に対してメンタルが弱いのである.



言語処理学会全体を振り返ってみると,質疑は非常に有益であったし,大学院時代のいろいろな人たちに会えたりして,学会自体は非常に楽しかった.
学会側のサポートも非常に充実しており,Slackを活用した質疑や交流,コーヒーブレークコーナーの充実度合いなどは他の学会のレベルから頭ひとつ抜けていると思う.
しかし,自分の参加形態の問題で,楽しめなかった部分も多かったなというのも感じた.これは学会の問題というわけではなく,自分が学会参加をした際の「学会を楽しむ心」というのが「現地」「泊まり」「期間中は(学会以外の)仕事をブロック」という3種の神器的な要素に守られていたというところが大きいことを確認しただけの話である.
今回は発表日の朝に子供を保育園に送っていき,そのまま現地に出張,発表を含めてしばらく会場に滞在し,夕食前には会場を出て帰宅するという旅程で学会に参加していた.そのため,公式の懇親会はおろか,昼食も夕食も誰とも食べずに電車の中でパンを齧る日々である.やはり,学会の真の本番たる懇親会に参加できないと,学会の楽しさというか,真髄味わった度合いは急激に下がるように感じる.
snowman-88888.hatenablog.com

特に,自分の発表,参加したセッションの後はそのセッションで近い発表をしていた人や,興味のある人に声をかけて突発懇親会的なことが行われたりする.私もクイズに関する研究をやっている人や,学会でよく会う研究者と懇親したい気持ちはあったが,時間が許さず残念ながら今年は発表,質疑,コーヒーブレークでしか人と話す機会が少なく,ちょっと時間不足だったなと思う.
つまるところ,新しい風を感じるような出来事が例年に比べて少なかった,というような感じだろうか.


また,学会という雰囲気を楽しむためには,一種の研究ハイ的な「私生活は忘れて研究のことだけ考えてもOK」という気持ちになれなければならない気がする*5
往路でハイになれなかった自分の切り替えの悪さも敗因の一つだろう.


今回は時期的に出張できなかったので,これらの諸々の問題はどうしようもない.また,このように感じるのは自分の問題であって学会にも私生活にもなんの悪いこともない.
ただ,自分自身に学会を楽しむ余裕が必要だということが再確認されただけの話だ.来年はどのような参加形態になったともしても,学会を最大限楽しむことができるようにしよう,というのが次の目標となるのであった.

*1:卒業年度だったので忙しくてリストの更新から落としてしまったのかも.でもGoogle Scholarにも出てきていないので...?

*2:なお,自分は言い換えデータベースの更新をしていないので,このような営みが続いているのは梶原先生の大いなる貢献であると言わざるを得ない

*3:梶原先生といえば,今年参加したYANSも委員長,2024年は顧問とこちらも大活躍で,大変お世話になっている

*4:研究の主題とする部分(クイズはあくまで題材であって,主題は"言語生成結果の多様さの向上である"とか)の関係や,交流機会の創出のためにわざと複数のセッションに散らしている可能性もあるので,一概にどうこう言えるわけではないことには注意しなければならない

*5:もちろん,学会運営やそのほか業務もこなしながら学会をエンジョイしているスーパープレイヤーも多々いると思うが,私はそれではない

おひとりで2時間ちょいのバケーション

土曜の午前は妻の親が子供の面倒を見てくれることになり,2時間ちょいのバケーション.
最近はいろいろ大変だったので,少しでも自分の時間を取れるのが非常にありがたい……


というわけで,妻は家で休み時間,自分はマックでPC作業.
昔は「100円あったらマックへ行こう!」というCMが流れていたが,今は100円あってもクーポンがないとコーヒーすら飲むことができないので時代の変化を感じる.
一方で,変わらず電源席があり,割とどこでにでもあるマックの存在自体は大変助かるものである.



VPSの立ち上げとセットアップの続き,その他もろもろ動かなくなってしまったコードの修正などを行う.
正直2時間では全然作業なんてできないんだが,やっぱり中にコードを書いたりできるだけで楽しい.
作業を終えて,帰り道にラーメンでも食べて帰ろうと思ったが,どの店も行列だったので何も食べずに帰宅.




家事も子育ても全然嫌ではないが,今は平日はフルで仕事,土日をほぼワンオペをやっていて,流石にちょっと厳しいと感じる時がある.
2週間とか1ヶ月とかに1日でも1時間でもいいので,定期的に息抜きになる時間が欲しいものである.
ただ,この息抜きの時間というのは結構曲者で,貯金できない(2〜3日まとめてとれば2~3ヶ月くらい取らなくてOKとならない)のが厳しい.
まあ,あれこれ忙しいのは今だけのはずなので,忙しいなりにもうちょっと楽しく過ごせるように頑張ろうと思う.

育休をとった企業の研究者

会社のPCのファイルを整理していたら,昨年の育児休職取得に向けセミナーで,育児休職を取得した男性社員としてディスカッションで登壇した時の資料が見つかった.*1 フォーマットは独自のようで,そのまま資料をアップロードするのは憚られたが,書いている内容は比較的よくあるものだったので,多少の修正と体裁を整え直して公開してしまおうと思う.

ただ,他の人の育児の役に立つ内容かと言われると,多分そんなことはないので,こういう育休を取った奴もいた,くらいの情報と思ってもらえれば良い.

*1:この資料を見た妻は「育児休職とって(兼業)主夫になるぞ,でなれる人間は基本的にいない」「育児休職を取ろうとする男性向けの資料としてはなんの参考にもならなさそう」と言われてしまっている.

続きを読む

Copyright © 2012-2016 Masahiro MIZUKAMI All Rights Reserved.