現代のLLMの弱点、長い文章で重くなるを解決する日本発のアイディア「PHOTON」
「この番組は、エンジニアの成長は楽しい学びからをモットーに、昨日より少しだけ成長できる学びをお届けする、エンタメ系テックポッドキャストでございます」
「ございます。お願いします」
「いや。ノードの調子が非常に悪い」
「っていうのは」
「はい」
「えー、ポッドキャスターとして良くないので」
「あの、そうですね、意識が足りてませんでした」
「足りない、はい。そう、しっかり体調管理もお仕事ですからね。仕事なのかな、これ」

「そうですね」
「わかんないですけど、はい」
「仕事じゃないんですけどね、これ、実は」
「確かに、実は」
「はい」
「はい」
「じゃあ、今日はですね」
「はい」

「ちょっとLLMに関する」
「うん」
「ある論文についてのお話をしようかなと思います」
「おお、頭良さそう。やっぱ論文っていいですね。はい」
「でしょ。論文を直接読んだわけじゃないんですけど」
「はい」
「ちょっと前にね、少しだけ話題になってたんですよ」
「うーん、Xとかですか」

「で、あー、そうね」
「うーん」
「5月ぐらいかな。だから3か月前ぐらいかな」
「はいはいはい」
「で、えー、どういう内容かというとですね」
「はい」
「あの、今のLLMって、あの、トランスフォーマーっていう仕組みを、こう、土台にして」
「はい」

「作られてるんですよ」
「はいはいはい」
「大体」
「うん」
「なんですけど、えー、ちょっとそれの次が来るかもしれないっていう」
「おお、そうなると」
「はい」
「また、すごく成長しちゃうよみたいな話ですか。じゃあ、ごめんなさい、回想とか荒すぎて」

「えーとね、まあ、すごく成長しちゃうよっていうほどの大転換は起きてないんですけど」
「うん」
「まあ、1個の課題を解決してるみたいな感じかな」
「おお」
「で、えー、まずトランスフォーマー」
「そこですね、はい」
「なんですけど、どんなものかっていうのは後で説明するんですけど、一旦こいつが抱えてる弱点としてですね」
「はい」

「あの、長い文章を扱うとめっちゃ重くなるっていう弱点があるんですね」
「うーん、うーん、い、今僕たちが使ってるのって基本それですか」
「そうです」
「うーん。GPT-4.6もOpus5とかも」
「もう裏側は多分トランスフォーマーなんじゃないかな」
「うーん、おそらく、はい。なるほど」
「うん。で、えーと、実はその弱点に対してですね」
「はい」

「PHOTONっていう」
「PHOT」
「これは何なんだろうな」
「PHOTOFの壁、なんか同類のやつですか」
「PHOTON、まあ、まあそうだな。うん、それ。ほぼそう」
「ちょっと調子悪いですね。ちょっとごめんなさい、僕も」
「うん、ほぼそう」
「僕も良くなかったですけど。お互いちょっと良くなかった、はい」

「ほぼそうなんだけど。このPHOTONというね、なんだろうな、これ、仕組みかな」
「うん」
「がですね」
「はい」
「日本の、あの、富士通とか」
「うん」
「えー、理研とか、あと化学大、東海大、この4つの、なんか、合同チームみたいなところが発表されてまして」
「へー」

「長文に強いLLMみたいな」
「はいはいはい」
「のを実現するための、こう、仕組みみたいな感じですね」
「えー、なんか日本から来てるんですね。うれしい」
「そうなんですよ」
「いいな。はいはいはい」
「うん。っていうので、ちょっと話題になってたので」
「うん」

「えー、今日はそれの概要をちょっとお話ししていこうかなと思っております」
「お願いします」
「で、えー、まずLLMなんですけど」
「はい」
「なんかざっくり仕組みで言うと、なんかよくありません?あの、次の文字を予測してるだけみたいな」
「はいはいはい。なんか、んー、なんですか、ベクトル?が、なんか、値が近いものを、こう」
「うん」
「選択してってるみたいな」

「まあ、ベクトル、単純なベクトルかどうかで言うと怪しいんだけど」
「うん」
「えー、まずLLMっていうのは文字をですね、あの、トークンっていう単位で処理してますと」
「はい」
「で、トークン、まあ、よく聞くじゃないですか」
「うん」
「まあ、でもほぼ文字だと思っていいかもしれない」
「そうですよね、はい」

「まあ、必ずしも1文字1トークンってわけじゃないんですけど」
「うん」
「こう、LLMが、あの、文章を、なんか、小さく分けて処理してるんですけど」
「はい」
「その1個1個の単位がトークンと呼ばれてるものですね」
「はい」
「なので、単語で区切られてるわけでもないし、1文字1トークンっていうわけでもないけど、まあ、ほぼ文字に近いような感じだね」
「うん」

