#463AIagent作りたい!!
「この番組は、エンジニアの成長は楽しい学びからをモットーに、昨日より少しだけ成長できる内容をお届けするエンタメ系テックラジオでございます」
「ございます」
「ございます」
「最近ですね、作りたいものがあって」
「うん、うん」
「ほお」
「当てます?」
「な、なんですか」

「えー、料理なんかの」
「あー、まあ、それはずるい」
「ずるい?」
「それずるいよ。あのー、料理って、あのー、人間とほかの動物を区別する特徴のうちの1つだからね、やっぱ」
「はい」
「だからそれはずるいっす」
「そうなんだ」
「なんかのツール」

「なんかのツール?」
「はい。広い。早起きできるツール」
「あー、うーん、まあ、広く言えば正解かな」
「そう」
「うん」
「マジで」
「まあ、実はね、AIエージェントを作りたいんですよ」
「うん」

「あー。AIエージェントを作る?」
「AIエージェントを作る」
「なんの?」
「なんでもいいっす」
「あ、なんでもいいんすか」
「はい」
「うーん」
「ただ、AIエージェントというものを作るにあたって、いざ作ろうとしたら作り方が分からないので、作れるようになりたいという」

「あー、はいはいはい」
「ま、そういう目的っすね」
「あー、なるほど」
「はい。で、えー、4月のね、20何日かに発売されたOrileyの本で」
「うん」
「実践AIエージェント開発という本がございまして」
「ほう、実践シリーズ」
「実践シリーズ。シリーズなんだっけ、これ」

「なんか実践〇〇って本いっぱいありますよね」
「あ、でも確かにある」
「やや骨太なイメージ」
「あー、でもそうかもしれない。結構ね、こういうとこまで触るんだっていう気持ちではある、確かに」
「うーん」
「これね、表紙がいいんですよ」
「え、当てれるやつ?」
「当てれるよ。あのー、うん、当てれると思うよ」

「AIエージェントか」
「え?あ、いや、えっと、ごめん。えー、字面からは当てれないから、あのー」
「え?字面以外にヒントある?」
「だ、動物。あ、そう、動物。Orileyといえば動物だからね、やっぱ」
「え?字面ヒントじゃないんすか」
「字面全くヒントじゃないわ」
「カニ」
「カニはラストやろ」

「あ、え、何から、何から推理すればいいんや」
「クロードが出てきちゃった」
「まあ、動物の中で1番エージェントに近いかもしんない」
「犬?」
「惜しい」
「狼」
「遠い」
「え?」

「猫」
「遠い。猿、正解」
「へー、なるほど」
「へー」
「まあ、多分ね、生物上1番近いんじゃない?」
「うん、うん、うん。確かに、確かに」
「うん。猿が2匹いて木を持ってるんですけど」
「うん」

「ま、この本読んでいてですね、あのLLM使うじゃないですか、AIエージェント作るときって」
「はい」
「うん。で、LLMって、まあChatGPTとかClaudeとか、まあ今そのへんが強いっすよね」
「うん」
「うん。で、ただ、え、それだけではだめですよと」
「うん」
「LLMだけを使ってちゃだめですよと言われました」
「うん」

「で、え、ほんとにちゃんとしたAIエージェントを作りたいのであれば、SLMも活用できないとだめだと」
「ほう」
「うん。ってことで、今日はLLM、LargeLanguageModelではないSLM、SmallLanguageModelについてお話をしてこうかなと」
「おー、思ってなかった角度でいいですね」
「うーん」
「あんま知らなくないっす、SMLって。なんか存在は知ってるけどみたいな」
「そうっすね」
「うん」

「まあ、なんかローカルだけで動かすときに使うやつとか」
「うんうんうん」
「そんなイメージちょっとありますね」
「いや、ローカルっていうとまた難しいなと思って。ローカルはローカルでさ、ローカルLLMってあるじゃないですか」
「なるほど」
「うん。まあ、ていうのがあるから、ちょい、ちょいむずの、なんかかぶり気味のところもあるんだよな。で、まず、えー、SmallLanguageModelとは何、なんぞやというところからお話をしていこうかなと思います」
「何、どうぞ」
「お願いします」

「まず昨今話題のLLMたち」
「うん」
「めっちゃ高性能じゃないっすか。正直、最近もうね、依存がすごいんですよ」
「分かる」
「うん」
「うん」
「これないとね、考えるのめんどくさくなっちゃうぐらい」
「うん」

「思考体力落ちてる気がする」
「それも分かる」
「うん」
「うん」
「で、えー、これの賢い秘密、こいつらって裏側に、えー、超大量のパラメーターっていうのを持ってるんすね」
「うん」
「うん。で、えー、まあパラメーター、よく聞くけど実際どういうものなのっていうところなんですけど。まあAIの仕組みって基本的にディープラーニングのときから、えー、基礎の基礎の部分は変わってないと思ってます。入力がまずあります、と。で、LLMだったら、まあテキストとかで入れたりとか、まあ場合によっては音声とか画像で入れる場合もありますねと」
「うん」

「で、それに対して、その入力に対して、えー、すっごい多層のいっぱい、なんか層が重なっていて。で、各層で、えー、重みをかけて、バイアスを足してみたいな、なんかそういう計算をして。なんかいろいろ最終的にこうデータを変換して、変換して、変換して、変換していくっていうところは、えー、基本同じですよね、多分」
「うん」
「もちろんもっと複雑にはなってるんですけど。で、えー、まあそういう変換とか、えー、いろんなことをする、まあなんか計算のタイミングの量みたいな感じなのかな、パラメーターって」
「あれじゃないっすか。それこそ」
「ん?」
「切片とか」
「切片。めっちゃ切片が。切片とか傾きの話じゃないですか」
「方向ぶりに聞いたかもしんない」

「パラメーターって。違いましたっけ?」
「切片、バイアスのイメージだったけど」
「あ、そう。バイアス、バイアス。そう、そう、そう」
「あ、そう。でも重みとかもなんか全部含めてパラメーターと呼んでるから」
「あ、そう、そう、そう。そう、そう、その認識です」
「まあそうだよね。だから、えーと、まあこのパラメーター、でかければでかいほど、まあ要は計算めっちゃやってるってことよね?」
「でかいって言ってるのは数が多いですね」
「うん。数が多い」

