LLM Gaming

LLM 設計與內容生成引擎

MarioGPT (NeurIPS 2023)

MarioGPT: Open-Ended Text2Level Generation through Large Language Models img

  1. 目標
    • 你打一句話描述你想要的瑪利歐關卡風格(例如「很多水管、不要敵人、要很多磚塊、地形高低起伏」),它就能自動生成一張看起來像真的瑪利歐關卡的地圖
    • 它也可以一直「不斷生成不同風格」的關卡,像是在做內容探索:越生成越多樣、越意想不到。
  2. 任務介紹
    • Text -> Level
    • 目標達到
      • 可控:聽得懂你說的
      • 多樣:每次生出來都不一樣
      • 可完:不要生成一堆根本玩不了的圖
  3. LLM使用
    • 你可以把它想成:用一個「GPT 類型的文字接龍模型」在接龍「關卡」
      因為關卡其實也能寫成一串符號:比如某個符號代表地面、某個符號代表磚塊、某個符號代表水管…模型就是一直猜「下一格應該是什麼」
    • 用一個「負責讀懂你文字」的模組( BART ),把你那句話變成一種控制訊號,讓 GPT 在生成時更偏向你要的風格(例如真的多放水管/少放敵人)

GAVEL (NeurIPS 2024)

GAVEL: Generating Games Via Evolution and Language Models

  1. 目標
    • 自動發明桌遊規則的引擎
      它會自己產生全新的棋盤/桌遊(不是只做關卡,而是整個遊戲規則),而且會偏向產生「可玩、看起來有策略、而且種類很多」的遊戲
  2. 任務介紹
    • 解決三大難點
      • 遊戲規則要用電腦能處理的方式表示
      • 規則空間超級大,很難搜尋
      • 你要能自動判斷「這遊戲到底好不好玩、夠不夠新」
  3. LLM使用
    • A模型:一個會改規則的「程式碼 LLM」
      用的是 CodeLlama-13b(一個擅長產生/修改程式碼的語言模型),而且特別把它訓練成: 給你一段規則的前後文,請你把中間那段規則『補出來』(也就是用來做「局部修改」,不需要整份規則重寫)
    • B模型:一個「進化搜尋」框架,負責一直試、一直挑
      他們用 MAP-Elites 這類「多樣性導向的進化演算法」:不是只找一個最強的遊戲,而是要在很多不同風格區域都找到好玩的
  4. 遊戲生成流程
    1. 先有一堆既有桌遊規則當資料集
      他們用 Ludii 的規則語言(L-GDL),裡面本來就收錄了上千種桌遊規則,作為訓練來源
    2. 訓練 LLM 學會「在規則中間補一段」
      他們把每個遊戲規則拆成很多「括號結構的小片段」(像程式碼裡的小區塊),讓模型學會: prefix(前面) + suffix(後面)-> 填出 target(中間那塊)
    3. 進化搜尋開始:反覆挑一個遊戲 → 隨機挑一段規則 → 叫 LLM 改它 → 自動評分 → 好的留下

LLM 與玩家情緒相關的研究

Player2Vec

player2vec: A Language Modeling Approach to Understand Player Behavior in Games

  1. 目標
    • 把每個玩家的遊玩行為變成一個向量(embedding),可以把它想成「玩家的行為指紋」
    • 這個「玩家指紋」可以拿去做後續應用:像是理解玩家類型(分群)、找出行為模式等
  2. 任務介紹
    • 在沒有人工標籤的情況下,光靠遊戲後台的行為紀錄,去學出能代表玩家的向量表示
  3. LLM使用
    • 採用 Longformer,因為玩家事件會超長、一般 BERT 那種模型吃不下
    • 訓練方式是 Masked Language Modeling(遮住一些 token 讓模型猜回來)
    • 做了三種大小的模型版本:small / medium / large(參數量約 2M、20M、121M)