「で、このトランスフォーマーってのは」
「はい」
「あの、次のトークンを1個ずつ、こう、予測してって文章を作ってるんですよ」
「うん、うん、うん。はい」
「で、えー、まあ。いい文章ないかな」
「今日は美容院に行って、って来たら、大体」
「ああ」
「切るでしょ、みたいな」

「あー、そうだね。髪を切るか、染めるか、パーマか」
「うん、うん、うん」
「みたいなのを、えーと、予測してますよと」
「はいはい」
「で、えーと、まあ、それを予測するために、結局、えー、過去の文脈から考えてるわけですね」
「うん」
「次に何が来るかっていうのを」
「はい」

「で、そのために、えーと、使ってるのが、まあ、アテンションっていう仕組みなんですけど」
「うん」
「まあ、これまでの文章の中で、まあ、今の予測に重要なのはどこかっていうのを、まあ、探す仕組みになってますと。このアテンションっていうのが」
「うん、うん、うん」
「さっきのじゅんぺいが言ってくれた文章だったら、あの、美容院」
「はい」
「っていうところが、おそらくその髪を切るとかっていうところに結構大きく寄与してるよね。っていうのが、大体こう想像つくと思うんですけど」
「うん、確かに」

「まあ、そういうのを予測するための仕組みっていうのが、こう、アテンションって呼ばれてるものですと」
「はい」
「で、えー、まあ、トランスフォーマー、順番に、こう、トークンを予想してってますよと」
「うん」
「えー、なので、えーと、その文章生成ってのが1トークンずつ進むんですけど」
「はい」
「例えば、まずさっきの文章だったら、今日がまず生成されましたと」
「はい」

「で、えー、美容室で」
「うん」
「っていうのが次、生成されましたと」
「はい」
「で、その次に、じゃあ髪をって生成されて」
「はい」
「切りました、みたいな形で、こう、順番にどんどん生成されていきますと」
「はい」

「で、その際、まあ、これまでのトークンのところを、こう、全部、こう、見るんですね。アテンション、アテンションというか、トランスフォーマーって」
「うん、うん、うん。はい」
「これまでの文章を、要は全部記憶してるみたいな感じかな」
「過去の会話履歴とかも全部見てる」
「あ、そう、そう、そう、そう、そう、そう」
「はい」
「過去の会話履歴というか、うー、まあ、その、なんだ、文章全体を毎回毎回生成するたびに見てるって感じかな」
「あー、そういうことですね」

「うん」
「あ、新しく作る文章を」
「うん」
「え、作り終わったら見てる?あれ、違うか」
「えー、生成します、見ます、生成します、見ます、みたいな感じかな、イメージ」
「あー、はい、はい、はい」
「でも、そういう過去のトークンとかって、毎回こう、計算し直すのって結構無駄じゃないですか。1回読んでるものだし」
「うん、めっちゃ無駄」

「そう。っていうので、えーと、実はその計算省略するためにKVキャッシュってのを使ってるんですよ」
「KVキャッシュ、はい」
「はい。キーバリューキャッシュかな、これ、多分」
「うーん」
「で、これメモリに保存してるんで」
「はい」
「えーと、まあ、過去にその計算済みのトークンに関しては、えーと、そのまま、こう、メモリに載せて保存してるっていうような仕組みを取って、こう、高速化してるんですね」
「うん」

「なんですけど、このKVキャッシュってやつがね、あのー、計算早くしてくれる代わりにですね」
「うん」
「あのー、問題が起きるんですよ」
「なんだろう。うー、まあ、容量めっちゃ取られる、メモリ」
「そう」
「はい、はい」
「普通にメモリをめっちゃ圧迫する」
「うん」

「えーと、ゆえに、あの、計算のそのスピードっていうよりは、どっちかっていうと、メモリのなんかね、よみ、読み込みかな、が遅くなっちゃうんだよね。まずそのメモリがでかくなっちゃって」
「うーん、メモリパンパンだな、最近いつも」
「メモリパンパン。まあ、こ、今回のこのトランスフォーマーのやつはGPUメモリではあるんだけど」
「あー、なるほど」
「うん」
「PCのとかじゃなくてってことですか」
「あ、そう、そう、そう、そう、そう、そう」
「うん」

「まあ、だからあれだね、あの、OpenAIとかAnthropicとかが持ってるサーバー上で」
「うん」
「持ってるGPUのメモリだね」
「うん、うん、うん」
「まあ、でもそういうのに、あのー、めちゃくちゃ、あのー、メモリを使うので」
「はい」
「文章が大量にあったとき、要は文章が長くなったときにめっちゃ重くなるんですよ」
「うん」