「うん」
「数が多い」
「うーん」
「で、これが要はLLMの、まあざっくりした仕組みですよと」
「うん」
「で、このSLMっていうのは、このパラメーター数が、まあ相対的に見てなんかちっちゃくねっていうジャンルのことを言いますと」
「うん、うん、うん」
「ふーん。なんか基準あるんですか」

「えーとね、ないっす」
「ほう、ないんだ」
「基準はなくて。なんなら今のSLMのパラメーター数は、あの過去のLLMのパラメーター数ぐらいあります」
「あ、ですよね、でも。だってめっちゃ増えてますもんね、今ね」
「そう、そう、そう、そう、そう。なので、えー、基準は多分そのタイミングによって違う」
「ふーん」
「今だったらこれぐらいだよねっていう値はあると思うけど、まあそのへんとか変わりやすいと思う」
「まあじゃあ雰囲気なんすね」

「うん」
「そう、だから相対的に見て小さいっていうところがポイントかなと思います」
「うん」
「で、えー、このSLM使う理由」
「はい」
「理由なんですけど、まずLLMの特徴。こいつはね、パラメーター、その膨大なパラメーターを武器にして、え、とても複雑な推論ができますと」
「うん」
「うん」

「うん」
「いや、難しいタスクをこなすことができる。しかし一方で、えー、計算するときのコスト高かったりとか、あと速度も重くなりがち」
「うん」
「っていう、まあ賢いけど重くて高いよねと」
「うん」
「で、一方SLMは特定のタスクには特化してて得意な領域がありますと」
「うん、うん、うん」
「ただ汎用的ではない」

「うん」
「で、そして、え、コストは安くて、え、速度も速い傾向にあると」
「うん」
「うん。っていうところで、まあロー、さっき順平が言ってくれた、まあローカルで動かすケースとか。あとは、まあローカルに近いけど、えー、エッジコンピューティングか。まあとかで動かすケースもあるし、あとは、えー、なんなら社内サーバーで動かすみたいなケースも考えられますと」
「うん、うん」
「なので、まあ向いてるシーンと向いてないシーンがあるんすよね。LLMとSLMそれぞれで」
「うん」
「うん。まあ広く深く考えて、すごい毎回ヒットを打ち出してくれるLLMと。ちっちゃい仕事だったらめちゃくちゃ速くて安くできますよっていうSLM。まあまずこの相対的な関係がありますと」

「うん」
「はい、はい、はい。で、えー、このSLM使うと。さっきあのAIエージェント作るときに、えー、SLMも知らないといけないですよっていうふうに、あのー、申し上げたんですけど。じゃあなんでこれが必要かっていうと、1つは、えー、コストを抑えるためっすね。こっちの運用側でかかるコスト」
「うん、うん」
「うん。えー、大体LLMってAPI使って呼び出すじゃないですか」
「うん」
「で、そうなったときに、まあ1回あたりの使用量とかなんかすごい安く感じるけど、実際にウェブサービスに組み込んで、そのAPIを呼びまくるってなると、結構トークンの課金が積み上がると」
「そうですね」
「うん。なので、えー、もしそんなに難しくないタスクなのであれば、えー、自分たちの会社で立てたサーバー上で動くSLMを立てて動かしてしまったほうが、えー、かなり安く回せる可能性が高い」

「うん」
「うん。っていうのがまずありますと」
「ちなみにちょっと」
「はい」
「質問なんですけど」
「はい」
「なんかSLMって例えばこれとかみたいな話とか、こういうユースケースならSLMで十分だよみたいな話ってあとから出てきますか」
「1個目はあれ、あの、どういう種類があるかみたいなやつ?」

「はい」
「それはある」
「うん、うん、うん」
「で、こういうケースで向いてますよっていうのもあるっちゃあるか。うん、あるっちゃある」
「あ、じゃあ楽しみに待ってます」
「えー、というので1つ目はまずコスト的なメリットが出やすいと。SLMを、えー、使うと」
「うん」
「で、次に、えー、速度っすね。これも、えー、LLMを例えばじゃあ、えーっと、AIエージェント作るときって結構多段で考えたりするんすよ。ユーザーが入力して返答を作るまでに、えーっと、LLMに何回かこうやり取りを投げたりみたいな、裏側で」

「うん」
「うん。っていうことをやってるんですけど、えー、それを毎回毎回全部LLMにやると、LLMってまあ先ほど言ったとおりパラメーター多くて重、重い傾向があるんで、そこが、え、時間かかってしまいがち」
「うん」
「うん。っていうのがありますと。なんで、えー、適切な処理に使うのであればSLMを使ったほうが、えー、よりスピーディーに返答できるの、えー、返答できるので、えーっと、ユーザー側の体験が良くなると、スピードが速くなるんで」
「うん」
「うん。もちろんね、精度担保できてることを保証した上でですけどね」
「うん」
「っていうので、えー、速度的なメリットも出せますと。で、3つ目、プライバシー。で、あの、企業によってはあの普通にデータを外部のAPIに送れないこととかもあると思うんですよ」

「あるでしょうね」
「特に。そう、医療とかね。金融とか」
「うん」
「結構そういう厳しい」
「患者のデータとかね」
「ああ、そうそうそうそうそうそう。で、そういった処理とかっていうのはどうしても、えっと、LLMに送れないと。ってなったときに、えー、もし内容が適応してるのであればSLM使って社内サーバーで動かしてあげれば、まあデータを外に出すことなく処理もできますよと」
「うん」
「うん。まあこういうメリットがあるから、AIエージェントをじゃあ作ってくってなったときに、適切なタスクはSLMに投げたほうが、まあ最終的にコストも安くなるし、機能も良くなるし、えー、プライバシー的にも安全になると。っていうところで、え、結構ここらへんの使い分けが大事になってきますよと」

「最新のモデルこそローカルじゃあ多分動かせないでしょうしね。どんなスペックいるでしょうね」
「あー、え、あのー、そうね、あのー、ローカル、ローカルっていうのは」
「Opus4.7?だっけ、今」
「はい、はい、はい」
「とかって、ローカルじゃあ動かせるスペックじゃないと思ってて」
「あー、仮にあのレベルのやつが公開されたらってこと?」
「あ、そうそうそうそう」
「うん、うん、うん、うん。だから、なんか、そういう機密情報は使うことがほとんどだと思うので、ビジネスの場だと」

