#isucon チーム「ウー馬場ーイーツ・ザ・ファイナル2」でISUCON2026に参加し大爆死しました

今回もいつもの @matsuu、 @ishikawa84g でISUCON2026に参加しました。

チーム名は昨年の「ウー馬場ーイーツ・ザ・ファイナル」から「ウー馬場ーイーツ・ザ・ファイナル2」になりました。 ファイナルなのに2です。

今回もとても楽しめました。運営のみなさんありがとうございました。

結果は大爆死、最終スコアは42,185点でした。


役割分担はこれまたいつも通りこんな感じです。

  • @ishikawa84g サイトやレギュレーションやコードやログやDiscordを見る情報官
  • @matsuu バリバリ実装する前衛
  • @netmarkjp 司令塔

わたしは、チームの中ではベンチを回す(のを通じてリズムを作る)係です。


ソースコードリポジトリーはそのうち公開されるでしょう。


今回(わたしの)テーマはローカルAI

毎回ISUCONでは何か普段と違うことをしよう・みんなと違うことをしよう、ということでやっています。

今回のテーマは定番のサービスは使わず「ローカルAI」にしました。

そんなわけで、自分はOpenCode + Qwen3.6-35B-A3B-MTP (unsloth/Qwen3.6-35B-A3B-MTP-GGUF) を使ってみました。

わたしはバリバリとコードを書く役回りではないので、手元で壁打ちしたり分析したりしてました。 かなり快適に利用できました。

コードの読解や、kataribe・dstatなどの記録や集計結果をもとにしたボトルネック分析とコードの改善提案などに使っていました。 ただまあ、今回は秘孔をつけていなかったので、結局はあまりスコアを伸ばせませんでしたね。

この主要因はモデルか、使い方か、ミートプロキシーたるわたしか、いまのところ闇の中です。今後明らかになる、かもしれません。

今回の準備

ひとまず手元のMac(メモリー32GB)でLM Studioを使っていろいろモデルを試してみました。

安定して動きそうなのはQwen3.8 27B、Qwen3.6 35B A3B、Gemma4 26B A4Bあたりでした。

事前に長めのタスクを回したりといろいろやってみた結果、その中で速度と精度と安定性のバランスがよさそうなQwen3.6 35B A3Bを使うことにしました。

ただ、どうしても速度がもう少し欲しい感じでした。 中古のGPUを見て回ったりもしたのですが、いま高いんですよね。 ならばもうM5 ProのMac miniを買うか…でも高い…となり、結局レンタルすることにしました。

というわけで、ColabでA100を借りて、Tailscaleで繋いで使いました。 A100はメインメモリー80GB、VRAM 40GBで、Qwen3.6 35B A3Bを動かすには十分です。 超快適でした。

A100はPay As You Goで100コンピューティングユニット買うと、1,179円で14時間くらい使えます。 つまりISUCONの間は使い放題ですね。

やりかたとしては、Pre-approved ONで作ったTailscaleのキーをColabの TS_AUTHKEY に登録したうえで、以下を実行すると、あら不思議。Tailscale経由でA100で動くColabのLLMに接続できるようになります(ずっと放置すると切れるのでたまに触る必要あり)。

コードはだいたいこんな感じです。

import os
from google.colab import userdata
os.environ["TS_AUTHKEY"] = userdata.get("TS_AUTHKEY")
%%bash
curl -fsSL https://tailscale.com/install.sh | sh
mkdir -p /var/lib/tailscale /run/tailscale
nohup tailscaled --tun=userspace-networking \
  --socket=/run/tailscale/tailscaled.sock --port=41641 \
  > /var/log/tailscaled.log 2>&1 &
sleep 3

tailscale --socket=/run/tailscale/tailscaled.sock up \
  --authkey="$TS_AUTHKEY" --hostname=remote-colab --accept-dns=false
tailscale --socket=/run/tailscale/tailscaled.sock ip -4

nvidia-smi | head -15
curl -fsSL https://lmstudio.ai/install.sh | bash

export PATH="$HOME/.lmstudio/bin:$PATH"
lms --version
lms daemon up

pip install -U "huggingface_hub[cli]" hf_xet
export HF_XET_HIGH_PERFORMANCE=1
hf download unsloth/Qwen3.6-35B-A3B-MTP-GGUF \
  --include "*Q3_K_M*" \
  --local-dir ~/.lmstudio/models/unsloth/Qwen3.6-35B-A3B-MTP-GGUF
lms ls

lms load qwen3.6-35b-a3b-mtp \
  --gpu max --context-length 262144 --yes
lms server start --port 1234 --bind 0.0.0.0

curl -s http://localhost:1234/v1/models

今回の言語

今回もGoでした。 今回もRustは断念しましたが、そもそも言語がどうとかそういうレベルに至れませんでした。

スコア推移

基本的には全任せせず指示を出していっていて、堅調に伸ばしていました。 しかしボトルネックをうまく見つけられず、結果としてあまり伸ばせませんでした。

このあたりはAIパワーによって、適切なアプローチ自体が変わったのかなと思います。 感想戦やらでまたプラクティスから作っていきたいと思います。

ISUCON本の改訂版は昨日発売だったんですけどね。 原理原則レベルでは変わっていないものの、プラクティスはだいぶ変わってしまったかもしれません。

とはいえAIが何をしたか、なぜしたか、どうしてそれが効くのかを理解するには、やはり原理原則を理解しておくことが大事だなと思っています。これは負け惜しみかな?説明責任のためには不可欠だとは思うものの、今後社会がどうなっていくでしょうね。


そんなわけで、今回は非常に悔しい結果でした。

次回もぜひまた参加したいです。参加されることを祈っています。 引き続きよろしくお願いします!

Event 

も参照してください