「計算というよりは記憶容量のほうの問題で」
「はい」
「で、それを解決するのがね、PHOTONという仕組みになってます」
「なるほど、そこの、じゃあ、もしかしたら、今回そのPHOTONは僕たちってより」
「うん」
「開発元がすごく助かるようなやつってことですかね」
「あ、そうです、そうです」
「うーん、なるほど」

「うん。で、えーと、まあ、これはね、まあ、言ってしまえばめっちゃシンプルな仕組みなんですけど」
「はい」
「まあ、めちゃくちゃ情報量が多いんだったら」
「うん」
「まあ、古い情報を要約すればいいんじゃねっていう、まあ、そういう発想なんですよね」
「うーん、ふ、ふ、ふ、普通かもしれない。はい」
「そう」
「はい」

「そういう発想なんですよ、これ、まず」
「はい」
「まあ、その要約の仕方なんですけど」
「うん」
「えー、どちらかというと遠い文章を粗く持つみたいな」
「あー、なるほど」
「で、近い文章は、こ、細かく持つみたいなね」
「はい」

「まあ、そういう感じの要約の仕方しますと」
「はい、はい、はい」
「トランスフォーマーって文章をもうフラットなもんを1個の情報として持ってたんですけど」
「うん」
「PHOTONではこれを階層化して整理してるんですね」
「うん」
「要は1番上にまず全体の粗い概要みたいなやつがあって」
「はい」

「で、その下にブロック単位でどういう情報が入ってるかっていう単位で持って」
「うん」
「で、それをさらに細かく分けた情報で持って、その下にさらにトークンがあるみたいな」
「うーん、はい、はい、はい」
「っていうような、あの、ちょっと階層構造で持ってますと」
「1番上はインデックスみたいなイメージですかね」
「あー、っぽい。確かにそうかも」
「うーん、なるほど」

「そうだね。まさにそういうインデックス張ってくみたいなところに近いっすね」
「うん、うん、うん。はい」
「まあ、これだけ聞くとめっちゃシンプルじゃないですか」
「そうですね。これは、あの、僕でも思いついちゃうなって」
「誰が言うとんねんって感じですよ」
「そうなんです」
「はい」
「あのー、そう、アイディア自体は」

「はい」
「結構前からあるんですよ、これ」
「うん」
「なんですけど、これ実際に要約すると結構問題起きるシーンがあって」
「ほう」
「まあ、要は要約するって情報量捨てるじゃないですか」
「そうですね、はい」
「そう。だから、例えば過去の文章の中で、えー、契約金額はじゃあ103万7500円でしたっていう情報があったとするじゃないですか」

「はい」
「で、これ圧縮すると約100万円になるんですよ」
「うーん、良くないですね。なるほど」
「そう。ってなったら、あとで正確な金額聞かれたときに答えられなくなっちゃうよねっていう問題があって」
「はい」
「要約ってのが結構ね、その、やったほうが長文に関してはいいってのは、あの、分かるんだけど、なかなか実現ができてなかったみたいな」
「うーん」
「で、しかも、えーと、新しいそのトークンがどんどん生成するたびに」

「はい」
「あのー、全体の要約もどんどん更新してかないといけないじゃないですか」
「うん、確かに」
「でも、これを全部こう作り直すってなったら、まあ、結局それはそれでまた重くなってしまって、結局トランスフォーマーのほうが早いじゃんっていうふうになってしまうというか」
「うん」
「っていう、まあ、なんだ、あー、その2点が結構壁になってたのかな、多分」
「はい、はい」
「それ、個人で使っててもめちゃ感じますね」

「うん」
「あのー、1セッションあたりでトークン上限来たとき」
「うん」
「トークン上限っていうか、トークン上限か。来たとき」
「うん」
「なんか、勝手にClaudeとかだとコンパクト、なんだっけ、あれ、コンパクティング、なんか圧縮し始めるんですよ」
「コンパクション?」
「なんて言ってたかな。これまでの会話履歴をばーっとこう圧縮して、要約して、なんか、多分どっか持っとくみたいな動きをするんですけど」

「うん、うん、うん」
「なんか、そういうのとかも、あれもやっぱ、なんか、情報やっぱ落ちるんだよなっていうふうに思うんですよね。セッション引き継いで新しく会話始めたときに。あれ言ったやんみたいなこととか」
「あー」
「よくあるんですけど」
「うん、うん、うん」
「なんか、そういうのも改善できたらいいっすね。そこを、それ、なんでしたっけ」
「確かにね」
「フォ、やべ、忘れた」

「PHOTON」
「PHOTON」
「PHOTON」
「はい」
「そうね。で、えーと、そう、そういう、なんか、情報をかけちゃったりとか」
「うん」
「あと、全体を更新、その階層構造全体を更新するのが、これ重くなっちゃうよっていう問題がありましたと」
「はい」