「うん、うん、うん」
「お客さんが本当に困ってるところを解決するためには」
「うん」
「このぐらいでいけるよねみたいなところの見極めとか」
「うん」
「あとは、新しい技術なんで絶対安全ですって」
「うん、うん、うん」
「言える根拠をエンジニア側が示してあげないといけないっていうところがあるなと思いながら話聞いてました」

「確かに」
「うん」
「まあとは強み、弱みがそれぞれあるんで、まず使い分けようっていう話ですねと」
「うん」
「で、えー、じゃあ実際に今、えー、どういうSLMがあるのかという」
「うん」
「ちょっとモデルの種類についても学んでいきましょう」
「え、お願いします」

「はい。あんまりピンとこない」
「はい、じゃあモデルの種類いきます」
「はい」
「はい」
「で、まあモデルもね、まあ実は結構、なんて言うんでしょう、LLM作ってるところが、まあやっぱり強かったりするんですけど」
「うん」
「代表的なのはですね、まずマイクロソフトの、これ読み方Phiなのかな、多分。PHIって書いて」
「ほう」

「うん」
「さすがにPhiじゃねえよね」
「いや、知らんな」
「初耳モデル?」
「はい。マイクロソフトって」
「うん」
「OpenAIってことですか。マイクロソフト?」
「えー、どうなんだこれ。元々資本関係はあるよね、そもそも」

「あるはず」
「だけど、このPhiがどう活用されてるかはちょっと分かんないな、そのOpenAIのあれが」
「はい、はい、はい。マイクロソフトが出してるんだ」
「ふーん」
「え、製品ですか」
「これね、あのー、製品というか、なんか、まあモデルの名前かな」
「おお、おお、ああ、なるほど。モデルの名前なんすね。なるほど」
「うん」

「じゃあ、なんか、ハギングフェイスとかで使えるかもしんないし、使えないかもしんないして感じなんだな」
「あ、えーと、多分ね、ハギングフェイスで上がってるやつをリストアップしてるような気がするわ、今」
「ああ、じゃあ」
「あれなんすね」
「そう」
「ハギングフェイスって結構一般的なんだっけ、今」
「ゆっ、説明したほうがいいですね」
「なん、なんとなくちょっと」

「も、モデルがいっぱい書いてあるやつみたいな」
「これの中のイメージ、あのー、モデル版GitHubみたいなイメージなんすけど」
「あ、合ってます、はい」
「うーん」
「で、なんかそのハギングフェイス上でモデルを動かしてみることもできるし、ローカルに落としたりもできるっていう感じだよね」
「うん」
「うん」
「うーん」

「で、このPhi、今はバージョンだと4が1番新しいんですけど」
「うん」
「これはですね、えー、結構SLMの代表格っぽい存在ですと」
「ふーん。パラメーター数どんなもんなんすか」
「はい。Phi4、パラメーター数14ビリオン。だから10、え、140億?」
「うーん」
「え、少ない?」
「まあでも少ないっすね」

「パラメーター数」
「うん、だってね、今強いやつとかってなんかもう多分超とか言ってるよね」
「超だと思います、はい」
「うん。そう考えると、まあ相対的には小さいっていう」
「うん」
「うーん」
「まあ十分意味分かんないぐらいパラメーター数多いっすけどね」
「そうだね」

「うん」
「まあ小さいとはいえ結構でかいですと。で、このへんはテキスト生成とか推論とか数学とかコードとか。まあ結構まあLLMが得意としてるようなやつに近いというか、えー、なんなら多分これ言い方によっては小型LLMとも呼ばれている」
「割と汎用的なんですか」
「汎用的だね、これは結構」
「へー」
「うん、だからこれはむしろ属性的にはLLMに近いかもしれない」
「うん、うん、うん」
「うーん」

「まあ、でもそのぐらいでもまともに動くものはあるでしょう」
「うん、うん」
「で、これが登場したときのね、論文がちょっとね、尖ってるんすよね」
「論文が尖っている」
「タイトルが尖ってる」
「タイトルがめちゃくちゃ挑戦的だったりするんですかね」
「あ、結構そう」
「喧嘩売ってる系の」

「いや、喧嘩なのかな。喧嘩とはちょっとなんか違う気もするんだけど。なんかAttentionIsAllYouNeedっていうAI界隈で有名な論文があるんですけど」
「はい」
「そっからもじって、TextBooksAreAllYouNeedっていう、1番最新出たときそういう論文のタイトル出してるんすよ」
「へー」
「うん」
「なんかブログみたいにタイトルちゃんと考えるんすね、なんかね、やっぱね」
「ああ、そうね、確かに」
「うん」

「だから論文結構タイトルこだわってそうだよね。いろんな」
「大学時代の論文のタイトルなんてそのまんま付けましたけどね、やったこと」
「まあ大学生の論文はそうじゃない?」
「まあね」
「うん」
「このへんの人たちのやつってなんか結構伝説的なやつだろうからね、多分」
「うん。まああとまあ、この自身の評価に直結するでしょうしね」
「まあそうね」

「うん」
「そう、で、TextBooksIsAllYouNeedって、なんでTextBooksって感じなんだと思う、だと思うんですけど」
「はい」
「これ、性能を上げるためにやったことがちょっと変わってて」
「うん」
「まあ変わってはいないか。LLMって学習するときに結構インターネット上にあるデータをバーって学習してるっていう噂じゃないですか」
「うん」
「なので」

「うん」
「えー、そのデータの内容について、整ってるものもあれば整ってないものもあるんすね」
「うん」
「なんですけど、このPhiを作るときは、あのー、めちゃくちゃ厳選されたデータば、ばかりを使って学習したみたいな」
「うん、うん」
「で、それをやったことによって、えー、小さいモデルでも精度を上げることができたっていう感じのモデルだったんすね、これ登場のとき」
「くっそ泥臭いっすね」
「そうそうそう。ん、でもあれかな」

「うん」
「えーと、多分LLMでそもそも学習データ作ってんじゃないかな」
「ああ、なるほどね」
「で、それできれいな学習データ作ってみたいな」
「うん」
「で、それを使って学習させることによって少ないパラメーターで高い精度を実現させたみたいな」
「なんかあれみたいだな。事前学習モデルだっけ」
「事前」