「で、一旦ちょっとここで、あの、歴史的な流れになるんですけど、トランスフォーマーのあとに」
「うん」
「実はブロックトランスフォーマーっていう、なんか、あのー、ちょっと近しい考えのものがあって」
「うん」
「PHOTONは結局こっから派生してるみたいなイメージなんだけど」
「うん」
「そのブロックトランスフォーマーっていうのは、えーと、これまでは全部トークン単位でやってたけど、えーと、ブロックトランスフォーマーは近くのものに関、近くの情報に関してはトークン単位で処理しますよと」
「うん」

「だけど、遠くのものに関してはトークンを1つにまとめた、なんか、ブロック単位で処理するみたいな」
「うーん」
「っていうのをやってたんだけど。まあ、このブロックの、ん、ブロックとしてその遠い情報をまとめることで結構効率化して、これはね、結構うまくいったそうなんですよ」
「はい、はい」
「なんですけど、生成した新しい情報」
「うん」
「をブロックにまた反映してくみたいな更新作業とかはあって」
「うん」

「結局、まあ、プチ成功みたいな感じだったんですね」
「あー、根本的には変わってないよねみたいな」
「あー、そう、そう、そう、そう」
「うん」
「で、ただ、このPHOTONっていうのはそこを解決してて」
「はい」
「そのね、リカーシブジェネレーションっていう仕組みを使ってるらしいんですけど」
「かっこいい」

「かっこいいね」
「リカーシブってなんでしたっけ、さ、再帰的みたいな」
「あ、そう、そう、そう、そう、そう。で、元々のそういう階層モデルとかだったら、新しいじゃあトークン生成しますと」
「うん」
「そしたらまた全体をさ、あのー、再計算して」
「うん」
「えーと、上位のその、なんだ、あのー、概要みたいなところの記憶を更新します」
「はい」

「っていう仕組みだったんですけど」
「うん」
「PHOTONはその生成するときの仕組みをちょっと変えてて」
「うん」
「まあ、上位の記憶から次の情報を生成して」
「うん」
「で、その結果を使って、えーと、上位の記憶自体を更新するみたいな。要は要約を、なんか、常に要約から、えー、情報生成します」
「うーん」

「で、その生成した情報でさらに要約を更新するみたいな」
「あー、なるほど。えー、それいい、いいんですね。なんか、伝言ゲームみたいな」
「うん、うん」
「聞く感じになっちゃわないかなと思って。なんか、な、なんて言うんですかね」
「あー」
「はい。伝言ゲーム、ゲームになるぐらいなので、どんどん情報がおかしくなってくじゃないですか」
「うん、うん、うん」
「はい。なんで要約に対して、なんか、さらに文章生成して要約したらってなったら」

「うん、うん」
「え、いけるのかなって思ったんですけど」
「いけちゃうんじゃないかな。えー、で、さっきのちょっと伝言ゲームのところなんですけど」
「はい」
「まあ、ちょっとさっき、あの、要約からって言ったんですけど」
「はい」
「えー、大方、えー、ずれてはいないんですが」
「うん」

「その要約もいろんな階層でいろんな粒度で持ってるんですね、これ」
「えー、要約もいっぱいあるんですか。なるほど」
「要約というかね、あのー、まあ、なんだ、厳密には要約ではないんですけど」
「はい」
「えー、いろんな粒度の、えーと、要は階層を持ってるので」
「うん」
「えー、おそらく必要な階層にアクセスするんじゃないかなって気がしますね」
「うーん、なるほど」

「うん。要は、なんか、雑なメモ、えー、章ごとのメモ、えーと、よりその章の中の、なんだ、段落ごとのメモみたいな」
「うん」
「っていう要約を複数持ってて、それをこう同時に更新しながら、えーと、次の文章を生成してくみたいな」
「へー。まあ、それでも要約なら前ほど大きくないのか、データ量として」
「うん」
「うーん」
「まあ、ていうので、このPHOTONっていうのが」
「はい」

「そのトランスフォーマー、元々その全部をこう細かく覚えるみたいなトランスフォーマーの仕組みだと、えー、長文に弱かったよっていうところ」
「はい」
「が、そのブロ、ブロックトランスフォーマーっていうのが出てき、ブロックか、ブロックトランスフォーマーっていうのが出てきて」
「うん」
「えー、遠い情報はこうブロックで覚えようみたいな」
「うん」
「ある程度のその、こう、なんだ、粒度の違いみたいなのが出てきて。で、PHOTONでは、それをさらにその複数の細かさ」
「うん」

「を持って記憶しておいて、えーと、プラスでその記憶自体の効率」
「うん」
「効率っていうか、記憶自体を効率よく更新するみたいな仕組み」
「うん」
「を導入することによって、えー、長文でも、あのー、処理効率の高いLLMが作れるんじゃないかっていうところで、えーと、こういうのがね、日本から出ましたよっていう」
「うん、いいですね」
「うん。で、実際の、なんか、推論の効率で言うと、ちょっとどんな実験したかは若干あれなんですけど」
「はい」