「DeepSeekみたいじゃないですか」
「DeepSeek、DeepSeek?」
「DeepSeek。はい。あれ?中国のやつ」
「はいはい」
「あれもGPUのスペック悪いのに、あのChatGPTとかと同じレベルのやつ、1/10のコストでできたみたいな、その質のいいデータばっか食わせたとか」
「うんうん」
「なんかそういう話ありますよね」
「あ、そうなんだ」

「うん。なんか上流したデータしか食わせてないみたいな。上流をなんかさらに上流してみたいなとか、なんか似てるなって思いました」
「ああ、上流は多分モデルの上流なのかな、多分」
「うんうんうん」
「データは多分上流って言わないから。パラメーター数を、えー、同じ性能が出る状態でパラメーター数減らすみたいなのを多分上流っていう」
「うーん。多分合成データじゃないかな」
「合成データ使ってたんすか」
「合成データと呼ばれるテクニックな気がする」
「そんなのがあるんだ」

「うーん」
「これあとで出てきます」
「先生、ちょっとふわっとしてる。はい」
「これあとで出てきます」
「なるほど」
「で、上流も別のテクニックとしてあります」
「うーん」
「うん。別じゃないか。ま、とりあえずでも1旦ちょっとモデル紹介してくとですね」

「うん。はい」
「まずそのPhi4ってのが結構、まあ小規模言語モデルといえばで出てくるやつ」
「うんうん。何年のやつですか、ちなみに」
「何年?」
「新しいんすか、Phi4」
「1番最初?」
「あ、いえいえ。Phi4も最近なんですか」
「えー、それは知らないな。Phi4はどうなんだ」

「なんかSLMはSLMでちゃんとなんか進化してるのか」
「うん」
「はたまたLLMでなんか都落ちしたやつがSLMに回ってるのか。どっちなんだろうと思って」
「あー、でも元々ね、小規模LLMと呼ばれてそうだったから都落ちの可能性はありそうだよな」
「はい」
「うーん」
「ちょっと時期は」
「2024年12月13」

「あー、そうなんだ」
「あー、結構前」
「結構前だね。これもしかしてもっと新しいのあるんじゃね?」
「あ、うん。その説もありますよね」
「うん。あ、でもPhi5出てないまだ」
「まあ、もう限界なのかな、そのパラメーター数でできること。というかコスパ良くないのか、そんなちっちゃいことで。ちまちまやろうとしてもビジネスにならないというか」
「うーん」
「うん、それはあるかもね」

「うん。へー、ありがとうございます。でもなんか、なんか空気が、空気感が」
「はい」
「分かりました」
「で、今言ったのがマイクロソフトから出てるPhi、えー、Phi4か。Phiか。で、あとは、えー、このへんは結構名前聞いたことあるかもしんないんですけど。えー、グエン?」
「えーと、ベトナム人にものすごくおもしろい字」
「あれでしょ、コンビニで働いてるグエンさんのを言ってるだろ、お前」
「はい」
「大体グエンだもんね、なんか」

「グエンさんめっちゃ多いってベトナム人の人が言ってました」
「そうだよね。だから韓国で言うキムさんぐらい多いんだよね、多分」
「いや、もうそれどころじゃなかったかもしれない」
「そうなんだ」
「うん」
「うん。でもさ、なんか将来的に日本人もほとんど佐藤になるみたいなの言われてるよね」
「えー、そうなの?」
「そうそうそうそうそう。佐藤さん多すぎて、50年後とかにほとんど佐藤になってるんじゃないかみたいな」

「えー、淘汰されるんだ」
「っていう可能性あるらしいですよ」
「いや、どういう原理なんだろう、これ」
「確率的に」
「ここを埋めまくるってこと、佐藤の」
「うん」
「そうなの」
「まあでも」

「さすがに」
「佐藤が勢力増すっていう説あるけどね」
「そうなんだ」
「うん」
「全然信じないわ」
「このグエンはね、あのー、結構精度高いっていうので、あのー、有名ですね」
「ああ、そうなんですね」
「そう、だからローカル、まあこれこそ本当にローカルLLMってね、ローカルLLMとして使われるイメージなんだけど」

「うん」
「うん。まあ今のLLMに近しい動きをしてくれるっていうイメージかな」
「何に対応してるんですか」
「えー、これはですね、まず多言語で強いっす。だから日本語とかも結構強い」
「うーん、強い」
「で、その上でコードとか数学とか推論みたいなところの精度が高いんで。えー、これも結構汎用寄りで使える」
「てかそもそも英語ベースなんすか、SLMは」
「多いんじゃないかな、英語ベース」

「うん。そんな気はしますよね」
「うん。でも無駄を削がないといけないから」
「うん」
「結構言語のあれとかあると思うよ」
「うんうん」
「うーん」
「昔ありましたね、英語で指示出したほうが精度いいみたいなやつとかね」
「あったね。確かに最近めっきりもう気にしなくなったよね」

「もうないっすからね」
「うん。あとはまあ、えー、これもGoogleから出てますが、Gemma」
「あ、聞いたことある」
「うん。Gemmaは最近4が出て。すごくね、みたいな」
「あ、そうなんだ」
「1月、2月ぐらいに確か出て。こいつは特徴としては画像とかが結構強いと」
「マルチモーダルなんですね」
「そう」

「画像的いけんだ、画像とか」
「画像いけるっぽいね」
「ふーん。何できんだろう」
「まあ読み取り?」
「結構渋そうだなあ」
「うーん」
「マジで最近なイメージだからな、画像でちゃんと。なんだっけ。えー、なんかいろいろ読み取りがLLMでできるようになったの。なんかでき、できたけど精度が微妙だったというか、日本語とかあんまうまく読んでくんなかったり」
「うん」

「してたんすよね、2年前は」
「あ、そうなんだ」
「うん。去年はなんか割とうまくやれましたけど」
「結構がっつり使い始めたの去年だからな。まあGemmaはGoogle系なんで、これもまあ精度高かったから結構話題になったかな、一時期」
「うーん」
「あのOpenCodeを使って、セットで使ってなんかうまく回すみたいなのが一瞬Xでちょっとバズったイメージある」
「へー、そうなんだ」
「そう。あとMistral」

「かっこいいな、名前」
「聞いたことある」
「これね、かっこいいランキング第1位っすね」
「音が?」
「音が」
「うんうん、だよね。だと思ったわ」
「これはなんか商用で使いやすい、あのライセンスっていうところが特徴っすね」
「うーん。逆にGemmaとかはなんかめんどくさいんですか」

「どうなんだ、これほかのライセンスあんまり調べてないな。むしろこれ、もしかしたらMistral、それしか特徴なかった説もあるよね」
「はい。HuggingFaceとかに出てるならね、なんか自由な気しますけどね」
「ね。あ、でもライセンス、ちょっとモデルも世代ごとに結構違うらしいな」
「うーん」
「ちなみにですね、使いやすそうです、結構。ほかも」
「あ、はいはいはいはい。良かったです、それは」
「まずPhiはMIT」
「ああ、はい。まあそっち右折」

「インスティチュート」
「なんだっけ。まあいいや」
「まあいいな」
「割と自由なやつね」
「そう。あとGuenは、えー、Apacheライセンス2.0」
「ああ、使いやすそう」
「で、Mistralも、えー、Apacheライセンス2.0」
「うん」

「で、Gemmaはなんか独自っぽい」
「ほう」
「Gemmaライセンスってなってるね。だから商用利用は条件付きでOKみたいな」
「へー。まあまあまあ、ほかのが使えるなら」
「うん」
「まあGemmaも別に使えるんじゃね?分かんねえけど。どうなんでしょうね」
「まあ利用再配布、派生物に関する条件や禁止用途があるので、だからまあ使い、使い道によってはちょっと使えないっていうケースがあるって感じっぽいね」
「うんうん」

「まあそのへんの制限あるのがGemmaですよと」
「うん」
「あと、えー、まあDeepSeek、R1Distill系ってのがあるんですけど、これも推論能力高いと」
「うん」
「だけど会話系が、なんか自然な対話をするならあんまりそこは強くないらしいね」
「なんかそのへんの強い弱いも」
「うん」
「SLMの中で強い弱いな気がしてて」

「うん」
「具体的にどんなもんか、なんか分かりづらいっすね」
「まあちょっとこれじゃあHuggingFace触ってみるとかありかもしんないっすね」
「うん」
「で、えっとさっきあの言語系でさ、なんだっけ、言語によって強い弱いみたいな話あったと思うんすけど。なんかその調べたときに日本語モデルに強い、なんか特定のモデルみたいなやつもあるんすよ。日本語に強いやつみたいな」
「はい」
「で、さらし菜ってやつが結構日本語に強いらしくて」
「そば?」

「日本製っぽい」
「そばだ」
「意味、どういう意味なんだろう、さらし菜って」
「分かんないけど、そばでしか聞いたことないね。さらし菜そばか、やぶそばかみたいな」
「えー、さらし菜はですね、そばのさらし菜はですね」
「はい」
「えー、純米大吟醸みたいな話で」
「うん」

「そばの実の中心の部分のみを挽いて真っ白な粉を使ったそばらしいです」
「へー」
「うーん」
「マジで大吟醸じゃん」
「学び、なんか賢くなったわ」
「すごいね」
「うん」
「やぶそばはなんなんだろうじゃあ」

「やぶそば?」
「適当に挽いてんのかな、外側まで」
「AIによる解説ですけど」
「うんうん」
「そばの実の甘皮、緑色の部分を挽き込んだ薄緑色の麺が特徴らしいです」
「あんまりそれも見たことないな」
「ちなみになんかよく見る砂場っていうのは」
「あ、砂場も見るわ」

「やぶ、さらし菜、砂場がなんか3つの3系統らしいんですけど」
「はいはいはい」
「うん。江戸そばの5、3系」
「うん」
「砂場は二八そば、甘めのつゆらしいです」
「あー、二八なんだ。大体高いとこ、あー、だからなのかな。なんかいい店、二八、意外と二八だなみたいなイメージあるんだよな」
「うん。まあとありってね、ボソボソするって言いますしね」
「そうそうそうそう」

「急なそばトークね。で、さらし菜っていうモデルがなんだって?」
「さらし菜は日本語に強いっていうので紹介されてたんで」
「はい」
「だからやっぱ言語ごとに強い弱いがやっぱ出てきそうだなってのはありますね、SLMだと」
「なんかどっかの大学か会社が作ったんかな」
「かな。なんかさらし菜以外にもね、結構種類あったよ」
「うん。まあちょいちょいありますからね、そのなんか日本製の言語モデル作るぞみたいなやつはね」
「うん」

「うーん」
「まあそのへんがね、でも代表的なあのモデルって感じっすね」
「うんうん」
「うん。で、あのさっきちょっと出てきてしまったんで、あのSLMを作るときの、あのー、じゃあどうやって小さくてちゃんと動くモデル作ってるのかっていう」
「あ、はい、はい」
「で、えー、その、その1テクニック、蒸留」
「ああ。よく聞く理科のやつは」
「うん」

「沸騰させて沸点の違いによってより純度の高いやつを取り出すやつですよね、蒸留ってね」
「あ、そうですね。あのー、沸騰させて、もう1回冷やして、水の部分だけ取り出すみたいな」
「うん」
「あと蒸留酒とかもそうやって作りますよね、なんか」
「そうなんですね」
「うん」
「まあですよね。ちょっと」
「博識」

「蒸留酒の蒸留、ちょっと用語分かってないけど」
「さすがに。さすがにそうじゃないですか、お金が」
「まあさすがにそうだと思う」
「うん。で、この蒸留は何してるかっていうと、えー、まずLLM」
「はい」
「を」
「温めます」
「温めます」

「ね」
「まあこれを先生としますと」
「はい」
「で、SLMを、まあ最終的に作りたいSLMを生徒としますと」
「はい」
「はい。で、そのときにその先生のモデルに、あ、先生のモデルにっていうか、まあLLMにたくさん問題を解かせるんすね」
「うん」
「で、そのときの、えっと、回答プロセスを、あのー、SLMに学ばせるっていう」

「うん」
「うん。で、これをやることによって小さいモデルでも大きいモデルに近い振る舞いっていうのをなんか一部再現できるっていう」
「うん」
「うん。で、これが蒸留のパターンですね」
「うん」
「だから、えーと、なんだ、まあ蒸留というか、なんか一部真似してるだけか」
「うん」
「うんうん」

「まあでもなんか」
「うん」
「よりエッセンスを抽出させようとしている。まあできてんのか分かんないけど」
「そうね。うーん、まあそういう推論の、まあちょっとある種正解、正解データに近いものがあるっていう状態で学習させてんのかな」
「うん」
「うん。っていうのでやるから、えーと、小さいモデルでも動きますが、まあ振る舞いを完全に全部再現できるわけではないので、それが一部再現になってしまうっていうイメージっすね」
「うんうん」
「うん。で、その2、量子化」