「スループットがですね」
「はい」
「最大で416倍」
「416倍?えぐいな」
「416倍。とんでもない改善をしてるね」
「それはえぐいね。へー」
「まあ、なんか、その、ぜん、全部に一概にこう、なんだ、えーと、いい結果出してるっていうよりは、ちょっと得意なやつがあるっぽいんだけど」
「うん」

「ロングコンテキスト」
「はい」
「で、かつ。マルチクエリ」
「マルチクエリって、つまりロングテキストのときじゃなくってですか」
「あー、まあ、でもロングコンテキストだったら、まあ、自然とこう、あれだよね、多分、いろんな質問とかが入れる、入れることになるから」
「うん。マルチクエリ」
「だから、いろんな種類の質問を投げるシナリオって感じかな」
「うーん。まあ、なんか、ずっとセッション、こう、で、長く会話する人とかは絶対、まあ、そうな、そうなりますというか、効果が出ますよね、多分」

「そうだね、確かに」
「ってなったら」
「あと、なんか、これパラメーター、モデルのパラメーターも」
「はい」
「えー、600メガと1.2ビリオン、ミリオンか、これだから。一応論文の中だと、えーと、6億パラメーターと、あと12億パラメーターの2サイズでやってるっぽいんですけど」
「うん」
「特にその、うーんと、6億のほうで結果が圧倒的に出てるっぽいっすね」
「えーと、ちょっと分からん。つ、っていうのはつまり、ろ、え、6億パラメーター。はい」

「軽量なモデルのほうで効果が出てんのかも」
「うーん」
「まあ、ちょっとそこらへんの、あの、裏側、な、なんでじゃあ6億のほうで効果出てんのかはあれだけど」
「うん」
「まあ、そっちのほうで、えーと、通常のトランスフォーマーと比較して、え、最大416倍のスループットが出てるっていう」
「うん、うん、うん。まあ、結果としてはだいぶ、だいぶすごいですね」
「そう。で、しかも速くなった代わりに品質落ちてないの?みたいなところとかも大丈夫っぽくて」
「ほー」

「要はその品質を担保しつつ、えー、速さをめっちゃ出してるみたいな」
「すごい。プラスしかない」
「ね」
「うん。これどんどん導入されるといいですね」
「そうね」
「食い込んでいきたいですね、日本人としては」
「確かに。まあ、ていうので、ちょっと時期めっちゃ逃したんですけど」
「うん」

「3か月前ぐらいにちょっと話題になってたので」
「はい」
「その概要を調べてみましたっていう感じでした」
「ありがとうございます。なんか、日本で強いAIってないですよね。魚AIでしたっけ?なんかそれぐらい?それも」
「うん、うん、うん」
「もうほんとそれぐらいしか僕知らないです。これちょっとなんかアフタートークみたいになってますけど」
「そうだね。魚AI、ほかにもな、何個かLLM聞いたことあるけど」
「はい、はい」

「実際に使ってるのはあんまり見たことないかもな」
「いやー、ちょっと、これどっかで話してますかね。あ、分かんないですけど。中国AIバーサスアメリカのAI、かいちさん、のりさんで話してないですか」
「話してないと思う」
「うん。なんか最近中国AI来てるという話題じゃないですか」
「うん、うん、うん、うん」
「うん。奴らオープンソースでやってくるんで。で」
「うん」
「結構アメリカのスタートアップとかも、やっぱ、ガンガンそっち使っちゃうとこが安いしみたいなとか。でも」

「あー、はい、はい」
「情報戦争だから大丈夫とはいえ、向こう、まあ、結局安いと使いたくなるし、でも性能もアメリカのAIにちょっと及ばない、ほぼ一緒ぐらいのレベルらしいですしっていう」
「うん」
「この戦争、AI戦争」
「確かにね。あれ、ムーンショットAIとかってある?中国?」
「ムーンショットAI、あー、でもなんか聞いたことあるな」
「あの、Kimiとかね」
「あー、Kimi、そうです、中国、Kimi中国です」

「うん、うん、うん」
「そこか、そう、ムーンショットAIっていう会社がKimi出してるところなのか」
「そう、そう、そう、そう、そう」
「そう、そういうことか」
「いや、このへんはね」
「うーん」
「なんか、日本とヨーロッパはだいぶ存在感薄いから、なんか」
「うーん、聞いたことない、ヨーロッパとか聞いたことないです。あるんですかね」

「ねえ」
「うん。頑張りたいですね。いや、食い込んでほしいですね、これ。この」
「ね」
「やばい、忘れた、フォ、PHOTON」
「PHOTON」
「うん」
「まあ、ちょっと、あの、なんだ、えーと、LLMの裏側の仕組みみたいなとこなんで」
「はい」