「わー、久々に聞いた。はい」
「量子化」
「量子化はね、えー、まあ重みをより少ないビット数で表現するっていうイメージ、あ、っていうことをするんすね」
「重みっていうのは何を表してますか」
「これめちゃ、重みはね、まあさっきのパラメーターだと思っていいっす、ざっくり」
「うん。重みがなんだ、数字が大きいとなんかどうなるみたいので言うと」
「で、えー、これね、あの最強の例え持ってきました」
「ありがとうございます」

「まず地球がありますと」
「はい」
「地球を量子化したものが地球儀です」
「量子化っていうんだ、あれ。量子化、も、模型みたいにすることを量子化って言ってます?」
「まあ小さく表現したみたいな感じかな」
「うん。なるほど」
「うん」
「なので」

「なんかほんとに重みってなんなのかっていうと、ニュー、ニューロンって思い浮かべます、う、思い浮かべれる?脳ってさ」
「神経の」
「点と線がバーってつながってますと、めっちゃ」
「はいはい」
「で、1個に何か刺激がパーンって入ると、ベベベベベベって伝播しますと」
「はい」
「伝わっていきますと」
「うん」

「そのへんのなんか1個の点が、俺これ伝えられたときに、こいつとこいつとこいつにこれを伝えるよみたいなのって重みで決まってるんよ、ざっくり言うと」
「へー、すごい」
「重みって言ってるのが、なんかそのものの重さっていうよりは、なんかこいつにはこのぐらい伝えるよっていう意味で重みと言っている」
「へー、責任感」
「責任感っていうか、まあタスクというか」
「うーん」
「まあ重み、重みというか」
「分かりました、はい」

「まあこんぐらい伝えるよの」
「イメージ、はい。オッケーです」
「強さね。で、その強さを1万2000、違うな、うーん、まあいいや、例えば1万2000っていうことにしてたとして」
「うん」
「5桁だとたくさんだから、じゃあ全重み、合ってるかな、なんか12ということにするというか」
「うんうんうん」
「うん。12ということにして表現を少し落として。でもまあ大体意味は合ってるよねみたいな。なんかほんとはね配列になってるんですよ、ほんとはね」
「うーん」

「だけど、まあ大体少ない桁数で表せるようにするっていうのがまあ量子化っすね」
「うんうんうん」
「手抜き?手抜きっていうか」
「うん」
「うん。手抜き?」
「なるほど、はいはい」
「だからなんか、そ、それこそイメージスケールダウンのなんかイメージだったんだよな。なんかでかい桁数をなんか比率揃えたままちっちゃくするみたいな」
「あ、そうそうそうそうそうそう」

「うんうん。で、それゆえになんか、うーん、まあ細かい表現は失われるけど、えー、ある程度その形維持してるみたいな」
「うん」
「で、例えばさっきあの地球儀っつったんですけど、え、あれって例えば、あー、カナダと日本の位置関係みたいなやつって多分実際の地球と比率、大きさは違うけど向きとかなんかほかとの距離感とか同じじゃないですか、多分」
「あー、なんとか図法的に」
「あのーね、モルワイデとメルカトルと」
「はい」
「ね、なんとかあったけど、まあでも地球儀どれでもねえだろ、多分」
「うん」

「あ、そうそう」
「そうか」
「地球儀はどれでもないっすね」
「地球儀は地球儀」
「あれが平面でできないからそのなんかいろいろできたイメージだけど」
「うん」
「まああれがまさに量子化のイメージかなと思ってます、僕の中では」
「ありがとうございます」

「うん」
「はい」
「はい。で、あとは合成データ。で、これがさっき、えー、DeepSeekのときになんかいろいろ出てきた、あのー、まあ高品質な学習データってまず集めるの大変だよねっていうところからLLM使って、えー、データを作り出して、それを使って、え、訓練をさせるみたいな」
「うん。これってLLMが作ったデータ、人間見てるんすかね?どうなんでしょうね?」
「うーん、まあ全部は無理じゃないかな」
「全部無理ですよね、絶対」
「うーん」
「いや、なんか僕がLLMじゃないんすけど、生成AI作ってたときに」

「うん」
「音声の学習データとか使ってやってたんですけど」
「うん」
「その学習データってあの東京大学の松尾研究室っていうあの超有名な研究室が無料で公開してるデータセット使ったんすけど」
「うんうんうん」
「本当に人間がやったんかいなっていう量と質と、あと協力者の数のデータが、まあやっぱあったりしてて」
「へー」
「AI界隈ってなんかそういう変態的なデータの準備っていうのをさぼらずやるっていうイメージがあったんで」

「うーん、すごいな」
「気になりました。すごいですよね」
「えー、どうなんだろうね、これ。チェック」
「まあなんかチェックも」
「いやー」
「まあでも優秀なAIがいれば」
「ランダムにチェックするか」
「うーん、なんかそのなんだ、LLMasajudgeみたいなのあるじゃないですか」

「あ、知らんっす」
「なんか」
「なんか想像すっすけど、なんすかそれ」
「テストデータをLLM使って、えーと、チェックするみたいな」
「うーん」
「うん。ただその精度確かめるためのジャッジ自体をLLMにやらせてしまうみたいな手法があって」
「うん」
「まあそれじゃないかなって気がするけどね、なんか」

「さすがに?」
「うーん」
「まあさすがにね」
「なんかさ、集中力切れた人間よりいい精度叩き出しそうじゃない、なんか」
「まあそれはそうかも」
「うーん。まあちょっと真、真相は謎ですけど、まあこういう合成データってのを使って学習するって、まあこの3つのパターンを使ってSLMってのはね、作られてるそうですね」
「うん」
「で、えーっと、これ実際に実務でじゃあどうやって使うのっていうか、どういうタスクに使うのっていう話なんですけど」

「はい」
「うん。えーと、これは推論本体をやらせるっていうよりは、結構分類とか要約とかフォーマットに沿ってるかとか個人情報入ってないかとか禁止情報ないかみたいなチェックとか」
「うんうん」
「まあそういう結構シンプルなタスクっていうのに、えー、使うことが多いです」
「なるほど」
「うーん」
「うん」
「なんかあれですね、このAIagentはこれこれをやるAIagentですって言って最初作り始めますけど、それって実際にどういう作業がいるんだっけみたいな分解を」