「まあ、ちょっと我々のようなウェブエンジニアにはあんまり関係ない部分かもしんないですけど」
「まあ、まあ、まあ、でもそういう技術、革新というか進歩があるという、おもしろいですね」
「ですね」
「うん」
「はい、じゃあちょっと、えー、今日はお便りも紹介してこうかなと思います」
「はい」
「ラジオネームジョジョンさんからのお便りです」
「ありがとうございます」

「えー、いろいろちょっと感想も送ってきていただいてるんですが、ちょっと今日はですね、えー、そっちではなく、えー、こっちのほう読んでこうかな。えー、社内ではクロードコードを使ってる人がほとんどで、自分はずっとカーサを使っており、えー、乗り換えるか迷い中、正直カーサで困ってることがほとんどないため踏み出せずにいますと」
「うん、なるほど」
「ちなみにジュンペイは何を使ってますか」
「僕もクロードコードだけです。で、ちょっと前はカーサをいじってたんですけど、いじってたといっても、カーサでエディ、カーサでエディター開いて、そこでクロードコード呼び出して、いじってたんで、実質使ってはないですね、カーサ」
「なんで?」
「なんか、な、なんでだろうな。なんか」
「珍しいな、それ。VSコードじゃなくてそっちでやってんだ」
「はい。で、今もう、もうカーサも使わずに、もうクロードコードのデスクトップアプリが、なんか優秀すぎてターミナルも開けますし」

「うん」
「なんか」
「あー、確かに」
「ビューの分割とかもそうですし、全然ウェブサイトとかもなんかそれ上で開けるし、フォークもできるしとか思って」
「はい、はい、はい、はい」
「もうクロードコード一択ですね、僕は。一色、はい」
「うーん」
「うん」

「ちなみに僕はね、どっちも使ってますね」
「えー、どう使い分けるんですか」
「結構気分かな」
「気分か」
「結構気分かな。あのー、プランで言うと」
「はい」
「あの、カーサのほうがプロプラス使ってるんですよ」
「はい」

「で、クロードのほうが」
「うん」
「なんだっけ、なんか1万円ぐらいなやつ」
「マックス、マックスの5倍、5X」
「マックスの5倍のほうかな」
「はい」
「うん、そうね、そっち」
「うーん」

「を使ってて」
「はい」
「で、えーとね、最近だとやっぱクロードコード使うことが多いっすね」
「うん」
「なんかね、うー、ちょっと使いやすいかもって思っている」
「どこの部分がですか」
「ワークツリー、Gitのワークツリーあるじゃないですか」
「はい」

「使ってます、ちなみに」
「デスクトップでってことですか。え?」
「あ、いや、Gitワークツリーっていう機能」
「使ってないな。ど、ど、え?どっから使えるやつですか」
「クロードコードのあのデスクトップアプリだと」
「はい」
「なんかブランチの横に」
「ブランチ、ブランチっていうのはセッションですかね」

「うん、ブランチとか」
「なんか1つのチャット部屋みたいなイメージですか。あの、左にばーって出てる。あれ違います?」
「いや、マジでブランチ名が出る」
「え?」
「あれ、クロードコード使ってる?デスクトップアプリ?」
「クロードコードのデスクトップアプリですけど、ちょっと待ってくださいね」
「え、ターミナルじゃないってことですね?」
「ターミナルじゃないです。はい、これ」

「あの、チャット欄の上のほうにさ」
「はい」
「ブランチ名の横になんかワークツリーっていうチェックボックス出てるの」
「はい、はい、はい」
「これを使うためだけにクロードコード使ってるみたいなとこありますね、僕」
「これをチェックしてやるとどうなるんですか」
「うん。えーとね、ワークツリーっていうなんか、これGitの機能なんですけど」
「はい、はい」

「なんかブランチってさ、1個にしかチェックアウトできないじゃないですか」
「そうですね、はい」
「で、ワークツリー使うと。イメージそのブランチのサンドボックス作ってくれるみたいな」
「うーん。あ、はい、はい、はい」
「だから、えー、例えば1つのリポジトリあるじゃないですか」
「はい」
「で、4つ作業進めたくて、4つブランチ作んなきゃいけないみたいな」
「うん」

「っていうときにワークツリーオンにしてやると、それぞれ干渉せずに作業進めれるんで」
「うん」
「それを使うためだけにクロードコード使ってますよ、僕」
「それは」
「うん」
「例えば1つのセッションで会話してて、なんかそれぞれ分岐してなんか作業やらせたいなってなったときに、僕は片方をフォークして」
「うん」
「なんか2つ、まあセッション部屋を作るみたいなイメージで、でもコンテキストは一緒みたいな感じで進めたりするんですけど、それとは違うのかな」

「えっとね、このワークツリーはね」
「はい」
「えー、もうマジでGit単体の機能っすね」
「うーん」
「まあ、イメージ、複数のブランチに同時にチェックアウトできると思ったらいいかもしんない」
「はい、はい、はい。なんかやってること同じそうな気がするな。で、これは違うのかな」
「うん」
「セッション、新しく新規チャットで始めるときに、これをせ、有効にしておくしかないんですかね」

「あー、まあ、そうだね。そう、そう、そう、そう」
「うーん。へー」
「え、でもさ、その、なんだ、複数セッション立ち上げたらさ」
「はい」
「作業干渉しないですか、なんか」
「します。え、これ」
「それを防げます、はい」
「これしない、え、なんで干渉しなくなるんですか。そういうのがワークツリーなんですか」

「え、そう、なんかね、作業環境分離されるんだよね」
「へー。逆に干渉して、なんかそういうとこも見に行けないと、うまく実装できないこととかもありません?ないですか」
「うーん、そういうタスクは分けないかもしんない」
「へー、なるほど、ありがとうございます」
「で、まあ、別にこれワークツリーなんで」
「うん」
「まあ、Gitの機能なんで別にカーサからも使えるんですけど」
「はい」

「なんかチェ、チェック入れるだけで使えるのがやっぱ便利で」
「うん」
「ついついクロードコード使ってしまうなって感じですね」
「へー、なるほど」
「うん」
「そういうことっすね」
「ただ、えー、スピード重視したいときはカーサ使うかも」
「あ、そっちのほうが早いんですか。なん、なんでだ」

「はいはい。今、カーサ使うと」
「はい」
「まあ、多分モデル、まあ、モデル選択できるんですけど」
「はい、はい」
「えー、ごつい作業やりたかったら、まあ、FableFiveとか」
「うん」
「あとはChatGPT5.6」
「うん」

「とかが多分向いてて」
「はい」
「で、そこまでごっつくないんだけど」
「うん」
「割と賢くて速くて安いモデルに、あの、Grok4.6があるんで」
「うーん」
「あれがだいぶコスパいいっすね」
「へー」

「で、あれでやるとめっちゃ速い気がする」
「そうなんだ」
「うん」
「えー、まあ、あれですもんね、カーサは買収されてますもんね」
「されたね」
「そうですよね。うん、うん」
「うん」
「へー」

「あ、Grokいいっすよ」
「使ったことないな。まあ、でも使わないとなとは思ってますけどね。絶対食い込んでく、きますもんね」
「うん」
「マスクさんですから」
「マスクさんですからね」
「はい。っていうので、つまり」
「うん」
「気分でどういうアドバイスになるんだろうな」

「まあ」
「はい」
「だから、結局やれることぶっちゃけそんなに変わんないと思ってます」
「うん」
「で、まあ、カジュアルにワークツリー使いやすいからクロードコード使ってるんですけど」
「はい」
「ぶっちゃけ、個人的には、あの、全然カーサでいいんじゃないかなって思ってますね」
「うーん。変わんないっすよね、なにも、ほんとに」

「変わん、まあ、結局Fable使ったらFableで動くしねっていう」
「うん。まあ、そういうモデルの切り替えとかがちょっと柔軟ぐらいですか。別に、まあ、クロードコードでも設定できますし、け、できますけど。うーん」
「うん」
「どっちもですか」
「どっちも」
「はい。プロプランなら3000円とかでしたっけ、クロードコード。なんかそれぐらいじゃなかったから」
「そう、そんぐらい」
「ちょっと触って、こんなもんかで、なんか別にそんなに難しくないですかね、普通の」

「うん、そうね」
「うん」
「なんか個人的には、なんかもう高いプラン1個っていうよりは、安いプランで複数のAI使うのがいいんじゃないかなと思ってるんですけどね」
「うん、うん、うん。そうですね。あと、確かあれなんです、クロードコード、クロード、えっと、誰か友達紹介みたいので、7日間ぐらい無料で使われてたりするはずなんで。なんか友達から紹介コードもらって。はい。ちょっといじったりすればいいんじゃないのかなと思いますけどね」
「お。じゃ、ジュンペイの紹介コード貼っとく」
「僕の紹介コード貼っときますか。1人当たり、なんか3人とかまでだった気がするんですよね、確か」
「あ、そうなんだ」
「はい。で、その人が有料プランに繰り上がったら」

「うん」
「10ドル入るみたいな、確かそんなだった気がしますね」
「あー、なんかだいぶしょっぱいっすね」
「はい。そう、そう。意外とアンソロピックさん、だいぶしょっぱいっすね」
「そうなん。紹介プランもだいぶしょっぱいっすね」
「うん。ですかねー」
「うん。まあ、でもいろんなツール触ってみるのはいいと思うんで」
「うーん。まあ、そうっすね。クロードが、なんかこう、今のとこ落ちぶれる未来やっぱあんま見えないんで。まあ、そういうところがいいかなとは思いますけどね。まあ、でもそんなにですよっていう」