「うん」
「ちゃんとやって適切なとこにSLMを配置する必要があるんですね」
「ああ、そうそうそうそうそうそうそうそう。で、ちゃんとやったうえで、じゃあこの部分SLMでできるよねっつってそこに組み込んでくみたいな」
「うん」
「で、本丸はLLMにぶん投げるみたいな」
「うん」
「うん」
「とかあと、えー、多分これは正解のパターンみたいなのが結構分岐少ないケース、要は問い合わせ対応とかにも結構使えるっていうふうには言われてますね」

「ほう。なんかあれ?最初にあの番号を打たされるところぐらいはSLMにやらせようみたいなことを、なんかなんだっけな」
「えっと、あの、一応なんかその事例であったのだと、まあ予約変更とか」
「あー、それは確かに」
「うーん」
「とかあと、難しい問題来たときにエスカレーションするとか」
「ああ、はいはいはい」
「そういうなんか、まあこれも要は分類だけどね」
「うん」

「多分やることとしては」
「うんうん」
「うん。とかあと、まあ予約変更ってなると多分ツール用意してあげてそれを実行してみたいな感じになると思うけど」
「うん」
「まあそれぐらいのシンプルなものであればこれもSLMで十分なけ、ことが多いっていう」
「確かに」
「うん」
「だから意外とチャットボットとか作るとね、結構SLMでできること多いのかもしれないっすね、実は」

「そうっすね、なんかシンプルなやつはね」
「うん」
「うん」
「なんか元々LLMでもないやつで動いてたりしましたもんね、AIチャットボットってね」
「うんうん、確かに」
「うん」
「なんならね、条件分岐だけで動いてるAIチャットボットとかあ、ありましたからね、普通は」
「チャット形式なのにめちゃくちゃクローズドクエスチョンしか打てないみたいな」

「そうそうそうそう。全部選んで最終的にたどり着くみたいな」
「あ、そうそうそうそうそう」
「だなー、かな。まあていうので、えーと、まあそういう用途で使えるので、じゃあいざAIagent作るよってなったときどういうふうにするかっていうと」
「来た」
「ユーザーが入力しますと」
「うん」
「はい。じゃあなんか問い合わせ、問い合わせをする、え、UIagentですと。まあ予約変更ツールとかにするか。まあ予約管理とかとつながってて、えー、そこに質問できますみたいな」
「うんうんうん」

「そしたらまずユーザーの入力に対してSLMが問い合わせを分類しますと。で、例えば解約の場合だったら解約用のツールを呼び出したりとか、まあそういうのが必要になるんで、え、そういうツール選定ってのを次のSLMがやりますと」
「うん」
「で、その次に、えーっと、まあもし複雑な判断が必要みたいな条件分岐した場合だったら、えー、その判断はLLMに投げる。まあもしくは人にエスカレーションするケースもあると思うんですけど」
「うん」
「まあそういった難しい自分ではできないものっていうのをLLMに依頼しますと。で、最終的に出てきた出力チェックみたいなところはまたSLMで行って、で最終的な返答を返すみたいな形でこう複数のSLMとかを組み合わせて、えー、AIagentを作っていくっていうふうにして作ると、えー、コストとかスピードとかを重視したうえで、えー、体験のいいAIagentを作っていけるというらしいです」
「うーん、なるほどね。いや、AIagent作ってみたいな。やっぱりなんか実際作らんとそのへん分からんよな。で、運用してみてあとでなんか苦労とかありそう」
「あるだろうな。だってね、複数動くってなったらさ、え、じゃあなんかひ、精度微妙だったよねってなったときに、じゃあそれぞれのLLMって何をインプットにしてどんな返答したんだろうみたいな」
「うん」

「ことかもチェックしなきゃいけないだろうし。それを元にね、なんかじゃあ動き自己改善させたらいいだろうし」
「うん。で、入力されたプロンプトとか管理しといて」
「うん」
「なんだ、し、渡す、実はこういうふうなフローになってるの効率悪そうだから、ここのプロンプトこうやって変えたほうがいいよねみたいなところを分析できるかもしれないし」
「そうね」
「新しいAI出たときに今のやつと次のやつどっちがいいとか、なんか比較するための仕組みというか」
「うーん」
「なんかそういうのがいるのかもしんないし」

「LLMOps的な」
「あ、そうですね、LLMOpsですね」
「LLMOpsか」
「え、L、LMOpsじゃないですか」
「LLMOpsか」
「はい」
「うーん」
「なんかそのへんやっぱ作んないと分かんないんだよなってすごい思うんだよな」

「うーん、うんうん。作るってなってもどんななんかシステムというかのがいいっすかね、あんまなんか思いつかないっすね。作ってみたい気持ちあるんですけどね。なんかしかもやっぱ面接の受けはめっちゃ良さそう」
「あ、そうなんだ」
「就活してるんであれなんですけど、やっぱエージェント、うん、動い、いっぱい作ったりとか動かせるみたいなとか、募集でもやっぱエージェントを作れるみたいな人は結構すごい重宝されて、重宝されてるというか募集でき、できる歓迎、ん?できたらめっちゃいいスキル、歓迎スキルみたいな感じでやっぱ結構ありますね」
「書かれてんだもん」
「はい、ガンガンありますね」
「へー」
「受けは絶対にいい。作りたいなと思うんすけど、あんまアイディアが」
「最近そういう活動してないからなんか日本でどうなってるかあんま分かんないかも」

「うーん、分かんない」
「ね」
「ありそうですけどね」
「うん。なんか書かれてんのかな、実は今日本でも」
「うん、あると思う」
「うん」
「まあちょっと適当なこと言っちゃってるな、どうなんでしょうね。まあありそうですけどね」
「あ、そうだね、全然ありそう」

「なんかビジネスっていっぱいあるはずだから」
「うーん」
「AI開発してた人とかは一時前で、今はもうなんかエージェント作れる人みたいなのが流行りな感じはしてますね。まあこ、こ、カナダはですけど」
「あ、多分あんま変わんない気がするな」
「へー」
「ていうかAI作れる人求められてたのになー、ちょっと前まで」
「うーん。まあブレイン部分はもうね、結構強いところが強すぎて追いつけない感じでっちゃってるもんね」
「はい。であとLLMがなんでもできちすぎちゃうから」