「うん」
「はい」
「そうね」
「はい」
「あと、なんか普通にさ、クロードコード使ったら普通のクロードも使えるじゃないですか」
「あ、はい、はい」
「個人的には、まあ、それ使えるってのだけでもでかいと思いますけどね」
「あ、マジっすか。なんかクロード使うタイミングってないですか。僕もうすべてクロードコードでやるんですけど、クロード使うメリットが分からないというか。なんか」

「えっとね」
「はい」
「ローカルで作業させたくないときっすね」
「うん、なるほど」
「ローカルで作業させたくないやつは全部チャットでやるかな」
「え、えー、た、例えばなんですか。例えばローカルで作業、なんだろう」
「え、なんかしょうもない質問系のやつとか」
「はい、はい」

「えっと、戦略考えるときとか、資料作る」
「うん」
「ま、資料は、まあ、どっちもあるな。クロードコードでやるときもあるし」
「はい」
「クラウドで完結させるときもあるし」
「へー、なんかそもそもそうか、なんかクロードの初期設定の違いでそういう違いがあれなのかな」
「うーん、てかあと、なんだ、チャットのほうがさ、クラウド、ん?あのー、アンソロピックのクラウドのサーバー上でやってくれるじゃないですか」
「あ、なるほど、はい。確かに」

「だから、指令送ったあとにすぐPC切って、なんか移動しなきゃいけないときとかも、まあ、便利っすね」
「うーん。あー、そういうことか」
「うん」
「なるほどなー」
「結構使い分けてるかも、そこ」
「へー」
「あと、ToDo、ToDoリストとかの管理さ」
「はい」

「もう全部クロードにや、クロードでやってるんですよ」
「あ、そっちなんですね。へー」
「うん。アサナと連携させて、もう全部その日のやつとか洗い出させて」
「うん」
「Googleカレンダーに突っ込んで」
「うん」
「みたいなことするってなったら、チャットのほう使うかな」
「へー、そっちのほうがいいのかな」

「ん?」
「いや、僕はもう全部クロードコードで、もうToDoもそうですね。僕はGitHubのダッシュボード使って」
「うん」
「で、流行りのクロードかけるオブシディアンで全部データ入れてて」
「うん」
「で」
「うん、うん」
「まあ、あのルーティーンで毎日Slackに、その今日のやることとか、なんかToDo全部飛ばして、あのGoogleカレンダー」

「うん、うん」
「Gmailダッシュボードとかいろいろ見させたうえで、なんか優先順位とかつけて飛ばさせてるみたいな感じなんですけど」
「あー、まあ、ローカルに。うん。見てるものは変わんないと思う。まあ、ローカルのファイル蓄積するかとか、そのへんじゃないですか。じゃあ締めていきますか。では、この番組ではSNSのXで皆様からの感想を募集しております。ハッシュタグ、ひまじんプログラマーを付けて投稿していただくと、えー、僕らが自分らで、あの、気合で探して、えー、まあ、その感想を元にこう番組作りに生かしていったりとか、えー、発信の喜びに変えていったりとかするので、ぜひともよろしくお願いします。えー、また、えー、僕らに直接何か、えー、感想を届けたいとか、質問したいっていう場合は、エピソードの説明欄にあるGoogleフォームから、えー、必要事項を入れて送っていただくと、我々にお便りが届く仕組みになっておりますので、そちらもぜひぜひご活用ください。さらに、オンラインSlackコミュニティ、ひまプロ談話室というものを運営しております。こちらでは、えー、エンジニアリングに興味ある人たち、エンジニアに近しい人たちが集まって、えーと、まあ、日々情報交換したりとか、えー、刺激を受け合ったりするような、そんなコミュニティとなっております。えー、これも番組の説明欄にある、えー、Googleフォームから申し込んでいただくと、サンクスページに、えー、Slack参加用のリンクがねじ込まれてますので、そこから、えー、お気軽にご参加ください。えー、また最後に、この番組は各種ポッドキャストプラットフォームで配信中でございます。参考になったよという方はですね、えー、星を付けて評価していただけると、えー、我々、あの、そういう評価だけで、あの、駆動して生きておりますので、ぜひともよろしくお願いします。それでは皆さん、また次回」
「ある夜ね、いつものようにラジオのお便りのチェックをしていたんですよ。そしたらね、夜なのにね、お便りの通知がね、ぽーん、ぽーんってなってね。こんな時間におかしいなー、おかしいなー、おかしいなーと思って、リスナーも寝てる時間のはずなのになーって思って、メールフォルダ開けたらね、うわー」
「番組では叫ぶほどたくさんのお便りをお待ちしております」