「うーん」
「うんうんうん。もうなんかタスク特化のAI作んないんじゃないかな、どうなんでしょうね。聞かないけどね」
「だからもうAIエージェント作るみたいなところの領域しか残ってないよな、多分」
「うーん、そんな気。あ、まああとはAIをうまく使うじゃないですか」
「うわ、そこってどうなんだろうな、なんかどんどん簡単になりそうじゃない?」
「なんだろうなー、まあかん、いやどうなんでしょうね。結局人がボトルネックになるから」
「うん」
「そのあんまりリテラシーが高くない人にどう導入してくかみたいなのは一生残る気がしてます、僕は」

「うーん」
「結局Excelとかもうまく使えてなかったはずなんで」
「うーん、うんうん」
「そういうなんかチーム改善みたいなのはずっと残るんじゃないかなー」
「うーん」
「来年は分かりませんけど」
「確かに」
「まあAIエージェントの作り方、きく、き、作り方っていうか、まあ聞くと逆になんかやっぱ逆にっていうか汎用エンジ、へ、エージェントどうやって作ってんだろうなってなりますね」

「あ、ジェンスパークとかそういうこと?」
「とかマナスとか」
「ああ」
「どうなってんだろうなってなりますね。ちょっと紐解けないんですけど」
「確かに。すごいオーケストレーションしてんだろうな」
「うん。そうなんじゃないですかね。あんまり根本変わんない気しますけどね。ただ」
「分、分散してる」
「すごいものが動いている」

「あ、すごいもの、うーん」
「すごい量の」
「す、ただ、ただすごいものが動いてるっていうのは」
「アホだな。ちょっとアホすぎるな、今のは」
「なん、なんの分析もしてなさそうな発言になっちゃうけど」
「うん」
「そうね。まあでもちょっとそのへんはね、あのー、今読んでる本の中にAIエージェントのアーキテクチャみたいなのもあって」
「うん」

「そのへんとかもちょっと深まったらエピソードにしようかなと思ってるんで」
「何卒」
「ちょっとぜひ」
「マヌス、ちっちゃマヌス作れるぐらいの感じを目指していきましょう」
「あ、いいですね」
「はい。いや、マジで個人アプリに入れたいんだけど、課題がなさすぎる。AIエージェントで解決できる課題がなさすぎて、ちょっと入れれないんですけど、ちょっと早く課題作りたいです」
「うん、課題だな、確かに。こ、この前あの開発楽にするために作りたいのを言ったら、もう一気通貫でやってくれるやつ作りてえと思ったんすよ」
「うん」

「で、作っ、作ろうとなんかいろいろ考えてる途中に気づいちゃって」
「うん」
「で、これ俺デビンを作ろうとしてるだけで全然意味ねえと思って」
「うんうんうん」
「うーん。ちょっとそういう諦めもありましたね」
「分かる」
「あー、再発明してるだけみたいな」
「そうなんよな」

「もうできてるやんで」
「そうなんっすよ」
「まあまあまあ、コスト抑えて使えるようになるかもしれないっすからね、デビンを」
「いや、まあそうなー」
「まあまあでも、はい」
「絶対氷で落ちるけどね」
「そうよね」
「そうっすよね」

「あー」
「しかもアップデートもされないしね」
「そうなのよ。大変すぎる。作るのすげえ。まあというのでちょっと今日はそういったAIエージェントを作るときに、まあどっちかを使うっていうよりは結構ハイブリッドで使うことが多いと思うんですけど、LLMとSLM」
「うん」
「まあどういう特徴があって組み合わせていくといいですよっていうお話でございました」
「はい、ありがとうございます」
「頑張って作りたいと思います」
「作るの?」

「いや、はい。ちょっと面接就活としてやんないとなっていう」
「いいね」
「お気持ちです」
「お気持ち?」
「はい」
「お気持ちね」
「はい、というお気持ちで頑張ります」
「まあちょっと就職できたらまた教えてください」

「はい」
「それね」
「本当に」
「ほんとに」
「よし。長いんでもう締めようと思います」
「はい、締めましょう」
「はい。ということで、ひまじんプログラマーの週末エンジニアリングレッスンでは、皆様からの感想、ご質問、その他何かしらの意気込みを募集しております。SNS、Xのハッシュタグ、ひまじんプログラマーを付けて投稿していただくと、僕らがエゴサーチをしてそれを発見していいねを付けたりニヤニヤしたりするので、ぜひとも、えー、まあ僕らのね、配信の励みになったりするのでよろしくお願いします」
「お願いします」

「全然できてないですけど、エゴ刺します」
「はい。また、もし私たちに直接質問したい内容とか届けたい感想がある場合は、エピソードの概要欄にあるGoogleフォームからお送りいただくと、エピソードで取り上げたりとかもできますので、そちらもお気軽によろしくお願いします。さらに、オンラインSlackコミュニティ、ひまプロ談話室というものを運営しております。こちらでは、刺激を受けたいエンジニアとか、刺激中毒ですね。刺激中毒のエンジニアが集まって各々自己研鑽をしたりとか、何かたまにイベントがあって集まってワイワイしたりとか、そういったことをして高め合ってるコミュニティになってるので、こちらも興味ある方は番組の説明欄のところにあるGoogleフォームのほうから申し込んでいただくと、Thanksページ的なページで招待用のURLがぼろっと出てくるので、そちらから参加していただけると入ることができますので、こちらもよろしくお願いします」
「朝活してる人がいっぱいいるなっていう中、順平は多分夜にやってます」
「結構バラバラ」
「順平がちょうど日本時間の朝活時間帯で活動してます」
「そうっすね。はい。皆さんも一緒に黙々、黙活しましょう」
「黙活しましょう。またこの番組は各種ポッドキャストプラットフォームで配信しております。もし番組を聞いて参考になったという方がいらっしゃいましたら、プラットフォームのところから星を付けて評価していただけると、こちらも励みになりますので、ぜひともよろしくお願いいたします」
「励ます」

「お願いします」
「励ます」
「はい、それでは皆さん、また次回」
「バイバイ」
「バイバイ」
「日本のエンジニアは使うアプリが多すぎる。事実、ひまプロの使用アプリ平均数38.6個。レイキャストならアプリの即起動、過去のコピー履歴を引き出せる。ウィンドウのリサイズなど、これ1つで作業効率アップ。しかも料金無料。今すぐレイキャストで検索」