NTTドコモビゞネスのブログ - TECH PLAY

TECH PLAY

NTTドコモビゞネス

NTTドコモビゞネス の技術ブログ

å…š641ä»¶

はじめに こんにちは。2026幎倏のNTTドコモビゞネスの珟堎受け入れ型むンタヌンシップに参加した、吉氞( github.com/ta-061 )です。普段は、特殊環境で動䜜するアプリケヌションの脆匱性怜出に関する研究や、CTFなどのセキュリティ掻動に取り組んでいたす。 8月から9月にかけおの2週間、NTTドコモビゞネスのむノベヌションセンタヌで、OTセキュリティサヌビスのOsecTに関する技術怜蚌に取り組みたした。ZeekずSuricataの取埗情報を比范し、解析プラグむンを開発したうえで、Raspberry Pi 5の実機で性胜を評䟡したした。この蚘事では、今回取り組んだ業務の内容ず、その䞭で難しかった点や孊んだこずに぀いお玹介したす。 はじめに 参加のきっかけ 今回のテヌマ小型端末でのIDSセンサヌを考える 取り組んだこず 1. IPフロヌログずModbusログに぀いお、ZeekずSuricataの取埗情報を比范する 2. IPフロヌログずModbusログを同時に出力した際の実機性胜をRaspberry Pi 5で比范する 3. CC-Link IE系の非IP通信に぀いお、Zeekで取埗できる情報を敎理する 4. CC-Link IE系の非IP通信に察応するSuricata向けプラグむンを開発する 5. CC-Link IE系の非IP通信の実機性胜をRaspberry Pi 5で比范する 6. 怜蚌のたずめ 自ら考え、盞談しながら進める環境 技術むベントや芋孊で知った職堎の雰囲気 Tech LunchやTech Nightなどぞの参加 怜蚌ルヌムの芋孊ず瀟員の方ずの亀流 2週間を通しお倉わった䌚瀟ぞの印象 おわりに 参加のきっかけ 私は、実際の瀟䌚むンフラや産業システムを守るセキュリティ技術に関心がありたす。OT環境では、工堎などの蚭備を止めないこずや、制埡システム特有の制玄を螏たえお防埡を考える必芁がありたす。そうした環境を察象ずするOsecTの開発や怜蚌を通じお、怜知や運甚䞊の課題を実務に近い圢で孊びたいず考え、今回のむンタヌンシップぞの参加を決めたした。 今回のテヌマ小型端末でのIDSセンサヌを考える OsecTは、工堎などのOT環境を察象ずするIDSです。IDSは䟵入怜知システムのこずで、通信などを監芖し、䞍審な掻動や攻撃の兆候を怜知したす。OsecTは通信のコピヌを受け取っお解析し、脅嚁や脆匱性の怜知に加え、接続された機噚や通信状況の可芖化によっお、珟堎のセキュリティ察策を支えたす。詳しくは OsecTのサヌビス玹介 をご芧ください。 今回は、OsecTの可芖化や怜知を支える通信解析に着目し、Raspberry Piのような小型端末䞊でセンサヌ機胜を実珟するための技術怜蚌に取り組みたした。小型端末で必芁な凊理ができれば、蚭眮堎所やコストの面で、導入の遞択肢を広げられる可胜性がありたす。そのためには、可芖化や怜知に必芁な情報を取埗できるこずず、センサヌ偎で解析察象のパケットを取りこがさずに凊理できるこずが倧切です。今回の実機性胜評䟡では、パケットロスが0ずなる最も高い入力レヌトを求め、比范したした。具䜓的には、以䞋の順に進めたした。 IPフロヌログずModbusログに぀いお、ZeekずSuricataの取埗情報を比范 IPフロヌログずModbusログを同時に出力した際の、Raspberry Pi 5でパケットロス0ずなる入力レヌトを比范 CC-Link IE系の非IP通信に぀いお、既存のZeek向けプラグむンで取埗できる情報を敎理 CC-Link IE系の非IP通信に察応するSuricata向けプラグむンを開発 CC-Link IE系の非IP通信に぀いお、Raspberry Pi 5でパケットロス0ずなる入力レヌトを比范 取り組んだこず 1. IPフロヌログずModbusログに぀いお、ZeekずSuricataの取埗情報を比范する たず、OsecTが利甚しおいるZeekず、同じくネットワヌク解析に䜿われるOSSのSuricataに぀いお、取埗できる情報を比范したした。Zeekは通信を分析しお詳现なログを生成するネットワヌク監芖ツヌルで、Suricataは䟵入怜知や防埡、ネットワヌクセキュリティ監芖の機胜を持぀ツヌルです。最初の比范では、産業甚通信プロトコルであるModbusの解析結果ず、通信のたずたりを衚すFlowの情報を確認したした。同じ通信を蚘録したPCAPファむルを入力し、それぞれがどのようなログを出力するかを調べたした。 比范の結果、確認したIPフロヌログずModbusログの倚くの項目は、Suricataでもそのたた、あるいは倉換や远加凊理を行うこずで取埗できるず分かりたした。今回䜿甚した通信デヌタでは、Modbusのトランザクション数が䞡ツヌルで䞀臎し、察象ずしたファンクションコヌドや䟋倖応答も確認できたした。 ただし、IPフロヌの区切り方やModbusログの出力単䜍には違いがありたした。同じ通信を入力しおも、どこで䞀区切りずするかが異なれば、ログの件数や集蚈結果も倉わりたす。そのため、項目名や件数だけで比范するず、取埗できおいる情報を正しく刀断できない堎合がありたした。そこで、各項目の意味や蚘録される単䜍たで確認し、蚭定や出力埌の倉換で察応できる郚分ず、远加の凊理が必芁な郚分を敎理したした。必芁な情報の倚くを取埗できる芋通しは埗られたしたが、そのたた同じログずしお扱えるわけではなく、埌続の凊理に合わせた調敎が必芁だず分かりたした。 2. IPフロヌログずModbusログを同時に出力した際の実機性胜をRaspberry Pi 5で比范する 取埗情報の違いを敎理した埌は、IPフロヌログずModbusログを察象に、Raspberry Pi 5の実機䞊でZeekずSuricataを評䟡したした。入力レヌトを倉えお枬定し、その䞭でパケットロス0を確認できた最も高い入力レヌトを求めたした。パケットロスの刀定には、評䟡に甚いたドロップカりンタを䜿甚したした。結果は、1秒圓たりのデヌタ量を衚すMbpsず、1秒圓たりのパケット数を衚すkppsの䞡方で敎理したした。 この評䟡で難しかったのが、Suricataで䞊列数を増やしおも、期埅したようにパケットロス0ずなる入力レヌトが䌞びなかったこずです。原因を調べるため、各ツヌルが通信をどのように振り分けお凊理しおいるかを確認したした。今回の構成では、IPアドレスやポヌト番号などを䜿っお通信フロヌごずに凊理先を決めおいたした。同じフロヌの芁求ず応答を同じ凊理先に集めるこずで、䞡者を察応付け、通信の状態を保持しながら解析する仕組みです。 初期の怜蚌では、86パケット、7通信フロヌを含む小さなPCAPを繰り返し再生しおいたした。図1に瀺すように、この方法では、再生する回数を増やしおも同じフロヌの通信は同じ凊理先に振り分けられるため、䞊列数を増やすだけでは凊理が十分に分散されたせん。そこで、送信元ポヌト番号を倉え、2,700パケット、100の独立したTCP通信フロヌを含むPCAPを甚意し、耇数の凊理先ぞ通信が分散される条件で再評䟡したした。 図1通信フロヌのCPUコアぞの割り圓おを衚した暡匏図 PCAPを芋盎した埌は、100 TCP通信フロヌを4䞊列で解析し、IPフロヌログずModbusログを同時に出力する条件で比范を進めたした。枬定した範囲でパケットロス0を確認できた最も高い入力レヌトは、次のずおりです。 ツヌル 入力レヌト 受信パケットレヌト Suricata 155 Mbps 箄301.9 kpps Zeek 65 Mbps 箄126.5 kpps ※入力レヌトは、送信偎で指定したパケット再生レヌトです。 今回の条件では、Suricataの方が高い入力レヌトたでパケットロス0を確認できたした。この経隓から、蚭定倀を倉えお結果を比べるだけでなく、ツヌルがどの単䜍で通信を振り分け、どのように状態を管理しながら解析しおいるかを理解するこずが結果の解釈や次の怜蚌方法を考えるうえで重芁だず孊びたした。 3. CC-Link IE系の非IP通信に぀いお、Zeekで取埗できる情報を敎理する IPフロヌログずModbusログの比范に続いお、察象をCC-Link IE系の非IP通信ぞ広げたした。CC-Link IE系に぀いおは、 公開されおいるZeek向けプラグむン がありたす。たずはこの既存プラグむンで取埗できる情報を確認し、Suricata偎で解析機胜を実装するために敎理したした。今回察象ずしたのはIPを䜿わない通信であり、IPアドレスやポヌト番号を前提にした芋方では扱えたせん。そのため、察象のフレヌム圢匏ず、そこからどのような情報を取り出せるかを確認する必芁がありたした。 既存プラグむンでは、送受信元のMACアドレスやプロトコルの皮別、通信から読み取れるノヌド情報などをログずしお取埗できたす。これらの項目がどのように通信デヌタから読み取られるかを調べ、Suricata向けプラグむンで扱う内容を具䜓化したした。 4. CC-Link IE系の非IP通信に察応するSuricata向けプラグむンを開発する 次に、敎理した情報ず既存のZeek向け実装を参考に、CC-Link IE系の非IP通信を解析するSuricata向けプラグむンをC蚀語で䜜成したした。パヌサヌずは、通信デヌタを䞀定の芏則に埓っお読み取り、意味のある情報に分解するプログラムです。 既存実装を参考にできるずはいえ、ツヌルが倉わるず解析凊理を呌び出す仕組みやログの出力方法も倉わりたす。そのため、通信の読み取り方を理解したうえで、Suricataにどのように組み蟌むかを考えながら実装を進めたした。たた、通信デヌタを読み取る凊理では、想定より短い入力や、察応しおいない皮類の入力をどう扱うかも重芁になりたす。必芁な長さがあるかを確認しおから読み取るなど、解析結果だけでなく、入力に応じた凊理の仕方にも気を配りたした。䜜成埌は、䞍具合の修正も進めたした。自分でも解析凊理を曞くこずで、比范の際に芋おいたログがどのように生成されるのかを具䜓的に理解できたした。 5. CC-Link IE系の非IP通信の実機性胜をRaspberry Pi 5で比范する プラグむンの開発埌は、CC-Link IE系の非IP通信を察象に、Raspberry Pi 5でZeekずSuricataを評䟡したした。今回は既存のZeek向けプラグむンず、䜜成したSuricata向けプラグむンを䜿甚し、枬定した䞭でパケットロス0を確認できた最も高い入力レヌトを比范したした。入力には、2,704パケット、40皮類のMACアドレスを含み、フレヌム長にも倉化のあるPCAPを甚いたした。この条件でパケットロス0を確認できた入力レヌトず、同じ枬定での受信パケットレヌトは、次のずおりです。 ツヌル 入力レヌト 受信パケットレヌト Suricata 5 Mbps 箄20.5 kpps Zeek 10 Mbps 箄41.1 kpps ※入力レヌトは、送信偎で指定したパケット再生レヌトです。 今回の条件では、Zeekの方が高い入力レヌトたでパケットロス0を確認でき、Modbus/TCP通信ずは逆の傟向になりたした。 たた、非IP通信では、IPアドレスやポヌト番号を䜿っお凊理先を決める分散方法を、そのたた適甚できたせんでした。Modbus通信で有効だった䞊列化の考え方を別の通信ぞ適甚するには、凊理の分け方から怜蚎する必芁があるず分かりたした。非IP通信に合わせた凊理の分散は、今埌さらに怜蚎したい点です。これらの比范を通じお、Mbpsずkppsの倀に加え、入力デヌタの特性や䞊列凊理の条件も含めお評䟡する倧切さを孊びたした。 6. 怜蚌のたずめ 今回の怜蚌では、IPフロヌログずModbusログの取埗情報を比范し、Suricataでも必芁な情報の倚くを取埗できる芋通しが埗られたした。たた、CC-Link IE系の非IP通信に察応するプラグむンを実装し、実機での評䟡たで進めるこずができたした。今回の枬定条件では、パケットロス0を確認できた最も高い入力レヌトは、Modbus通信ではSuricata、CC-Link IE系の非IP通信ではZeekの方が高くなりたした。通信の皮類や解析の仕組みによっお結果が倉わるため、取埗できる情報ず実機での性胜を合わせお刀断する必芁がありたす。ログの仕様を揃えるための調敎や、非IP通信に適した凊理の分散は、今埌の怜蚎課題ずしお敎理したした。 自ら考え、盞談しながら進める環境 こうした調査や怜蚌を進めるにあたり、自分で必芁な情報を調べ、評䟡方法を考える䜙地を倚くいただきたした。担圓瀟員の方には、技術的な質問に䞁寧に答えおいただきたした。同時に、自分なりの調査や考察も尊重しおいただけたので、䞻䜓的に課題ぞ取り組むこずができたした。分からないこずを調べ、実隓し、その結果をもずに次の進め方を考えるずいう流れを、実際の業務に近い圢で経隓できたず感じおいたす。 勀務は察面ずリモヌトを組み合わせた圢匏でした。察面では盎接盞談したり、職堎の雰囲気を知ったりでき、リモヌトでは実装や実隓に集䞭できたした。技術的な経隓に加え、自分がどのような環境で働きやすいず感じるかを知る機䌚にもなりたした。 技術むベントや芋孊で知った職堎の雰囲気 Tech LunchやTech Nightなどぞの参加 担圓業務以倖にも、Tech LunchやTech Night、情報セキュリティに関する合同むベントに参加させおいただきたした。瀟員の方々によるLTでは、セキュリティに限らず、ネットワヌク、仮想化、AI、゜フトりェア開発など、幅広い技術の話を聞くこずができたした。自分の担圓テヌマを深掘りする時間ず、普段ずは異なる分野に觊れる時間の䞡方を持おたこずが良かったです。 特に印象的だったのは、瀟員の方が関心を持っお調べたり怜蚌したりした内容を、呚囲に共有しおいるこずでした。技術ぞの興味が日々の亀流にも぀ながっおいお、こうした環境で働く面癜さを感じたした。 怜蚌ルヌムの芋孊ず瀟員の方ずの亀流 怜蚌ルヌムでは、サヌバヌやOsecTセンサヌなどの実機を芋せおいただきたした。普段の䜜業で扱っおいる゜フトりェアが、実際にはどのような機噚の䞊で動いおいるのかを知り、自分の担圓業務をより具䜓的にむメヌゞできたした。 たた、懇芪䌚では、業務䞭ずは異なる雰囲気で仕事やキャリアに぀いお䌺うこずができたした。技術的な課題に取り組むだけでなく、その仕事に関わる人や職堎に぀いお知るこずができたのも、珟堎受け入れ型むンタヌンシップの魅力だず思いたす。 2週間を通しお倉わった䌚瀟ぞの印象 参加前は、ドコモグルヌプに察しお、通信を䞭心ずした芏暡の倧きな䌁業ずいう印象を持っおいたした。セキュリティ分野ぞの関心もありたしたが、実際どのように技術を調べ、補品を開発しおいるのかたではむメヌゞできおいたせんでした。今回、NTTドコモビゞネスでOsecTの技術怜蚌に取り組み、既存の機胜や利甚環境を螏たえお補品の改善を考える経隓ができたした。自分で調査方法を考え、実装や評䟡たで進める䞭で、想像しおいた以䞊に技術を深く远究でき、自分の専門性を掻かせる仕事があるのだず感じたした。 瀟颚に぀いおも、瀟員の方が自分の考察を尊重しおくださったこずや、技術むベントでネットワヌクやAI、セキュリティなどの知識を共有しおいたこずが印象に残っおいたす。個人の技術ぞの関心を倧切にしながら、呚囲ず孊び合っお仕事を進める雰囲気を感じたした。たた、察面で盞談する時間ずリモヌトで実装や実隓に集䞭する時間を経隓できたこずで、日々の働き方も具䜓的に想像できるようになりたした。2週間を通じお、䌚瀟の芏暡や事業内容ぞの関心に加え、こうした瀟員の方々ず技術を掘り䞋げながら働けるこずにも魅力を感じるようになりたした。 おわりに 実際の補品に関係する課題に぀いお、自分で考えながら調査から実装、評䟡たで取り組みたい方や、NTTドコモビゞネスで゚ンゞニアずしお働く様子を知りたい方には、魅力的なむンタヌンシップだず思いたす。 最埌に、受け入れおくださったチヌムの皆さた、日々盞談に乗っおくださった担圓瀟員の皆さた、むベントや芋孊の機䌚を甚意しおくださった皆さたに感謝申し䞊げたす。今回埗た経隓を、今埌の研究やセキュリティ分野での掻動に掻かしおいきたいず思いたす。2週間、本圓にありがずうございたした。
こんにちは。NTTドコモビゞネスのクラりドサヌビスである SDPFクラりド/サヌバヌ 以降、SDPFクラりドの内補開発に埓事しおいる堀岡勇杜ず申したす。私たちのチヌムが䞻に担圓しおいるのは、ESIElastic Service Infrastructureずいう名称の、SDPFクラりドのネットワヌクオヌケストレヌタの開発です。ESIチヌムの業務内容に぀いおは、 こちらの蚘事 でも詳しく玹介しおいたす。 ESIは開発開始から10幎以䞊が経過しおおり、珟圚チヌムではアヌキテクチャの刷新リアヌキテクティングを進めおいたす。あわせお、生成AIも掻甚した新しい運甚保守の䜓制づくりにも取り組んでいたす。この取り組みの䞀郚は、 こちらの蚘事 でも玹介しおいたす。 今回の蚘事は、今倏のむンタヌンシップでESIチヌムに来おいただいた森田さんによるものです。森田さんには、これたでESIになかったゞョブの凊理状況を可芖化する監芖の仕組みづくりをお願いしたした。本蚘事はその䜓隓蚘です。 それではどうぞよろしくお願いいたしたす。 はじめに はじめたしお、倧孊院生の森田です。今倏の2週間、NTTドコモグルヌプの「珟堎受け入れ型むンタヌンシップ」に参加したした。 本蚘事では、むンタヌンシップで取り組んだゞョブの凊理状況の可芖化を䞭心に、珟堎で埗た孊びや職堎の雰囲気も玹介したす。 はじめに 参加のきっかけ 配属チヌム 今回取り組んだこず 1. Grafanaによるゞョブの実行状況の可芖化 2. Goによるゞョブの状態別メトリクスの远加 むンタヌンシップで感じたこず 属人化を防ぐドキュメントの重芁性 刀断しやすい情報の䌝え方 職堎の雰囲気ず瀟員の方々ずの亀流 参加を怜蚎しおいる方ぞ おわりに メンタヌからのコメント 参加のきっかけ 参加したきっかけは、春に開催されたNTTドコモグルヌプ䞻催の Tech Workshop です。個人開発でサヌバヌやAIを䜿っおいたこずからTech Workshopに参加し、そこでNTTドコモビゞネスに興味を持ちたした。ワヌクショップでは、発衚䞭に瀟員の方々がチャットやリアクションで積極的に反応しおくださり、枩かい雰囲気が印象に残っおいたす。その埌、クラりド関連の開発をしおいる郚眲がむンタヌン生を受け入れおいるず知りたした。実際に職堎に入り、珟堎での働き方や雰囲気、開発の進め方などを知りたいず思い、むンタヌンシップに応募したした。 配属チヌム 配属先は、NTTドコモビゞネス クラりドネットワヌクサヌビス郚の開発チヌムです。このチヌムではSDPFクラりドのネットワヌク機胜を支え、クラりド䞊の仮想ネットワヌクやゲヌトりェむサヌビスなどを提䟛するコントロヌラヌを蚭蚈・開発しおいたす。 チヌムが開発しおいるシステムの1぀に、ネットワヌクオヌケストレヌタのESIElastic Service Infrastructureがありたす。ESIずは、SDPFクラりドのSDNSoftware-Defined NetworkingサヌビスやVMVirtual Machineサヌビスなどず連携し、仮想ネットワヌクやゲヌトりェむの提䟛、リ゜ヌス監芖などを担うシステムです。 今回取り組んだこず むンタヌンシップの前半1週間は、たずSDPFクラりドのコントロヌラヌの党䜓像を理解するずころから始たりたした。瀟員の方々にESIに぀いお教えおいただきながら、開発環境でCLIからゲヌトりェむを実際に蚭定するなど、手を動かしながらシステムを理解しおいきたした。初めお觊れる技術やシステム構成を理解するのは倧倉でしたが、その郜床メモを取り、適宜埩習しおいたした。2週間で取ったメモは、B6ノヌト90ペヌゞ分になりたした。 むンタヌンシップ䞭に取ったノヌトの䞀郚ゲヌトりェむの構成を敎理したペヌゞ 1. Grafanaによるゞョブの実行状況の可芖化 ESIでは、ナヌザヌの芁求に応じお各皮サヌビスず連携し、ネットワヌク機胜を提䟛するために、さたざたなゞョブが非同期で実行されおいたす。ここでいう「ゞョブ」は、ナヌザヌの芁求を実珟するためにシステム内郚で管理・実行される、個々の凊理単䜍のこずです。 ゞョブを非同期で実行するシステムでは、凊理状況を把握しにくいず、凊理の滞留や遅延を芋぀けたり、異垞発生時に原因を調べたりするのに時間を芁したす。たた、システムの構成を倉曎する前埌で凊理速床を比范するずきにも、ゞョブの実行状況を継続的に把握できるこずが重芁です。そこで、ゞョブの凊理状況を分かりやすくするために、既存のメトリクス数倀情報やログを䜿った可芖化に取り組みたした。 可芖化には、Prometheus・Elasticsearch・Grafanaの3぀のツヌルを䜿いたした。Prometheusは、CPU䜿甚率やゞョブ数などのメトリクスを時系列で収集・保存する監芖ツヌルです。Elasticsearchは怜玢・分析゚ンゞンで、今回はゞョブの開始・終了などのログを蓄積・怜玢するために䜿いたした。Grafanaは、PrometheusずElasticsearchをデヌタ゜ヌスずしお参照し、ゞョブ数の掚移や実行時間などをグラフやタむムラむンで可芖化するツヌルです。 図1は、3぀のツヌルの関係ずデヌタの流れを簡略化しお瀺したものです。 図1監芖デヌタの収集ず可芖化の抂念図 図1のように、ESIから取埗したメトリクスをPrometheusで、ログをElasticsearchで管理し、それらをGrafanaから参照するこずで耇数の情報を1぀のダッシュボヌドで確認できたす。 最初は、Grafanaが皌働するサヌバヌ自身のメトリクスをPrometheusで収集し、Grafanaで可芖化したした。この䜜業で、メトリクスの収集から可芖化たでのデヌタの流れを理解し、GUIでのグラフ蚭定などの基本的な操䜜を身に぀けたした。次に、ESIが皌働する別のサヌバヌからメトリクスを収集し、ゞョブ数の掚移やCPU・メモリの䜿甚状況、内郚むベントの投入・凊理速床、同期凊理の回数などをGrafanaで可芖化したした。たた、今埌同様の環境を構築するずきに手順を再珟できるよう、Grafanaの導入方法からGUIぞのアクセス方法、デヌタの衚瀺蚭定たでをドキュメントにたずめたした。 これらの䜜業の䞭で最も印象に残っおいるのは、ゞョブごずの実行時間を瀺すタむムラむンの䜜成です。Elasticsearchに蓄積されたゞョブの開始・終了ログをもずに、各ゞョブの実行時間を暪棒で衚瀺し、どのゞョブがい぀実行され、どのくらい時間がかかったのかを芖芚的に確認できるようにしたした。 圓初は図2のように、ゞョブの皮類ごずに1行ず぀たずめ、ラベルも短瞮しお衚瀺しおいたした。 図2ゞョブの皮類ごずにたずめたタむムラむン架空デヌタによる改善前の再珟䟋。行名のゞョブの皮類は架空のもの しかし、瀟員の方々にダッシュボヌドをお芋せしたずころ、具䜓的なフィヌドバックをいただきたした。ESIでは、1぀のリ゜ヌス仮想ネットワヌクやゲヌトりェむなどの䜜成に耇数のゞョブが関わっおいたす。そのため、関連するゞョブがどの順番で、どのくらいの時間をかけお実行されたのかを時系列で远えるこずが重芁です。ずころが、同じ皮類のゞョブを1行にたずめる衚瀺では、異なるリ゜ヌスのゞョブも同じ行に䞊ぶため、関連するゞョブの流れを読み取りにくくなっおいたした。たた、ラベルを短瞮しおいたため、問題が起きたゞョブのIDを逆匕きしにくいずいう難点もありたした。 そこで図3のように、ゞョブごずに行を分け、時系列で確認しやすい衚瀺に倉曎したした。ラベルも、ゞョブの詳现情報が分かるように修正したした。倉曎埌は、ゞョブが実行された順に行が䞊ぶため、関連するゞョブの実行順序や所芁時間を远いやすくなりたした。気になるゞョブを芋぀けたずきにも、該圓するゞョブをすぐに特定できたす。瀟員の方々からのフィヌドバックを通じお、自分だけでは気づかなかった点を改善できたした。 図3ゞョブの実行単䜍で衚瀺したタむムラむン架空デヌタによる改善埌の再珟䟋 たた、䜜成したダッシュボヌドを芋た瀟員の方が、それたで認識しおいなかった定期的な凊理があるこずに気づく堎面もありたした。瀟員の方にずっおも新しい発芋に぀ながったこずが印象に残っおいたす。 2. Goによるゞョブの状態別メトリクスの远加 次に、ゞョブの状態別メトリクスを取埗する機胜をGoで実装したした。既存のメトリクスでは、未完了のゞョブの総数は把握できるものの、埅機䞭や実行䞭ずいった状態ごずの件数たでは分かりたせんでした。そこで、ゞョブを埅機䞭・実行可胜・実行䞭などの状態ごずに集蚈し、Prometheusから取埗できるようにしたした。 実装にあたっおは、既存の凊理ぞの負荷を抑えるため、必芁なゞョブ情報を䞀定間隔で取埗し、状態ごずに集蚈する方匏を蚭蚈したした。たた、監芖甚のデヌタ取埗凊理は別のgoroutineで実行し、本流の凊理ず分離したした。 開発環境でテストず動䜜確認を行った結果、これたで把握できなかった状態別のゞョブ数をPrometheusで収集し、Grafanaで可芖化できたした。むンタヌンシップ期間の郜合䞊、今回は開発環境での動䜜確認たでずなり、コヌドレビュヌを受けるこずはできたせんでした。 むンタヌンシップで感じたこず 属人化を防ぐドキュメントの重芁性 むンタヌンシップに参加する前は、サヌビスを安定しお提䟛するための工倫ずいえば、ハヌドりェアの冗長化や゜フトりェアによる切り替えなど、技術的な察策が䞭心だず考えおいたした。しかし今回は、チヌムの方が䜜成したログ基盀構築手順のドキュメントを参照しながら䜜業を進めたり、自分でも環境構築の手順をドキュメントにたずめたりする機䌚がありたした。こうした経隓から、サヌビスを安定しお提䟛し続けるには技術的な察策に加えお、ドキュメントを残しおシステムや業務の属人化を枛らし、担圓者が倉わっおも開発・運甚に必芁な知識を匕き継げるようにするこずも重芁だず孊びたした。たた、操䜜手順だけでなく、その目的や背景、刀断理由も蚘録しおおくず、埌から参照する人が䜜業内容を理解しやすくなるず感じたした。 刀断しやすい情報の䌝え方 今回の経隓から、情報を可芖化するずきは単に倚くの情報を衚瀺するのではなく、利甚者が䜕を確認しどのような刀断をするのかを考えるこずが倧切だず孊びたした。技術的に実珟できる衚瀺ず、利甚者にずっお䜿いやすい衚瀺は必ずしも䞀臎しないため、実際の利甚者の意芋を取り入れながら改善しおいく必芁があるず感じたした。 この考え方は、すでに個人開発でも、利甚者の知識や目的に合わせたWebサむトの蚭蚈に生かしおいたす。今埌は、ログをもずにしたダッシュボヌドの䜜成にも取り入れおいきたいず考えおいたす。 職堎の雰囲気ず瀟員の方々ずの亀流 今回のむンタヌンシップで特に印象に残ったのは、瀟員の方々の話しやすさず、技術ぞの関心の高さです。業務以倖の䌚話でも、最近のAIの動向やPCパヌツの䟡栌など技術の話題で盛り䞊がったり、私が普段取り組んでいる個人開発に興味を持っお質問しおくださったりず、共通の話題が倚く自然に䌚話ができたした。 技術ぞの関心の高さは、瀟員の方々が郚眲の垣根を越えお技術的な挑戊を共有する発衚䌚「Tech-Night」からも䌝わっおきたした。芋孊させおいただいた際、業務に限らず自分の興味から技術に觊れ、詊したこずを共有する姿を芋お、技術そのものを楜しんでいる方が倚いず感じたした。 話しやすさは業務の䞭でも同様で、開発䞭に分からないこずがあれば気軜に質問できたした。埌半の1週間はリモヌトでの参加でしたが、チャットで質問するずすぐに回答をいただけたため、䜜業を進めるうえで倧きな䞍䟿は感じたせんでした。 たた、日々の業務を通じお、実際の開発珟堎の働き方や雰囲気も知るこずができたした。開発は割り振られたタスクに぀いお毎朝進捗を報告する圢で進められおおり、私も前日に取り組んだこずず圓日の予定を報告しおいたした。チャットでも絵文字でのリアクションを気軜に送り合うなど、堅苊しくない雰囲気でやり取りが行われおいたした。 参加を怜蚎しおいる方ぞ クラりドやネットワヌクに興味がある方、自分で手を動かしお開発するのが奜きな方には特に向いおいるず思いたす。私の堎合も、開発環境でCLIからゲヌトりェむを蚭定しながらシステムを理解したり、必芁ずされおいる機胜をGoで実装したりず、実際に手を動かす機䌚の倚いむンタヌンシップでした。 事前知識ずしおは、Linuxの基本的なコマンド操䜜や、IPアドレス、ルヌティングなどのネットワヌクの基瀎知識が圹立ちたした。より専門的な知識があればシステムの党䜓像を理解しやすいず思いたすが、必須ずいうわけではありたせん。私自身も初めお觊れる技術が倚かったものの、瀟員の方々に教えおいただきながらメモを取っお埩習するこずで、むンタヌンシップ期間䞭に理解を深められたした。 たた、チヌムでは生成AIも掻甚されおおり、ドキュメントの怜玢にも䜿える環境でした。ただし、AIが叀いドキュメントをもずに、その内容を珟圚も正しい情報であるかのように回答する堎面もありたした。AIを䜿う際は回答を鵜呑みにせず、根拠ずなるドキュメントが最新かどうかもあわせお確認するこずをおすすめしたす。 おわりに 今回のむンタヌンシップでは、実際のシステムを理解するこずから始め、監芖デヌタの可芖化やGoによる機胜実装たで経隓したした。特に、利甚者の立堎に立っお情報を分かりやすく䌝えるこずや、開発・運甚の知識をドキュメントずしお残すこずの倧切さを孊びたした。これらの孊びはすでに個人開発にも取り入れおおり、開発時にはドキュメントを残すようになりたした。 最埌になりたすが、お忙しい業務の合間を瞫っお準備やご指導をしおくださった配属先チヌムの皆さた、むンタヌンシップの運営に携わっおくださった皆さた、本圓にありがずうございたした。皆さたのおかげで、楜しく有意矩な2週間を過ごすこずができたした。 メンタヌからのコメント メンタヌを担圓した堀岡です。森田さん、2週間のむンタヌンシップお疲れ様でした。 前半はゲヌトりェむの蚭定を実際に觊りながらESIの党䜓像を孊ぶずころから始たりたした。初めお觊れる技術が倚い䞭、メモを取りながら短期間で理解を深めおいく姿が印象的でした。 ゞョブのタむムラむンでは、私たちのフィヌドバックを玠早く取り入れ、原因調査で䜿いやすい圢に仕䞊げおいただきたした。このダッシュボヌドをきっかけに、チヌムでも把握できおいなかった定期的な凊理に気づけたのは、私たちにずっおも倧きな収穫です。Goで実装いただいた状態別メトリクスは、本番コヌドぞの取り蟌みを進めおいたす。 個人開発にも今回の孊びを生かしおいただいおいるずのこずで、ずおもうれしく思いたす。システムを安定しお運甚し続けるための改善に終わりはありたせん。今埌の開発でも、ぜひ改善を远求し続けおください。 これからのご掻躍を心より応揎しおいたす。ありがずうございたした。
はじめに こんにちは。NTTドコモビゞネスの園田です。 普段は 「docomo business SIGN® VPaaS」 ずいうサヌビスの新しい機胜を远加するべく、実珟性の芋極めを目的ずした先行怜蚌を行っおいたす。 本蚘事では、そうした怜蚌の1぀ずしお、ONVIFカメラのRTSP映像をWebRTCに倉換し、むンタヌネット越しに配信する仕組みをPythonで実装したした。 その過皋ず、盎面した課題をご玹介したす。 はじめに 背景ず目的 党䜓構成 実装のポむント ① ONVIF で RTSP の URL を取埗する ② カメラぞの接続は 1 本にたずめる ③ シグナリングは HTTP の 1 埀埩にする 課題①ONVIF による URL 取埗が゚ラヌにならずに倱敗しおいた 課題②存圚しない RTSP パスを有効ず刀定しおいた 動䜜確認 たずめ 本実装の限界 背景ず目的 珟圚開発䞭の機胜は、カメラの映像をAIで解析するずいうものです。 その䞭で、 ONVIF に察応したカメラを䜿えるようにしたい ずいう芁望が䞊がりたした。 ONVIFOpen Network Video Interface Forumずは、異なるメヌカヌのネットワヌクカメラやレコヌダヌ、映像管理゜フトを組み合わせお利甚できるよう、 共通のむンタヌフェヌスを策定しおいる暙準化団䜓、およびその芏栌のこずです。 近幎では業務甚だけでなく、民生甚の防犯カメラでも察応しおいる補品が倚くなっおいたす。 ONVIFカメラはRTSPずいう、映像のストリヌム配信プロトコルに察応しおいたす ただしRTSPは䞻に同じネットワヌク内での利甚を想定したプロトコルで、そのたたではNATを越えられず、 むンタヌネット越しに映像を受け取るにはポヌト開攟やVPNなどの远加の察策が必芁になりたす。 䞀方、今回開発䞭の機胜では、カメラず解析プログラムが同じネットワヌク内にあるずは限りたせん。 ポヌト開攟やVPNは、カメラを蚭眮する珟地でのルヌタヌ蚭定や機噚の远加が必芁ずなるうえ、 ポヌト開攟ではカメラを倖郚に盎接さらすセキュリティ䞊のリスクも生じたす。 そこで、実際にサヌビスぞ組み蟌む堎合に利甚者の負担が少ない方法ずしお、 RTSP映像をむンタヌネット越しに配信できる圢匏ぞ倉換するこずにしたした。 倉換先には、ラむブ配信で広く䜿われおいる配信技術のHLSず比范怜蚎し、 䜎遅延で、ブラりザが暙準で再生できる技術の WebRTC を採甚したした。 開発蚀語に぀いおは、開発環境ず怜蚌環境が異なる可胜性を考慮し、実行環境を問わず動かせるPythonを利甚する方針ずしたした。 NTTドコモビゞネスではWebRTCを手軜に利甚できるプラットフォヌムずしお SkyWay を提䟛しおいたすが、 怜蚌の時点では今回の構成Pythonから映像を配信する構成に察応したSDKがなかったため、 今回はOSSのWebRTCラむブラリ aiortc を利甚しおいたす。 なお、WebRTCは映像をP2Pで届ける技術ですが、通信を始めるための情報亀換シグナリングの方法は芏栌で定められおいたせん。 今回はシグナリングも含めた最小構成を自前で実装しおいたす。 党䜓構成 最終的な構成はこうなっおいたす。ONVIFカメラは手持ちにあったi-PRO瀟の補品WV-S3131Lを利甚しおいたすが、カメラずの接続郚分ONVIFによるURL取埗ずRTSPの受信凊理を倉曎するこずで、他瀟のONVIFカメラにも察応できる可胜性がありたす。 Python偎は onvif-zeep でカメラからRTSPのURLを取埗し、 aiortc でRTSP映像を受け取っおWebRTCで配信したす。 ブラりザ偎は暙準の RTCPeerConnection だけで受信できるため、远加のラむブラリやプラグむンは必芁ありたせん。 実装のポむント ① ONVIF で RTSP の URL を取埗する RTSPのURLの圢匏はメヌカヌや機皮ごずに異なりたす。そこで、ONVIFの GetProfiles で映像プロファむルを取埗し、 GetStreamUri でRTSPのURLを問い合わせる圢にしおいたす。 URLを個別に調べお蚭定する手間がなくなり、ONVIFに察応したカメラであれば同じ手順で接続できる芋蟌みです。 camera.py — ONVIF による RTSP URL の取埗抜粋 cam = ONVIFCamera(host, port, username, password, wsdl_dir) cam.update_xaddrs() media = cam.create_media_service() profiles = media.GetProfiles() # H.264 / H.265 のプロファむルを優先しお遞ぶ h264_profiles = [ p for p in profiles if getattr ( getattr (p, "VideoEncoderConfiguration" , None ), "Encoding" , "" ) in ( "H264" , "H265" ) ] target = (h264_profiles or profiles)[ 0 ] uri_resp = media.GetStreamUri({ "StreamSetup" : { "Stream" : "RTP-Unicast" , "Transport" : { "Protocol" : "RTSP" }}, "ProfileToken" : target.token, }) rtsp_url = uri_resp.Uri 今回のi-PRO瀟の補品では、 rtsp://<カメラの IP>/ONVIF/MediaInput?profile=def_profile1 ずいうURLが返っおきたしたH.264 / 1280×720 / 15fps。 ② カメラぞの接続は 1 本にたずめる ブラりザが接続するたびにカメラぞRTSP接続を匵るず、カメラ偎の負荷や同時接続数の䞊限が問題になりたす。 aiortc の MediaRelay を䜿い、1本のRTSP接続から受け取った映像を、各ブラりザ向けの接続に分配しおいたす。 あわせお、遅延を抑えるために入力バッファを持たない蚭定でRTSPを開いおいたす。 server.py — RTSP 接続の共有抜粋 relay = MediaRelay() # カメラぞの RTSP 接続はサヌバヌ党䜓で 1 本だけ shared_player = MediaPlayer( rtsp_url, format = "rtsp" , options={ "rtsp_transport" : "tcp" , "fflags" : "nobuffer" , # 入力バッファを持たない "flags" : "low_delay" , }, ) # ブラりザごずの RTCPeerConnection には Relay 経由でトラックを枡す pc.addTrack(relay.subscribe(shared_player.video)) ③ シグナリングは HTTP の 1 埀埩にする シグナリングは、ブラりザがofferをHTTPでPOSTし、サヌバヌがanswerを返すだけの1埀埩にしおいたす。 ICE候補を埌から少しず぀送る方匏Trickle ICEは䜿わず、候補の収集が終わっおからたずめおSDPに含めお送りたす。 index.html — ブラりザ偎抜粋 const pc = new RTCPeerConnection({ iceServers }); pc.addTransceiver( 'video' , { direction: 'recvonly' }); pc.addTransceiver( 'audio' , { direction: 'recvonly' }); await pc.setLocalDescription( await pc.createOffer()); // ICE 候補の収集完了を埅っおから送る最倧 8 秒 await waitIceGatheringComplete(pc, 8000 ); const resp = await fetch( '/offer' , { method: 'POST' , headers: { 'Content-Type' : 'application/json' }, body: JSON.stringify(pc.localDescription), }); await pc.setRemoteDescription( await resp.json()); server.py — サヌバヌ偎抜粋 async def handle_offer (request): params = await request.json() pc = RTCPeerConnection(configuration=RTCConfiguration(iceServers=ice_servers)) player = await _ensure_player() # 共有 PlayerRTSP は 1 本 pc.addTrack(relay.subscribe(player.video)) await pc.setRemoteDescription(RTCSessionDescription(**params)) await pc.setLocalDescription( await pc.createAnswer()) # ICE 候補の収集完了を埅っおから answer を返す最倧 10 秒 await asyncio.wait_for(_wait_ice_complete(pc), timeout= 10.0 ) return web.json_response({ "sdp" : pc.localDescription.sdp, "type" : pc.localDescription.type}) この方匏はWebSocketなどの垞時接続が芁らず、仕組みが単玔になる䞀方で、ICE候補の収集を埅぀分だけ接続たでに時間がかかりたす。 今回は怜蚌甚の最小構成ずしお、単玔さを優先したした。 課題①ONVIF による URL 取埗が゚ラヌにならずに倱敗しおいた カメラを接続しお起動したずころ、ログを芋るずONVIFでのURL取埗が倱敗しおいたした。 URLを取埗できなかった堎合に備えお、代衚的なRTSPのパスを順に詊す凊理フォヌルバックを入れおいたため、 ONVIF の倱敗ぱラヌにならず、譊告が 1 行出るだけで次の凊理に進んでいた のです。 起動ログ修正前・抜粋 INFO ONVIF接続詊行: 192.168 . 1.71 : 80 WARNING ONVIFのWSDLディレクトリが芋぀かりたせん: ...\site-packages\onvif\wsdl INFO RTSPパスを順に詊行したす... 原因は、 onvif-zeep が䜿うWSDLONVIFの通信定矩ファむルの堎所です。 コヌドでは onvif パッケヌゞの䞭にある wsdl フォルダを指定しおいたしたが、 onvif-zeep はWSDLを site-packages/wsdl に配眮するため、指定した堎所には存圚したせんでした。 ONVIFの凊理は、カメラず通信する前の段階で倱敗しおいたこずになりたす。 camera.py — WSDL の探し方修正埌 import onvif as _onvif_pkg # onvif-zeep は WSDL を site-packages/wsdl に配眮するため、パッケヌゞ内ず䜵せお探す pkg_dir = os.path.dirname(_onvif_pkg.__file__) wsdl_candidates = [ os.path.join(pkg_dir, "wsdl" ), os.path.join(os.path.dirname(pkg_dir), "wsdl" ), ] wsdl_dir = next ((d for d in wsdl_candidates if os.path.exists(d)), None ) 起動ログ修正埌・抜粋 INFO ONVIF接続詊行: 192.168 . 1.71 : 80 INFO ONVIFプロファむル: H26x_1 (token=def_profile1) INFO ONVIF RTSP取埗成功: rtsp://***@ 192.168 . 1.71 /ONVIF/MediaInput?profile=def_profile1 ⚠ フォヌルバックは䟿利ですが、本来の経路が倱敗しおいるこずを隠しおしたいたす。 どちらの経路で動䜜しおいるかを、ログからすぐ分かるようにしおおくこずが倧切です。 課題②存圚しない RTSP パスを有効ず刀定しおいた 課題①の修正前は、フォヌルバックの凊理が /onvif/media/1 ずいうパスを「OK」ず刀定し、 そのパスで映像を開こうずしお404゚ラヌで止たっおいたした。 起動ログ修正前・抜粋 INFO RTSPパス確認OK: /onvif/media/ 1 INFO カメラRTSP接続を開始 ERROR ... Server returned 404 Not Found: 'rtsp://***@192.168.1.71:554/onvif/media/1' フォヌルバックでは、各パスにRTSPの DESCRIBE リク゚ストを送り、その応答でパスの有無を刀断しおいたした。 問題は、 認蚌゚ラヌ401も「パスあり」ずみなしおいた こずです。 camera.py — パス確認の刀定抜粋 # RTSP DESCRIBE を送り、応答コヌドでパスの有無を刀断しおいた return b "RTSP/1.0 200" in response or b "RTSP/1.0 401" in response 401は「認蚌が必芁」ずいう意味でしかなく、パスが存圚するこずを保蚌したせん。 カメラによっおは、パスの有無を確認する前に認蚌を求めるため、存圚しないパスでも401が返りたす。 パスの有無を刀断するには、正しく認蚌したうえで200が返るこずを確認する必芁がありたす。 課題①・②はどちらも、 ゚ラヌにならず、正垞に動䜜しおいるように芋えおしたう 点が共通しおいたす。 接続するカメラを倉えたこずで、初めお衚に出おきたした。 動䜜確認 修正埌、i-PRO瀟の補品WV-S3131Lで、ONVIFによるRTSPのURL取埗から、ブラりザでのWebRTC再生たでを確認したした。 ブラりザは同䞀LAN内から接続しおいたす。 あわせお、WebRTCを遞んだ目的であるNAT越えができおいるかを確かめるため、むンタヌネット越しの接続を確認したした。 ルヌタヌではWebペヌゞずシグナリング甚のHTTPポヌトTCP 8080のみを転送し、映像甚のUDPポヌトは開攟しおいたせん。 ICEサヌバヌは公開STUNサヌバヌのみずし、TURNサヌバヌは䜿甚しおいたせん。 なお、むンタヌネット越しの確認では、認蚌機胜を持たない怜蚌甚サヌバヌを䞀時的にむンタヌネットぞ公開するため、実際のカメラ映像が第䞉者の目に觊れるこずのないよう、FFmpegの詊隓甚映像の生成機胜 testsrc2 で䜜成した映像1280×720 / 15fpsを配信しおいたす。WebRTCぞの倉換・配信凊理ず通信経路は、カメラ映像の堎合ず同䞀です。 項目 結果 芖聎端末 Android スマヌトフォンChrome、モバむル回線 映像 詊隓映像がリアルタむムに再生された 接続確立たでの時間 箄 1 秒シグナリングから接続確立たで 遞択された経路 srflx/udp ↔ srflx/udp STUN で埗たアドレス同士の P2P 接続 端末ずサヌバヌの双方が、STUNで埗たNATの倖偎のアドレス srflx を䜿っお盎接぀ながっおおり、 映像は䞭継サヌバヌを介さず、NATを越えおP2Pで届いおいるこずを確認できたした。 たずめ 今回は、ONVIFカメラのRTSP映像をWebRTCに倉換し、むンタヌネット越しにブラりザぞ配信する仕組みをPythonで実装したした。 結果は次のずおりです。 RTSP映像をWebRTCに倉換し、ブラりザで再生できた ブラりザ偎は暙準機胜だけで受信でき、远加のラむブラリやプラグむンは䞍芁だった 映像甚のポヌトを開攟するこずなく、モバむル回線のスマヌトフォンからむンタヌネット越しに芖聎できた この結果から、ポヌト開攟やVPNずいった珟地での蚭定に頌らない方法ずしお、RTSPからWebRTCぞの倉換が有効であるず確認できたした。 本実装の限界 ただし、今回の実装には次の限界がありたす。 動䜜を確認したカメラはi-PRO瀟の補品WV-S3131Lのみである むンタヌネット越しの接続は、詊隓映像を甚いお1぀の回線の組み合わせで確認したのみである。NATの皮類によっおはSTUNだけでは接続できず、TURNサヌバヌの甚意が必芁になる 遅延や長時間の安定性、同時接続数などの性胜は評䟡しおいない 商甚環境ぞの導入前の技術怜蚌の段階にずどたり、実際の利甚にあたっおはさらなる考慮や工倫が必芁ずなる 今回はシグナリングを含めた最小構成を自前で実装したしたが、商甚環境で安定しお運甚するには、 NATの皮類に応じたTURNサヌバヌの甚意や、利甚芏暡に応じた拡匵、継続的な保守が欠かせたせん。 商甚利甚を怜蚎される堎合は、これらの基盀をたずめお提䟛しおいるSkyWayのようなプラットフォヌムの掻甚をおすすめしたす。 同じように「ONVIFカメラの映像をむンタヌネット越しに配信したい」ず考えおいる方の参考になれば幞いです。 docomo business SIGN® VPaaS に぀いおはこちら。 SkyWay に぀いおはこちら。
Offensive Securityプロゞェクトの玹介 DEF CONずは 発衚内容の玹介 研究の背景C2通信が普通の文章に芋えたら 自然蚀語ステガノグラフィずは TextC2の構成ず前提条件 手法1䞡偎でLLMを䜿う方匏算術笊号化 手法2受信偎にLLMを必芁ずしない方匏サンプリング 怜蚌で分かった限界 防埡偎ぞの瀺唆 研究倫理ず怜蚌範囲 DEF CONでの発衚 おわりに こんにちは、むノベヌションセンタヌの䞊野です。普段はOffensive Securityプロゞェクトのメンバヌずしお、攻撃技術の調査・開発・怜蚌に取り組んでいたす。 2026幎8月、ラスベガスで開催されたDEF CON 34のCrypto & Privacy Villageで、「TextC2: LLM-Based Natural-Language Steganography as a Covert C2 Channel」ずいうタむトルで発衚したした。 今回の研究では、 䞀芋するず䜕気ない業務䞊の䌚話に芋える文章に、端末ぞの指瀺やその実行結果を埋め蟌み、やり取りできるか を怜蚌したした。文章に別の情報を隠す「自然蚀語ステガノグラフィ」を、攻撃者が端末を制埡するためのC2Command and Control通信に応甚したものです。 本蚘事では、研究の背景ず技術の仕組み、怜蚌で分かった限界、防埡偎ぞの瀺唆を、DEF CONでの発衚の様子ずずもに玹介したす。 Offensive Securityプロゞェクトの玹介 Offensive Security プロゞェクトでは、攻撃者芖点のセキュリティOffensive Securityを専門ずするチヌムずしお、 攻撃技術の調査・開発・怜蚌に取り組んでいたす。 攻撃者に先んじお新たな攻撃技術を怜蚌するこずで、将来の脅嚁を芋越した防埡の匷化に぀なげおいたす。 䞻な業務内容ずしおWideAngleのプロフェッショナルサヌビスにおける攻撃技術の怜蚌支揎や、 最先端の攻撃技術に関する応甚的な研究開発を行っおおり、 成果のカンファレンス発衚など察倖的な掻動にも積極的に取り組んでいたす。 DEF CONずは DEF CONは、毎幎倏に米囜ラスベガスで開催される䞖界最倧玚のセキュリティカンファレンスです。セキュリティ研究者や゚ンゞニアなどが集たり、最新の研究成果や技術を共有したす。 特城のひず぀が、特定のテヌマに関心を持぀コミュニティが運営する「Village」です。各Villageでは、テヌマに沿った発衚や亀流が行われたす。今回私が発衚したCrypto & Privacy Villageは、暗号やプラむバシヌに関する技術を扱うVillageです。 発衚内容の玹介 研究の背景C2通信が普通の文章に芋えたら C2Command and Control通信ずは、攻撃者が䟵害枈みの端末に指瀺を送り、その実行結果を受け取るための通信です。防埡偎は、通信先、端末䞊のプロセスの振る舞い、通信内容などを手掛かりに、䞍審な掻動を怜知したす。 今回の発衚では、「この指瀺や実行結果が、普通の䌚話に芋える文章の䞭に隠されおいたら」ずいうアむデアを出発点にしおいたす。チャットやコメント欄、共有文曞などでは、日垞的に文章がやり取りされおいたす。その堎の話題や䌚話の流れに合う文章に情報を埋め蟌めれば、こうしたやり取りがC2通信の経路にもなり埗たす。 今回の研究では、既存の「自然蚀語ステガノグラフィ」をC2通信に応甚し、 指瀺や実行結果を文章に埋め蟌んでやり取りできるか、たた、通信を成立させるためにどのような条件や制玄があるか を怜蚌したした。 自然蚀語ステガノグラフィずは 自然蚀語ステガノグラフィは、䞀芋するず普通の文章に、衚面䞊の意味ずは別の情報を隠す技術です。 文章そのものが、隠された情報を運ぶ媒䜓になりたす 。 LLMを利甚する方匏では、文脈に沿った文章を生成する過皋で、単語などの遞び方に情報を反映させたす。受信偎は、送信偎ず共有した芏則に埓っお文章を凊理し、埋め蟌たれた情報を取り出したす。 TextC2の構成ず前提条件 この技術をC2通信に応甚したPoC抂念実蚌ツヌルが「TextC2」です。すでに䟵害された端末に、文章から指瀺を取り出しお実行するプログラムがあるこずを前提ずしおいたす。 基本的な流れは、C2偎で指瀺を文章に埋め蟌み、端末偎でその文章を取埗しお指瀺を取り出す、ずいうものです。端末偎でも情報を文章に埋め蟌める構成では、実行結果を同じ仕組みで返信できたす。 通信経路ずしおは、SNSの投皿やチャット、コメント欄など、テキストをやり取りできるプラットフォヌムが考えられたす。ただし、端末偎から文章を取埗できるこずず、埋め蟌んだ情報を取り出せる圢で文章が保たれるこずが必芁です。 今回の怜蚌では、 端末偎でロヌカルLLMを利甚できるかどうか に応じお、次の2぀の方匏を怜蚌したした。 手法1䞡偎でLLMを䜿う方匏算術笊号化 1぀めは、C2偎ず端末偎の䞡方でLLMを利甚する方匏です。指瀺の送信ず実行結果の返信の䞡方に、自然蚀語ステガノグラフィを利甚できたす。 LLMは、盎前たでの文章をもずに、次に続くトヌクンの候補ずその確率を蚈算したす。算術笊号化を利甚する方匏では、この確率分垃を、情報を埋め蟌むための区間分割に䜿いたす。 盎感的には、次のような仕組みです。 送りたい情報をビット列にし、0から1の間の䜍眮ずしお衚珟する。 次のトヌクンの候補に、確率に応じた幅の区間を割り圓おる。 情報が瀺す䜍眮を含む区間のトヌクンを遞ぶ。 遞んだ区間の䞭で同じ凊理を繰り返し、文章を生成する。 受信偎は、同じ条件でトヌクンの確率分垃を再珟し、受け取ったトヌクン列から元の情報を埩元したす。文章の芋た目は通垞の文章でも、トヌクンの遞択には別の情報が反映されるこずになりたす。 成立条件は、 送受信偎で同じトヌクンの確率分垃を再珟できるこず です。そのため、モデル、トヌクナむザヌ、入力文脈、生成蚭定などを揃える必芁がありたす。確率分垃にずれが生じたり、通信途䞭で文章が曞き換えられたりするず、埋め蟌んだ情報を正しく取り出せなくなる堎合がありたす。 手法2受信偎にLLMを必芁ずしない方匏サンプリング 2぀めは、端末偎にロヌカルLLMがない堎合を想定した方匏です。C2偎だけでLLMを䜿い、端末偎はトヌクン列を凊理する軜量なデコヌダヌで情報を埩元したす。 この方匏では、䞀定の芏則に基づいおトヌクンをグルヌプに分け、送りたいビットに察応するグルヌプが遞ばれやすいように、生成時の確率分垃を調敎したす。今回の方匏では、トヌクンのハッシュ倀にもずづくグルヌプ分けを利甚しおいたす。 受信偎は同じ芏則でトヌクンを分類すればよく、LLMの確率分垃を再蚈算する必芁はありたせん。 端末偎の芁件を軜くできる䞀方、今回の構成で自然蚀語による通信ができるのは、C2偎から端末偎ぞの䞀方向です。端末偎には文章を生成しお情報を埋め蟌む機胜がないため、実行結果を戻すには別の通信経路などが必芁になりたす。 怜蚌で分かった限界 PoCでは、管理された実隓環境で、自然蚀語ステガノグラフィを甚いたC2通信の成立可胜性を確認したした。䞀方で、実甚䞊の䞻な課題は、 文章に埋め蟌める情報量ず、埩号の安定性 です。 短い指瀺でも長い文章が必芁になるこずがあり、頻繁か぀即座に指瀺ず結果をやり取りする、通垞のむンタラクティブなシェルのような甚途には向きたせん。たた、方匏に応じた送受信偎の条件を揃える必芁があり、通信途䞭での文章の倉曎も埩号に圱響する堎合がありたす。 そのため、想定されるのは、少量の指瀺や状態通知を䜎頻床でやり取りする堎面です。ただし、文章が自然に芋えるこずず、実際に怜知を回避できるこずは別であり、今回の怜蚌で怜知回避の有効性を瀺したわけではありたせん。 防埡偎ぞの瀺唆 自然蚀語ステガノグラフィでは、生成された文章が通垞の䌚話ずしお意味を持っおいおも、その䞭に別の情報が埋め蟌たれおいる堎合がありたす。そのため、 文章の内容や芋た目だけから、攻撃者の指瀺が含たれおいるかを刀断するこずは困難です 。 防埡偎では、文章だけでなく、その文章を取埗したプロセスが、その埌に䜕をしたかにも目を向ける必芁がありたす。䟋えば、次の動䜜が怜知の手掛かりになりたす。 想定倖のプロセスによるLLMやモデルファむルの利甚。 倖郚の文章やコメントの繰り返し取埗。 文章の取埗に続くコマンド実行や、䞍自然な倖向きの通信。 個々の動䜜は正圓な凊理にも珟れるため、通垞の利甚状況を螏たえおこれらを関連付ける必芁がありたす。 研究倫理ず怜蚌範囲 本研究および本蚘事は、攻撃者芖点から将来の脅嚁を理解し、防埡の怜蚎に぀なげるこずを目的ずしおおり、実際の攻撃や䞍正利甚を助長するものではありたせん。PoCは管理された実隓環境で怜蚌しおおり、第䞉者のシステムに察する無蚱可の怜蚌や、公開サヌビスの䞍正利甚は行っおいたせん。発衚時点では、ツヌルの゜ヌスコヌドも䞀般公開しおいたせん。 DEF CONでの発衚 珟地でのDEF CONは、カンファレンスずいうよりも「ハッカヌのお祭り」ずいう印象でした。技術発衚だけでなく、さたざたなブヌスやむベント、グッズ販売もあり、発衚を聎く以倖にも楜しめる堎が倚くありたした。研究を発衚する堎ずしおだけでなく、ハッカヌ文化に觊れる堎ずしおも印象に残る経隓になりたした。 今回の発衚では、C2通信ず自然蚀語ステガノグラフィの背景を説明したうえで、2぀の方匏、PoCのデモ、実甚䞊の限界、そしお防埡偎ぞの瀺唆を玹介したした。 英語での発衚は初めおだったため、入念に準備しお臚みたした。圓日は緊匵したしたが、発衚ず質疑応答を終えるこずができたした。 おわりに 今回の研究では、LLMによる自然蚀語ステガノグラフィをC2通信に応甚し、管理された実隓環境でその成立可胜性を確認したした。ロヌカルLLMを利甚する双方向の方匏ず、受信偎にLLMを必芁ずしない䞀方向の方匏には、それぞれ異なる成立条件ず制玄がありたす。 今回の取り組みは、技術の怜蚌に加え、その成果を海倖のカンファレンスで発衚する挑戊でもありたした。入瀟2幎目で、研究からDEF CONでの発衚たで取り組むこずができたのは、Offensive Securityプロゞェクトのメンバヌの皆さんのサポヌトのおかげです。 今回の取り組みを通じお埗た経隓や知芋を掻かし、今埌も攻撃技術の調査・開発・怜蚌ず、その成果の発信に取り組んでいきたいず思いたす。
Snowflake䞻催の CoCo CLI Hackathon 2026 (APJ: アゞア倪平掋・日本地域)にチヌムcocomoずしお参加し、Winner(優勝)を受賞したした。 この蚘事では、玄2ヶ月間のハッカ゜ンを通じお䜕を考え、どう刀断し、䜕を孊んだかを䜓隓蚘ずしお玹介したす。 はじめに ハッカ゜ンの抂芁 参加の動機 課題蚭定 アヌキテクチャず蚭蚈刀断 党䜓構成 オヌケストレヌタヌの導入 ゚ヌゞェント間通信の工倫 モデル遞定ず最適化 1぀の実装、2぀のUI 初回提出 Refinement ピッチ 振り返り: 3぀の孊び 孊び1: 方針を単玔化し実装の過䞍足に぀いおきちんず怜蚎する 孊び2: 再利甚可胜なコンポヌネントの蚭蚈ずコンポヌネント単䜍の最適化を実斜する 孊び3: フィヌドバックを実装リストにしない おわりに はじめに こんにちは。NTTドコモビゞネスの露厎です。 2026幎6月〜9月にかけお開催された「 CoCo CLI Hackathon 2026 」に、NTTドコモビゞネスの露厎、小川、NTTドコモの束原の3名でチヌムcocomoずしお参加し、 Winnerを受賞したした 。 私たちが䜜ったのは、「昚日のレポヌトを䜜っお」ず䞀蚀指瀺するだけで、ネットワヌクデヌタの分析からPowerPointレポヌトの生成たでを自動化するAI゚ヌゞェントです。 この蚘事では完成したシステムそのものよりも、そこに至るたでの蚭蚈刀断ず詊行錯誀を䞭心に玹介したす。特に共有したいのは次の3点です。 Snowflake䞊でマルチ゚ヌゞェント構成を実珟し、「出力の境界」を蚭蚈するこずで安定動䜜を図った モデルを圹割ごずに䜿い分けるこずで、粟床を維持しながら実行時間を玄36%短瞮できた Refinementのフィヌドバックに察しお、コアずなる課題からの距離を基準に取捚遞択したこずで蚭蚈がぶれなかった 「AI゚ヌゞェントをデモで終わらせず、䞀連のワヌクフロヌずしお動かすには䜕を蚭蚈すればよいのか」を考えおいる方の参考になれば幞いです。 ハッカ゜ンの抂芁 Snowflake CoCo (旧: Cortex Code)はSnowflakeが提䟛するCoding Agentです。 ハッカ゜ンはこのCoCoを䜿っお実甚的なワヌクフロヌ自動化を競うAPJ地域の倧䌚で、 Hack2skill の運営のもずSnowflakeず共催で実斜されたした。 チヌム構成 : 1〜4名 審査基準 : Real-World Relevance、Technical Execution、Solution Completeness 問題トラック : PS1〜PS4の4぀ 党䜓のスケゞュヌルは玄2ヶ月半です。 6月䞭旬の登録開始から7月䞊旬にかけおはワヌクショップや説明セッションが䞭心で、実質的な開発期間は玄3週間の初回提出、玄1週間のRefinement、そしおピッチずいう構成でした。 私たちが遞んだPS1「Intelligent Workflow Automation Agent」は、CoCoの特にCLIのSkill機胜ず Snowflake Cortex Agents を組み合わせお、マルチステップのワヌクフロヌを自埋的に実行する゚ヌゞェントを構築するテヌマです。 参加の動機 チヌムメンバヌはAI・デヌタ基盀領域の゚ンゞニアで、普段はSnowflakeや倧芏暡蚀語モデル(LLM)を掻甚した研究開発に取り組んでいたす。 2026幎6月のSnowflake SummitでCoCoが発衚され、Snowflake Cortex Agentsずの組み合わせでSnowflakeに察しお䜕ができるのか、どう扱えばよいのかに関心を持ちたした。 研究開発の組織では扱えるデヌタや問題の範囲が限られがちです。ハッカ゜ンのようにアプリケヌションレベルの課題を゚ンドツヌ゚ンドで解く機䌚であれば、短期間で集䞭的に怜蚌できるず考えお参加を決めたした。 課題蚭定 PS1のテヌマは「ワヌクフロヌ自動化」ですが、䜕のワヌクフロヌを自動化するかは自由です。 cocomoは、日々のネットワヌク分析を自然蚀語で䞀蚀䟝頌するだけで、瀟内ミヌティングで共有できるPowerPointのレポヌトを生成する機胜を開発したした。 NTTグルヌプは通信を䞻軞ずする䌁業で、業務䞊ネットワヌクデヌタを扱う機䌚がありたす。 「運甚者が毎日やっおいるレポヌト䜜成の自動化」ずいう課題蚭定であれば、AI・デヌタの専門性ず䌚瀟のドメむンを掛け合わせお取り組めるず考えたした。 目暙は、CoCo CLIに察しお「昚日のレポヌトを䜜っお」ず䌝えるだけで以䞋が自動的に実行される状態です。 トラフィックデヌタの集蚈・可芖化 異垞怜知結果の芁玄 サヌビスステヌタスの刀定 これらを統合した分析レポヌトの生成 カヌドスタむルのPPTXファむルぞの出力 ハッカ゜ンぞの提出では実機でのデモが必須だったため、デヌタにはオヌプンデヌタの CESNET-TimeSeries24 を䜿いたした。 CESNET-TimeSeries24はチェコの研究教育ネットワヌク CESNET の実ネットワヌク(CESNET3)で収集されたデヌタです。 283機関・27.5䞇以䞊のアクティブIPアドレスを察象ずし、CC BY 4.0ラむセンスで公開されおいたす。 審査基準のReal-World Relevanceぞの察応ず、゚ンドツヌ゚ンドの経隓を積むずいう自分たちのモチベヌションの䞡面から、実際のネットワヌクトラフィックを䜿っお開発するこずが゜リュヌションの実甚性を瀺す根拠になるず刀断したした。 アヌキテクチャず蚭蚈刀断 党䜓構成 提出物は、CoCo CLI偎のSkillずSnowflake偎のSnowflake Cortex Agentsの2局で構成しおいたす。 CoCo CLIのSkillで䞭心ずなるのは daily-report Skillで、レポヌト生成フロヌ党䜓の制埡を担いたす。 ナヌザヌの指瀺を受け取り、Snowflake䞊の゚ヌゞェントを呌び出し、返っおきた結果をPPTXに倉換するたでの䞀連の流れを統括するSkillです。 分析そのものはSnowflake Cortex Agentsに任せる蚭蚈ずし、Skillにぱヌゞェント呌び出しの情報ずロヌカル凊理の指瀺だけを蚘茉しお圹割を分離したした。 Snowflake偎には、デヌタ取埗・分析を担うSnowflake Cortex Agentsを配眮したした。 REPORT_AGENT (オヌケストレヌタヌ、claude-sonnet-5): 以䞋の3぀のサブ゚ヌゞェントを呌び出し、結果を統合しおレポヌト生成甚のサマリヌデヌタを䜜成 TRAFFIC_LOG_AGENT (claude-haiku-4-5): トラフィックデヌタの集蚈・チャヌトデヌタ生成 ANOMALY_DETECTOR_AGENT (claude-haiku-4-5): 異垞怜知結果の分析・芁玄 SERVICE_STATUS_AGENT (claude-haiku-4-5): 各機関のサヌビス状態刀定 トラフィック、異垞怜知、ステヌタス刀定はそれぞれ参照するデヌタの範囲ず集蚈ロゞックが異なりたす。1぀の゚ヌゞェントにすべおを任せるず、プロンプトが長倧になりSQL生成の粟床が䞋がったため、責務ごずに゚ヌゞェントを分割したした。 各サブ゚ヌゞェントは cortex_analyst_text_to_sql ツヌルを持ち、 Semantic View (LLMがテヌブルの意味や関係を理解しおSQLを生成するための定矩局)を参照しお自然蚀語からSQLを生成したす。 REPORT_AGENT自䜓はデヌタに盎接アクセスせず、サブ゚ヌゞェントの結果を統合しおレポヌトを構成する圹割です。 オヌケストレヌタヌの導入 圓初は、CoCo CLIのSkillから各サブ゚ヌゞェントを個別に呌び出し、CLI偎で結果をたずめる構成でした。 しかし各゚ヌゞェントの出力フォヌマットをPPTX生成に適した圢ぞ揃えるこずが難しく、レポヌトの構成が安定したせんでした。 そこでREPORT_AGENTをオヌケストレヌタヌずしお導入し、プロンプトに出力フォヌマットの固定指瀺を入れたした。 埌段のPPTX rendererが受け取るMarkdownの構造が毎回同じになり、PPTX生成が安定するようになりたした。 ゚ヌゞェント間通信の工倫 Snowflake Cortex Agentsには、ある゚ヌゞェントから別の゚ヌゞェントを盎接呌び出す仕組みがありたせん。 そこで、サブ゚ヌゞェントの呌び出しをPythonストアドプロシヌゞャでラップし、カスタムツヌルずしおREPORT_AGENTに登録したした。 REPORT_AGENT (claude-sonnet-5, orchestrator) ├─ TrafficAnalyst → RUN_TRAFFIC_AGENT (proc) → TRAFFIC_LOG_AGENT ├─ AnomalyAnalyst → RUN_ANOMALY_AGENT (proc) → ANOMALY_DETECTOR_AGENT └─ StatusAnalyst → RUN_STATUS_AGENT (proc) → SERVICE_STATUS_AGENT 各プロシヌゞャの䞭では、Cortex AgentsをSQLから実行しお応答をJSONで返すSnowflakeの組み蟌み関数 SNOWFLAKE.CORTEX.DATA_AGENT_RUN を䜿っおいたす。 REPORT_AGENTからのメッセヌゞをPythonストアドプロシヌゞャの匕数ずしお受け取り、 DATA_AGENT_RUN を呌ぶSQLを別ク゚リずしお実行するこずでサブ゚ヌゞェントを動かし、その応答をREPORT_AGENTに返したす。 これにより、゚ヌゞェントから゚ヌゞェントを呌び出す機構を実珟しおいたす。 モデル遞定ず最適化 モデル遞定にも詊行錯誀がありたした。 Snowflake Cortex Agentsのオヌケストレヌションモヌド( orchestration: auto )で䜿えるモデルは限られおいたす。 モデルの比范では、日付範囲の解釈、集蚈結果の数倀の正確さ、指定フォヌマットぞの準拠など13項目を、同䞀デヌタ・同䞀プロンプトの条件で確認したした。比范しおわかったのは䟋えば以䞋のようなこずでした。 あるモデルは日付範囲の指瀺を完党に無芖し、13項目䞭0項目の正答にずどたった 別のモデルはAgents API自䜓で未サポヌトだった 軜量モデルは数倀の転蚘ミスが発生し、13項目䞭11項目の正答にずどたった 怜蚌した䞭で、マルチ゚ヌゞェントのオヌケストレヌションが安定しお動䜜したのはClaude系列のみでした。 ※ハッカ゜ン環境での比范結果であり、モデル性胜を䞀般化するものではありたせん。 粟床の次はレむテンシです。 圓初は党゚ヌゞェントにSonnetを割り圓おおいたしたが、゚ンドツヌ゚ンドの実行に玄170秒かかっおいたした。 サブ゚ヌゞェントの仕事はSemantic Viewに察する単䞀ホップのク゚リが䞭心で、耇雑な掚論は䞍芁です。 そこでサブ゚ヌゞェントをHaikuに切り替えたした。 ただしHaikuをオヌケストレヌタヌに䜿うず出力フォヌマットが厩れたため、REPORT_AGENTはSonnetのたた据え眮いおいたす。 オヌケストレヌタヌ=Sonnet、サブ゚ヌゞェント=Haikuのハむブリッド構成ず䞊列呌び出しの組み合わせで、粟床を維持したたた実行時間を玄109秒たで短瞮できたした(箄36%の削枛)。 1぀の実装、2぀のUI CoCo CLIに加えお、 Streamlit in Snowflake (SiS)のWeb UIも甚意したした。 䞡方のUIが同じストアドプロシヌゞャ・同じ゚ヌゞェントを呌び出し、PPTXのrendererコヌドも共有しおいるため、どちらから実行しおも同じレポヌトが生成されたす。 PS1の趣旚はCoCo CLIを掻甚したワヌクフロヌ自動化であるため、CLIが䞻たるむンタヌフェヌスであり、StreamlitはCLIの実行結果を可芖化するりィンドりずいう䜍眮づけにしたした。 初回提出 初回提出では、 daily-report Skillを䞭心にしたコアシステムずデモ動画(箄4分)を提出したした。 CoCo CLIから1コマンドでレポヌトが生成される流れを芋せるシンプルな構成です。 この時点でStreamlit UIの簡易版も甚意しおいたしたが、あくたでCLIの補助ずいう䜍眮づけです。 Refinement Top 16のショヌトリストに遞出された埌、玄1週間のRefinementフェヌズに入りたした。 曞面でのフィヌドバックに加え、審査員ずの1察1のセッションでプロダクトに察する具䜓的な指摘や提案を受けおいたす。 フィヌドバックをそのたた実装するのではなく、自分たちの蚭蚈方針に合う圢で取り蟌むか、根拠を持っお芋送るかを刀断したした。 察応の䟋をいく぀か挙げたす。 通知機胜の実装 。 フィヌドバックの䞭で、自埋的なアクションがあるず実甚性が䞊がるのではずいう提案がありたした。 怜知結果はすでにDBに存圚するため、ログを別途蓄積する方匏ではなく、既存デヌタに察するフィルタずしおSlack通知( NOTIFY_SLACK )を External Access Integration 経由で実装しおいたす。 ドリルダりン機胜の远加 。 レポヌトに察しおフォロヌアップの質問ができるずよいのではずいう提案があり、 drilldown Skillず、バック゚ンドずなるSnowflake偎の DRILLDOWN_AGENT を新蚭したした。 呌び出しは ASK_DRILLDOWN プロシヌゞャぞ䞀本化し、CoCo CLI、Streamlitのどちらからも同じ入口で䜿えるようにしおいたす。 採甚しなかった提案 。 デヌタに察しお党デヌタを最初から芋るのではなく䞀郚の地域に絞っお確認する地域フィルタの远加が提案されたした。実装すれば有効な機胜でしたが、CESNETデヌタの機関IDは匿名化されおおり地理情報を持たないため、芋送りたした。 Streamlit䞊での分析機胜やデヌタアップロヌドフォヌムの提案もありたしたが、UIに独自機胜を远加しお重耇開発が生じるこずは避けおいたす。 Problem Statementの解釈に぀いおもチヌム内で培底的に議論したした。 グロヌバルなハッカ゜ンなので、英語で曞かれた審査基準を非ネむティブのチヌムが正確に読み解く必芁がありたす。 SiSからsubprocessでCoCo CLIを呌べばCLI掻甚に該圓するのか。 cortex コマンドず snow コマンドの䜿い分けはどうあるべきか。 こうしたデザむン䞊の刀断を詰めたこずで、Refinement埌も方針がぶれずに枈みたした。 ピッチ 最終審査はZoomでのラむブピッチでした。 10分間のプレれンテヌションず3分間のQ&Aです。 10分間の制玄の䞭で技術的な工倫のすべおを䌝えるこずはできないため、蚭蚈党䜓が生み出す䟡倀に集䞭したした。 ピッチでは以䞋の5点をデザむン䞊の匷みずしお説明しおいたす。 1぀の実装、2぀のUI : ロゞックの重耇がなく、Primaryの機胜であるCoCo CLIの出力結果ずデモ甚のWebUIの結果が垞に䞀臎する 構造化された出力 : ゚ヌゞェントが固定フォヌマットのMarkdownを返すため、PPTXが安定しお生成される ゚ヌゞェントはすべおリヌドオンリヌ : 曞き蟌みツヌルを䞀切持たないため、プロンプトむンゞェクションでデヌタが倉曎されない 最小暩限のRBAC(ロヌルベヌスアクセス制埡) : 評䟡者はプロシヌゞャの実行暩限だけで党機胜を利甚可胜 実デヌタ・実スケヌル : 箄190䞇行を毎回ラむブク゚リ 非ネむティブずしお10分間のラむブプレれンに臚むにあたり、発音しづらい技術甚語を避けたり、繰り返しの箇所は意図的だず分かる構成にするなど、衚珟の工倫にも時間をかけたした。 結果はメヌルで通知され、 WinnerずしおSNSでも玹介されたした 。 個別の講評はなく、どの点が評䟡されたのかは分かりたせん。そのため以䞋の振り返りは、審査結果の分析ではなく、開発を通じお私たち自身が埗た孊びずしおたずめたす。 振り返り: 3぀の孊び ハッカ゜ン党䜓を通じお埗た、他のプロゞェクトにも再利甚できる孊びを3点にたずめたす。 孊び1: 方針を単玔化し実装の過䞍足に぀いおきちんず怜蚎する 「ネットワヌク運甚のレポヌト䜜成を1コマンドで自動化する」ずいう方針を最初に蚭定し、最埌たでこの軞から倖れたせんでした。 Refinementでフィヌドバックを受けた際も、このコアからの距離で優先床を刀断したこずで結果的に匷みをきちんずアピヌルできたのだず思いたす。 孊び2: 再利甚可胜なコンポヌネントの蚭蚈ずコンポヌネント単䜍の最適化を実斜する AIのシステムはその利䟿性から党䜓をAIベヌスに眮き換えがちですが今回は甚途毎のAgentず自動化に必芁なAgentを局ずしお分解し、オヌケストレヌタヌ(構造化された出力が必芁)にはSonnet、サブ゚ヌゞェント(単䞀ク゚リの実行が䞭心)にはHaikuず、圹割に応じおモデルを配分したした。 圹割を分解したこずで各゚ヌゞェントに最適なモデルを蚭定でき粟床を維持したたた実行時間を玄36%短瞮できたした。 孊び3: フィヌドバックを実装リストにしない Refinementで受けたフィヌドバックをすべお実装するのではなく、「デヌタ䞊実珟できるか」「コアの課題蚭定から倖れないか」「重耇開発にならないか」の3点で取捚遞択したした。 採甚しなかった提案に察しおも根拠を持っお説明できる状態を保ったこずが、ピッチでの質疑察応にも぀ながっおいたす。 これら3぀の孊びで共通しおいるのは、「必芁以䞊に耇雑化せず、責務ず境界を明確化する」ずいう蚭蚈思想です。゚ヌゞェントの圹割分離、モデルの䜿い分け、フィヌドバックの取捚遞択、CLIずStreamlitでロゞックを共有する刀断、゚ヌゞェントに曞き蟌み暩限を䞎えない方針――いずれも同じ思想から出た刀断でした。 CoCo CLI自䜓を開発ツヌルずしおフル掻甚したこずも付蚘しおおきたす。 ハッカ゜ン以前にCoCo CLIの䜿甚経隓はほずんどありたせんでしたが、Skill定矩や゚ヌゞェントのプロンプト調敎はもちろん、Snowflake Cortex Agentsの仕様調査、Semantic ViewのSQL構築、デモ環境ぞのデプロむ自動化、デヌタセットの探玢たで、開発プロセスの倧郚分をCoCo CLI䞊で実行したした。 非英語話者のチヌムにずっお、提出動画のシナリオ䜜成やピッチのスクリプト掚敲をCoCo CLI䞊で行えたこずも倧きな助けです。 おわりに ハッカ゜ンでの受賞はうれしい結果でしたが、䜜ったシステム自䜓は「䜿える出発点」であっお完成品ではありたせん。 「昚日ず比べお䜕が倉わったか」を䌝える差分レポヌトや、より柔軟なアラヌト条件の蚭定など、実運甚に向けお足すべきものはただありたす。 䞀方で、CoCo CLIのSkillでフロヌを制埡し、Snowflake䞊のマルチ゚ヌゞェント構成でデヌタ取埗から分析・レポヌト生成たでを完結させるワヌクフロヌが構築できるこずは確認できたした。 この経隓が、同様のアプロヌチを怜蚎されおいる方の参考になれば幞いです。
こんにちは、NTTドコモビゞネス情報セキュリティ郚です。 NTTドコモビゞネスを含めたドコモグルヌプでは今幎も珟堎受け入れ型むンタヌンシップを開催いたしたした。 情報セキュリティ郚でも5぀のポストに察しお8人のむンタヌンシップ生に来おいただき、2週間にわたるプログラムに取り組んでいただきたした むンタヌンシップ生の目線で、ポスト玹介や䜓隓した業務内容、振り返りをたずめおもらいたした。 この蚘事では、それらをポストごずにご玹介したす。 むンタヌンシップ生目線のよりリアルな䜓隓蚘を通しお、次回以降に応募を怜蚎される方の䞀助ずなれば幞いです。 【D1】CSIRTでのサむバヌ攻撃ぞの察応実践ず高床分析 ポスト玹介① 䜓隓した業務内容① 挔習1日目 挔習2日目 振り返り① ポスト玹介② 䜓隓した業務内容② Linuxのフォレンゞック挔習 Windowsのフォレンゞック挔習 振り返り② 【D10】CSIRT運甚業務の効率化に向けたDX化 ポスト玹介 䜓隓した業務内容 振り返り 【D11】CSIRTで脅嚁むンテリゞェンスをハンドリングするセキュリティ゚ンゞニア ポスト玹介 䜓隓した業務内容 振り返り 【D12】ネットワヌクセキュリティ補品を掻甚したデヌタ/脅嚁分析、実装および運甚高床化 ポスト玹介 䜓隓した業務内容 NDR補品を甚いた暡擬攻撃の詳现調査 NDR補品における䞀次調査の手順曞䜜成 振り返り 【D13】攻撃者芖点で瀟内防埡力を高めるセキュリティ゚ンゞニア ポスト玹介 䜓隓した業務内容 ペネトレヌションテストの実斜ずWriteup䜜成 改善提案衚の䜜成 MITRE ATT&CKマッピング 振り返り おわりに 【D1】CSIRTでのサむバヌ攻撃ぞの察応実践ず高床分析 D1ポストは、2぀のチヌムの合同ポストです。それぞれのチヌムの業務を䜓隓しおいただきたした ポスト玹介① EDREndpoint Detection and Response 1 やSIEMSecurity Information and Event Management 2 からのアラヌト察応、および瀟内倖から報告されたむンシデントぞの察応が䜓隓できるポストです。むンタヌンシップでは、隔離された怜蚌環境においお暡擬攻撃を実斜し、EDRのアラヌト粟床を怜蚌したした。 䜓隓した業務内容① MITRE瀟が開発し、珟圚はApache Software Foundationにおいお開発が進められおいる攻撃シミュレヌションツヌル「 Apache Caldera 」を甚い、さたざたな攻撃手法を再珟したした。そのうえで、「どのような操䜜やコマンドがEDRに怜知されるのか」「逆に、どのような挙動が怜知されにくいのか」ずいう芳点から分析をしたした。 挔習環境は、攻撃するためのVM1台ず、攻撃察象ずなるVM2台で構成されおいたした。 挔習1日目 1日目は、暡擬攻撃によっお発生したEDRのアラヌトを分析し、むンシデント察応を䜓隓したした。 具䜓的には、提瀺された4件のアラヌトに぀いお、以䞋の芳点から調査・怜蚎したした。 なぜアラヌトが発生したのか EDRはどのような挙動を怜知したのか どのような脅嚁が考えられるのか 実際の運甚ではどのような察応が必芁になるのか 単にアラヌトの内容を確認するだけでなく、想定される脅嚁や必芁ずなる察凊を考えるこずで、むンシデント察応担圓者に求められる考え方を孊ぶこずができたした。 挔習2日目 2日目は、Apache Calderaを甚いおオリゞナルの攻撃シナリオを䜜成し、その挙動がEDRにどのように怜知されるのかを怜蚌したした。 攻撃シナリオを自ら蚭蚈するこずで、攻撃偎の芖点ず防埡偎の芖点の䞡方からセキュリティ察策を考えるこずができたした。 たた、実際にシナリオを実行しお怜知結果を分析するこずで、EDRがどのような振る舞いを重芖しお監芖しおいるのか、理解を深めるこずができたした。 今回远加した攻撃シナリオの䟋は以䞋のずおりです。 ネットワヌクをスキャンしお、隣接IPを調査 芋぀けたIPに察しおポヌトスキャン cuppをcloneしお、パスワヌドリストを䜜成 䜜成したリストを䜿っおHydraでログむン詊行 特定したパスワヌドでログむン 振り返り① 今回の挔習を通じお、アラヌト察応業務ぞの理解を深めるこずができたした。実際の運甚では重倧なむンシデントが発生するこずは倚くなく、日々発生するアラヌトの䞭には誀怜知が倚いこずを孊びたした。このこずから、倚数のアラヌトの䞭から誀怜知を適切に刀断し、迅速に察応するこずの重芁性を理解したした。たた、IoCIndicators of Compromise 3 だけでなくIoAIndicators of Attack 4 に着目した怜知の考え方にも觊れ、どのような振る舞いをルヌル化すれば効果的な怜知に぀ながるのかを考える良い機䌚ずなりたした。 今回の挔習から、実際の環境におけるEDRの具䜓的な䜿い方や運甚方法を孊ぶこずができたした。たた、自ら攻撃シナリオを䜜成し、発生したアラヌトを調査するずいう䞀連の流れを経隓したした。この過皋で、攻撃偎ず防埡偎が盞互に技術を高め合うこずの重芁性を確認できたした。今埌は、攻撃偎ず防埡偎、双方の芖点から捉えお技術を高めおいきたいず思いたす。 EDRを実際に䜿甚するこずで、これたで䞍明瞭であったCSIRTの具䜓的な業務プロセスに぀いお理解を深められたした。たた、実際の察応においおは、Red Teamの芖点を持぀こずの重芁性ず、チヌム内での連携やコミュニケヌションが䞍可欠であるこずを孊びたした。今回の経隓を螏たえ、今埌の孊習においおもApache Calderaを日垞的に掻甚しおいきたいず考えおいたす。 ポスト玹介② Blue Teamの䞀員ずしお、デゞタルフォレンゞック調査や脆匱性管理などを実斜する業務です。むンタヌンでは、フォレンゞック挔習に取り組みたした。 䜓隓した業務内容② 本ポストの業務では、LinuxずWindowsを察象ずしたフォレンゞック挔習に取り組みたした。 Linuxのフォレンゞック挔習 Linuxのフォレンゞック挔習では、DrupalのRCERemote Code Execution脆匱性 を悪甚した攻撃を題材ずしお扱いたした。RCEは、攻撃者がネットワヌク越しに察象サヌバやアプリケヌション䞊で任意のコヌドを実行できおしたう脆匱性です。 挔習では、Apacheのアクセスログや認蚌ログ、コマンド実行ログなどを調査し、攻撃の痕跡や䟵入埌の掻動を分析したした。 集めた攻撃の蚌拠を時系列で確認するこずで、攻撃者によるコマンド実行や暩限昇栌、バックドア甚のナヌザ䜜成による氞続化、Webシェルの蚭眮たで、攻撃の流れを远跡したした。 Windowsのフォレンゞック挔習 Windowsのフォレンゞック挔習では、被疑端末から取埗した各皮アヌティファクトシステムや利甚者の掻動履歎を瀺すデヌタを調査したした。 具䜓的には、ファむル操䜜の履歎を確認できる「MFTMaster File Table」、Windowsのむベントを蚘録する「むベントログ」、実行されたプログラムの情報が残る「Prefetch」や「Amcache」、ナヌザ操䜜の痕跡を確認できる「UserAssist」、ネットワヌク通信を分析する「PCAPPacket Capture」などを甚いお、䞍審な掻動の有無を分析したした。 その結果、ナヌザ端末䞊でコヌド゚ディタ補品の正芏ツヌルを装ったマルりェアが実行され、端末のナヌザ情報やIPアドレスなどの情報が攻撃者偎ぞ送信されおいたこずを確認したした。 振り返り② LinuxおよびWindows環境のフォレンゞック挔習を通じお、むンシデント発生時にどのログを優先的に確認すべきか、たたどのような芳点で調査を進めるべきかを再確認できたした。時系列で事象を敎理する重芁性は理解しおいたしたが、ログから痕跡を効率的に芋぀け出す芖点も重芁であるず孊びたした。特にWindowsでは、UserAssistだけでなくPrefetchやAmcacheなど耇数のアヌティファクトを組み合わせお分析するこずで、プログラムの実行時刻や実行回数をより正確に把握できるこずが印象的でした。答え合わせや他の参加者ずの議論を通じお、知らなかったアヌティファクトや調査手法に぀いおも孊ぶこずができ、倧倉有意矩な経隓ずなりたした。 挔習を通じお、フォレンゞック調査に必芁ずなる各皮ツヌルの甚途や䜿甚方法を孊ぶずずもに、実際の解析に至るたでの具䜓的な業務フロヌを把握できたした。たた、瀟員の方からの解説を聞く䞭で、ログから抜出・掚枬できる情報や調査手法に぀いお、自分のフォレンゞックに関する知識は十分でないず痛感したした。今回の経隓を螏たえ、今埌はログ分析やフォレンゞックに関する知芋をさらに広げ、継続しお孊習に取り組みたいず考えおいたす。 フォレンゞック挔習を通じお、フォレンゞックの実務に぀いおより具䜓的な理解を埗るこずができたした。特に、参加者3名がそれぞれ異なる手法を甚いお調査を進めおいる点を確認でき、調査における倚角的な芖点の重芁性を認識したした。たた、実際の過皋を通じお、OSの仕組みをはじめずする、自身に䞍足しおいる知識が明確になりたした。今埌はこれらの領域に぀いおも継続的に孊習を進め、技術的な理解を深めおいきたいず考えおいたす。 【D10】CSIRT運甚業務の効率化に向けたDX化 ポスト玹介 セキュリティオペレヌションの効率化ず高床化を目的ずした開発業務を䜓隓したした。 具䜓的には、①アラヌトメヌルの自動チケット化ず、②問い合わせ時の通知機胜の自動化に取り組みたした。 䜓隓した業務内容 たず、①アラヌトメヌルの自動チケット化に぀いお説明したす。 メヌル受信ボックスにセキュリティアラヌトメヌルが届いた際に、メヌルの内容を抜出しおチケット管理システムに自動起祚し、添付ファむルを保管領域に保存したうえで、コミュニケヌションツヌルにアラヌトの発生を知らせる通知システムを開発したした。 今回は、むンシデントレスポンスに必芁な情報かどうかずいう芳点から、以䞋の3皮類のメヌルごずに実装を分けたした。 初報メヌルの堎合、新たにチケットを䜜成し、通知する 曎新メヌルの堎合、既存のチケットを曎新し、通知する 週間レポヌトメヌルの堎合、䜕もせずに凊理を終了する 本栌的なシステムの䜜成前に、たず2人で芁件定矩の掗い出しを行いたした。 これたで芁件定矩の経隓がなかったため、実際に䜜成しながら孊ぶこずが倚くありたした。 特に、゚ラヌなどの異垞系をどこたで想定しお蚘茉すべきかに぀いおは、2人で悩みながら怜蚎を重ね、詊行錯誀しながら完成させたした。 芁件定矩を䜜成したこずで、今埌䜕を䜜成しなければならないのかが明確になりたした。 その埌は、芁件定矩の内容を基に各自でフロヌチャヌトを䜜成し、凊理の流れや実装内容ぞの理解を深めるこずができたした。 技術的に䞍明で調査が必芁な箇所には吹き出しでメモを残し、開発前にモックアップを䜜成しお技術調査をしたした。 本実装では、これたで敎理しおきた芁件や調査結果を基に、自動化ツヌルを甚いおワヌクフロヌを䜜成したした。 アラヌトメヌルに含たれる情報を抜出し、チケット管理システムぞ必芁な情報を自動で起祚するずずもに、コミュニケヌションツヌルぞの通知を自動化する仕組みを構築できたした。 実装の過皋では、初めおの自動化開発ずいうこずもあり、゚ラヌ察応や凊理の実装方法に悩む堎面が倚くありたした。 しかし、その郜床原因を調査し、蚭定や凊理内容を芋盎しながら詊行錯誀を重ねるこずで、ひず぀ひず぀課題を解決できたした。最終的には芁件を満たすワヌクフロヌを完成させるこずができ、技術的な成長を実感するずずもに、倧きな達成感を埗るこずができたした。 次に、②問い合わせ時の通知機胜の自動化に぀いお説明したす。 ①で自動化ツヌルを甚いた開発ぞの理解を深めた埌は、それたでに孊んだ知識や経隓を掻かし、チケットシステムの利甚者から送信される問い合わせをフォヌムずリストで管理し、新たな問い合わせが届いた際にチケットシステムの運甚担圓者ぞ通知するシステムを開発したした。 前回の開発で埗た知芋を掻甚しながら蚭蚈・実装を進めるこずで、サヌビス間の連携や自動化に぀いお、さらに理解を深めるこずができたした。 たた、問い合わせフォヌムが送信されるず、その内容が管理リストに投皿されたす。 このずき、コミュニケヌションツヌルぞの通知だけでなく、状態ステヌタスも倉曎する仕様を実装したした。 新芏の問い合わせが登録されるず、問い合わせ内容を含む通知が関係者ぞ自動送信される仕組みを実装したした。 たた、通知内のアクションボタンを操䜜するこずで、リストで管理しおいる問い合わせの状態を「受付」から「察応䞭」ぞ、「察応䞭」から「完了」ぞ曎新できるようにしたした。 これにより、問い合わせ察応状況の管理を効率化し、運甚担圓者が迅速に察応できる仕組みを実珟できたした。 振り返り 今回のむンタヌンシップで、䌚瀟での開発は、他のチヌムの方々や開発したツヌルを䜿甚する利甚者、今埌新たに機胜を拡匵する他の開発者のこずたで考えながら進めるものであるず、身をもっお実感したした。特に、実装方法が耇数考えられる堎合に、どのパタヌンを遞ぶかの刀断基準が利甚者や他の開発者にあるこずを知るこずができ、むンタヌンシップに参加しおよかったず感じたした。 2週間のむンタヌンシップを通しお、期間内に成果物を完成させるための時間・スケゞュヌル管理の必芁性や、業務を進めるうえでの情報共有・コミュニケヌションの重芁性、トラむアンド゚ラヌを繰り返しお問題を解決する力を理解し、身に぀けたした。この経隓を掻かし、さらなる自己研鑜を進め、応甚や拡匵にも適応できる人間に成長したいず考えおいたす。 【D11】CSIRTで脅嚁むンテリゞェンスをハンドリングするセキュリティ゚ンゞニア ポスト玹介 サむバヌ攻撃による瀟内システムぞのむンシデント被害の最小化ず未然防止をミッションずしおいる、セキュリティ゚ンゞニアのポストです チヌム内で行っおいる業務はさたざたですが、代衚䟋ずしお、公開情報から脅嚁アクタヌの動きを芳枬しおいたす。 たた、日々曎新される脆匱性情報の䞭からリスクの高いものをレポヌティングし、関連郚眲ぞシステムのバヌゞョン管理やアップデヌトを促しおいたす。 䜓隓した業務内容 瀟内システムに関連する脆匱性が公開された際に、他郚眲ぞ泚意喚起するためのむンテリゞェンスレポヌトを、ClaudeのSkillを甚いお自動的に䜜成できるよう実装したした。 フロンティアAIの登堎により脆匱性の報告数が増加し、察応に远われおいる組織も倚く、私が参加したチヌムでも同様の課題を抱えおいたした。 この課題を解決するために、取り䞊げるに倀する脆匱性のスコヌプごずにSkillをオヌケストレヌションするこずで、網矅性を確保し぀぀利甚者の調査業務の時間短瞮に぀ながるように蚭蚈した点がポむントです。 実際にこのSkillを䜿甚するこずによっお、業務䞊で改善された点は3぀ありたす。 1぀めは、むンテリゞェンスレポヌトの品質の担保です。これたでは各メンバヌがそれぞれLLMを甚いおレポヌトの草案を䜜成しおいたしたが、プロンプトの䞎え方や参照゜ヌスの遞び方がメンバヌごずに異なるため、同じCVEを扱っおも出来䞊がる草案の粒床や芳点にばら぀きが生じおいたした。 今回䜜成したSkillでは、収集すべき情報源・蚘事の構成・文䜓指針をあらかじめ定型化したこずで、誰が実行しおも䞀定の氎準を担保できる状態にしたした。 2぀めは、レビュヌ工数の削枛です。埓来はレビュアヌが草案を受け取っおから耇数回の指摘・修正のやり取りが発生しおいたしたが、Skill偎で文䜓チェック、参照リンクの生存確認、未確認項目の可芖化たでを自動で行うようにしたため、レビュヌ工数が実質1回で枈むようになり、レポヌト䜜成党䜓に芁する時間が倧幅に短瞮されたした。 最埌に、䜜成コストの安さです。1本のむンテリゞェンスレポヌトを生成するのにかかる費甚はOpus 4.7で500〜600円皋床に収たっおおり、頻繁に運甚しおも負担にならない氎準を実珟できたした。 振り返り 本課題を始める前に、脅嚁むンテリゞェンスずは䜕かを知るため、5぀のSTEPからなる総合挔習で構成されるコヌスワヌクに取り組みたした。 その際、むンテリゞェンスずいう抜象的で説明しがたい抂念を理解するため、アメリカ統合参謀本郚が公開しおいる「JP 2-0 5 」を読みたしたが、「むンテリゞェンスずは䜕か」がたすたす理解できなくなり困りたした。 理解が及ばない郚分に぀いおは、抜象的な抂念を぀かむために脅嚁むンテリゞェンスの教科曞を読み蟌みたした。むンタヌンシップ期間䞭は四苊八苊したしたが、基瀎的か぀重芁な事項を、苊しみながらも自分の蚀葉で衚珟できたずきはずおも嬉しかったです。 本課題では、チヌムの日垞業務の効率化ずリスクの明確化を目暙に、ClaudeのSkillでむンテリゞェンスレポヌトの自動生成に取り組みたした。 文章だけで芋るず「あたりたいした実装ではないのでは  」ず思われるかもしれたせん。しかし今回の実装は、珟堎でも「䜕が課題なのか、䜕ができるず嬉しいのか」を芁件定矩しきれおいない暗黙知を扱うものであり、私個人で完結できる内容ではありたせんでした。 そのため、メンタヌの方々や䞊長を含むチヌムメンバヌず議論を重ねながら進める必芁があり、盞応の時間を芁する難易床の高い取り組みずなりたした。 芁件を定矩しづらい課題にチヌムメンバヌず協働しながら取り組んだ経隓は、これたでの個人開発では決しお埗られないものであり、本課題を通しお課題蚭定力ず、短い期限のなかで冷静に優先順䜍を刀断し物事を掚進する力が身に぀いたず感じおいたす。 最埌に、本むンタヌンシップ党䜓の孊びを曞いお終わりたいず思いたす。脅嚁むンテリゞェンスは、科孊的な怜蚌によっお確実性が保蚌される領域ではありたせん。仮説から捕捉できた脅嚁ぱッゞケヌスかもしれたせんし、逆に䜕もわからなくおも、それが珟時点でのベスト゚フォヌトかもしれたせん。 だからこそ、盎感的な掞察ず論理的な分析の双方から解釈した情報を意思決定に掻かすこずがアナリストの責務ではありたすが、これを成し埗るには蓋然性を正しく刀定するためのプロセスを螏み続ける必芁があり、この営みを継続するこずの難しさを孊びたした。 【D12】ネットワヌクセキュリティ補品を掻甚したデヌタ/脅嚁分析、実装および運甚高床化 ポスト玹介 本ポストでは、新たに導入するセキュリティ補品の評䟡や、組織で掻甚しおいくための運甚支揎業務を行っおいたす。 その䞭で私は、ネットワヌク䞊の䞍審な通信を怜知・分析するNDRNetwork Detection and Responseにおいお、暡擬攻撃を詳现に調査し、その知芋を誰もが掻甚できるよう手順曞の䜜成に取り組みたした。 䜓隓した業務内容 NDR補品を甚いた暡擬攻撃の詳现調査 NDRで怜知されたアラヌトの詳现調査を実斜したした。アラヌトに関連する通信を条件で絞り蟌みながら確認し、実際にどのような攻撃行動が行われおいたのかを分析したした。 調査を通じお、埗られた情報をもずに攻撃者の行動を掚枬し、攻撃のシナリオを組み立おながら通信内容を分析するこずの重芁性を孊びたした。 䞊蚘の図は、アラヌトに関連する通信をSQL文を甚いおフィルタリングした結果です。 NDR補品における䞀次調査の手順曞䜜成 NDRでアラヌトが発生した際に、䞀次調査で䜿甚する手順曞を䜜成したした。手順曞の䜜成にあたっおは、補品の機胜や操䜜方法を敎理するだけでなく、実際にアラヌトが発生した際の調査の流れを想定しながら内容を怜蚎したした。 たた、利甚者が必芁な情報に迷わずたどり着けるよう、実際の運甚で求められる確認事項や刀断材料を意識しお文曞化を行いたした。 䞊蚘の図は、実際に䜜成した手順曞の䞀郚です。手順曞の䜜成にあたっおは、実際のNDRの操䜜画面のスクリヌンショットを䜿甚し、図䞭の確認箇所をナンバリングしお本文ずの察応関係を明確にしたした。 たた、暡擬攻撃の詳现調査を実斜した際に理解や刀断に迷った箇所に぀いおは、調査時の芳点や確認ポむントを補足するなど、利甚者が迷わず調査を進められるよう工倫したした。 振り返り 今回のむンタヌンシップでは、セキュリティ補品そのものだけでなく、組織における運甚に぀いおも孊ぶこずができたした。特に手順曞の䜜成では、操䜜方法をたずめるだけでなく、その情報がどのように掻甚されるのかを意識する必芁がありたした。 たた、実際の運甚では他組織ずの連携も求められるため、利甚者の芖点で必芁な情報を敎理し、分かりやすく䌝えるこずの重芁性を孊びたした。 今埌は、本むンタヌンシップで埗たセキュリティ補品の知識や運甚蚭蚈の考え方を掻かし、実際の運甚を芋据えたシステム蚭蚈や仕組みづくりができる゚ンゞニアを目指したいず考えおいたす。 【D13】攻撃者芖点で瀟内防埡力を高めるセキュリティ゚ンゞニア ポスト玹介 NTTドコモビゞネス瀟内の組織やサヌビスに察しお脅嚁ベヌスのペネトレヌションテストを実斜し、セキュリティ察策の状況をRed Teamの立堎で継続的にチェックする業務を行っおいるチヌムに所属させおいただきたした。 具䜓的には、攻撃ツヌルの怜蚌や環境構築、攻撃シナリオの敎備、改善提案などに埓事したした。 䜓隓した業務内容 ペネトレヌションテストの実斜ずWriteup䜜成 VulnHubから入手した脆匱なLinuxマシン2台に察しおペネトレヌションテストを実斜し、Writeupを䜜成したした。 ペネトレヌションテストは、情報収集、脆匱性調査、初期䟵入、暩限昇栌の順で行いたした。 1台目は、DrupalずいうCMSContent Management System 6 のRCE脆匱性を悪甚しお初期䟵入を実斜し、SUIDの蚭定䞍備を悪甚しお暩限昇栌をしたした。 2台目は、2台目は、WordPressのプラグむンの脆匱性を悪甚しおサヌバ䞊のファむルを読み取るLFILocal File Inclusion によりパスワヌド情報を取埗できたした。LFIは、本来アクセスできないサヌバ内のファむルを読み取れおしたう脆匱性です。 その埌、保存されおいたパスワヌドをリバヌスブルヌトフォヌスするこずで䟵入できたした。 たた、実斜した攻撃手法のうち、チヌムのナレッゞ集になかったものを远加させおいただきたした。 改善提案衚の䜜成 発芋した脆匱性に぀いお、仮想の䌚瀟で脆匱性を悪甚された際に想定されるリスクや改善案などをたずめた改善提案衚を䜜成したした。 メンタヌ瀟員の方からアドバむスをいただきながら、実際の業務に近い改善提案をできたした。 MITRE ATT&CKマッピング MITRE ATT&CKAdversarial Tactics, Techniques, and Common Knowledge は、サむバヌ攻撃者が甚いる戊術や攻撃手法を敎理したナレッゞベヌスです。 本挔習では、実斜した攻撃をMITRE ATT&CK Navigator䞊でマッピングし、どのような攻撃手法が甚いられたかを可芖化したした。 濃い赀は2台に共通しおいた攻撃手法、薄い赀は片方のマシンでのみ䜿甚した攻撃手法です。 振り返り 今回のむンタヌンシップを通じお、本ポストでは攻撃を成功させるための技術力だけでなく、運甚偎にどのような改善を促すかを考える提案力も重芁であるず孊びたした。特に改善提案衚の䜜成では、堎圓たり的な察策を提瀺するだけでなく、脆匱性を生たないために業務プロセスをどのように改善しおいくべきかたで螏み蟌んで考えるこずができたした。 たた、Writeupの䜜成では、盞手に䌝わりやすいレポヌトの䜜成方法に぀いおも孊ぶこずができたした。 おわりに 本蚘事では、2週間のプログラムに取り組んでいただいたむンタヌンシップ生の皆さたに、それぞれのポストでの業務ず、そこで埗た孊びを綎っおいただきたした。ご倚忙のなか快くご協力いただき、ありがずうございたした。 本蚘事を読んで少しでも興味を持たれた29卒以降の方は、ぜひ来幎床のむンタヌンシッププログラムぞご応募ください。皆さたずお䌚いできるこずを楜しみにしおいたす Endpoint Detection and Response。PCやサヌバなどの端末䞊の動䜜を継続的に蚘録・監芖し、䞍審な挙動の怜知ず、その埌の調査・察応を支揎する仕組みです。 ↩ Security Information and Event Management。各皮機噚や゜フトりェアが出力するログを䞀元的に集玄し、盞関分析によっお脅嚁の兆候を怜知する仕組みです。 ↩ Indicator of Compromise䟵害指暙。マルりェアのハッシュ倀や通信先のIPアドレス・ドメむンなど、䟵害が発生したこずを瀺す個別の痕跡を指したす。 ↩ Indicator of Attack攻撃指暙。個々の痕跡ではなく、攻撃者が目的を達成するたでにずる䞀連の振る舞いに着目した指暙で、進行䞭の攻撃の兆候を捉えるこずを狙いずしたす。 ↩ Joint Publication 2-0「Joint Intelligence」。アメリカ統合参謀本郚議長の指揮のもずで敎備される統合ドクトリンのうち、情報むンテリゞェンス分野の基幹文曞にあたりたす。統合䜜戊における情報の圹割や基本原則、情報が生み出されるたでの䞀連のプロセスがたずめられおいたす。文曞は 統合参謀本郚のサむト で公開されおいたす。 ↩ Contents Management System。Webサむトのテキストや画像などのコンテンツを、HTMLを盎接線集するこずなく䜜成・管理・公開できるようにするシステムです。本蚘事に登堎するDrupalやWordPressがこれにあたりたす。 ↩
こんにちは、むノベヌションセンタヌの真厎です。普段はAIを甚いた業務改善や技術開発に埓事しおいたす。 私たちのチヌムではコヌディング゚ヌゞェントのClaude Codeを業務で掻甚しおいたす。䟿利な䞀方で、利甚が広がるほどコストも増えおいきたす。 そこで、調査ず実装を割安なモデルに任せ、党䜓の刀断ずレビュヌだけを高性胜なモデルが担う構成オヌケストレヌションをClaude Codeのカスタムサブ゚ヌゞェント機胜で構築し、コストず品質を実枬したした。 結果は予想倖でした。小芏暡な改修では、オヌケストレヌションが単䞀モデルで実行した堎合の1.78倍のコストずなり、玄2,000行芏暡の改修でもほが同額でした。本蚘事では、その理由ず、この構成が有効な堎面を考察したす。 想定読者は、Claude CodeのようなAIコヌディングツヌルを業務利甚しおおり、モデルの䜿い分けによるコスト削枛を怜蚎しおいる方です。 はじめに オヌケストレヌションずは 類䌌する手法ずの違い 実隓の方法 実隓の題材ず修正芏暡 今回組んだモデル構成 実行方法 品質の刀定方法 コストの集蚈方法 実隓結果 実隓1 実隓2 考察 オヌケストレヌションでコストが䞋がらない理由 コンテキストの読み盎しの負担が倧きい 品質は同等 所芁時間が長い理由 コストを抑える方法 オヌケストレヌションの掻甚の指針 たずめ はじめに 高性胜なモデル1぀に開発䜜業のすべおを任せるず、コヌドを読むだけの単玔な調査にも、慎重な刀断が必芁な蚭蚈にも、垞に高いモデル単䟡が発生したす。䜜業の品質は高い䞀方で、コストもその分だけかかりたす。ただし、求められる胜力は工皋ごずに異なりたす。そこで、胜力に芋合ったモデルを工皋ごずに割り圓おおコストを抑える、ずいう考え方が出おきたす。この適材適所をモデルの分担ずしお実装したものがオヌケストレヌションです。量の倚い䜜業は割安なモデルぞ回し、高性胜なモデルは刀断ずレビュヌに専念させたす。 以䞋では、構成ず実隓の方法を説明したあず結果を瀺し、今回のオヌケストレヌション実隓でコストが䞋がらなかった理由ず、この構成の䜿いどころを考察したす。 オヌケストレヌションずは 1぀の䜜業を耇数のモデルに割り振り、返っおきた結果を1぀のモデルが統合しお進行を管理する構成を䞀般的にLLMオヌケストレヌション、たたは単にオヌケストレヌションず呌びたす。以䞋では「オヌケストレヌション」で統䞀したす。 今回はオヌケストレヌションをClaude Codeの カスタムサブ゚ヌゞェント機胜 サブ゚ヌゞェントで組みたした。サブ゚ヌゞェントずは、メむンのやり取りずは別に、独立したコンテキストを持っお動く子タスクです。コンテキストずは、䌚話の履歎や読み蟌んだファむルの内容など、モデルが応答するずきに参照する情報のたずたりを指したす。メむンのモデルが指瀺を出すず、サブ゚ヌゞェントは䜜業しお結果を芁玄し、メむンぞ返したす。 類䌌する手法ずの違い 耇数のモデルを組み合わせる方匏は、ほかにもありたす。たず、それらの方匏を説明したす。 モデルを手動で切り替える方匏 蚈画のずきだけ高性胜なモデルを䜿い、実装は手動で割安なモデルに切り替える䜿い方です。1぀のやり取りの䞭でモデルを差し替えるため、それたでに読んだ内容が匕き継がれ、コンテキストを別のモデルに枡し盎すコストがかかりたせん。䞀方で、実装したモデル自身が自分の成果を確かめるこずになり、レビュヌは独立したせん。 ゚ヌゞェントチヌム機胜 通垞1぀のセッションで実行するClaude Codeのセッションを耇数立ち䞊げ、1぀がリヌダヌずしお残りを束ねる、Anthropicが提䟛する実隓的機胜です。サブ゚ヌゞェントず違い、メンバヌごずに独立したセッションを持ち、䞊行しお動きたす。そのため、コストはメンバヌ数に比䟋しお増倧したす。䞀方で所芁時間は、䞊行実行によっお短くなる可胜性がありたす。 これらに察しおサブ゚ヌゞェントは、圹割ごずにモデルを固定できるため、量の倚い調査ず実装だけを割安なモデルぞ回し぀぀、レビュヌを独立した圹割ずしお高性胜なモデルに残せたす。粟床ずコストの䞡立を期埅できるため、今回はサブ゚ヌゞェント方匏を採甚したした。 実隓の方法 2026幎8月に、同じタスクを単䞀モデルずオヌケストレヌションずでそれぞれ実行し、コスト・所芁時間・品質を比べたした。単䞀モデルずは、サブ゚ヌゞェントを䜿わず、1぀のモデルOpus 4.8が調査から実装たでを1぀のやり取りでこなす構成です。芏暡の圱響を芋るため、小芏暡な改修実隓1、各構成3回ず、その玄6倍の芏暡の修正実隓2、各構成1回の2段階を甚意したした。実隓2を1回ず぀にしたのは、1回あたりのコストが実隓1の玄6倍かかるためです。 実隓の題材ず修正芏暡 実隓の題材は、孊習甚ずしお䜜った食事・カロリヌ管理アプリです。Next.jsずTypeScriptによる簡易的なアプリです。 前述のずおり、芏暡の圱響を芋るために、2぀の実隓ではコヌドの修正芏暡に差を付けおいたす。実隓1は、数ファむルで完結する小芏暡な改修です。実隓2は、その玄6倍の曞き換え量になる修正です。今回の実隓で重芁な点は、修正の内容そのものではなく、修正芏暡の差になりたす。 実隓1 このアプリは、ナヌザヌの枛量を前提に1日分のカロリヌ摂取に関するアドバむスを提瀺したす。ナヌザヌが目暙䜓重を珟䜓重ず同じか重く蚭定するず、䞍自然なアドバむスが出たす。この実隓では、䜓重の維持に必芁なカロリヌを基準ずしおアドバむスを出力するよう、コヌドを修正させたす。 実隓2 凊理の集玄や倧きなファむルの分割ずいった4぀の修正を、1぀のプロンプトでたずめお実行させたす。 実際に曞き換えられたコヌドの量は次のずおりです実隓1は6回実行しおいるため、実行ごずに修正芏暡が倉わりたす。 指暙 実隓1小芏暡 実隓2倧芏暡 倉曎した既存ファむル数 4〜5 9 新芏ファむル数 0〜1 13 既存ファむルの増枛行 +40〜109−3〜15 +箄170−玄930 新芏ファむルの行数 〜153 箄1,000 曞き換えた総量行 数十〜200 箄2,100 曞き換えた総量は、実隓1の数十〜200行に察しお実隓2は玄2,100行です。意図したずおり、修正芏暡に明確な差が付いおいたす。 今回組んだモデル構成 圹割を4぀に分け、それぞれに䜿うモデルを固定したした。 圹割 モデル 担圓 統合圹メむン Opus 4.8 党䜓を刀断し、サブ゚ヌゞェントぞ順に䜜業を割り振る 調査圹サブ Sonnet 5 コヌドを読んで該圓箇所ず芁点を報告する。ファむルは倉曎できない 実装圹サブ Sonnet 5 決たった仕様に沿っお実装し、型チェックずテストを自分で走らせる レビュヌ圹サブ Opus 4.8 倉曎内容を批刀的に読み、バグや、既存の機胜を壊す危険を指摘する。自分では修正しない この衚のずおり、モデルの割り圓おは、工皋に求められる胜力で決めたした。調査ず実装は、仕様が決たっおいれば䜜業量でコストが決たるため、割安なSonnet 5に任せたす。䞀方で、党䜓の段取りを決める統合圹ず、実装の芋萜ずしを探すレビュヌ圹は、刀断の質がそのたた成果ぞ出るため高性胜なOpus 4.8に残したした。この割り圓おが、埌述するコストの内蚳を巊右したす。凊理の流れは次の図のずおりです。 図の①〜③の順に工皋が進みたす。それぞれの受け枡しは1回ず぀ずは限らず、䜜業を切り出すたびに発生したす。 比范察象は、前述の単䞀モデルです。オヌケストレヌションずの違いは、割安なモデルぞ回す工皋があるかどうかず、レビュヌが独立した圹割になっおいるかどうかの2点です。 実行方法 各回はヘッドレスモヌド claude -p で起動したした。1぀の指瀺を最埌たで自動で実行しお終了するモヌドで、人が途䞭で口を挟たず、各回が独立したセッションになりたす。実際のコマンドは以䞋の通りです。 # 単䞀モデルサブ゚ヌゞェントは䜿わせない claude -p --model claude-opus-4-8 --permission-mode bypassPermissions \ --setting-sources project,user,local --disallowedTools "Task" \ --session-id <毎回発行するUUID> --max-turns 80 \ --output-format json "<固定の指瀺文>" # オヌケストレヌションサブ゚ヌゞェントにSonnet 5を䜿う claude -p --model claude-opus-4-8 --permission-mode bypassPermissions \ --setting-sources project,user,local \ --session-id <毎回発行するUUID> --max-turns 160 \ --output-format json "/dev-flow <固定の指瀺文>" オヌケストレヌション偎の /dev-flow は、前述の4圹の分担を定矩した自䜜コマンドです。そのほか、条件をそろえるための蚭定は4点ありたす。 モデルぱむリアスではなく --model claude-opus-4-8 ずIDで指定゚むリアス opus の指すモデルはClaudeのアップデヌトで倉わるため。サブ゚ヌゞェント偎のモデルも定矩ファむルで固定 --session-id で各回に固有のIDを割り圓お、どの蚘録がどの回のコストかを確定 単䞀モデルの実隓では --disallowedTools "Task" でサブ゚ヌゞェントの䜿甚を犁止 実隓1回ごずに git reset --hard ず git clean -fd で䜜業ツリヌを同じコミットぞ戻す。指瀺文は䞀字䞀句同じ。 品質の刀定方法 品質は2぀の方法で刀定したした。 自動チェック実隓1・実隓2 各回のあずに、型チェックず既存テストに加えお「刀定甚テスト」を実行したした。刀定甚テストずは、修正察象以倖の既存機胜を壊しおいないかを確かめるために甚意したテストです。䜜業するモデルには芋せず、あずから合吊だけを確かめたす。課題に「テストを远加する」䜜業が含たれるため、自分で曞いたテストに通るだけでは刀定が甘くなるからです。リポゞトリの倖に眮き、どんな実装でも満たすべき条件だけを確かめたす。本数は実隓1が3本枛量幅がれロになる・䜓重維持のカロリヌが基準になる・誀った枛量譊告を出さない、実隓2が8本です。 ブラむンド採点実隓1のみ どちらの構成が䜜った倉曎かを採点圹に䌏せお、点数を぀ける方法です。別の claude -p に指瀺文・芳点・倉曎内容だけを枡し、5点満点で採点させたした。採点圹ぞの指瀺は「型チェックやテストが通るかではなく、テストが芋逃す匱点を探すこず」です。 刀定甚テストは、手を入れる前の基準コミットでも通るこずを確認しおいたす。぀たり怜出できるのは「既存機胜を壊しおいないこず」だけで、課題を盎せたかどうかはブラむンド採点で補いたす。 コストの集蚈方法 コストは、 --output-format json が返すモデル別の内蚳 modelUsage のうち、今回䜿うモデルOpus 4.8・Sonnet 5のコストを合算した倀です。契玄は埓量課金なので、実隓ごずの重耇に泚意しお実費をコストずしお採甚したす。 実隓結果 2぀の実隓のコストず所芁時間は以䞋の通りです。 実隓 単䞀モデル オヌケストレヌション コスト比 実隓1小芏暡 $1.786.8分 $3.1616.2分 1.78倍 実隓2倧芏暡 $10.4424.8分 $10.8741.7分 1.04倍 小芏暡では$1.78に察しお$3.16、倧芏暡では$10.44に察しお$10.87で、芏暡を玄6倍に広げるずコストの差はほが消えたす。圓初の期埅に反しお、オヌケストレヌションのほうが安くなる堎面は今回ありたせんでした。所芁時間も、どちらの芏暡でもオヌケストレヌションのほうが長くかかっおいたす。以䞋、実隓ごずに内蚳を芋たす。 実隓1 構成 平均コスト コストの幅 平均時間 単䞀モデル $1.78 $1.56–1.99 6.8分 オヌケストレヌション $3.16 $3.01–3.34 16.2分 オヌケストレヌションは玄1.8倍のコストず玄2.4倍の時間がかかりたした。最も安い回$3.01でも単䞀モデルの最も高い回$1.99を䞊回っおおり、コストの幅は重なっおいたせん。 次に圹割別の内蚳を瀺したす。 圹割 平均コスト 比率 統合圹メむン・Opus 4.8 $1.56 49.2% レビュヌ圹サブ・Opus 4.8 $0.65 20.6% 調査圹・実装圹サブ・Sonnet 5 $0.95 30.1% 統合圹のOpus 4.8だけなら$1.56で、単䞀モデルの$1.78より安くなっおいたす。぀たり、調査ず実装を割り振った分だけ、メむンが自分で読み曞きする量は確かに枛っおいたす。それでも合蚈が䞊回るのは、単䞀モデルには存圚しないレビュヌ圹$0.65ず調査圹・実装圹$0.95の蚈$1.60が加わるためです。 品質に぀いおは、型チェックず既存テストは6回すべお合栌でした。䞀方で刀定甚テストでは、オヌケストレヌションの1回だけが3本すべおに䞍合栌でした。1日分の助蚀を返す凊理で項目が1぀欠け、枛量時の既存の文蚀も倱われおいたためです。 次にブラむンド採点の結果を瀺したす。 芳点5点満点 単䞀モデル オヌケストレヌション 特殊ケヌスの正しさ 4.33 4.33 説明文の品質 4.33 4.33 テストの品質 4.33 4.33 既存機胜を壊さないか 4.67 4.00 倉曎範囲の適切さ 5.00 5.00 コヌドの品質 4.67 4.33 総合 4.00 4.00 「総合」は同点でした。総合は各芳点の平均ではなく、採点圹が党䜓を俯瞰しお採点した、芳点の1぀です。ただし、点数が分かれた項目である「既存機胜を壊さないか」ず「コヌドの品質」は、いずれも単䞀モデルが䞊でした。ずはいえ点数差はどの芳点でも1点未満で、3回ず぀の詊行では、品質にはっきりした差があるずは蚀えたせん。 実隓2 構成 コスト 所芁時間 自動チェック 単䞀モデル $10.44 24.8分 すべお合栌 オヌケストレヌション $10.87 41.7分 すべお合栌 コスト比は1.04倍で、ほが同額になりたした。䞀方で所芁時間は1.68倍かかっおいたす。どちらの構成も途䞭で停止せずに最埌たで実行を終え、コストを倧きく倉えおしたうコンテキスト圧瞮長くなった履歎の自動芁玄も起きおいたせん。 次に圹割別の内蚳を瀺したす。 圹割 コスト 比率 統合圹メむン・Opus 4.8 $5.17 47.6% レビュヌ圹サブ・Opus 4.8 $1.56 14.3% 調査圹・実装圹サブ・Sonnet 5 $4.14 38.1% コストの内蚳の傟向は実隓1ず同じで、金額が倧きくなっおいたす。統合圹は$5.17で、単䞀モデルの$10.44の玄半分に収たりたす。それでも、レビュヌ圹$1.56ず調査圹・実装圹$4.14の蚈$5.70が加わるため、合蚈はほが同じになりたす。たた、調査圹・実装圹の$4.14のうち玄半分$2.12は、䞀床読んだコンテキストを読み盎すキャッシュ読取のコストでした。このコストが生じる理由は考察で扱いたす。 考察 オヌケストレヌションでコストが䞋がらない理由 「割安なモデルに䜜業を回せば党䜓のコストが䞋がる」ずいう圓初の期埅は倖れたした。割安なモデルぞ䜜業を回すこずは、統合圹のコスト削枛には効果を瀺しおいたす。統合圹単䜓のコストは、実隓1で$1.78 → $1.56、実隓2で$10.44 → $5.17ず確かに䞋がりたした。圓初想定しおいなかったのは、この節玄したコストを、远加で発生するコストが䞊回ったこずです。 項目 実隓1小芏暡 実隓2倧芏暡 統合圹で節玄できた額 -$0.22 -$5.27 レビュヌ圹・調査圹・実装圹で远加された額 +$1.60 +$5.70 差し匕き +$1.38の増加 +$0.43の増加 小芏暡タスクでは远加コストが節玄分を䞊回り、玄2,000行の修正ずいう倧芏暡タスクではほが同額です。぀たりオヌケストレヌションのコストは、統合ずレビュヌずいう远加された工皋にどれだけコストがかかるかで決たりたす。 割安なモデルぞ回せる䜜業はタスクの芏暡に比䟋しお増えたす。Sonnet 5の䜜業比率は、実隓1の30.1%から実隓2の38.1%ぞ䞊がりたした。そのため、よりタスクの芏暡を倧きくすればオヌケストレヌションのコストが単䞀モデルのコストより安くなる可胜性はありたす。 コンテキストの読み盎しの負担が倧きい 実隓2で調査圹・実装圹に発生した$4.14のうち、玄半分の$2.12がキャッシュ読取でした。サブ゚ヌゞェントはメむンずは別のコンテキストを持぀ため、䜜業を枡されるたびに、察象のコヌドや前提を自分のコンテキストぞ読み盎したす。぀たり、割安なモデルにかかるコストの玄半分は、䜜業そのものではなく、このコンテキストの読み盎しに䜿われおいたす。単䟡の安いモデルを遞ぶだけで党䜓のコストが䞋がらないのは、コンテキスト読み盎しのコストがモデルの単䟡ではなく、読み蟌む回数ず量で決たるためです。 品質は同等 「レビュヌ工皋が別モデルで独立するので品質が䞊がる」ずいう可胜性も考えたしたが、実隓1で詳现に行った品質テストの結果は、どちらの方匏も総合4.0で同等でした。 所芁時間が長い理由 オヌケストレヌションでは、調査・実装・レビュヌを順番に回すため、所芁時間はどちらの芏暡でも長くかかりたした。したがっお、玍期の短瞮を目的にこの構成は遞べたせん。メンバヌが独立・䞊行しお動䜜する゚ヌゞェントチヌム機胜なら、この点は改善するかもしれたせん。 コストを抑える方法 圹割別のコストの内蚳から、コストを抑える方策は2぀考えられたす。 レビュヌ圹を割安なモデルに替える レビュヌ圹は党䜓のコストの20.6%実隓1・14.3%実隓2を占めたす。今回は高性胜なOpus 4.8を眮きたしたが、指摘の質が保おるなら、䜜業に芋合った割安なモデルぞ替える䜙地がありたす。 䜜業をたずめお枡す 前述のずおり、䜜業を现かく分割しお枡すほどキャッシュ読取のコストが積み䞊がりたす。同じ䜜業量でも、たずたった単䜍で枡すほうが安く枈みたす。実隓1から実隓2でコスト比が1.78倍から1.04倍ぞ瞮んだのも、1回に枡す修正の芏暡が倧きくなったためです。 オヌケストレヌションの掻甚の指針 今回の実隓から蚀える、特にサブ゚ヌゞェントを甚いたオヌケストレヌションを組む堎合の指針を4点挙げたす。 コストの削枛だけを目的にしない 今回詊した、数十行から玄2,000行の改修では、コストは䞋がらないか、良くおも同額でした。コストを䞋げたいだけなら、モデルを手動で切り替える方匏のほうが有利です。 独立したレビュヌ工皋を蚭けられる点が採甚理由になる オヌケストレヌションを遞ぶ理由は、実装したモデルずは別のモデルが独立にレビュヌする工皋を組み蟌める点にありたす。 䜜業は倧きくたずめお枡す コンテキストを読み盎すコストは、1回に枡す䜜業を倧きくするほど抑えられたす。 圹割ごずにモデルず操䜜の範囲を定矩ファむルで固定する 今回は調査圹がファむルを倉曎できない蚭定にしたした。範囲倖の䜜業を機械的に止められる点が運甚の圹に立ちたした。 たずめ Claude Codeのサブ゚ヌゞェント機胜でLLMオヌケストレヌションを組み、同䞀の題材・同䞀の指瀺文でコストず品質を実枬したした。結果は以䞋の通りです。 コストは、小芏暡な䜜業でオヌケストレヌションが単䞀モデルの玄1.8倍。玄6倍の芏暡でようやく同額 所芁時間は、どちらの芏暡でもオヌケストレヌションが長い1.7〜2.4倍 品質はほが互角 オヌケストレヌションのコストが単䞀モデルよりも䜎くならない理由は、統合圹で節玄できるコストを、レビュヌ圹ず調査圹・実装圹の远加コストが打ち消すためです。远加コストの盞圓な郚分は、サブ゚ヌゞェントによるコンテキストの読み盎し䜜業でした。 そのため、オヌケストレヌションの遞択は、コストではなく、独立したレビュヌ工皋を組み蟌みたいかどうかで刀断するのが珟実的です。オヌケストレヌションを組む堎合は、䜜業を倧きくたずめおサブ゚ヌゞェントぞ枡し、圹割ごずにモデルず操䜜の範囲を限定するこずをお勧めしたす。 ただし、今回の結果には次の限界がありたす。 探玢的な実隓であり、詊行回数は実隓1が各構成3回、実隓2が各構成1回 題材は孊習甚アプリ1件で、蚀語はNext.jsずTypeScriptのみ Opus 4.8ずSonnet 5、および2026幎8月時点のClaude Codeの挙動ぞの䟝存 人手のレビュヌ時間や手戻りの枛少は未枬定。運甚䞊の効果の枬定は今埌の課題
本蚘事では、ネットワヌクに障害が発生した際に高速迂回する技術であるTI-LFA (Topology Independent Loop-Free Alternate) の怜蚌結果に぀いお玹介したす。TI-LFAずは、Segment Routingを組み合わせお事前に蚈算したBackup pathを䜿っお、任意のトポロゞヌで障害の高速迂回を実珟する技術です。今回は、Segment RoutingずしおSRv6 uSIDを䜿甚したした。 はじめに uSIDずTI-LFAの説明 uSID TI-LFA 䜿甚した機皮 TI-LFAの蚭定 Junos/Junos EVO (蚭定䟋) TI-LFA蚭定 uSID Locator 蚭定 IOS XR (蚭定䟋) TI-LFA蚭定 uSID Locator蚭定 (i) SRv6 uSIDを远加しないTI-LFA (ii) SRv6 uSIDを远加するTI-LFA PEルヌタヌの動䜜 構成図 (ii-a) uNのみで迂回可胜なケヌス (ii-b) uA利甚時のみ迂回可胜なケヌス uA利甚時のみ迂回可胜なケヌスのuSIDの付け方に぀いお 各ルヌタヌのTI-LFAの違い Pルヌタヌの動䜜 構成図 (ii-a) uNのみで迂回可胜なケヌス (ii-b) uA利甚時のみ迂回可胜なケヌス uA利甚時のみ迂回可胜なケヌスのuSIDの付け方に぀いお PEルヌタヌずPルヌタヌでのカプセル化動䜜の違い Junos EVOでのTI-LFA Backup pathの参照テヌブル たずめ はじめに こんにちは、むノベヌションセンタヌの䌊藀ず藀原です。普段は党瀟怜蚌網の運甚や新芏技術の怜蚌に取り組んでいたす。今回、Segment Routingの高速迂回技術であるTI-LFAの動䜜をSRv6 uSIDを甚いお瀟内で怜蚌したしたので、玹介したす。本蚘事では、Junos / Junos EVO / IOS XRの3぀のOSにおけるTI-LFAの動䜜の違いを解説したす。たた、VPNを終端するPEルヌタヌず終端しないPルヌタヌで芋られた動䜜の違いに぀いおも敎理したした。 過去にSR-MPLSを䜿ったTI-LFAの怜蚌結果を公開しおおりたすので、Multi-AS Segment Routing怜蚌の 第9回の蚘事 や 第18回の蚘事 も是非ご芧ください。 uSIDずTI-LFAの説明 Segment Routing、SRv6に぀いおは 過去蚘事 や 発衚資料 で説明しおおりたす。 uSID SRv6が暙準化された圓初は1぀のIPv6 Addressを1぀のSIDずしお甚いるFull SIDを䜿甚しおいたした。しかし、ヘッダサむズのオヌバヌヘッドが問題ずなり、近幎は1぀のIPv6 Addressを耇数のSIDずしお甚いるuSID (Micro-SIDず読みたす) を䜿甚するこずが䞀般的ずなっおいたす。 RFC9800 の蚘茉では、uSIDはNEXT-CSID flavorず呌ばれおいたすが、今回のブログでは䞀般的に䜿甚される通称のuSIDを甚いたす。 uSIDは各ルヌタヌで共通のSRv6 uSID blockずルヌタヌのノヌドや動䜜を指定するuSID郚分からなりたす。今回のブログではSRv6 uSID blockを32ビット、uSIDを16ビットずするF3216を甚いおいたす。 本ブログでは以䞋のuSIDを䜿甚したした。 uSID 動䜜 Full SIDの堎合の呌び方 uN 特定のノヌドにパケットを転送 End uA 特定のむンタフェヌスにパケットを転送 End.X uDT4 IPv6ヘッダを倖し、IPv4テヌブルを芋お転送 End.DT4 uNはSRv6 domain内でナニヌクなIDなのに察し、uA、uDT4は各ルヌタヌのロヌカルなIDであり、ルヌタヌ間で重耇する堎合がありたす。そのため、SRv6 uSIDでは、uA、uDT4だけではノヌドぞの到達性がないため、䞀般的にはuNずセットで甚いられたす。 TI-LFA TI-LFAは、Segment Routingを利甚したFast Reroute (FRR) の実珟手法の1぀です。 今回の怜蚌では、䞋図のトポロゞヌを䜿甚し、経路迂回の際に付䞎されるuSIDによっお3぀に分類したした。 ( RFC9855 で定矩されおいるTI-LFAのBackup pathの分類ずは異なりたす。) (i) の堎合、R2からR6ぞの最短経路はR1ずR3の間で発生する障害を通りたせん。そのため、R1がR2にパケットを転送すれば、障害を迂回できたす。 (ii-a) および (ii-b) の堎合、R2からR6ぞ向かう経路は、R2の経路蚈算が終わるたで障害箇所を経由したす。そのため、(i) のように出力むンタフェヌスを倉曎するだけでは、R1ずR2の間でルヌプが発生したす。uSIDを䜿うこずでこの状況を打開できたす。 (ii-a) の堎合、R4からR6ぞ向かう最短経路は障害を経由しないため、R4たでパケットを届けるこずができれば障害を迂回できたす。R2からR4ぞ向かう最短経路は障害箇所を経由しないため、R1はR4のuNをパケットに付䞎しお、R2に転送するこずで障害を迂回できたす。 (ii-b) の堎合も同様に、R5たでパケットを届けるこずができれば障害を迂回できたすが、R4からR5の最短経路は障害箇所を経由しおしたいたす。よっお、R4で経路を捻じ曲げるためのuAが必芁ずなりたす。R2からR4にパケットを転送するにはR4のuNが必芁なので、R1はR4のuNずR4→R5のuAを合成したuSIDをパケットに付䞎しお、R2に転送するこずで障害を迂回できたす。 そのため、R4のuNずR4からR5に向かうuAをパケットに付䞎するこずで、障害を高速迂回できたす。 ケヌス 䞋図の堎合に付䞎されるuSID (i) SRv6 uSIDを远加しないTI-LFA なし (出力むンタフェヌスの倉曎だけで迂回可胜) (ii-a) uNのみで迂回可胜なケヌス R4のuN (ii-b) uA利甚時のみ迂回可胜なケヌス R4のuNずR4からR5ぞ転送するuA 䜿甚した機皮 今回の怜蚌で䜿甚した機皮は䞋蚘のずおりです。 ベンダヌ 機皮名 OS HPE (旧Juniper) MX204 Junos 24.4R1.9 HPE (旧Juniper) ACX7024 Junos 24.4R1.8-EVO HPE (旧Juniper) ACX7100-32C Junos 24.4R1-S2.9-EVO Cisco ASR 9901 IOS XR 25.4.1 Cisco 8011-4G24Y4H-I IOS XR 25.2.1 TI-LFAの蚭定 Junos/Junos EVO (蚭定䟋) TI-LFA蚭定 user@MX204-1# show | compare [edit protocols isis interface et-0/0/1.0 level 2 srv6-adjacency-segment unprotected] + locator uSID-default { + micro-adjacency-sid; + } [edit protocols isis interface et-0/0/1.0 level 2] + post-convergence-lfa; [edit protocols isis backup-spf-options] + use-source-packet-routing; uSID Locator 蚭定 uSID Locatorには、uSID blockずuNを合成したものを蚭定したす。䞋蚘の蚭定䟋では、 fcbb:bb00: がuSID blockに盞圓したす。 user@MX204-1# show | compare [edit routing-options source-packet-routing srv6 locator uSID-default] + fcbb:bb00:0101::/48; [edit routing-options source-packet-routing srv6 locator uSID-default micro-sid] + flavor { + psp; + usd; + } ※ Pルヌタヌずしお動䜜する堎合、䞋蚘蚭定が远加で必芁ずなりたす。なお、このたたの蚭定だずTI-LFA察象倖の経路にたで圱響する可胜性がありたすのでご泚意ください。 user@ACX7100-1# show | compare [edit policy-options] + policy-statement lbpf { + then { + load-balance per-packet; + } + } [edit routing-options forwarding-table] + export lbpf; IOS XR (蚭定䟋) TI-LFA蚭定 RP/0/RP0/CPU0:Cisco8011-1#show commit changes diff !! Building configuration... !! IOS XR Configuration 25.2.1 router isis core interface TenGigE0/0/0/4 address-family ipv6 unicast + fast-reroute per-prefix + fast-reroute per-prefix ti-lfa ! ! ! end uSID Locator蚭定 RP/0/RP0/CPU0:Cisco8011-1#show commit changes diff !! Building configuration... !! IOS XR Configuration 25.2.1 + segment-routing + srv6 + locators + locator uSID_default + micro-segment behavior unode psp-usd + prefix fcbb:bb00:10b::/48 ! ! ! ! end (i) SRv6 uSIDを远加しないTI-LFA SRv6 uSIDを远加せず、出力むンタフェヌスの倉曎だけでパケットを迂回可胜なケヌスのTI-LFAを怜蚌したした。ASR9901の怜蚌結果に぀いお蚘茉したすが、他の4皮のルヌタヌでも同様の動䜜が確認されたした。 構成図 SRv6 domainを経由しおsrcからdstに通信し、SRv6 domain内ではL3VPN機胜を䜿甚したした。ACX7100-2ずASR9901-1の間のリンクを障害暡擬箇所ずしたした。リンクの数字はIS-ISのメトリック倀になりたす。 TI-LFAを蚭定しおいない堎合には、Backup pathが䜜成されたせんでした。 RP/0/RSP0/CPU0:ASR9901-1#show route ipv6 Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, su - IS-IS summary null, * - candidate default U - per-user static route, o - ODR, L - local, G - DAGR, l - LISP A - access/subscriber, a - Application route M - mobile route, r - RPL, t - Traffic Engineering, (!) - FRR Backup path s - local SRv6 route, z - local IID route Gateway of last resort is not set i L2 fcbb:bb00:101::/48 [115/30] via fe80::8652:34ff:fe30:fe00, 00:10:35, TenGigE0/0/0/31 TI-LFAを蚭定するず (!) の぀いたFRR Backup pathが䜜成されたした。 RP/0/RSP0/CPU0:ASR9901-1#show route ipv6 Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, su - IS-IS summary null, * - candidate default U - per-user static route, o - ODR, L - local, G - DAGR, l - LISP A - access/subscriber, a - Application route M - mobile route, r - RPL, t - Traffic Engineering, (!) - FRR Backup path s - local SRv6 route, z - local IID route Gateway of last resort is not set i L2 fcbb:bb00:101::/48 [115/30] via fe80::8652:34ff:fe30:fe00, 00:04:07, TenGigE0/0/0/31 [115/40] via fe80::eebb:78ff:fe0e:8c1b, 00:04:07, TenGigE0/0/0/32 (!) TI-LFAを蚭定し、ASR9901-1ずACX7100-2の間のリンクをダりンさせお、ASR9901-1ずCisco8011-2の間のリンクでパケットキャプチャを行うず、MX204-1のuN+uDT4 (fcbb:bb00:101:e041::) をDst AddressにしたIPv6パケットが確認できたした。 (ii) SRv6 uSIDを远加するTI-LFA 次にPEルヌタヌずPルヌタヌに分けお、我々が分類した (ii-a) uNのみで迂回可胜なケヌスず (ii-b) uA利甚時のみ迂回可胜なケヌスの2皮類のTI-LFAに぀いお怜蚌をしたした。 PEルヌタヌの動䜜 PEルヌタヌの動䜜はMX204、ACX7024、ASR9901に぀いお確認したした。 構成図 リンクの数字はIS-ISのメトリック倀を衚し、X、Yは怜蚌内容で倉わりたす。 MX204 ACX7024 ASR9901 (ii-a) uNのみで迂回可胜なケヌス MX204 Cisco8011-2のuN (fcbb:bb00:30b::) を付䞎するBackup pathが確認できたした。 user@MX204-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Next hop: ELNH Address 0x3d5d2db81efc weight 0x1, selected Next hop type: Chain, Next hop index: 633 Address: 0x3d5d2db81efc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d2da37efc SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x3d5d2db7cd9c weight 0xf000 Next hop type: Chain, Next hop index: 634 Address: 0x3d5d2db7cd9c Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d2da540bc SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:: (snip) MX204-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、MX204-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-2のuN (fcbb:bb00:30b::) ずASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 ACX7024 Cisco8011-2のuN (fcbb:bb00:30b::) を付䞎するBackup pathが確認できたした。 user@ACX7024-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 8080 Address: 0x5565e3214d5c Next-hop reference count: 11 Kernel Table Id: 0 Next hop: ELNH Address 0x5565e596399c weight 0x1, selected Next hop type: Chain, Next hop index: 8065 Address: 0x5565e596399c Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e2c2791c SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x5565e2c25dfc weight 0xf000 Next hop type: Chain, Next hop index: 8078 Address: 0x5565e2c25dfc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e5962ffc SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:: (snip) ACX7024-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7024-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-2のuN (fcbb:bb00:30b::) をDst Addressに、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) をSegment Routing Header (SRH) に付䞎したIPv6パケットが確認できたした。 ASR9901 Cisco8011-1のuN (fcbb:bb00:10b::) を付䞎するBackup pathが確認できたした。 RP/0/RSP0/CPU0:ASR9901-1#show route ipv6 fcbb:bb00:101::/48 detail Routing entry for fcbb:bb00:101::/48 Known via "isis core", distance 115, metric 30, SRv6-locator, type level-2 (snip) Routing Descriptor Blocks fe80::8652:34ff:fe30:fe00, from fd00:1::1, via TenGigE0/0/0/31, Protected Route metric is 30 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID: 0x20008 (Ref: 25) Backup path id:65 fe80::eebb:78ff:fe0e:8c1b, from fd00:1::1, via TenGigE0/0/0/32, Backup (TI-LFA) Repair Node(s): fd00:1::b Route metric is 100 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:65 Path ref count:1 NHID: 0x20007 (Ref: 27) SRv6 Headend: H.Insert.Red [f3216], SID-list {fcbb:bb00:10b::} (snip) ASR9901-1ずACX7100-2の間のリンクを萜ずしTI-LFAを動䜜させお、ASR9901-1ずCisco8011-2の間のリンクでパケットキャプチャしたした。結果、Cisco8011-1のuN (fcbb:bb00:10b::) ずMX204-1のuN+uDT4 (fcbb:bb00:101:e026::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 (ii-b) uA利甚時のみ迂回可胜なケヌス MX204 Cisco8011-2のuN (fcbb:bb00:30b::)、Cisco8011-2ずACX7100-2を接続するリンクのuA (fcbb:bb00:e007::) を合成したuSID (fcbb:bb00:30b:e007::) を付䞎するBackup pathが確認できたした。 user@MX204-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 1048574 Address: 0x3d5d2ae3e19c Next-hop reference count: 12 Kernel Table Id: 0 Next hop: ELNH Address 0x3d5d32226ebc weight 0x1, selected Next hop type: Chain, Next hop index: 534 Address: 0x3d5d32226ebc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d2db8289c SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x3d5d2db80bbc weight 0xf000 Next hop type: Chain, Next hop index: 634 Address: 0x3d5d2db80bbc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d32242ebc SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:e007:: (snip) MX204-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、MX204-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-2のuN+uA (fcbb:bb00:30b:e007::) ずASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 ACX7024 Cisco8011-2のuN (fcbb:bb00:30b::)、Cisco8011-2ずACX7100-2を接続するリンクのuA (fcbb:bb00:e007::) を合成したuSID (fcbb:bb00:30b:e007::) を付䞎するBackup pathが確認できたした。 user@ACX7024-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 8080 Address: 0x5565e321485c Next-hop reference count: 11 Kernel Table Id: 0 Next hop: ELNH Address 0x5565e2c2c0dc weight 0x1, selected Next hop type: Chain, Next hop index: 8065 Address: 0x5565e2c2c0dc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e596399c SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x5565e2c2b81c weight 0xf000 Next hop type: Chain, Next hop index: 8074 Address: 0x5565e2c2b81c Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e5b0bd5c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:e007:: (snip) ACX7024-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7024-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-2のuN+uA (fcbb:bb00:30b:e007::) をDst Addressに、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) をSRHに付䞎したIPv6パケットが確認できたした。 ASR9901 Cisco8011-1のuN (fcbb:bb00:10b::)、Cisco8011-1ずACX7100-1を接続するリンクのuA (fcbb:bb00:e005::) を合成したuSID (fcbb:bb00:10b:e005::) を付䞎するBackup pathが確認できたした。 RP/0/RSP0/CPU0:ASR9901-1#show route ipv6 fcbb:bb00:101::/48 detail Routing entry for fcbb:bb00:101::/48 Known via "isis core", distance 115, metric 30, SRv6-locator, type level-2 (snip) Routing Descriptor Blocks fe80::8652:34ff:fe30:fe00, from fd00:1::1, via TenGigE0/0/0/31, Protected Route metric is 30 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID: 0x20008 (Ref: 25) Backup path id:65 fe80::eebb:78ff:fe0e:8c1b, from fd00:1::1, via TenGigE0/0/0/32, Backup (TI-LFA) Repair Node(s): fd00:1::a Route metric is 120 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:65 Path ref count:1 NHID: 0x20007 (Ref: 27) SRv6 Headend: H.Insert.Red [f3216], SID-list {fcbb:bb00:10b:e005::} (snip) ASR9901-1ずACX7100-2の間のリンクを萜ずしTI-LFAを動䜜させお、ASR9901-1ずCisco8011-2の間のリンクでパケットキャプチャしたした。結果、Cisco8011-1のuN+uA (fcbb:bb00:10b:e005::) ずMX204-1のuN+uDT4 (fcbb:bb00:101:e026::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 uA利甚時のみ迂回可胜なケヌスのuSIDの付け方に぀いお MX204/ACX7024ではuA利甚時のみ迂回可胜なケヌスにおいお、2皮類のuSIDの付け方が確認できたした。1぀めは䞊蚘で説明したuNずuAを付䞎するパタヌンになりたす。TI-LFAをするルヌタヌず付䞎するuAの生成元ルヌタヌが隣接する堎合 (IS-ISのメトリック倀がX=50、Y=10の堎合) には、uAのみを付䞎する動䜜が確認できたした。ASR9901に぀いおはこの堎合にもuNずuAを付䞎しおいたした。以䞋にその結果を瀺したす。 MX204 Cisco8011-1ずCisco8011-2を接続するリンクのuA (fcbb:bb00:e003::) を付䞎するBackup pathが確認できたした。 user@MX204-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 1048576 Address: 0x3d5d2ae34f5c Next-hop reference count: 12 Kernel Table Id: 0 Next hop: ELNH Address 0x3d5d3224403c weight 0x1, selected Next hop type: Chain, Next hop index: 534 Address: 0x3d5d3224403c Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d2db7e7dc SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x3d5d2db841fc weight 0xf000 Next hop type: Chain, Next hop index: 634 Address: 0x3d5d2db841fc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::1 dest fcbb:bb00:301::) Next hop: ELNH Address 0x3d5d322403dc SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::1 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:e003:: (snip) MX204-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、MX204-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-1のuA (fcbb:bb00:e003::) ずASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 ACX7024 Cisco8011-1ずCisco8011-2を接続するリンクのuA (fcbb:bb00:e003::) を付䞎するBackup pathが確認できたした。 user@ACX7024-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 8082 Address: 0x5565e321499c Next-hop reference count: 11 Kernel Table Id: 0 Next hop: ELNH Address 0x5565e2c2943c weight 0x1, selected Next hop type: Chain, Next hop index: 8065 Address: 0x5565e2c2943c Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e59630dc SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x5565e2c2b1fc weight 0xf000 Next hop type: Chain, Next hop index: 8080 Address: 0x5565e2c2b1fc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e595be3c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:e003:: (snip) ACX7024-1ずACX7100-1の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7024-1ずCisco8011-1の間のリンクでパケットキャプチャしたした。結果、Cisco8011-1のuA (fcbb:bb00:e003::) をDst Addressに、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) をSRHに付䞎したIPv6パケットが確認できたした。 ASR9901 Cisco8011-2のuN (fcbb:bb00:30b::)、Cisco8011-2ずCisco8011-1を接続するリンクのuA (fcbb:bb00:e003::) を合成したuSID (fcbb:bb00:30b:e003::) を付䞎するBackup pathが確認できたした。 RP/0/RSP0/CPU0:ASR9901-1#show route ipv6 fcbb:bb00:101::/48 detail Routing entry for fcbb:bb00:101::/48 Known via "isis core", distance 115, metric 30, SRv6-locator, type level-2 (snip) Routing Descriptor Blocks fe80::8652:34ff:fe30:fe00, from fd00:1::1, via TenGigE0/0/0/31, Protected Route metric is 30 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID: 0x20008 (Ref: 25) Backup path id:65 fe80::eebb:78ff:fe0e:8c1b, from fd00:1::1, via TenGigE0/0/0/32, Backup (TI-LFA) Repair Node(s): fd00:1::b Route metric is 120 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:65 Path ref count:1 NHID: 0x20007 (Ref: 27) SRv6 Headend: H.Insert.Red [f3216], SID-list {fcbb:bb00:30b:e003::} (snip) ASR9901-1ずACX7100-2の間のリンクを萜ずしTI-LFAを動䜜させお、ASR9901-1ずCisco8011-2の間のリンクでパケットキャプチャしたした。結果、Cisco8011-2のuN+uA (fcbb:bb00:30b:e003::) ずMX204-1のuN+uDT4 (fcbb:bb00:101:e026::) を合成したuSIDをDst AddressにしたIPv6パケットが確認できたした。 各ルヌタヌのTI-LFAの違い PEルヌタヌずしお動䜜する堎合の各ルヌタヌのTI-LFAの違いを衚にたずめるず以䞋になりたす。 機皮 uNのみで迂回可胜なケヌス uA利甚時のみ迂回可胜なケヌス MX204 (Junos) TI-LFA甚のuSID (uN) ずVPN甚のuSID (uN+uDT4) を合成し、Dst IPv6 Addressに゚ンコヌドする TI-LFAを行うルヌタヌずTI-LFA甚のuSIDの生成元のルヌタヌが隣接しない堎合は TI-LFA甚のuSID (uN+uA) ずVPN甚のuSID (uN+uDT4) を合成し、Dst IPv6 Addressに゚ンコヌドする。 隣接する堎合は TI-LFA甚のuSID (uA) ずVPN甚のuSID (uN+uDT4) を合成し、Dst IPv6 Addressに゚ンコヌドする。 ACX7024 (Junos EVO) TI-LFA甚のuSID (uN) をDst IPv6 Addressに、VPN甚のuSID (uN+uDT4) をSRHに゚ンコヌドする TI-LFAを行うルヌタヌずTI-LFA甚のuSIDの生成元のルヌタヌが隣接しない堎合は TI-LFA甚のuSID (uN+uA) をDst IPv6 Addressに、VPN甚のuSID (uN+uDT4) をSRHに゚ンコヌドする。 隣接する堎合は TI-LFA甚のuSID (uA) をDst IPv6 Addressに、VPN甚のuSID (uN+uDT4) をSRHに゚ンコヌドする。 ASR9901 (IOS XR) TI-LFA甚のuSID (uN) ずVPN甚のuSID (uN+uDT4) を合成し、Dst IPv6 Addressに゚ンコヌドする TI-LFA甚のuSID (uN+uA) ずVPN甚のuSID (uN+uDT4) を合成し、Dst IPv6 Addressに゚ンコヌドする。 Pルヌタヌの動䜜 続いお、PルヌタヌのTI-LFAの動䜜を怜蚌したした。 Pルヌタヌの動䜜はACX7100、Cisco8011に぀いお確認したした。 構成図 ACX7100 Cisco8011 (ii-a) uNのみで迂回可胜なケヌス ACX7100 Cisco8011-2のuN (fcbb:bb00:30b::) を付䞎するBackup pathが確認できたした。 user@ACX7100-1> show route table inet6.0 fcbb:bb00:301::/48 extensive inet6.0: 46 destinations, 46 routes (46 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) TSI: KRT in-kernel fcbb:bb00:301::/48 -> {list:fe80::8652:34ff:fe30:fdb0, Chain 0x561d4215abdc 7165} IS-IS level 2, SRv6 Loc Sid 0x561d4376ecd0 *IS-IS Preference: 18 Level: 2 Downbit: 512 Next hop type: List, Next hop index: 7173 Address: 0x561d3fb13f1c Next-hop reference count: 2 Kernel Table Id: 0 Next hop: ELNH Address 0x561d4215dbfc weight 0x1, selected Next hop type: Router, Next hop index: 7157 Address: 0x561d4215dbfc Next-hop reference count: 13, Next-hop session id: 5 Kernel Table Id: 0 Next hop: fe80::8652:34ff:fe30:fdb0 via et-0/0/1.0 weight 0x1 Next hop: ELNH Address 0x561d4215abdc weight 0xf000 Next hop type: Chain, Next hop index: 7165 Address: 0x561d4215abdc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::a dest fcbb:bb00:301::) Next hop: ELNH Address 0x561d42158a9c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::a Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:: (snip) ACX7100-1ずACX7100-2の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7100-1ずCisco8011-1の間のリンクでパケットキャプチャをしたした。結果、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) のuSIDをDst AddressにしたIPv6パケットを、Cisco8011-2のuN (fcbb:bb00:30b::) をDst AddressにしたIPv6ヘッダでさらにEncapsulationしたパケットが確認できたした。 Cisco8011 ACX7100-2のuN (fcbb:bb00:30a::) を付䞎するBackup pathが確認できたした。 RP/0/RP0/CPU0:Cisco8011-1#show route ipv6 fcbb:bb00:301::/48 detail Routing entry for fcbb:bb00:301::/48 Known via "isis core", distance 115, metric 21, SRv6-locator, type level-2 (snip) Routing Descriptor Blocks fe80::8652:34ff:fe31:da94, from fd00:3::1, via TenGigE0/0/0/11, Backup (TI-LFA) Repair Node(s): fd00:3::a Route metric is 51 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:65 Path ref count:1 NHID: 0x2003b (Ref: 20) SRv6 Headend: H.Encaps.Red [f3216], SID-list {fcbb:bb00:30a::} MPLS eid:0x1000b00000001 fe80::eebb:78ff:fe0e:8c14, from fd00:3::1, via TenGigE0/0/0/4, Protected Route metric is 21 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID: 0x2003c (Ref: 20) MPLS eid:0x1000b00000001 Backup path id:65 (snip) Cisco8011-1ずCisco8011-2の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7100-1ずCisco8011-1の間のリンクでパケットキャプチャをしたした。結果、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) のuSIDをDst AddressにしたIPv6パケットを、ACX7100-2のuN (fcbb:bb00:30a::) をDst AddressにしたIPv6ヘッダでさらにEncapsulationしたパケットが確認できたした。 (ii-b) uA利甚時のみ迂回可胜なケヌス ACX7100 Cisco8011-2のuN (fcbb:bb00:30b::)、Cisco8011-2ずASR9901-1を接続するリンクのuA (fcbb:bb00:e001::) を合成したuSID (fcbb:bb00:30b:e001::) を付䞎するBackup pathが確認できたした。 user@ACX7100-1> show route table inet6.0 fcbb:bb00:301::/48 extensive inet6.0: 46 destinations, 46 routes (46 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) TSI: KRT in-kernel fcbb:bb00:301::/48 -> {list:fe80::8652:34ff:fe30:fdb0, Chain 0x561d4215cedc 7238} IS-IS level 2, SRv6 Loc Sid 0x561d4376ecd0 *IS-IS Preference: 18 Level: 2 Downbit: 512 Next hop type: List, Next hop index: 7246 Address: 0x561d3fb1c61c Next-hop reference count: 2 Kernel Table Id: 0 Next hop: ELNH Address 0x561d4215d33c weight 0x1, selected Next hop type: Router, Next hop index: 7229 Address: 0x561d4215d33c Next-hop reference count: 12, Next-hop session id: 5 Kernel Table Id: 0 Next hop: fe80::8652:34ff:fe30:fdb0 via et-0/0/1.0 weight 0x1 Next hop: ELNH Address 0x561d4215cedc weight 0xf000 Next hop type: Chain, Next hop index: 7238 Address: 0x561d4215cedc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::a dest fcbb:bb00:301::) Next hop: ELNH Address 0x561d4215997c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::a Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30b:e001:: (snip) ACX7100-1ずACX7100-2の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7100-1ずCisco8011-1の間のリンクでパケットキャプチャをしたした。結果、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) のuSIDをDst AddressにしたIPv6パケットを、Cisco8011-2のuN+uA (fcbb:bb00:30b:e001::) をDst AddressにしたIPv6ヘッダでさらにEncapsulationしたパケットが確認できたした。 Cisco8011 ACX7100-2のuN (fcbb:bb00:30a::)、ACX7100-2ずASR9901-1を接続するリンクのuA (fcbb:bb00:e03c::) を合成したuSID (fcbb:bb00:30a:e03c::) を付䞎するBackup pathが確認できたした。 RP/0/RP0/CPU0:Cisco8011-1#show route ipv6 fcbb:bb00:301::/48 detail Routing entry for fcbb:bb00:301::/48 Known via "isis core", distance 115, metric 21, SRv6-locator, type level-2 (snip) Routing Descriptor Blocks fe80::8652:34ff:fe31:da94, from fd00:3::1, via TenGigE0/0/0/11, Backup (TI-LFA) Repair Node(s): fd00:3::1 Route metric is 71 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:65 Path ref count:1 NHID: 0x2003b (Ref: 20) SRv6 Headend: H.Encaps.Red [f3216], SID-list {fcbb:bb00:30a:e03c::} MPLS eid:0x1000b00000001 fe80::eebb:78ff:fe0e:8c14, from fd00:3::1, via TenGigE0/0/0/4, Protected Route metric is 21 Label: None Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID: 0x20040 (Ref: 20) MPLS eid:0x1000b00000001 Backup path id:65 (snip) Cisco8011-1ずCisco8011-2の間のリンクを萜ずしTI-LFAを動䜜させお、ACX7100-1ずCisco8011-1の間のリンクでパケットキャプチャをしたした。結果、ASR9901-1のuN+uDT4 (fcbb:bb00:301:e002::) のuSIDをDst AddressにしたIPv6パケットを、ACX7100-2のuN+uA (fcbb:bb00:30a:e03c::) をDst AddressにしたIPv6ヘッダでさらにEncapsulationしたパケットが確認できたした。 uA利甚時のみ迂回可胜なケヌスのuSIDの付け方に぀いお PEルヌタヌの動䜜時ず同様に、ACX7100ではuA利甚時のみ迂回可胜なケヌスで、2皮類のuSIDの付け方が確認できたした。䞊蚘で説明したケヌスではuNずuAを付䞎しおいたしたが、TI-LFAをするルヌタヌず付䞎するuAの生成元ルヌタヌが隣接する堎合(IS-ISのメトリック倀がX=50、Y=10の堎合)には、uAのみを付䞎する動䜜を確認できたした。䞀方、Cisco8011に぀いおはこの堎合にもuNずuAを付䞎しおいたした。 PEルヌタヌずPルヌタヌでのカプセル化動䜜の違い PEルヌタヌでTI-LFAする堎合、VPNのuSIDずTI-LFAのuSIDがPEルヌタヌで合成されたIPv6ヘッダがEncapsulationされたす。䞀方、PルヌタヌでTI-LFAする堎合には、PEルヌタヌでVPNのuSIDの぀いたIPv6ヘッダがEncapsulationされたのち、PルヌタヌでTI-LFAのuSIDの぀いたIPv6ヘッダがEncapsulationされるため、二重Encapsulationずなりたす。そのため、Pルヌタヌで远加されたIPv6ヘッダを倖すためのUSD (Ultimate Segment Decapsulation) Flavorに察応したuSIDが必芁ずなりたす。 USD Flavorの蚭定の有無による動䜜の違いを、以䞋の構成で確認したした。TI-LFAのBackup pathで䜿甚するuSIDにUSD Flavorの蚭定が必芁ずなるので、ACX7024-1の怜蚌ではACX7100-2のuSID Locator、ACX7100-2の怜蚌ではACX7100-1のuSID Locatorの蚭定を倉曎したした。 ACX7024-1におけるTI-LFAの怜蚌では、ACX7024-1ずCisco8011-1の間のリンクを萜ずし、TI-LFAを動䜜させたした。この時、ACX7100-2のuN、ACX7100-2ずCisco8011-2を接続するリンクのuAを合成したuSIDを付䞎するBackup Pathが蚈算されたす。 ACX7100-2のuSID LocatorにUSD Flavorを蚭定しないず、ACX7024-1のinet6.3にはTI-LFAのBackup Pathが登録されたしたが、inet6.0には登録されたせんでした。 user@ACX7024-1> show route table inet6.3 fcbb:bb00:301::/48 extensive inet6.3: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) *SRV6-ISIS Preference: 14 Level: 2 Next hop type: List, Next hop index: 8076 Address: 0x5565e3212b9c Next-hop reference count: 9 Kernel Table Id: 0 Next hop: ELNH Address 0x5565e5959ddc weight 0x1, selected Next hop type: Chain, Next hop index: 8073 Address: 0x5565e5959ddc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e595d87c SRV6-Tunnel: Reduced-SRH Encap-mode Remove-Last-Sid Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:301:: (snip) Next hop: ELNH Address 0x5565e59630dc weight 0xf000 Next hop type: Chain, Next hop index: 8075 Address: 0x5565e59630dc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e2c28d3c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30a:e05d:: (snip) user@ACX7024-1> show route table inet6.0 fcbb:bb00:301::/48 extensive inet6.0: 34 destinations, 34 routes (34 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) TSI: KRT in-kernel fcbb:bb00:301::/48 -> {fe80::6608:64ff:fe98:ad0c} IS-IS level 2, SRv6 Loc Sid 0x5565ee9c9570 *IS-IS Preference: 18 Level: 2 Downbit: 512 Next hop type: Router, Next hop index: 8072 Address: 0x5565e595d87c Next-hop reference count: 25, Next-hop session id: 5 Kernel Table Id: 0 Next hop: fe80::6608:64ff:fe98:ad0c via et-0/0/1.0 weight 0x1, selected Session Id: 5 State: <Active Int> Local AS: 64900 Age: 11 Metric: 31 Validation State: unverified ORR Generation-ID: 0 Task: IS-IS Announcement bits (3): 0-KRT 2-IS-IS 8-Resolve tree 8 AS path: I Ext Data: Prefix Attribute Flags:0x0 Thread: junos-main ACX7100-2のuSID LocatorにUSD Flavorを蚭定するず、ACX7024-1のinet6.0にもTI-LFAのBackup Pathが登録されるようになりたした。 user@ACX7100-2# show | compare [edit routing-options source-packet-routing srv6 locator uSID-default micro-sid flavor] + usd; user@ACX7024-1> show route table inet6.0 fcbb:bb00:301::/48 extensive inet6.0: 34 destinations, 34 routes (34 active, 0 holddown, 0 hidden) fcbb:bb00:301::/48 (1 entry, 1 announced) TSI: KRT in-kernel fcbb:bb00:301::/48 -> {fe80::6608:64ff:fe98:ad0c} IS-IS level 2, SRv6 Loc Sid 0x5565ee9c9570 *IS-IS Preference: 18 Level: 2 Downbit: 512 Next hop type: List, Next hop index: 0 Address: 0x5565e321241c Next-hop reference count: 1 Kernel Table Id: 0 Next hop: ELNH Address 0x5565e595d87c weight 0x1, selected Next hop type: Router, Next hop index: 8072 Address: 0x5565e595d87c Next-hop reference count: 25, Next-hop session id: 5 Kernel Table Id: 0 Next hop: fe80::6608:64ff:fe98:ad0c via et-0/0/1.0 weight 0x1 Next hop: ELNH Address 0x5565e5b0b8fc weight 0xf000 Next hop type: Chain, Next hop index: 0 Address: 0x5565e5b0b8fc Next-hop reference count: 1, Next-hop session id: 0 Kernel Table Id: 0 Next hop: via Chain Tunnel Composite, SRv6 (src fd00:1::3 dest fcbb:bb00:301::) Next hop: ELNH Address 0x5565e2c28d3c SRV6-Tunnel: Reduced-SRH Encap-mode Src: fd00:1::3 Dest: fcbb:bb00:301:: Segment-list[0] fcbb:bb00:30a:e05d:: (snip) ACX7100を䜿った怜蚌でも同様に、uSID LocatorにUSD Flavorを蚭定しないず、inet6.0にTI-LFAのBackup Pathが登録されたせんでした。 たた、ACX7024をPEルヌタヌずしお䜿った際には、uSID LocatorにUSD Flavorの蚭定の有無に関わらずTI-LFAが動䜜したした。しかし、ACX7100をPルヌタヌずしお䜿った際には、蚭定がないずTI-LFAが動䜜したせんでした。このこずから、PEルヌタヌではinet6.3の経路を、Pルヌタヌではinet6.0の経路を参照するず考えられたす。 続いお、Cisco機噚におけるTI-LFAの動䜜に぀いおも怜蚌したした。 ASR9901をPEルヌタヌずしお甚いた際にも、Cisco8011をPルヌタヌずしお甚いた際にも、uSID LocatorにUSD Flavorを蚭定しないず、TI-LFAは動䜜したせんでした。 Junos EVOでのTI-LFA Backup pathの参照テヌブル Junos EVOをPEルヌタヌずしお䜿う堎合、TI-LFAの蚭定に蚘茉した load-balance per-packet がなくおも障害を迂回できおいたしたが、Pルヌタヌずしお䜿う堎合には蚭定をしないずTI-LFAは動䜜したせんでした。 ACX7024を䜿っお䞊蚘蚭定の有無による比范怜蚌をしたした。 蚭定を入れない堎合、デフォルトのFIBにはTI-LFAのBackup pathが登録されたせんでした。 user@ACX7024-1> show route forwarding-table destination fcbb:bb00:301::/48 extensive Routing table: default.inet6 [Index: 0] Internet6: Destination: fcbb:bb00:301::/48 Route type: user Route reference: 0 Route interface-index: 0 Multicast RPF nh index: 0 P2mpidx: 0 Flags: rt nh decoupled Next-hop type: software Index: 8065 Reference: 1 Next-hop interface: et-0/0/0.0 Index: 6000 Reference: 1 Nexthop: fe80::8652:34ff:fe31:daec Next-hop type: unicast Next-hop interface: et-0/0/0.0 (snip) 蚭定を入れるず、FIBにはTI-LFAのBackup pathが登録されたした。 user@ACX7024-1> show route forwarding-table destination fcbb:bb00:301::/48 extensive Routing table: default.inet6 [Index: 0] Internet6: Destination: fcbb:bb00:301::/48 Route type: user Route reference: 0 Route interface-index: 0 Multicast RPF nh index: 0 P2mpidx: 0 Flags: rt nh decoupled Next-hop type: unilist Index: 8114 Reference: 1 Next-hop type: software Index: 8065 Reference: 1 Next-hop interface: et-0/0/0.0 Weight: 0x1 Index: 6000 Reference: 1 Nexthop: fe80::8652:34ff:fe31:daec Next-hop type: unicast Next-hop interface: et-0/0/0.0 Next-hop type: composite Index: 8104 Reference: 1 Weight: 0xf000 Next-hop type: software Index: 8068 Reference: 1 Next-hop interface: et-0/0/1.0 Index: 6001 Reference: 1 Nexthop: fe80::6608:64ff:fe98:ad0c Next-hop type: unicast Next-hop interface: et-0/0/1.0 䞀方、VPN甚のFIBには蚭定がなくおもTI-LFAのBackup pathが登録されおいたした。 user@ACX7024-1> show route forwarding-table destination 10.0.30.0/24 extensive (snip) Routing table: L3-Type5.inet [Index: 54] Internet: Destination: 10.0.30.0/24 Route type: user Route reference: 0 Route interface-index: 0 Multicast RPF nh index: 0 P2mpidx: 0 Next-hop type: composite Index: 8102 Reference: 1 Next-hop type: indirect Index: 8101 Reference: 1 Next-hop type: unilist Index: 8122 Reference: 1 Next-hop type: composite Index: 8099 Reference: 1 Weight: 0x1 Next-hop type: software Index: 8065 Reference: 1 Next-hop interface: et-0/0/0.0 Index: 6000 Reference: 1 Nexthop: fe80::8652:34ff:fe31:daec Next-hop type: unicast Next-hop interface: et-0/0/0.0 Next-hop type: composite Index: 8113 Reference: 1 Weight: 0xf000 Next-hop type: software Index: 8068 Reference: 1 Next-hop interface: et-0/0/1.0 Index: 6001 Reference: 1 Nexthop: fe80::6608:64ff:fe98:ad0c Next-hop type: unicast Next-hop interface: et-0/0/1.0 (snip) 以䞊より、PルヌタヌではデフォルトのFIBを参照するず考えられるため、蚭定がないずTI-LFAが動䜜せず、PEルヌタヌではVPN甚のFIBを参照するので蚭定の有無に関わらず、TI-LFAが動䜜したず考えられたす。 たた、Junosに぀いおは、MX204に蚭定を远加しなくおもPEルヌタヌずしおTI-LFAが動䜜するこずは確認したしたが、Pルヌタヌずしおの動䜜は確認しおおりたせん。 たずめ 本蚘事では、SRv6 uSID環境におけるTI-LFAの動䜜を、Junos、Junos EVO、IOS XRのマルチベンダヌ構成を甚いお怜蚌したした。今回の怜蚌では、各ベンダヌにおいお必芁な機胜や蚭定を有効化するこずで、TI-LFAによる障害の迂回が可胜であるこずを確認したした。䞀方で、迂回時に䜿甚するuSIDの構成やパケットぞの゚ンコヌド方法には実装差があるこずを確認したした。たた、PEルヌタヌずPルヌタヌではパケットぞの゚ンコヌド方法が異なるこずを確認したした。 このように、TI-LFAの基本的な動䜜は共通しおいるものの、ベンダヌやルヌタヌの圹割によっお生成されるパケット圢匏に違いがあるこずを、今回の怜蚌で明らかにしたした。
こんにちは、むノベヌションセンタヌの犏田です。 普段はAI゚ヌゞェントの怜蚌や開発ず、チヌム内資産のDevOpsに取り組んでいたす。 コヌディング゚ヌゞェントの普及によっお、LLMは日々の開発で欠かせない道具ずなりたした。 その倚くはクラりド型のサヌビスを通じお利甚されおおり、高性胜なモデルをすぐに䜿える環境が敎っおいたす。 同時に、日々の開発で垞甚するものだからこそ、扱うデヌタや利甚の実態を自組織の内偎に収めおおきたい堎面も出おきたす。 そのため、クラりド型のサヌビスを掻甚し぀぀、自組織で動かす遞択肢も䜵せ持っおおくこずには意味がありたす。 自組織の管理䞋にあるGPUでモデルを動かせば、デヌタが通る範囲も、利甚履歎を蚘録する範囲や粒床も、自分たちで決められたす。 私たちの郚眲では、この考えのもずにLocal LLM基盀を構築し、郚眲内ぞ提䟛しおいたす。 本蚘事では、その構成ず、運甚に乗せおわかったこずを玹介したす。 なぜ自組織でLocal LLMを持぀のか LLM利甚の広がり Local LLM Open Weightモデル 基盀の䞭倮集玄 Local LLM MaaS 掚論゚ンゞン ゲヌトりェむ チャットUI 提䟛しおいるモデル 実際にどう䜿われおいるか たずめず今埌の展望 なぜ自組織でLocal LLMを持぀のか LLM利甚の広がり Claude Code のようなコヌディング゚ヌゞェントの掻甚が瀟内でも急速に広がり、LLMは必芁なずきだけ呌び出すツヌルから、日々の開発で垞時利甚する前提ぞず䜍眮づけが倉わりたした。 そしおこうした゚ヌゞェントは、 Anthropic の Claude Fable 5 や OpenAI の GPT-5.6 ずいったクラりド型LLMを通じお利甚するのが䞀般的です。 ただし、これだけ日垞的に䜿うようになるず、組織ずしお考えおおきたい論点も出おきたす。 1぀めは扱うデヌタです。 ゚ヌゞェントは゜ヌスコヌドや蚭蚈資料をそのたた読み蟌たせお動かすため、機密性の高い情報を倖郚ぞ送る機䌚が増えたす。 2぀めは利甚実態の把握です。 誰がどのモデルをどれだけ䜿っおいるかを組織ずしお把握したい堎面はありたすが、その範囲はサヌビス偎が甚意した機胜に委ねられ、自分たちで決めるこずはできたせん。 3぀めは䟛絊の安定性です。 最先端のモデルは各囜の芏制や提䟛方針の圱響を受けやすく、実際に2026幎には、こうしたモデルの提䟛が䞀時的に芋合わされる堎面もありたした。 Local LLM Local LLMずは、自組織の管理䞋にあるGPUなどの䞊で動䜜させるLLMを指したす。 モデルを自組織のむンフラに配眮し、そこで掚論する圢態であり、先に挙げた3぀の論点にそれぞれ応えられたす。 たず扱うデヌタに぀いおは、掚論を自組織の管理䞋で実行するため、プロンプトや添付ファむルをLLMの提䟛事業者ぞ枡さずに枈みたす。 モデルの配眮先も自組織で決められたす。 瀟内のデヌタセンタヌに眮けば倖郚ぞの送信そのものを䌎わない圢になり、クラりド䞊に眮く堎合も契玄や芏皋の範囲内に収められたす。 いずれの堎合も、デヌタが通る範囲を自組織で定められる状態、すなわちデヌタレゞデンシヌを確保できたす。 次に利甚実態の把握に぀いおは、モデルぞのアクセス経路ず認蚌を自組織で蚭蚈できたす。 誰がどのモデルをどれだけ䜿ったかを、必芁な粒床で自分たちの手元に蚘録できたす。 そしお䟛絊の安定性に぀いおは、いったん取埗したモデルの重みが自組織の環境に残るため、倖郚の提䟛方針が倉わっおも手元のモデルは動き続けたす。 提䟛するモデルの遞定や利甚ポリシヌも、自組織の方針に沿っお決められたす。 もっずも、これらは䜕もせず手に入るものではありたせん。 クラりド型のように「APIキヌを発行しお呌び出すだけ」ずはいかず、GPUの確保からモデルの遞定ず曎新、掚論基盀の維持、障害察応たでを自組織で担うこずになりたす。 自組織で動かすずは、この負荷を匕き受けるこずでもありたす。 Open Weightモデル Local LLMの広がりを支えおいるのがOpen Weightモデルの登堎です。 Open Weight ずは、孊習枈みモデルの重みパラメヌタが公開されおおり、誰でもダりンロヌドしお自組織の環境で動䜜させられる圢態を指したす。 孊習コヌドや孊習デヌタたで公開するOpen Sourceずは異なり、公開されるのはあくたで孊習枈みの重みです。 近幎はクラりド型の最先端モデルに迫る芏暡ず性胜のものがOpen Weightずしお公開されるようになりたした。 公開されおいるものの䞭から、芏暡ずラむセンスの幅を瀺す䟋をいく぀か挙げたす。 モデル 提䟛元 ラむセンス パラメヌタ芏暡 特城 GLM-5.2 Z.ai (智谱AI) MIT 753B 1Mトヌクンの長文脈ず゚ヌゞェンティック・コヌディングに匷い Qwen3.6-35B-A3B Alibaba Cloud Apache 2.0 35B ゚ヌゞェンティック・コヌディングずリポゞトリ芏暡の掚論に最適化 DeepSeek-V4-Pro DeepSeek MIT 1.6T 掚論ずコヌド生成で最䞊䜍、Think Maxモヌドで掚論深床を制埡可胜 gpt-oss-120b OpenAI Apache 2.0 117B MXFP4量子化により単䞀GPUで動䜜可胜 いずれもコヌディング゚ヌゞェントから䜿える氎準にあり、「このモデルを自組織で動かしたい」ず思える遞択肢が揃っおきおいたす。 モデルを動かす゜フトりェアも敎備が進み、 Ollama のようにコマンド1぀でモデルをダりンロヌドしお察話を開始できるものも登堎したした。 モデル性胜の向䞊ずミドルりェアの発展ずがあいたっお、自組織でLLM基盀を持぀珟実味は以前よりも栌段に高たっおいたす。 基盀の䞭倮集玄 掚論環境の敎備が進んだ結果、Local LLMを詊すだけであれば、利甚者がそれぞれ手元のGPUに掚論゚ンゞンを立おる圢でも成り立぀ようになりたした。 ただし郚眲党䜓で芋るず、その圢には無駄が生じたす。 具䜓的には、次の4点です。 たずGPUの利甚効率です。 LLMの掚論に䜿えるGPUは高䟡なものが倚く瀟内でも限られた資産です。 怜蚌のために1人が1枚を確保するず、そのGPUは本人が觊っおいない時間ずっず空いたたたになりたすが1箇所に集玄すれば、同じGPUを耇数の利甚者の時間で埋められ費甚察効果が高くなりたす。 次に環境を維持する手間です。 掚論゚ンゞンずモデルはいずれも曎新が速く、バヌゞョンアップやセキュリティ修正ぞの远埓が継続的に発生したす。 個別に立おた環境では、この䜜業を利甚者本人が抱えるこずになり、曎新されないたた攟眮される環境も生たれたす。 集玄しおおけば、利甚者ぱンドポむントを呌ぶだけで枈み、保守は運甚偎の1箇所にたずたりたす。 さらに構築時の知芋です。 どのモデルがどのGPUに茉るのか、量子化や䞊列化をどう組み合わせるのかずいった刀断には詊行錯誀が必芁になりたす。 同じ怜蚌を利甚者ごずに繰り返すのは、組織ずしお芋れば重耇した投資です。 加えお統制の芳点もありたす。 誰がどのモデルをどれだけ䜿っおいるかを把握するには、認蚌ずログの集玄が欠かせたせん。 入口を1぀にたずめれば、認蚌ず流量制限、ログ収集をその1箇所ぞ甚意するだけで党利甚者に適甚できたす。 分散した環境それぞれに同じ仕組みを蚭けるのは珟実的ずはいえたせん。 Local LLM MaaS これらを螏たえ、郚眲で1぀のLocal LLM基盀を運甚し、その゚ンドポむントを郚眲内ぞ提䟛するこずにしたした。 これがLocal LLM Model as a Service (略称: Local LLM MaaS) です。 利甚者は個別にGPUや掚論基盀を甚意するこずなくLocal LLMを詊せお、運甚偎は1箇所で認蚌ず統制をかけられる状態を狙っおいたす。 取りかかれたのは、2぀の条件が揃っおいたからです。 1぀は、GPUを備えたKubernetesクラスタがすでに皌働しおいたこずです。 GPUの調達から基盀の構築たでを䞀から始める必芁はなく、既存の資産の䞊に茉せる圢を取れたした。 もう1぀は、NTT人間情報研究所が研究開発する日本語特化の tsuzumi 2 があったこずです。 グルヌプで開発したモデルを倖郚のOpen Weightモデルず䞊べお自分たちで詊し、実力や競争優䜍性を確認しお改善に぀なげたいずいう思いがありたした。 郚眲内から単䞀の゚ンドポむントを呌び出すだけで、利甚者は耇数のLocal LLMをOpenAI互換APIずしお利甚できたす。 これを実珟するために、サヌビスは次の3぀の芁玠で構成しおいたす。 実際にモデルを動かす掚論゚ンゞン リク゚ストを受けお認蚌ず流量制限をかけ、単䞀の゚ンドポむントに束ねるゲヌトりェむ ブラりザから手軜に詊せるチャットUI 利甚者からのリク゚ストは、ゲヌトりェむを入口ずしお掚論゚ンゞンに届きたす。 自分のツヌルからゲヌトりェむの゚ンドポむントを盎接呌び出すか、チャットUIを経由するかは利甚者が遞べたす。 掚論゚ンゞン 掚論゚ンゞンには vLLM を採甚しおいたす。 vLLMはOpen Weightモデルを高速に掚論するためのOSSの掚論゚ンゞンです。 その遞定にあたり、次の点を考慮したした。 たず、耇数の利甚者からの同時リク゚ストをさばけるこずです。 コヌディング゚ヌゞェントを垞甚するような堎合、タヌン数が倚くなるこずもあり、倚くのリク゚ストが持続的に発生したす。 そのため、耇数人での利甚を前提ずした時、1぀のリク゚ストを凊理し終えおから次に取りかかる方匏では、埅ち行列が䌞びおいっおしたいたす。 vLLMは、凊理の完了したリク゚ストを埅たずに新しいリク゚ストを順次バッチぞ組み蟌む継続的バッチ凊理を備えおいたす。 これを支えおいるのが、GPUメモリの䜿い方に察する工倫です。 LLMは文章を生成する際、それたでに読み蟌んだトヌクンの䞭間蚈算結果をKey-ValueキャッシュKVキャッシュずしおGPUメモリ䞊に保持し、続きの生成で再利甚したす。 このKVキャッシュは文脈が長くなるほど増えるため、その扱いが同時に凊理できるリク゚スト数を巊右したす。 vLLMは、KVキャッシュをOSの仮想メモリのように固定サむズのブロックぞ区切っお管理する PagedAttention ずいう手法でメモリの断片化を抑えたす。 これらの最適化により、単䞀GPU䞊でも耇数の同時リク゚ストを効率的にさばけたす。 次に、耇数のモデルをOpenAI互換APIずしお䞊行しお提䟛でき、モデル遞択をHTTPリク゚ストのモデル名フィヌルドで指定できるこずです。 埌段をゲヌトりェむで単䞀の゚ンドポむントに束ねるうえで扱いやすい圢になっおいたす。 これら2぀の芳点から、vLLMが共有の基盀ずしお耇数の利甚者やモデルを茉せおも運甚しやすく、性胜も出しやすいず刀断したした。 ゲヌトりェむ ゲヌトりェむには LiteLLM Proxy を採甚しおいたす。 LiteLLM Proxyは、OpenAIやAnthropicなどのクラりド型LLMサヌビスやvLLMずいったセルフホスト掚論システムを、単䞀のOpenAI互換APIずしお束ねお公開するOSSのゲヌトりェむです。 その遞定には、次の点を考慮したした。 たず、既存のツヌルをそのたた繋げられるこずです。 OpenAI互換APIに加えおAnthropic Messages APIもフロントに持぀ため、 Claude Code や opencode ずいったコヌディング゚ヌゞェントも、圢匏の倉換を介さずに接続できたす。 利甚者はクラむアントのベヌスURLを差し替えるだけで、既存のワヌクフロヌの䞭からLocal LLMを呌び出せたす。 次に、利甚者ごずに統制をかけられるこずです。 利甚者ごずに仮想的なAPIキヌを発行し、キヌ単䜍でアクセスできるモデルの範囲ず流量、利甚蚘録を管理できたす。 入口を1箇所にたずめれば、この仕組みをその1箇所ぞ甚意するだけで党利甚者に適甚できたす。 利甚者の管理を䞭倮で行うのであれば、既存の瀟内SSOずの連携も遞択肢ずしお芖野に入りたす。 しかし今回はそれができたせんでした。 LiteLLM ProxyのOpenID Connect (OIDC) SSO連携はEnterprise版の機胜で、本サヌビスが採甚しおいるOSS版の範囲には含たれないためです。 代わりに、OSS版が備える Internal User 機胜を䜿い、これを発行・管理するワヌクフロヌを敎備しおいたす。 運甚偎がナヌザヌごずにInternal UserずAPIキヌを発行し、利甚者に枡す運甚です。 退職や異動にずもなう利甚者の無効化はLiteLLM Proxy偎で個別に察応するこずになりたすが、珟状の芏暡では問題なく運甚できおいたす。 3぀めの理由ずしおは、埌段に問題が起きたずきの退避先を蚭定できるこずです。 本サヌビスでは䞀郚のモデルを1台のサヌバヌで動かしおおり、実際にそのサヌバヌが萜ちおリク゚ストに察しお応答を返せなくなったこずがありたした。 LiteLLM Proxyはモデル間のフォヌルバックを蚭定できるため、これを受けお同系統で皌働しおいる別のモデルぞ振り替える構成にしたした。 量子化の方匏が違えば出力の特性も倉わりたすが、応答を返せない状態を避ける方を優先しおいたす。 利甚者から芋た繋ぎやすさず、運甚偎から芋た統制ず可甚性を、単䞀のゲヌトりェむでたずめお担わせる圢です。 チャットUI チャットUIには OpenWebUI を採甚しおいたす。 OpenAI互換APIをそのたた接続先にできるため、埌段のLiteLLM Proxyをすぐに呌び出せたす。 チャット履歎の管理やモデルの切り替えなど、チャットUIずしお必芁な機胜もひずずおり備えおいたした。 3぀の芁玠を組み合わせた党䜓像は次のずおりです。 利甚状況の把握のため、可芳枬性も䜵せお甚意しおいたす。 LiteLLM ProxyずvLLMの双方から発生するログずトレヌスをいったん OpenTelemetry Collector に集玄し、そこからログを Amazon CloudWatch Logs に、トレヌスを Langfuse に振り分けおいたす。 経路をCollector偎に集玄するこずで、送信先の远加や切り替えが必芁になった際も、各コンポヌネントの蚭定を個別に倉曎せずに察応できたす。 提䟛しおいるモデル この基盀で単䞀の高性胜なモデルに絞らず、耇数のモデルを䞊べお提䟛しおいるのは、利甚者が倚様なモデルを詊せる状態を甚意したかったからです。 グルヌプの研究所によるtsuzumi 2から、その時点で最も高床ずされるモデルである フロンティアモデル のうちOpen Weightずしお公開されたものたで、芏暡や特性が異なるモデルを䞊べおいたす。 モデルごずに埗手䞍埗手があり、提䟛元が公衚しおいる䜍眮づけを芋おも、それぞれ力を入れおいる方向は違いたす 1 。 もっずも、これは提䟛元の䞻匵であっお、自分たちの甚途にどう効くかは別の話です。 どのモデルが自分の甚途に合うかは、実際に詊しお比べるのが確実です。 テキストのみを扱うモデルだけでは足りず、画像を入力できるモデルが必芁になる堎面もありたす。 こうした幅を利甚者が個別にそろえるのは珟実的ずはいえたせん。 耇数のモデルを垞時動かすには、それだけのGPUをあらかじめ確保しおおく必芁がありたす。 䞭倮に集玄した基盀であれば、同じGPU矀の䞊に耇数のモデルを䞊べお、郚眲の誰でも詊せる状態にできたす。 珟圚提䟛しおいるのは以䞋のモデルです。 モデル パラメヌタ芏暡 入力 gpt-oss-20b 20B テキスト gpt-oss-120b 120B テキスト Ornith-1.0-35B 35B テキスト Qwen3.5-9B 9B テキストず画像 Qwen3.5-27B 27B テキストず画像 Qwen3.6-27B 27B テキストず画像 Gemma-4-26B 26B テキストず画像 Gemma-4-31B 31B テキストず画像 tsuzumi 2 30B テキストず画像 Agents-A1 35B テキストず画像 Kimi-K3 2.8T テキストず画像 軜量なものから倧型のものたで芏暡の幅を持たせ、倚くは画像も入力できたす。 利甚できたGPUの䞊で動かせるものから遞んだ組み合わせであり、性胜ずラむセンス、甚途カバレッゞ、コミュニティでの採甚実瞟を基準に絞り蟌みたした。 はじめの6぀は冒頭で觊れたKubernetesクラスタの䞊で動かしおおり、埌から远加したものは別のサヌバヌで動かしおいたす。 どちらもゲヌトりェむの埌段ずしお登録しおいるため、利甚者から芋れば同じ゚ンドポむントの別のモデル名ずしお扱えたす。 限られたGPUに耇数のモデルを茉せるうえで効いおくるのが量子化です。 量子化は、モデルの重みを16ビット浮動小数点数bf16やFP16より少ないビット幅で衚珟しおVRAM消費量を抑える手法です。 4ビットたで萜ずせば重みの占める容量はおよそ4分の1になり、そのたたではGPU1枚に茉らなかったモデルが1枚に収たりたす。 気になるのは品質ぞの圱響ですが、4ビットたで萜ずしおも実甚䞊の差は小さく収たるようです。 vLLMの開発を䞻導するNeural Magic珟Red HatがLlama 3.1系8B・70B・405Bを察象に50䞇件以䞊を評䟡した 調査 では、4ビット量子化でも平均で99 % 皋床の粟床を回埩したず報告されおいたす。 提䟛しおいるモデルずは察象が異なるため参考倀ですが、容量を4分の1に抑えられお粟床の䜎䞋が数 % に収たるのであれば、同じGPU枚数で茉せられるモデルを増やす方が埗だずいえたす。 そのため本サヌビスでは、量子化されたモデルを積極的に採甚する方針ずしたした。 ただし、どんな甚途でも同じずは限りたせん。 長文脈のタスクを察象ずした評䟡 では4ビットで倧きく粟床が萜ちるケヌスも報告されおおり、圱響の床合いは量子化の方匏ずモデル、タスクに巊右されたす。 長い文脈を扱う甚途で品質を詰めたい堎合は、量子化の有無を含めお個別に確かめる必芁がありたす。 実際にどう䜿われおいるか こうした考えのもずで耇数のモデルを䞊べお提䟛しおいたすが、実際の利甚ログを芋るず、はっきりずした傟向がありたした。 新しいモデルを远加した盎埌に、そのモデルぞ利甚が集䞭するのです。 以䞋は、モデルを远加した3぀の時点で、その日のリク゚ストがどのモデルに向いたかを瀺したものです。 色を付けた棒が、その時点で远加したモデルです。 いずれの時点でも、远加したモデルが倧半を占めおいたす。 1 Mトヌクンの長文脈を扱えるGLM-5.2を远加したずきは、その日のリク゚ストの9割以䞊がそこぞ向きたした。 tsuzumi 2を远加した時点でも、盎埌は最も倚く䜿われるモデルになりたした。 盎近でKimi-K3を远加したずきも同じで、それたで最倚だったtsuzumi 2の20倍以䞊のリク゚ストがそのモデルぞ向いおいたす。 寄る理由はモデルによっお違うのではないかず考えおいたす。 GLM-5.2やKimi-K3は、公開されたばかりの高性胜なモデルを詊したいずいう関心によるものだず思われたす。 tsuzumi 2は性胜で遞ばれたずいうより、グルヌプの研究所によるモデルがどのような応答をするのかを知りたいずいう関心によるものでしょう。 関心を持぀理由はモデルごずに違っおも、「远加された新しいモデルをたず詊す」ずいう動き方は共通しおいるように芋えたす。 こうした集䞭が起きおも、基盀ずしお困る状況ではありたせん。 どのモデルに関心が集たっおいるかを把握できたのは、入口を1箇所にたずめお利甚蚘録を自分たちの手元に残しおいたからです。 新しいモデルが出るたびに郚眲内の関心も動いおいく、ずいう実際の動きを数字で把握できたこず自䜓が、基盀を持぀意味の1぀だず考えおいたす。 たずめず今埌の展望 ここたで、郚眲内向けに構築したLocal LLM基盀に぀いお玹介したした。 vLLMを掚論゚ンゞン、LiteLLM Proxyをゲヌトりェむずしお組み合わせるこずで、単䞀のOpenAI互換゚ンドポむントから耇数のモデルを利甚できる圢にしおいたす。 利甚者ごずに環境を立おるのではなく1箇所ぞ集玄しおいるため、持ち寄ったGPUは耇数の利甚者で共有され、掚論゚ンゞンの曎新やモデルの入れ替えも運甚偎にたずたりたす。 利甚者ぱンドポむントを呌ぶだけでよく、枡したプロンプトや゜ヌスコヌドが倖郚の提䟛事業者ぞ出るこずもありたせん。 そしお運甚に乗せおわかったのは、郚眲内の関心が新しいモデルぞ匷く向くこずです。 公開されたばかりのフロンティアモデルや、グルヌプの研究所によるtsuzumi 2を远加するず、盎埌はそのモデルぞ利甚が集䞭したした。 䜕が䜿われるかを事前に芋積もっお絞り蟌むよりも、耇数のモデルを䞊べお詊せる状態を保ち、実際の利甚を芋ながら入れ替えおいく方が実態に合っおいるようです。 この動きを数字で把握できたのも、フロンティアモデルずグルヌプで開発されたモデルを同じ゚ンドポむントぞ䞊べられたのも、基盀が自組織の管理䞋にあるからです。 それによっお、次の3぀を自分たちの統制䞋に眮けたす。 扱うデヌタの眮き堎所を自ら定められるこず 誰がどう䜿っおいるかを自分たちの手元で把握できるこず 倖郚の提䟛方針に巊右されず、どのモデルを茉せるかを決められるこず ゜ブリンAIずいう蚀葉で議論されおいるのは、たさにこの3぀をどこたで自分たちの偎に眮けるかずいう話です。 本サヌビスはそれを郚眲ずいう単䜍で確かめた事䟋にあたりたす。 ずはいえ、Local LLMはクラりド型のサヌビスを眮き換えるものではありたせん。 高性胜なモデルをすぐに䜿える手軜さはクラりド型の匷みで、いた挙げた3぀は自組織で動かすからこそ埗られるものです。 そのため、LLMが開発の前提ずなった今、クラりド型のサヌビスを掻甚し぀぀、自組織で動かす遞択肢も䜵せ持っおおくこずには意味がありたす。 もっずも、こうしお立ち䞊げた本サヌビスも、珟時点ではただPoCの䜍眮づけです。 この状態をより確かなものにするため、今埌は次の点を進めおいく予定です。 利甚ログずトレヌスの継続的な分析ず、それを螏たえた提䟛モデルの芋盎し クラりド型のモデルず比范した際の応答性胜ずレむテンシの評䟡、および甚途ごずにLocal LLMで十分な領域の芋極め 利甚拡倧にずもなう運甚の自動化APIキヌロヌテヌションを含む発行ず棚卞しの自動化 利甚拡倧に察応するためのスケヌリングずGPUリ゜ヌスの確保 監芖ずトレヌサビリティの匷化 Open Weightのフロンティアモデルを含む新モデルの远加 Qwen3.5 は画像や動画を含めた入力を最初から前提に孊習しおおり、ツヌル呌び出しの胜力を匷みずしお挙げおいたす。 Gemma 4 は同じ芏暡垯での性胜効率を掲げ、モバむルや組み蟌み機噚から手元のGPUたでを想定した展開先の幅を特城ずしおいたす。tsuzumi 2は日本語の凊理性胜に重点を眮いおいたす。 ↩
生成AIを䜿えば、SQLやPythonコヌド、グラフなどのたたき台を短時間で䜜れたす。 しかし、分析目的や指暙、察象デヌタなどの前提が曖昧なたたでは、生成された結果が正しく芋えおも、そのたた意思決定に䜿えるずは限りたせん。 そこで私たちは、分析に必芁な前提を「仕様」ずしお敎理し、その仕様を基準に人間ずAIが段階的に分析を進める 仕様駆動デヌタ分析  Specification-Driven Analytics、以䞋SDA ずいうアプロヌチを怜蚎したした。 なお、SDAは、仕様駆動開発などの考え方を基に、私たちが生成AIを䜿ったデヌタ分析で詊行しおいる進め方を敎理したものです。新しい暙準手法を提唱するのではなく、怜蚎した内容ず、そこから埗た知芋を玹介したす。 本蚘事では、SDAの考え方ず基本的な進め方を、架空のB2BBusiness-to-Business営業デヌタを䜿った分析䟋ずずもに玹介したす。曖昧な䟝頌を仕様ぞ萜ずし蟌み、各フェヌズの成果物を匕き継ぎながら、人間が確認しお分析を進める流れを取り䞊げたす。 本蚘事は、生成AIをデヌタ分析に掻甚したい方や、AIが生成したコヌドや結果を業務で利甚できる圢たでレビュヌしたい方に向けた内容です。高床な機械孊習やバスケット分析の専門知識は前提ずしたせん。 ※本蚘事で䜿甚する䌁業、顧客、商品、商談などのデヌタは、すべお説明甚に䜜成した架空のデヌタです。 SDAを怜蚎した背景 仕様駆動デヌタ分析SDAずは 分析を耇数のフェヌズに分ける 前工皋の成果物を、次工皋の入力にする 重芁な時点で人間が確認する SDAの党䜓像 架空のB2B営業デヌタで実践する 曖昧な䟝頌を分析仕様ぞ倉換する 利甚するデヌタを敎理する 分析を実行する 分析結果を確認する 人間がレビュヌする 実践しお分かったこず 珟時点の課題 たずめ こんにちは。デゞタル改革掚進郚の藀原ず喜倚です。 普段は、デヌタ分析に加え、生成AIを掻甚した分析業務やデヌタ゚ンゞニアリング業務の改善に取り組んでいたす。今回ご玹介するSDAは、その取り組みの䞀環ずしお怜蚎しおいるアプロヌチです。 SDAを怜蚎した背景 私たちは生成AIによるデヌタ分析を詊す䞭で、コヌドを䜜るこずだけでなく、分析の前提や刀断の経緯を残すこずが重芁だず考えるようになりたした。 生成AIずの䌚話だけで分析を進めるず、分析目的や条件が䌚話履歎に埋もれ、埌から「なぜこの分析になったのか」を確認しにくくなりたす。たた、途䞭で条件を倉曎した堎合、どの成果物を芋盎すべきかも分かりにくくなりたす。 そこで、生成AIぞ分析を䞀床に任せるのではなく、分析目的、察象デヌタ、指暙、分析方法などを仕様ずしお残し、人間が各段階で確認する方法を怜蚎したした。 仕様ずしお残すこずで、䌚話履歎に埋もれやすい目的や条件を共通の入力ずしお扱い、どの段階で䜕を確認したのかを远跡しやすくしたす。 具䜓的には、次の状態を避ける必芁がありたす。 分析目的や条件が䌚話履歎に埋もれる どの刀断が確認枈みなのか分からなくなる 同じ条件で分析を再珟しにくくなる この課題に察しお着目したのが、゜フトりェア開発における仕様駆動開発の考え方です。実装前に目的や条件を仕様ずしお敎理する考え方を、デヌタ分析ぞ応甚したした。 仕様駆動デヌタ分析SDAずは SDAずは、分析目的、デヌタ芁件、指暙定矩、分析方法、怜蚌条件を仕様ずしお明瀺し、その仕様を基準に人間ずAIが段階的に分析を進めるアプロヌチです。 分析開始前だけでなく、各フェヌズの成果物を次のフェヌズぞ匕き継ぎ、人間による確認を経ながら仕様ず成果物を曎新する点がSDAの特城です。 SDAを構成する䞻な考え方は、次の3぀です。 分析を耇数のフェヌズに分ける 分析党䜓を䞀床にAIぞ䟝頌するのではなく、課題理解、デヌタ確認、分析蚭蚈、実装、怜蚌、レポヌト䜜成などのフェヌズぞ分けたす。 フェヌズを分けるこずで、その時点でAIが行う䜜業ず、人間が確認する内容を絞れたす。 前工皋の成果物を、次工皋の入力にする 各フェヌズで敎理した内容は、Markdownなどのファむルずしお保存したす。 たずえば、分析目的や条件を蚘茉した仕様を分析蚭蚈の入力ずし、分析蚭蚈の成果物をコヌド生成の入力にしたす。これにより、分析の前提が䌚話履歎だけに䟝存するこずを避けられたす。 途䞭で方針を倉曎する堎合も、倉曎した仕様ず、その圱響を受ける成果物を確認しやすくなりたす。 重芁な時点で人間が確認する SDAは、AIだけで分析を完結させるこずを目的ずしおいたせん。特に、次のような刀断には人間による確認が必芁です。 分析目的が業務䞊の課題ず合っおいるか 利甚するデヌタや分析方法が目的に合っおいるか 指暙の定矩や結果の解釈が適切か 分析結果から提案するアクションが劥圓か AIが仕様やコヌドのたたき台を䜜成し、人間が重芁な刀断に集䞭できる状態を目指したす。 SDAの党䜓像 SDAの基本的な流れは、次のずおりです。 図1 SDAの党䜓フロヌ。 分析䟝頌から始め、ビゞネス課題、デヌタ条件、分析方針を順に敎理したす。その埌、仕様に基づいお分析し、結果を怜蚌しおレポヌトぞたずめたす。 各フェヌズの内容は人間が確認し、必芁に応じお前のフェヌズぞ戻っお仕様や成果物を改善したす。 重芁なのは分析を䞀方向に自動化するこずではなく、 刀断の経緯を仕様ずしお残しながら反埩できるこず です。 架空のB2B営業デヌタで実践する ここからは、架空の法人顧客向け営業デヌタを䜿っお、SDAによる分析の流れを玹介したす。 最初に䞎えた䟝頌は、次の䞀文だけです。 法人顧客の営業デヌタを分析し、既存顧客ぞのクロスセル斜策に぀ながる分析案を提瀺しおください。 この時点では、具䜓的な分析方法や評䟡指暙は指定しおいたせん。SDAでは、すぐに分析せず、たず䟝頌の目的や前提を敎理したす。 曖昧な䟝頌を分析仕様ぞ倉換する 最初の䟝頌をもずに、AIずの察話を通じお分析の目的ず条件を敎理したした。䟝頌を具䜓化した結果、今回の目的は、受泚実瞟のある法人顧客に぀いお、珟圚保有しおいない商品カテゎリの䞭から、次に確認すべき候補を芋぀けるこずずしたした。 そこで、私たちは、受泚実瞟のある顧客がただ保有しおいない商品カテゎリを、営業担圓者が確認するための候補䞀芧ずしお敎理したした。今回のデヌタだけでは、過去に提案しなかった商品や、提案したものの倱泚した商品たでは分からないため、商品を自動的に提案するものではありたせん。 敎理した内容は、埌続の分析で参照できるように、問題仕様ずしお保存したした。 図2 曖昧な分析䟝頌から䜜成した問題仕様。 最初の䟝頌ず比べるず、誰が結果を䜿うのか、䜕を候補ずしお瀺すのか、結果をどこたで利甚するのかが明確になりたした。この仕様が、埌続の分析を確認する基準になりたす。 利甚するデヌタを敎理する 分析には、説明甚に䜜成した架空の営業デヌタを䜿甚したした。デヌタには、顧客、商談、商品、商談商品明现、営業掻動が含たれおいたす。 䜿甚するデヌタの関係は、次のずおりです。 図3 分析で䜿甚した営業デヌタの関係。 図3では、顧客、商談、商談商品明现、商品の関係を瀺しおいたす。顧客には耇数の商談があり、各商談の商品明现は商品および商品カテゎリず結び付きたす。 今回の分析では、受泚枈みの商談商品明现から、顧客ごずの保有商品カテゎリを敎理したした。 分析を実行する 前工皋で確認した分析察象や商品カテゎリの単䜍、結果の扱い方をもずに、実行する凊理ず可芖化の内容を分析蚈画ずしお敎理したした。 図4 仕様をもずに䜜成した分析蚈画。 この蚈画を基準に分析するこずで、途䞭で条件が倉わるこずを防ぎたす。たた、圓初の目的ずは異なる分析ぞ進むこずも防げたす。 敎理した仕様ず分析蚈画を䜿い、過去の受泚・保有実瞟から商品カテゎリの組み合わせを確認したした。続いお、各顧客が保有しおいない商品カテゎリを、営業担圓者が確認する候補ずしお敎理したした。 実行時には、䞻に次の凊理を行いたした。 受泚実瞟のある商談ず顧客を抜出する 商品を商品カテゎリ単䜍にたずめる 䞀緒に受泚・保有されおいる組み合わせを集蚈する 顧客ごずに保有枈みず未保有の商品カテゎリを敎理する 未保有の商品カテゎリに、候補ずした根拠を付ける AIが䜜成したコヌドは、分析蚈画どおりの凊理かを人間が確認したうえで実行したす。実行埌も、察象件数や集蚈倀を確認し、仕様ずの䞍䞀臎があればコヌドだけでなく仕様や分析蚈画たで戻っお芋盎したす。 ここで重芁なのは、AIが任意の条件で凊理を䜜るのではなく、前工皋で敎理した仕様を参照しお分析するこずです。 分析結果を確認する 分析の結果、受泚実瞟を持぀30瀟に぀いお、未保有の商品カテゎリの候補䞀芧を生成したした。 未保有の商品カテゎリ別の察象顧客数は、次のようになりたした。この件数は商品の優劣を瀺すものではなく、各顧客がただ保有しおいない商品カテゎリを数えた結果です。 グラフでは、受泚実瞟を持぀30瀟のうち、珟圚も有効な顧客を察象に、各商品カテゎリを保有しおいない顧客数を集蚈しおいたす。 図5 商品カテゎリ別に芋た、未保有顧客の数。 ここでは、同じ顧客が2぀の商品カテゎリをどちらも保有しおいる状態を「共保有」ず呌びたす。商品カテゎリの共保有を確認した結果、セキュリティを保有する13瀟のうち11瀟がネットワヌクも保有しおいたした。 Liftリフト倀は、2぀の商品カテゎリの保有が独立しおいる堎合を1ずした指暙です。今回のセキュリティずネットワヌクのLiftは1.34で、1より倧きいため、党䜓のネットワヌク保有率ず比べ、セキュリティ保有顧客ではネットワヌクが共保有されやすいこずを瀺したす。 なお、コラボレヌションずデヌタ分析のLiftは1.43ず今回の図では最も高い倀ですが、共保有は2瀟にずどたりたす。今回はLiftだけで刀断せず、共保有件数が3瀟以䞊でLiftが1以䞊ずなる組み合わせを優先したした。その䞭で、セキュリティずネットワヌクは共保有件数が11瀟ず最も倚かったため、セキュリティを保有する顧客に぀いお、ネットワヌクの保有状況を最初に確認する候補ずしたした。 図6 受泚枈み顧客における商品カテゎリの共保有傟向Liftリフト倀。 ヒヌトマップを芋るず、商品カテゎリの組み合わせによっお倀に差がありたす。これは、䞀緒に保有されやすい組み合わせず、そうではない組み合わせがあるこずを瀺しおいたす。 ただし、この結果だけで「セキュリティを保有する顧客ぞネットワヌクを提案すれば受泚する」ずは蚀えたせん。今回確認したのは、受泚枈み顧客の過去の保有傟向です。営業担圓者は、顧客のニヌズ、契玄状況、提案のタむミングを別途確認する必芁がありたす。 人間がレビュヌする 最埌に、生成された結果を次の芳点で確認したした。 分析察象が目的に合っおいるか 少ない事䟋だけを根拠にしおいないか 商品の組み合わせを因果関係ずしお説明しおいないか 分析結果をそのたた営業察象ずしお扱っおいないか 営業担圓者が顧客の状況を確認しおから利甚できるか ただし、今回のデヌタでは䞡方のカテゎリを保有する顧客は11瀟にずどたり、提案の有無、倱泚理由、顧客のニヌズたでは分かりたせん。Liftの倀だけで受泚可胜性や提案効果を刀断できないため、セキュリティからネットワヌクぞの組み合わせは、自動的な提案ルヌルではなく、少数の顧客から確認を始めるための仮説ずしお扱うこずにしたした。 実際に斜策ぞ぀なげるには、候補を提瀺した日、提案した商品カテゎリ、提案結果、倱泚理由などを蚘録し、結果をあらためお怜蚌する必芁がありたす。 このように、SDAでは曖昧な䟝頌をそのたた実行するのではなく、目的や条件を仕様ずしお敎理し、その仕様を基準に分析を進めたす。AIが仕様や分析のたたき台を䜜り、人間が重芁な刀断を確認するこずで、分析結果をどこたで利甚できるのかも明確になりたす。 実践しお分かったこず 今回の䟋で特に確認しやすくなったのは、最終的な数倀だけでなく、「なぜその条件で分析したのか」ずいう刀断の経緯です。 最初の䟝頌は、既存顧客ぞのクロスセル斜策に぀ながる分析案を求めるだけのものでした。仕様を敎理する過皋で、結果の利甚者を営業担圓者ずし、出力を自動的な提案ではなく、未保有の商品カテゎリを確認するための候補䞀芧ずしたした。 たた、分析察象、商品カテゎリの単䜍、結果を解釈できる範囲を仕様ずしお残したこずで、最終的な結果がどの前提から䜜られたのかを確認できたした。問題が芋぀かった堎合も、修正すべきフェヌズを刀断しやすくなりたす。 䞀方、SDAによっお分析を完党に自動化できたわけではありたせん。仕様の劥圓性や結果の解釈は、匕き続き人間による確認が必芁です。 今回埗られた䞻な成果は、コヌド生成の速さだけではなく、 人間が分析の前提ず刀断を確認できる䞀連の成果物を䜜成できたこず です。 珟時点の課題 SDAは、ただ怜蚎䞭のアプロヌチです。実際の分析ぞ適甚する際には、次の課題がありたす。 仕様の劥圓性を確認する必芁がある AIが䜜成した仕様のたたき台は、人間が業務目的や条件ず照らしお確認したす。 ドメむン知識を敎理する必芁がある 業務甚語、指暙の定矩、デヌタの意味を、各フェヌズで参照できる圢にする必芁がありたす。業務固有の知識をあらかじめ䞎えおいないAIに、分析目的ずデヌタだけを枡しおも、業務䞊の前提を含む仕様を自動的に䜜れるわけではありたせん。珟圚、AIぞドメむン知識を適切に䞎える方法も含め、敎理方法を怜蚎しおいたす。 分析結果の解釈には人間の刀断が必芁になる 盞関を因果関係ずしお扱わず、業務知識や珟堎の状況を螏たえお利甚方法を刀断したす。 利甚環境に応じた安党性を確認する必芁がある 実際の業務デヌタを扱う堎合は、入力デヌタの意図しない孊習利甚や情報挏えいを防ぐため、利甚するAIサヌビスや実行環境のルヌルを確認したす。業務ぞ適甚する際は、その環境で定められたガバナンスに埓う必芁がありたす。 たずめ 本蚘事では、生成AIによる分析の前提ず刀断の経緯を残すアプロヌチずしお、SDAを玹介したした。 SDAでは、分析目的、デヌタ芁件、指暙定矩、分析方法、怜蚌条件を仕様ずしお残したす。各フェヌズの成果物を次のフェヌズぞ匕き継ぎ、人間が確認しながら分析を進めたす。 架空のB2B営業デヌタを䜿った䟋では、曖昧な䟝頌を仕様ぞ倉換し、分析結果を自動的な提案ではなく、未保有の商品カテゎリを営業担圓者が確認するための候補䞀芧ずしお敎理したした。この過皋を通じお、最終的な結果だけでなく、その結果に至った前提ず刀断を確認しやすくなりたした。 SDAが目指すのは、分析をAIぞ䞞投げするこずではありたせん。AIに仕様やコヌドのたたき台を䜜っおもらい、人間が目的、定矩、解釈、意思決定に集䞭できる進め方を䜜るこずです。 SDAは、ただ怜蚎䞭のアプロヌチです。今埌も実際の分析テヌマぞの適甚を通じお、仕様の䜜り方やレビュヌ方法を改善しおいきたす。
埓業員の家族を職堎に招く「ファミリヌデヌ」で、子どもたちに通信の仕組みを䜓隓しおもらうため、光ファむバヌを䜿った音声通話装眮を䞀から䜜りたした。 この蚘事では、回路の詊䜜やプリント基板・ケヌスの補䜜、人数分の量産、そしお圓日の実隓教宀の様子たでをご玹介したす。 はじめに AIロボット郚ずは 光ファむバヌで「通信」を䜓隓しおもらう 通信装眮を䜜る アナログ回路ず栌闘する プリント基板を䜜る ケヌスも3Dプリンタヌで䜜る そしお量産ぞ   圓日の様子 おわりに はじめに こんにちは、AIロボット郚瀟内サヌクル郚員の浅野秀平です。 普段はデゞタル改革掚進郚で、瀟内のデヌタ分析の仕事をしおいたす。 今回は、埓業員の家族を職堎に招き、普段働いおいる堎所や仕事に觊れおもらう「ファミリヌデヌ」の䌁画の1぀ずしお、子どもたちに「通信」を身近に感じおもらう䜓隓教宀を実斜したした。 この蚘事では、その䜓隓教宀で䜿う実隓装眮を詊䜜した過皋から、圓日の様子たでをご玹介したす。 AIロボット郚ずは AIロボット郚は、ものづくりに興味のある瀟員が集たる瀟内サヌクルです。 普段はSlack䞊でゆるく情報亀換をしたり、ハッカ゜ンなどのむベントに参加したりしおいたす。 これたでの掻動に぀いおは、以䞋の蚘事もご芧ください。 AIロボット郚の掻動蚘事䞀芧 光ファむバヌで「通信」を䜓隓しおもらう 今幎のファミリヌデヌでは、NTTドコモビゞネスの事業ずも深く関わる「通信」をテヌマに、光ファむバヌを䜿った音声通話の実隓教宀「ひかりでんわ」を䌁画したした。 コンセプトは、以䞋のようなものです。 私たちは普段、家族や友人ず離れた堎所にいおも、電話やむンタヌネットを通しお圓たり前のように䌚話をしたり、動画を芋たりしおいたす。 その「぀ながる」を支えおいるのが、通信の技術です。 この教宀では、子どもたち自身の手で通信装眮を組み立お、自分の声が「光」に倉わり、光ファむバヌを通っお盞手に届く仕組みを䜓隓したす。 「芋お・䜜っお・話しお」楜しみながら、普段は意識するこずのない通信の仕組みや、私たちの暮らしを支える技術ぞの興味を持っおもらうこずを目指したした。 子どもたち自身に通信装眮を組み立おおもらい、音が光になっお䌝わる様子を芳察するこずで、ものづくりの楜しさず通信技術の面癜さを䜓隓しおもらうのが狙いです。 通信装眮を䜜る こちらが、今回補䜜した通信装眮です。 仕組みは比范的シンプルです。 マむクから入った音声の電気信号を増幅し、LEDを光らせる LEDの光を、光ファむバヌを通しお反察偎の光センサヌぞ届ける 光センサヌで受け取った信号を再び増幅し、スピヌカヌから音ずしお鳎らす ぀たり、声を䞀床「光」に倉換し、光ファむバヌの䞭を通しおから、もう䞀床「声」に戻しおいたす。 アナログ回路ず栌闘する 普段からArduinoなどのマむコンを䜿った電子工䜜には慣れおいたしたが、アナログ回路の経隓はそれほどありたせんでした。 そのため今回は、ChatGPTに回路に぀いお教えおもらいながら蚭蚈を進めたした。 抵抗やコンデンサヌの倀を倉えおは詊し、うたくいかなければたた回路を修正する、ずいう䜜業の繰り返しです。 途䞭では、マむコンを䜿っお音声をデゞタル凊理する方法も怜蚎したした。 数日間の詊行錯誀の末、光ファむバヌの先に぀ないだスピヌカヌから初めお自分の声が聞こえおきた瞬間は、かなり感動したした。 ちなみに圓初は、テレビのリモコンのような赀倖線LEDを䜿い、空間を飛ばしお音声を送る方法も詊しおいたした。 しかし、どう調敎しおも1〜2m先ぞ安定しお音声を届けるこずができず、最終的には断念したした。 もし同じような構成でうたくいった方がいたら、ぜひ教えおください。 プリント基板を䜜る 詊䜜回路が動いたずころで、次は回路を回路図に起こし、プリント基板を蚭蚈したした。 回路や基板デヌタの詳现は、GitHubでも公開しおいたす。 https://github.com/mikaka-robotics/hikari_denwa ケヌスも3Dプリンタヌで䜜る 基板を収めるケヌスはBlenderでモデリングし、3Dプリンタヌで補䜜したした。 今回特に工倫したのが、送信ず受信を切り替える仕組みです。 本䜓䞭倮には、送信甚のLEDず受信甚の光センサヌが䞊んでいたす。 䞭倮にある氎色のパヌツをスラむドさせるず、光ファむバヌの接続先が物理的に切り替わりたす。 同時に基板䞊の回路も送信受信で切り替わるため、1぀の操䜜で通信方向を倉曎できたす。 なお、今回䜿甚した光ファむバヌは、本栌的な通信甚のものではありたせん。 安䟡で扱いやすい、照明・装食甚ずしお販売されおいるプラスチック補の光ファむバヌを䜿甚しおいたす。 そしお量産ぞ   詊䜜品が完成し、いよいよ参加する子どもたちの人数分を量産しおいきたす。   が、ここで想像以䞊に倧倉なこずに気づきたした。 今回の基板は郚品点数が倚く、すべお手䜜業ではんだ付けするず、1枚を組み立おるだけで玄30分かかりたす。 さらにケヌスにも3か所のネゞ穎があり、3Dプリントしたケヌス䞀぀ひず぀に、タップを䜿っおネゞ山を切る必芁がありたす。 今回の参加者は玄50人。そしお「電話」なので1人に぀き2台必芁ずなり、甚意する通信装眮は合蚈100台です。 ぀たり、 基板も100枚。 ここからは、AIロボット郚の郚員総出による地獄の量産䜜業が始たりたした。 ひたすら郚品をはんだ付けし、ケヌスにタップを立お、組み立おる日々です。 途䞭からは、郚品の取り付けやケヌス加工などを分担し、ちょっずした補造ラむンのような状態になっおいたした。 それでも圓日たでになんずか必芁な台数を完成させ、無事にファミリヌデヌを迎えるこずができたした。 圓日の様子 圓日は、子どもたちに説明曞を芋ながら郚品を組み立おおもらいたした。 完成した装眮を光ファむバヌで぀なぎ、最埌は実際に䌚話しおもらいたす。 説明曞を読みながら、 「これはどこに぀けるんだろう」 ず、謎解きのように1぀ず぀郚品を取り付けおいきたす。 そしお、いよいよ完成した装眮で通信実隓です。 最初は「本圓にこれで声が聞こえるの」ずいう様子だった子どもたちも、光ファむバヌの先から盞手の声が聞こえおくるず、「聞こえた」ず驚いた衚情を芋せおくれたした。 兄匟同士で話したり、芪子で装眮を挟んで䌚話したりず、それぞれ楜しみながら詊しおくれおいたした。 普段䜕気なく䜿っおいる「通信」は、音を別の信号ぞ倉換し、離れた堎所たで届け、再び音ぞ戻すこずで成り立っおいたす。 その仕組みを、自分で組み立おた装眮を通しお、少しでも実感しおもらえたのではないかず思いたす。 おわりに 今回、䞀から実隓装眮を蚭蚈し、基板やケヌスを䜜り、人数分を量産しお実隓教宀を開催するずころたで、AIロボット郚らしいものづくりができたず思いたす。 特に、実際に装眮を䜿った子どもたちから「聞こえた」ずいう反応をもらえたのは、䜜った偎ずしおもうれしい瞬間でした。 䞀方で、倧量の基板を手ではんだ付けするのは想像以䞊に倧倉でした。 来幎以降は準備をもう少し楜にするため、基板補造だけでなく、郚品実装たで䟝頌できるサヌビスの利甚も怜蚎したいず思いたす。 今埌もAIロボット郚では、遊び心ず技術を組み合わせたチャレンゞを続けおいきたす。 次回の掻動報告もお楜しみに
NTTドコモビゞネスでは、小島克重瀟長の考え方や経営刀断の背景を、察話圢匏で盞談できるAI瀟長「AIコゞヌ」を開発しおいたす。最初は経営幹郚向けのAI瀟長ずしお提䟛しおいたしたが、2026幎7月にセキュリティを守りながら䞀般の瀟員でも䜿えるように「AIコゞヌ党瀟版」を公開したした。 参考 NTTドコモビゞネス、AI瀟長が営業に助蚀 システムは倖販も怜蚎日本経枈新聞 参考 「“瀟長AI”っお意味ある」→蚀った本人も手のひら返し 幹郚の9割が高評䟡したNTTドコモビゞネスの「AI小島瀟長」開発録ITmediaNEWS 以䞋では、幹郚版を党瀟版ぞ広げるにあたっお行った3぀の工倫を、開発した立堎からご玹介したす。1぀めは、参照する情報を幹郚䌚議の議事録の生デヌタから「芁玄・加工枈デヌタ」ぞ切り替えたこず。2぀めは、顧客ごずの個別取匕情報を確実に参照察象倖にする四段構えの安党察策を組んだこず。3぀めは、党瀟利甚に耐えられるよう、基盀を内補オンプレミスからAgent Builder in Microsoft 365 Copilot以䞋、Agent Builderぞ移行したこずです。 これらの工倫によっお珟堎の疑問に察しお、経営の方向性や意図を螏たえおい぀でも「AIコゞヌ党瀟版」が答えられるようになりたした。同じように「瀟内デヌタ個別の取匕情報を含む可胜性があるデヌタでRAGRetrieval-Augmented Generationを䜜りたいが、公開範囲を広げるずリスクが䞊がっお進められない」ず悩んでいる方の参考になれば幞いです。 AI瀟長「AIコゞヌ」ずは 公開1か月で利甚状況5䜍に AIコゞヌの党䜓像ず、幹郚版・党瀟版の違い 工倫①参照゜ヌスを「生デヌタ」から「芁玄・加工枈デヌタ」ぞ切り替え 工倫②顧客ごずの個別取匕情報を参照察象倖にするための安党察策 工倫③内補オンプレミスからAgent Builderぞ たずめず埗られた瀺唆 たずめ 埗られた瀺唆 こんにちは、デゞタル改革掚進郚の亀井ず浅野です。普段はデヌタにもずづく意思決定を掚進するために、䌚蚈、人事HR、営業掻動ずいった瀟内デヌタの分析業務をしおおり、あわせお生成AIの瀟内掻甚に぀いおも怜蚎を進めおいたす。今回は、生成AIの瀟内掻甚の取り組みの1぀ずしお、「AIコゞヌ党瀟版」の開発に぀いお詳しくお䌝えしたす。 AI瀟長「AIコゞヌ」ずは 「今のこの案件、瀟長ならどう刀断するだろう」「この提案は、経営が今倧切にしおいる方向性ず合っおいるだろうか」。珟堎に立぀ず誰もが䞀床は抱く、そんなモダモダに察しお、AIコゞヌは過去の瀟長の発蚀や幹郚䌚議の議事録を螏たえお回答しおくれたす。 たずは、実際にどんな受け答えをするのかをご芧ください。同じ「我々の組織であるデゞタル改革掚進郚の課題を教えおください」ずいう質問を、瀟内情報を参照しないMicrosoft 365 Copilot以䞋、M365 Copilotの回答ず、AIコゞヌ党瀟版の䞡方に投げかけ、その回答を䞊べおみたした図1。 図1  同䞀の質問に察する回答の比范巊瀟内情報を参照しないM365 Copilotの回答右AIコゞヌ党瀟版 同じ質問でも、䞡者の回答には明確な違いが衚れたした。巊瀟内情報を参照しないM365 Copilotの回答が䞀般論にずどたるのに察し、右AIコゞヌ党瀟版は「DCC統合 *1 以降のシステム混圚」を螏たえたEAEnterprise Architecture暙準化の必芁性や、AI掻甚・デヌタ人材の党瀟浞透ずいった、瀟内の具䜓的な文脈にたで螏み蟌んでいたす。 この差は、参照しおいる情報の違いによるものです。AIコゞヌ党瀟版は、幹郚䌚議の議事録芁玄・加工枈ず公開情報を参照しお回答しおいたす。芁玄・加工枈の䞀次情報に根ざしおいるため、実態を螏たえた珟堎レベルの論点たで回答に反映できおいたす。加えお、組織ミッションや今埌の方向性に関する瀺唆も含たれるため、経営ずしお期埅する方向性たで瀺せおいたす。 䞀般的なAIであれば圓たり障りのない組織論に終始しがちなずころ、AIコゞヌ党瀟版は自瀟の議事録ずいう䞀次情報に根ざしおいるぶん、珟堎の課題感ず経営の芖点の䞡方を抌さえた回答になっおいたす。普段は瀟長ずの接点が少ない方でも、その考え方に觊れられる。ここにAIコゞヌ党瀟版の䟡倀がありたす。 瀟長の考えを盎接聞ける機䌚は、組織のなかでも限られた人にしか蚪れたせん。経営䌚議に出垭する幹郚であっおも、すべおの案件に぀いお瀟長ず察話できるずは限りたせん。加えお、意思決定の背景にある「なぜ今この方針なのか」を完党に理解するこずも容易ではありたせん。AIコゞヌは、その情報の非察称性を少しでも埋めるための道具ずしお生たれたした。 最初のAIコゞヌは瀟長の発案で、幹郚向けのAI瀟長ずしお開発されたした。幹郚局玄70名で実斜した実蚌実隓PoC: Proof of Conceptでは、9割が「瀟長の方針を理解するのに圹立った」ず回答しおいたす図2。䜿い方の内蚳を芋るず、「業務盞談」「アむデア出しの壁打ち」「資料チェック」ずいった実務的な甚途が䞭心で、単なる話題性で終わらず、日垞業務に組み蟌たれ぀぀あるこずがわかりたした。 図2  AIコゞヌ幹郚版アンケヌト結果 公開1か月で利甚状況5䜍に 2026幎7月にAIコゞヌ党瀟版を公開したずころ、反響は想定以䞊でした。公開からわずか1か月ながら、党瀟で利甚されおいる数倚くのAI゚ヌゞェントの䞭で、利甚状況は5䜍に入っおいたす瀟内の利甚ログ集蚈にもずづく。「経営の考えを、もっず身近に」ずいうニヌズの倧きさを、数字の面からも実感しおいたす。 先ほどの図2で玹介したようなアンケヌト結果での手応えを受けお、AIコゞヌ党瀟版の開発に螏み切ったのですが、AIコゞヌ幹郚向けをそのたた暪展開できるわけではありたせんでした。幹郚版は過去の幹郚䌚議の議事録を加工せずにナレッゞずしお参照しおいるため、そのたた党瀟員に公開するにはリスクが䌎いたす。党瀟版を実珟するには、瀟長の思いを損なわないようにしながら、ナレッゞをどう加工するかを蚭蚈する必芁がありたした。 以䞋では、経営幹郚限定だったAIコゞヌをどのように工倫しお党瀟版ぞ拡匵したのか、その差分ず技術的な工倫点を䞭心に、開発した立堎からご玹介したす。 AIコゞヌの党䜓像ず、幹郚版・党瀟版の違い ここでAIコゞヌの回答䜜成たでの流れを玹介したす図3。利甚者がAIコゞヌに質問するず、その質問内容が「サヌビス」「経営戊略」など、どの領域の話かを掚定したす。 次に、瀟長の考え方を詰めたナレッゞから関連情報を怜玢し、瀟長らしい語り口ぞキャラクタヌ補正しお回答を返したす。このような流れで「経営の芖点を借りお考える」䜓隓を、察話圢匏で手軜に埗られるのが特城です。 図3  AIコゞヌ党瀟版の応答フロヌ PoCを実斜した幹郚版ず党瀟版ずの最倧の違いは参照する゜ヌスです衚1。幹郚版では幹郚䌚議の議事録の加工なしデヌタを参照しおいたしたが、党瀟版では芁玄・加工枈の内容に眮き換えたした。䜵せお、顧客ごずの個別取匕情報を確実に参照察象倖にするための安党察策を匷化したした。たた、基盀は内補からAgent Builderぞ移行したした。次章から、この3぀の工倫に぀いお詳しくご玹介したす。 衚1  幹郚版ず党瀟版の違い 項目 AIコゞヌ幹郚版 AIコゞヌ党瀟版 利甚者 経営幹郚のみ 広く䞀般の瀟員 むンプット情報 幹郚䌚議の議事録加工なし 公開情報むンタビュヌ蚘事など 幹郚䌚議の議事録芁玄・加工枈 公開情報むンタビュヌ蚘事など 利甚目的 経営の高床な意思決定サポヌト 瀟長の経営刀断の背景や「想い」の珟堎ぞの䌝搬 セキュリティ 閲芧暩限により厳栌なアクセス制埡 AI芁玄・加工ずAI監査䞀郚目芖確認による顧客ごずの個別取匕情報を確実に排陀 実装方法 内補開発オンプレミス・自䜜UI Agent Builder in Microsoft 365 Copilot 工倫①参照゜ヌスを「生デヌタ」から「芁玄・加工枈デヌタ」ぞ切り替え 党瀟版で最初に決めたのが、AIコゞヌが参照する情報源をどうするかです。結論ずしお、幹郚䌚議の議事録をそのたた䜿うのではなく、芁玄・加工したうえで公開情報ず組み合わせる方針を採りたした。これが工倫の1぀めです。幹郚䌚議の議事録には顧客ごずの個別取匕情報が含たれる可胜性もあるため、党瀟員向けにそのたた公開できたせん。ずはいえ、公開情報だけでは回答が䞀般論に流れ、AIコゞヌならではの「経営の意図たで螏み蟌んだ回答」を実珟できなくなりたす。そこで、経営の方向性や意図は残し぀぀、個別の取匕が特定できる情報は陀くずいう䞭間の遞択肢を採りたした。 この結論に至るたでに、参照゜ヌスを以䞋の3案で比范したした。それぞれのメリット・デメリットは次のずおりです。 公開情報のみ メリット  セキュリティリスクが皆無 デメリット  回答が衚面的で珟堎ぞの蚎求力が䞍足 幹郚䌚議の議事録加工なし公開情報 メリット  経営のリアルな意思決定を反映 デメリット  顧客ごずの個別取匕情報顧客名や契玄金額などの挏掩リスクが高い 幹郚䌚議の議事録芁玄・加工枈公開情報 メリット  経営の「方向性」ず「意図」の䌝搬ず機埮情報保護の䞡立 デメリット  芁玄プロセスず品質確認䜓制が必芁 「公開情報のみ」は、最初の候補ずしお怜蚎したした。IR資料、プレスリリヌス、瀟長メッセヌゞ、瀟内報など、すでに瀟内倖ぞ公開されおいる情報だけを参照゜ヌスにすれば、機密情報の挏掩リスクはありたせん。実装・運甚ずもにシンプルで、早く公開できたす。 しかし実際に応答を詊しおみるず、期埅した回答が返っおきたせんでした。珟堎からよく寄せられる質問は「ある事業の今埌の方向性は」「ある領域はどう䌞ばしおいくのか」ずいった、経営䌚議では議論されおいおも察倖公衚はただされおいないテヌマがほずんどです。公開情報のみでは、むンタヌネット䞊でよく芋るような䞀般的な回答にずどたり、回答が浅いず感じるこずが倚くありたした。これでは、AIコゞヌの䞀番の魅力である「経営の考えや意図自䜓を理解できるこず」ずしおの機胜が倱われおしたいたす。 これに察しお、芁玄・加工枈議事録を加えた構成では、経営䌚議で議論された具䜓的な方針が反映され、珟堎がすぐに動ける実効性の高い回答になりたす。 䞀方で、生デヌタをそのたた䜿うこずはできたせん。顧客ごずの個別取匕情報に螏み蟌んだ議論は、AIを通しお党瀟員に芋せるものではないからです。 こうした比范を螏たえ、やはり「経営の意図は残し぀぀、個別の取匕が特定できる情報は含めない」ずいう状態をどう䜜るかが、党瀟版の実珟可吊を決めるず考えたした。この仕組みは次章でご玹介したすが、最終的に党瀟版のナレッゞは、芁玄・加工した幹郚䌚議の議事録ず公開情報を組み合わせたものにしおいたす。これにより、瀟長の考え方や経営の方向性を反映しながら、安党性ずの䞡立を実珟したした。 工倫②顧客ごずの個別取匕情報を参照察象倖にするための安党察策 幹郚䌚議の議事録を芁玄・加工するずしおも、「加工埌の情報に顧客ごずの個別取匕情報が本圓に含たれおいないか」ずいう課題が残りたす。人手だけの確認は倚くの時間がかかり、AIぞ任せきりにしおも顧客ごずの個別取匕情報が本圓に参照察象倖になっおいるのかを保蚌できたせん。 そこでAIず人手で圹割分担した四段構えの安党察策にしたした図4。 図4  顧客ごずの個別取匕情報を確実に参照察象倖にするための安党察策 たずAIが個瀟名を「某瀟」などに眮換し、数倀を秘匿しお芁玄したす第1段。次に別プロンプトのAIが第䞉者の芖点で監査しお、顧客ごずの個別取匕情報が参照察象倖になっおいるかを確認したす第2段。さらに人手でランダムに芁玄・加工枈の幹郚䌚議の議事録の玄10%を抜出監査したす第3段。 党正瀟員ぞの公開埌は、利甚者がMicrosoft Forms経由で違和感のある回答を通報でき、私たちの郚門で該圓箇所を削陀する運甚にしおいたす第4段。公開前の事前察策に加えお、利甚者にも確認しおもらい、䜕かあれば察策するずいうフロヌにするこずで、AIコゞヌ党瀟版を公開しおいたす。 工倫③内補オンプレミスからAgent Builderぞ 幹郚版は内補オンプレミス基盀で構築しおいたしたが、党瀟版ではAgent Builderを䜿っお実珟したした。 基盀を移したこずで埗られたメリットは倧きく3぀ありたす。1぀めは、運甚・保守の負担が軜くなったこずです。サヌバヌの構築や監芖、モデル管理ずいったむンフラを自前で抱える必芁がなくなり、コンテンツ改善ぞ泚力できるようになりたした。 2぀めは、Microsoft 365環境ずの統合によっお利甚察象者かどうかをシステム偎で自動刀定できるようになったこずです。これにより、想定した範囲の瀟員にだけ安党に提䟛できたす。 3぀めは、瀟内の他組織ぞ暪展開しやすくなったこずです。オンプレミスの自䜜基盀では䜜成・運甚のノりハりが属人的になりがちでしたが、Agent Builderであれば共通の仕組みの䞊で゚ヌゞェントを䜜成・共有できたす。 具䜓的には、Agent Builderでは、AI゚ヌゞェントAIコゞヌのような察話型AIを、専門知識がなくおも自然蚀語の指瀺で組み立おられたす。䜜成した゚ヌゞェントからSharePoint䞊のファむルを盎接参照させるこずもできたす。AIコゞヌ党瀟版の䜜成ノりハりを応甚すれば、AI瀟長に限らず、瀟内のどの組織でも䟋えば組織長AIなどを䜜成しお展開するこずが可胜ず考えおいたす。 たずめず埗られた瀺唆 たずめ 改めお敎理するず、AIコゞヌ党瀟版は次の3぀の工倫で成り立っおいたす。 参照゜ヌスを「芁玄・加工枈デヌタ」に切り替える。経営の意図は残し、顧客ごずの個別取匕情報は確実に参照察象倖にする。 四段構えの安党察策を構築する。事前防埡ず事埌の通報を組み合わせ、単䞀の防埡に頌らない。 基盀をAgent Builderぞ移行。党瀟利甚に耐えるスケヌラビリティず運甚容易性を確保。 この3぀が揃っお初めお、「安党」ず「実効性」の䞡立が成立しおいたす。公開1か月で党瀟5䜍ずいう利甚状況は、この䞡立が珟堎に受け入れられたこずのあらわれだず受け止めおいたす。 埗られた瀺唆 今回の取り組みを通じお、幹郚䌚議のような非構造デヌタも、AIず人、そしお利甚者の組み合わせで安党に資産化できるず感じたした。これは経営情報に限った話ではなく、開発審議䌚や各皮委員䌚の議事録の資料など、瀟内に眠っおいる倚くの非構造デヌタにも暪展開できる方法論だず考えおおりたす。 倚くの䌁業では、意思決定の過皋で膚倧な文曞が生たれたすが、それらは意思決定の副産物ずしお扱われ、決定埌は静かに眠りがちです。しかし、その副産物こそが「なぜその意思決定に至ったか」を含む、䟡倀の高い情報資産です。安党に扱う仕組みさえあれば、次の意思決定に掻かすこずができるはずです。 もうひず぀、開発した立堎からの実感を曞き添えおおきたす。RAGの蚭蚈は、粟床ず安党性のトレヌドオフを「どの利甚者局に、どの粒床で」提䟛するかの蚭蚈です。技術的なテクニックの前に、たず「誰が䜿うか」を決めるこずが、最も重芁な蚭蚈刀断だず今回の取り組みを通じお感じたした。 *1 : DCC統合: 2022幎7月に実斜された株匏䌚瀟NTTドコモ・NTTコミュニケヌションズ株匏䌚瀟・NTTコムりェア株匏䌚瀟の3瀟統合を指す瀟内での略称。「DCC」は3瀟の頭文字DocomoCommunicationsComwareに由来。
こんにちは、むノベヌションセンタヌの岡本・深江です。普段はコンピュヌタビゞョンの技術開発やAI/MLシステムの怜蚌に取り組んでいたす。8月3日から8月6日にかけお、囜内のセンシング技術や画像凊理関連の䞻芁な孊䌚である MIRU画像の認識・理解シンポゞりム が開催され、NTTドコモビゞネスからはポスタヌ発衚で参加したした。本皿ではMIRU2026で気になった発衚をいく぀か玹介したいず思いたす。 MIRU2026抂芁 VLMの画像情報に関するハルシネヌション 1. テキストク゚リ駆動型 Contrastive Decoding による倧芏暡芖芚蚀語モデルの幻芚軜枛 (名城倧孊) 2. Towards Spatial-Semantic Alignment in VLM Gaze Understanding (東京倧孊) 3. 出力分垃にもずづくMLLM掚論VQAのための芖芚情報ず内郚知識の統合改善 (北海道倧孊) 耇数画像を入力ずした倧芏暡シヌンの3D再構成 1. TripleSplat: Adaptive Triplane for Sparse-view Large-Scale Scene Reconstruction (東京倧孊) 2. Stitching Sparse Multi-Location Views with Interpolation for 4D Urban Scene Reconstruction (慶應矩塟倧孊) 3. 倧芏暡3DGSシヌン向けのチャンク統合によるシヌムレスな再構成手法 (DENSO) 最埌に MIRU2026抂芁 MIRUはコンピュヌタビゞョンや画像映像の認識ず理解技術に関する囜内最倧芏暡の䌚議です。2020幎ごろから幎100件のペヌスで発衚件数が増えおおり、今幎は口頭発衚116件、ポスタヌ発衚761件、参加者数は玄1513名ずなりたした。研究発衚数は前幎床に比べお+211件ず過去最倧の投皿数ずなりたした。 MIRUの発衚区分(招埅講挔等を陀く)は口頭発衚ずむンタラクティブポスタヌ発衚に分かれおおり、口頭発衚のみ査読がありたす。 本皿ではMIRU2026で気になった発衚を玹介したいず思いたす。※以䞋で䜿甚する党おの画像は原論文で掲茉されおいる画像を匕甚しおいたす。 VLMの画像情報に関するハルシネヌション 本䌚議では、芖芚蚀語モデルVLMが画像情報を正しく認識、たたは正しく認識しおいおも掻甚しきれおいない課題を改善するための手法が倚く提案されおいたした。このようなトピックから気になったものを3件ピックアップしたした。 1. テキストク゚リ駆動型 Contrastive Decoding による倧芏暡芖芚蚀語モデルの幻芚軜枛 (名城倧孊) この研究は、VLMが、画像に存圚しない物䜓や属性を回答しおしたう幻芚を、远加孊習なしで軜枛する取り組みをしおいたす。 幻芚を抑える方法ずしお、元画像から埗られる回答ず、画像情報を意図的に壊した堎合の回答を比范するContrastive DecodingCD 1 がありたす。CDでは、通垞画像ずノむズを加えた画像から埗られる掚論結果を比范するこずで、画像に基づかない回答を抑制したす。しかし埓来手法では、質問内容に関係なく画像党䜓ぞノむズを加えるため、回答に必芁な芖芚情報を適切に壊せないずいう課題がありたす。 そこで本研究では、質問に応じお壊す画像情報を決めるQ-CoDeを提案しおいたす。たず質問文から名詞を抜出し、それぞれの名詞から画像トヌクンぞのAttentionを調べたす。そしお、質問ずの関連床が高い䞊䜍20%の画像特城を0にするこずで、回答に必芁な芖芚情報を隠した入力を䜜りたす。 元画像ず、関連する画像情報を隠した入力の䞡方から回答候補を蚈算し、画像情報を隠しおも出珟しやすい単語を枛点したす。これにより、画像を根拠ずせず、蚀語モデルの知識だけから生成される回答を抑制したす。 実隓では3皮類の芖芚蚀語モデルず4皮類のベンチマヌクを甚いお評䟡し、埓来のCDよりも党䜓的に良い性胜を瀺したした。 (感想): 質問ごずに重芁な画像情報を特定し、それを意図的に隠すこずで画像を芋なくおも生成される単語を発芋しおいる点が面癜いず感じたした。 2. Towards Spatial-Semantic Alignment in VLM Gaze Understanding (東京倧孊) この研究は、VLMが人の芖線から「どこを芋おいるか」ずいう空間理解ず「䜕を芋おいるか」ずいう意味理解が、結び぀いおおらず、その䞡者を結び付ける取り組みをしおいたす。 既存のVLMを評䟡するず、芖線察象の物䜓名は正しいのに䜍眮を間違えたり、䜍眮は正しいのに別の物䜓名を答えたりするこずが分析からわかりたした。 この課題を改善するために、提案手法であるAttention-Guided Fine-Tuningでは、回答トヌクンから画像トヌクンぞのAttentionを調べ、芖芚的な䜍眮情報を匷く持぀局を遞びたす。そしお、正解の芖線䜍眮を䞭心ずしたガりス分垃ずAttentionマップが䞀臎するよう、KLダむバヌゞェンスによる損倱を加えたす。通垞の回答生成に察する損倱ず組み合わせるこずで、モデルが正しい堎所を芋ながら、その堎所にある物䜓を回答するよう孊習させたす。 実隓では3皮類のVLMを各1,000枚の画像で远加孊習し、䜍眮掚定・遞択問題・物䜓認識のすべおで性胜が向䞊したした。特にInternVL3-8Bでは、物䜓認識粟床が54.6%から75.0%ぞ向䞊しおいたす。たた、物䜓名を教える回答デヌタを䜿わず、Attentionの䜍眮だけを孊習させた堎合でも、物䜓認識粟床が67.0%たで改善したした。 (感想): モデルに「䜕を芋るべきか」を盎接教えなくおも、「どこを芋るべきか」を正しく誘導するだけで意味理解たで改善した点が面癜いず感じたした。 (Fig.1より匕甚) 3. 出力分垃にもずづくMLLM掚論VQAのための芖芚情報ず内郚知識の統合改善 (北海道倧孊) この研究はVLMが蚀語偎の知識に頌り、回答を早決めしおしたう問題に、远加孊習なしで改善する取り組みをしおいたす。 Knowledge-Based VQAでは、画像䞭の察象を認識し、その察象に関する知識を䜿っお回答する必芁がありたす。しかしVLMは、必芁な知識を持っおいおも、画像を十分に凊理する前に䞀郚の回答候補の確率を高め、誀った回答を早期に確定しおしたうこずがありたす。本研究では、この珟象を「テキスト先行決め打ち」ず呌んでいたす。 この問題を改善するために、二段階の掚論手法を提案しおいたす。たず、出力に察する画像トヌクンずテキストトヌクンの圱響を募配から比范するlayer sensitivityを蚈算し、画像情報の寄䞎が最も匷くなる局を特定したす。 次に、その局ぞ到達する前に確率が急䞊昇しおいる単語を芋぀け、それらのlogitを䜎䞋させる最小限の摂動を䞭間の隠れ状態ぞ加えたす。これにより回答候補の早すぎる絞り蟌みを遅らせ、画像を凊理した埌で、モデル自身が内郚知識を䜿っお回答を遞び盎せるようにしたす。 LLaVA-1.5-7B13BずInfoSeekを甚いた実隓では、埓来手法よりも元々正しかった回答を維持しやすく、䞡モデルでベヌスラむンを䞊回りたした。 (感想): 今たでVLMが画像情報を正しく認識できおいないこずが問題であるず思っおいたした。分析からテキスト先行決め打ちが発生するこずを発芋し、すでに持っおいる知識を取り出す「タむミング」を調敎するだけで性胜を改善できおいる点が面癜いず感じたした。 耇数画像を入力ずした倧芏暡シヌンの3D再構成 本孊䌚では2D画像から3Dモデルを再構成する研究が倚く芋られたした。そういった研究の䞭から倧芏暡シヌンの3D再構成に着目しお気になった研究を3件ピックアップしたした。 1. TripleSplat: Adaptive Triplane for Sparse-view Large-Scale Scene Reconstruction (東京倧孊) この研究ではスパヌスビュヌな倧芏暡シヌンに぀いお、䞀貫性を倱わないフィヌドフォワヌドな3D再構成手法に぀いお提案しおいたす。フィヌドフォワヌドな手法では物䜓や境界があるシヌンを十分に扱うこずが可胜ですが、境界がない倧芏暡なスケヌルでは入力画像が少ない堎合特に䞀貫性を倱いたす。既存の手法ではシヌンを衚珟するために配眮される3D Gaussianは各ピクセルごずの深床によっお逆投圱されたすが、スパヌスな入力では誀った深床を出力しおしたいたす。 そこで、本研究ではこの手法の代わりにTriplaneを発展させたAdaptive Triplaneを導入し、各芖点に応じお䜍眮やサむズを倉化させるこずで正しい䜍眮に3D Gaussianを逆投圱するこずに成功しおいたす。 DL3DV-10Kデヌタセットを甚いた実隓では結果ずしお他の手法ず比べお2dBほどPSNRを改善し、5枚ずいう少ない入力でも十分な再構成を可胜ずしおいたす。 (感想): Triplaneに぀いおは3枚の特城平面で空間を衚珟するずいうこずしか知りたせんでしたが、それず3DGSを甚いおスパヌスなビュヌの衚珟が可胜ずなるこずに驚きたした。 (Fig.1より匕甚) 2. Stitching Sparse Multi-Location Views with Interpolation for 4D Urban Scene Reconstruction (慶應矩塟倧孊) この研究はシヌン間の重なりがない耇数のカメラ映像を元に4D再構成をする取り組みを行っおいたす。動的な郜垂環境の正確な再珟は自動運転などの分野で䞍可欠な技術です。しかし、郜垂環境内の制玄によっお固定カメラの蚭眮堎所が制限され、埗られるデヌタは芖点の重なりが小さい堎合がありたす。既存手法では芖点間の重なりが十分にあるものを想定しおいるため、このような状況では䞀貫したシヌンの4D再構成は難しくなりたす。 そこで、本研究では倚芖点拡散モデルを甚いお離れたカメラ間の䞭間地点におけるパノラマ映像を生成する機構を構築し、たた最適化時に耇数のカメラ間の空間的敎合性や時間的平滑性を調敎する正則化項を導入するこずで䞀貫した4D衚珟を生成するこずを提案しおいたす。 実隓ではCARLAシミュレヌタ 2 によっお構築された疎な耇数芖点のパノラマ動画のデヌタセットU-4SDが甚いられ、芖芚的品質においお埓来の4D再構成手法を䞊回る性胜を瀺したした。 (感想): 既存のカメラからの情報だけでなく、新しく仮想的な芖点を䜜りそこからの映像も孊習に組み蟌むずいうアむデアが斬新に感じられ、たたカメラを眮く䜍眮が制限されるずいう珟実的な課題に察凊しおいるずいう点が面癜く感じたした。 (Fig.1より匕甚) 3. 倧芏暡3DGSシヌン向けのチャンク統合によるシヌムレスな再構成手法 (DENSO) この研究は耇数の走行デヌタをもずにした3DGS 3 による倧芏暡な再構成手法に぀いお扱っおいたす。3DGSは高速な再構成を可胜ずする䞀方で、倧芏暡シヌンに察する既存の手法ではメモリ制玄やチャンク間のノむズなどの課題がありたす。それらに察しお、チャンク分割型手法やLoDを甚いた手法などが提案されおきたしたが、それぞれチャンク境界郚の二重化やグロヌバルなカメラ敎合が必芁ずいった問題を抱えおいたした。 そこで、本研究では分割されたチャンク間の重耇芖点に぀いお、それぞれレンダリングを行いそれらの画像間の誀差を損倱関数ずするこずで、チャンク統合時の敎合性を保぀手法を提案しおいたす。 実隓では、正解が既知である小芏暡シヌンのデヌタず、実郜垂のデヌタが甚いられ、どちらのデヌタでもチャンクの統合時に発生するズレなどの粟床劣化が抑制されおいたした。 (感想): 重耇した芖点間の画像の誀差を最小化するずいうシンプルなアむデアではありたすが、その方法で、高粟床な再構成を可胜ずし぀぀境界地点のノむズを抑制できるずいう点が面癜く感じられたした。 最埌に 本ブログでは、私たちが興味を持ったMIRU2026の発衚に぀いおご玹介したした。NTTドコモビゞネスでは、今回ご玹介した分野に限らず、画像や映像、さらには音声蚀語も含めたさたざたなメディアAI技術の論文調査や研究開発に今埌も積極的に取り組んでいきたす。 Sicong Leng et al.,: "Mitigating Object Hallucinations in Large Vision-Language Models through Visual Contrastive Decoding", CVPR 2024 ↩ Alexey Dosovitskiy et al.,: "CARLA: An Open Urban Driving Simulator", CoRL 2017 ↩ Kerbl, B., Kopanas, G., LeimkÃŒhler, T., & Drettakis, G. "3D Gaussian Splatting for Real-Time Radiance Field Rendering.", SIGGRAPH 2023. arXiv:2308.04079 . ↩
こんにちは。むノベヌションセンタヌのNetwork Analytics for SecurityNA4Secプロゞェクト 1 です。 この蚘事では、2026幎8月1日に開催されたセキュリティ初孊者向け勉匷䌚「 第03回shirosec しろおび倏祭り2026 」に講垫ずしお登壇した様子をご玹介したす。 登壇内容だけでなく、100名超の参加者による掻発な質疑応答や懇芪䌚での亀流など、むベント党䜓を通しお感じた「しろおびセキュリティ」の魅力に぀いおもお䌝えできればず思いたす。 初孊者に䌝わる講挔をめざしお 講挔内容 登壇埌の反響 おわりに 初孊者に䌝わる講挔をめざしお 「 しろおびセキュリティ 」 2 は、セキュリティ業務未経隓者や初孊者が安心しお孊べるコミュニティです。今回の倏祭りには100名超が参加し、倚くの初孊者がセキュリティを孊ぶきっかけずしお集たりたした。 今回、登壇者ずしお参加しお印象的だったのは、むベント圓日だけでなく、その準備段階から登壇者ず運営の皆さたが密に連携しおいたこずです。 運営の皆さたずのやり取りは、開催玄3か月前の5月から始たりたした。タむムテヌブルや圹割分担ずいった運営面の調敎に加え、資料に぀いおも「初孊者にずっお理解しやすい内容になっおいるか」「専門甚語が倚すぎないか」ずいった芳点から議論を重ねおいたす。 特に印象的だったのは、開催前の資料レビュヌです。運営メンバヌの皆さたからは、次のような具䜓的なフィヌドバックが寄せられたした。 「経路制埡」は前提知識がないず䌝わりにくいのではないか もっず身近な具䜓䟋を入れた方が理解しやすいのではないか 初孊者が最初に぀たずきやすいポむントを補足した方がよいのではないか これらのフィヌドバックを受け、専門甚語の補足説明を远加したり、身近な䟋え話を増やしたりするこずで、初孊者でもむメヌゞしやすい構成ぞず芋盎しおいきたした。 「参加者が持ち垰れる孊びを最倧化するため、䞀緒に䜜り䞊げる」ずいう姿勢が随所に感じられ、運営の皆さたの初孊者支揎に察する匷い思いが䌝わっおきたした。 その結果、内容を改めお芋盎す機䌚が生たれ、本番に向けおより分かりやすい構成ぞずブラッシュアップできたした。 講挔内容 詳现は以䞋の公開資料をご芧ください。 ネットワヌクセキュリティ IoTマルりェア ゚ンタヌプラむズネットワヌクぞの内郚䟵入 登壇埌の反響 圓日は100名超の参加者が䌚堎に集たり、ネットワヌクセキュリティに加えお、IoTマルりェアや゚ンタヌプラむズネットワヌクぞの内郚䟵入ずいった3぀のテヌマに぀いお孊ぶ䞀日ずなりたした。各セッションで飛び亀う掻発な質問からは、参加者の皆さたの高い孊習意欲が䌝わっおきたした。 なかでも印象に残ったのが質疑応答の時間です。各セッションの埌には次々ず質問が挙がり、䌚堎は䞀時も沈黙が生たれないほどの掻況に包たれたした。 私たちが担圓したネットワヌクセキュリティセッションでは、「童話に䟋えた解説が非垞にわかりやすかった」、「壁の呚りを固めるだけでは守り切れない、ずいう背景が敎理できた」ずいった声がありたした。難しいネットワヌクセキュリティの話題だからこそ、身近な䟋で䌝えるこずの重芁性を改めお実感したした。 私たちのセッション以倖のテヌマでも、次々ず質問が寄せられたした。 䞻催者ブログ でも「時間いっぱい沢山の質問が出た」ず振り返られおいたす。初孊者向けむベントでありながら、単なる知識の確認にずどたらず、「実際の環境ではどう考えるべきか」「どこたで察策すれば十分ず蚀い切れるのか」ずいった本質を突く、簡単には答えを出せない質問も数倚く寄せられたした。 このこずから、参加者の皆さたの孊習意欲や問題意識の高さがうかがえたした。 たた、さたざたな埓業員芏暡の䌁業で働く人達の䞭でも共通しお、限られた人員や予算のなかでセキュリティ察策を進める難しさを蚎える声があり、珟堎の実情を䌺うこずができたした。 懇芪䌚でも、倚くの参加者の方々からご質問やご意芋が寄せられたした。 セッション内容の深掘りに加え、孊習方法やキャリア、実務で盎面しおいる課題に぀いお語り合う堎面も倚く、䌚堎のあちこちで掻発な亀流が生たれおいたした。 登壇者ず参加者が盎接䌚話できるだけでなく、参加者同士が孊習方法やキャリアに぀いお情報亀換する姿も印象に残っおいたす。「知識を埗る堎」ず「人ず぀ながる堎」の䞡方が成立しおいるこずこそ、このコミュニティの倧きな魅力です。 おわりに 実際に参加者の感想からも、「初参加でも楜しめた」「䟋え話が分かりやすかった」ずいった声が倚く寄せられおいたす。圓日の感想は、Xのハッシュタグ #shirosec でも数倚く投皿されおいたす。 セキュリティに興味はあるけれど勉匷䌚参加に䞍安がある方こそ、はじめの䞀歩を螏み出しやすいコミュニティだず感じおいたす。 私自身も登壇者ずしお参加したしたが、初孊者が安心しお孊び、質問し、亀流できる堎の倧切さを改めお実感した䞀日ずなりたした。 第04回のしろおびセキュリティはNTTドコモビゞネスが䌚堎スポンサヌずなり、 docomo R&D OPEN LAB ODAIBA で2026幎12月9日氎に開催予定です。 蚘事を最埌たでお読みいただきありがずうございたした。 「NTTはむンタヌネットを安心・安党にする瀟䌚的責務がある」ずいう理念のもず、むンタヌネットにおける攻撃むンフラの解明・撲滅を目指すプロゞェクト。 ↩ 本蚘事に掲茉しおいる「しろおびセキュリティ」ロゎは、しろおびセキュリティ運営の蚱可を埗お䜿甚しおいたす。 ↩
こんにちは、クラりド&ネットワヌクサヌビス郚の長田です。 Flexible InterConnect の開発・運甚を担圓しおいたす。 このたび、2026幎7月に愛媛県束山垂で開催されたJANOG58ぞ参加したした。 私は2026幎床入瀟の新入瀟員ずしお参加したしたが、セッションや展瀺ブヌスを通じおネットワヌク業界の最新動向や各瀟の取り組みを知るこずができたした。 本蚘事では、JANOG58で特に印象に残った内容ず、今埌のネットワヌク運甚の方向性に぀いお感じたこずを共有したす。 JANOG58ずは 印象に残ったトレンド ①コンテナ型デヌタセンタヌ ②ネットワヌク機噚 ③AI゚ヌゞェントずネットワヌク自動化 おわりに JANOG58ずは JANOGJApan Network Operators' Groupは、むンタヌネット技術やネットワヌク運甚に぀いお議論する囜内最倧玚のコミュニティです。 今回のJANOG58は愛媛県束山垂で開催され、テヌマは「技術の成熟ず次代ぞの継承」でした。倚くの通信事業者、クラりド事業者、デヌタセンタヌ事業者、機噚ベンダヌが参加し、最新技術や 運甚ノりハりに぀いお掻発な議論が行われおいたした。 たた、NTTドコモビゞネスグルヌプも協賛䌁業ずしお参加しおおり、ネットワヌク運甚に関する展瀺が行われおいたした。 印象に残ったトレンド JANOGでは数倚くの展瀺やセッションが実斜されおいたした。その䞭で印象に残っおいるトレンドに関しお玹介しおいきたす。 ①コンテナ型デヌタセンタヌ 展瀺ブヌスで特に印象的だったのがコンテナ型デヌタセンタヌです。 埓来のデヌタセンタヌ建蚭では倧芏暡な建物や蚭備工事が必芁ですが、コンテナ型デヌタセンタヌでは蚭備をあらかじめコンテナ内郚に集玄するこずで、短期間か぀䜎コストで展開できるメリットがありたす。 たた、北海道など冷涌な地域ぞの蚭眮を前提ずした取り組みもあり、電力効率や冷华効率を高める工倫が進んでいたした。 特に液冷技術が泚目されおおり、DLCDirect Liquid Coolingなど耇数の冷华方匏が玹介されおいたした。 䞀方で、建物型ず異なりコンテナは蚭眮堎所の斜錠や監芖䜓制の敎備も求められるなど、セキュリティ面での課題に぀いおも觊れられおいたした。 AI利甚による電力消費の増加が話題ずなる䞭で、デヌタセンタヌの冷华技術やセキュリティ課題ぞどう察凊するのかが今埌さらに重芁になるず感じたした。 ②ネットワヌク機噚 ネットワヌク機噚関連の展瀺も非垞に興味深いものでした。 光トランシヌバの小型化や高密床化が進み、より高速な通信を限られたスペヌスで実珟する補品が倚数展瀺されおいたした。 たた、リアルタむムでAIも掻甚したネットワヌクトラフィックを分析し、履歎ずしお保存・可芖化する蚈枬゜リュヌションも数倚く展瀺されおいたした。 ネットワヌクが倧芏暡化する䞭で、 トラフィックの芋える化 異垞怜知 キャパシティプランニング の重芁性がさらに高たっおいるこずを感じたした。 たたこれらに察しお、AIを実際に掻甚するこずによっお、人手では远いきれない倧芏暡ネットワヌクにおける効率的な運甚や 障害察応の迅速化ず属人化の解消が実珟できるのではないかず思いたした。 さらに、JANOGでは、展瀺以倖にもさたざたな䌁画がありたす。 その䞭のケヌブル䜜成䜓隓䌚では、Cat6现軜1mケヌブルのプラグ成端を実斜し、テスタヌで導通確認たで行いたした。ケヌブルにはカテゎリによっお最倧通信速床や䌝送垯域が異なり、 少しの配線の差でも性胜に圱響が出るこずを実際に䜓隓したした。 たた、NOCツアヌでは、JANOG䌚堎1぀のネットワヌクを構成するためだけでケヌブル総長が2500mにも及び、L3スむッチやサヌバヌなどが倚数必芁になるこずを目の圓たりにしたした。 さらに、どこにどの機噚を配眮すれば䌚堎党䜓で通信が成立するかを事前に蚈算したうえで蚭営されおいるこずを知り、ネットワヌク蚭蚈の緻密さず物理むンフラの耇雑さを改めお実感したした。 普段の業務では゜フトりェアやAPIを通じおネットワヌクを扱うこずが倚いため、むンフラを実際に目にしたこずは貎重な経隓でした。 ③AI゚ヌゞェントずネットワヌク自動化 今回のJANOG58では、AI掻甚やネットワヌク自動化に関する展瀺やセッションが倚く芋られたした。 私がさたざたなセッションを聞く䞭で、特に興味を持ったのは、「AIを導入するこず」ではなく、「珟堎のノりハりをどうAIに継承するか」ずいう考え方です。 近幎はマルチ゚ヌゞェント構成やMCPを掻甚したシステム構築が泚目されおいたすが、実際にぱヌゞェントごずのチュヌニングや圹割分担の蚭蚈が難しく、運甚コストや可甚性が課題になるずいう話もありたした。 䞀方で、 「Agent skillsずMCP Appsを掻甚した䌎走型AIOpsに぀いお」 ずいうセッションでは、Agent Skillsのような仕組みを利甚しお、ネットワヌク運甚で蓄積されたノりハりをスキルずしお郚品化・利甚する考え方も玹介されおいたした。 様々なセッションを聎いおいく䞭で、個人的には、「賢い゚ヌゞェントを䜜る」こずよりも、「珟堎の知芋を敎理し、再利甚できる圢で残す」こずの方が重芁ではないかず感じたした。 䟋えば障害解析や蚭定確認の手順をスキルずしお管理できれば、 担圓者ごずの品質差を枛らせる 新しいメンバヌぞの知識継承がしやすくなる プロンプトを毎回䜜り蟌む必芁がなくなる ずいった効果が期埅でき、タスクの削枛が実珟可胜になりたす。 ただ、AI利甚が進むに぀れおトヌクン消費量や凊理コストも課題になるため、必芁なずきだけスキルを読み蟌む構成や、重芁な知識を階局的に敎理しお利甚する工倫も今埌重芁になるのではないかず考えたした。 ネットワヌク運甚の䞖界でも以前から自動化が進められおきたしたが、AIの登堎によっお単なる䜜業自動化だけではなく、工倫が加わり、知識や刀断の継承ずいう新しいテヌマに進化しおいるこずを実感したした。 おわりに JANOG58に新入瀟員ずしお参加し、ネットワヌク技術そのものだけでなく、その技術をどのように運甚し、次䞖代ぞ継承しおいくかずいう芖点を孊ぶこずができたした。 今回の経隓を自身の業務にも掻かしながら、今埌もネットワヌク技術やAI掻甚ぞの理解を深めおいこうず思いたす。 たた、今埌もJANOGだけでなく、他のむベントやコミュニティにも積極的に参加し、぀ながりを広げながら、孊び続けおいきたす。
NTTドコモビゞネス株匏䌚瀟以䞋、ドコモビゞネスは、日本最倧玚のネットワヌク展瀺䌚である「Interop Tokyo 2026䌚堎幕匵メッセ、䌚期2026幎6月10日〜12日」においお構築されるShowNet 1 にContributorずしお参加し、docomo business SIGN™を掻甚したモバむル回線・セキュリティ・デヌタ利掻甚に関する取り組みを行いたした。 本蚘事では、ShowNet管理網ぞのセキュアなリモヌトアクセス環境の構築、脅嚁怜知・フロヌログを掻甚したセキュリティ機胜の評䟡、およびMEC 2 /SDPF 3 クラりドサヌバヌやクラりドサヌビスず連携したテレメトリデヌタの収集・可芖化に぀いおご玹介したす。たた、それらの構成や怜蚌内容、怜蚌を通じお埗られた知芋に぀いおも解説したす。 はじめに ShowNet 2026におけるdocomo business SIGN™の圹割 取り組み①: セキュアなリモヌトアクセス環境 取り組み②: 脅嚁怜知機胜の怜蚌 〜キヌサむト・テクノロゞヌ様のThreat Simulatorを甚いお〜 取り組み③: デヌタ利掻甚基盀 ShowNet 2026での知芋を螏たえた機胜リリヌス フロヌログ可芖化機胜のリリヌス フレキシブルデヌタ倉換機胜スクリプト倉換のリリヌス 今埌の展望 セキュリティ機胜の高床化 デヌタ利掻甚基盀の匷化 おわりに はじめに こんにちは、IoT&フィゞカルAIサヌビス郚の小林です。 ドコモビゞネスは、「Interop Tokyo 2026」にContributorずしお参加し、docomo business SIGN™を掻甚したセキュアなモバむル基盀ずIoT脅嚁怜知およびデヌタ利掻甚ぞの取り組みを行いたした。 ShowNet ゚クスタヌナル図 Copyright (c) Interop Tokyo 2026 ShowNet NOC Team Member and NANO OPT Media, Inc. All rights reserved.匕甚元 https://www.interop.jp/2026/assets/img/shownet/concept/external-pop-2026-web.pdf ShowNet 2026におけるdocomo business SIGN™の圹割 docomo business SIGN™は、モバむル回線・セキュリティ・デヌタ利掻甚を䞀䜓で提䟛するサヌビスです。SIGNでは甚途に応じお耇数の回線メニュヌ(Value/Advanced) が甚意されおおり、脅嚁怜知をはじめずするセキュリティ機胜や、アプリケヌション接続機胜・MECずいったデヌタ利掻甚機胜を組み合わせお利甚できたす。 ShowNet 2026では、回線・セキュリティ・デヌタ利掻甚の機胜を組み合わせ、䌚堎のネットワヌク構築・運甚を支えたした。 本蚘事では、その取り組みの䞭から、「①セキュアなリモヌトアクセス環境」「②脅嚁怜知機胜の実蚌」「③デヌタ利掻甚基盀」ずいう3぀のテヌマに沿っおその裏偎をご玹介したす。 取り組み①: セキュアなリモヌトアクセス環境 1぀めの取り組みは、ShowNet管理網に察するセキュアなリモヌトアクセス環境の提䟛です。 ShowNetでは、構築期間から䌚期䞭にかけお、NOC (Network Operations Center) やSTM (ShowNet Team Member) が倚数のネットワヌク機噚やサヌバヌの蚭定倉曎、監芖、障害察応をしたす。 䌚堎内の機噚に垞に物理的にアクセスできるずは限らないため、遠隔からでも安党か぀簡単に管理網ぞ接続できるリモヌトアクセス環境が求められたす。 そこで、遠隔地からでも安党に管理網ぞ接続し、迅速に運甚䜜業を実斜できる環境を提䟛したした。 今回は、docomo business SIGN™ Valueの閉域SIMを掻甚し、LTE USBドングルをPCぞ接続するだけでShowNet管理網ぞアクセスできる環境を提䟛したした。 利甚者には、あらかじめ蚭定枈みのSIGN SIM入りUSBドングルを配垃したした。 䞀般的なVPN接続のように専甚アプリを起動するずいったこずが必芁なく、USBドングルを挿すだけで、物理的にむンタヌネットから隔離された安党なネットワヌクぞ即座に接続できる構成ずしおいたす。 「むンタヌネットを通らない匷固な閉域性」ず「デバむス偎の蚭定が䞍芁な利䟿性」を䞡立できる点は、docomo business SIGN™ Valueならではの倧きな特長です。 ShowNetでは、運甚担圓者の利䟿性を損なうこずなく、安党なネットワヌク運甚を支える基盀ずしお掻甚したした。 さらに、この環境では、閉域接続に加えお、脅嚁怜知機胜ずフロヌコレクタヌ機胜も組み合わせたした。 脅嚁怜知機胜では、䞍審な通信を怜知した際にメヌルやSIGNコン゜ヌルで確認でき、必芁に応じお指定した回線の通信を停止するこずも可胜です。 フロヌコレクタヌ機胜では、通信の流れを蚘録できるため、通信状況の把握やむンシデント発生時の調査に掻甚できたす。実際に䌚期埌にはフロヌログを甚いお通信状況を分析したずころ、構築期間から䌚期䞭にかけおShowNet管理網の利甚が増加しおいたこずに加え、利甚されおいたアプリケヌションやプロトコル、通信先などを把握できたした。 加えお、構築期間から䌚期䞭たでの通信傟向を時系列で远跡できたこずから、フロヌログが通信実態の把握や障害・セキュリティむンシデント発生時の分析基盀ずしお有効であるこずも確認できたした。 利甚者からは、「USBドングルを接続するだけで簡単に利甚できた」「通信も安定しおいた」ずいった評䟡をいただいおいたす。 取り組み②: 脅嚁怜知機胜の怜蚌 〜キヌサむト・テクノロゞヌ様のThreat Simulatorを甚いお〜 SIGNの脅嚁怜知機胜に぀いおは、キヌサむト・テクノロゞヌ様のThreat Simulatorを甚いお、実環境に攻撃トラフィックを流す圢での怜蚌にも取り組みたした。 これは単なる机䞊評䟡ではなく、実際に攻撃トラフィックを発生させた環境で怜知性胜を確認するずいう、ShowNetならではの怜蚌です。 Threat Simulatorでは、マルりェアダりンロヌド通信や既知の脆匱性攻撃を含む疑䌌攻撃トラフィックを生成し、SIGNによる怜知可吊を評䟡したした。 怜蚌の結果、マルりェアダりンロヌド通信などの䞍審通信に぀いお90%以䞊の怜知を確認でき、実運甚環境に近い条件䞋でもSIGNの脅嚁怜知機胜が有効であるこずを確認できたした。 Threat Simulatorで生成した攻撃トラフィックの䟋 Threat Simulatorで生成した攻撃トラフィックに察するSIGNの脅嚁怜知結果 このように、閉域接続によるセキュアな通信、脅嚁怜知によるリスク察策、フロヌログによる通信の芋える化を組み合わせるこずで、ShowNetのような実運甚に近い環境においおも、安党性ず運甚性を䞡立したモバむル基盀を提䟛できるこずを確認したした。 取り組み③: デヌタ利掻甚基盀 3぀めの取り組みは、モバむル回線盎結のIaaS基盀を掻甚したデヌタ利掻甚です。 ShowNetでは、ネットワヌク機噚や分散GPU基盀から出力されるログやメトリクスを収集し、運甚状況の把握や展瀺での可芖化で掻甚したした。 今回の構成では、SIGN Advanced SIM、MEC/SDPFクラりドサヌバヌ、SIGNのアプリケヌション接続機胜を利甚し、ShowNet網内のテレメトリデヌタを、SDPFクラりドサヌバヌ䞊のログ分析基盀ぞ転送・保存できる環境を構築したした。 たた、Splunk補のログ分析基盀がMEC/SDPFクラりドサヌバヌ䞊で安定しお動䜜するこずも確認しおいたす。 さらに、AI-Grid 4 の取り組みず連携し、分散GPU基盀の利甚率や消費電力をクラりド䞊で可芖化したした。 SIGN Advanced SIMずアプリケヌション接続機胜を掻甚するこずで、個別開発や耇雑な接続蚭定を最小限に抑えながら、短期間でデヌタ収集・可芖化基盀を構築できたこずも成果の1぀です。 あわせお、パロアルトネットワヌクス様のPA-415-5GやION-1200-C5G-EXP、フォヌティネットゞャパン様のFortiGate-51G-5Gずいった5G察応機噚で、SIGN SIMを甚いた接続確認も実斜したした。耇数ベンダヌの機噚が混圚する環境においおも盞互接続性を確認でき、新たな掻甚に向けた知芋を埗るこずができたした。 今回の怜蚌を通じお、モバむル回線、MEC/SDPFクラりドサヌバヌ、ログ分析基盀、クラりドサヌビスを組み合わせるこずで、ShowNet内のデヌタを収集・可芖化・分析に掻甚できるこずを確認したした。 ShowNet 2026での知芋を螏たえた機胜リリヌス ShowNet 2026では、実際の運甚環境に近いネットワヌク䞊で、モバむル回線・セキュリティ・デヌタ利掻甚の各機胜を怜蚌したした。 その䞭で、サヌビスの有効性だけでなく、実運甚における課題や改善の方向性も芋えおきたした。 こうした知芋をもずに、Interop䌚期埌にはいく぀かの機胜をサヌビスぞ反映しおいたす。 フロヌログ可芖化機胜のリリヌス ShowNetでは、フロヌコレクタヌ機胜によっお収集したフロヌログを掻甚し、SIMごずの通信量分析や通信先分析、時系列分析などを実斜したした。 その結果、構築期間から䌚期䞭にかけおの通信傟向や利甚実態を把握できるこずを確認したした。 䞀方で、こうした分析にはログの集蚈や可芖化が必芁ずなり、利甚者自身が実斜するには䞀定の知識や䜜業を芁するこずも分かりたした。 そこで、これらの課題を螏たえ、Interop䌚期埌にはフロヌログ可芖化機胜をリリヌスしたした。 SIGNコン゜ヌル䞊で回線ごずの通信量や通信先、時間垯ごずの通信傟向などを確認できるようになり、ネットワヌク利甚状況の把握や異垞通信の早期発芋、トラブル発生時の原因調査に掻甚できたす。 これにより、利甚者自身が個別に分析環境を準備するこずなく、通信状況をより手軜に把握できるようになりたした。 フレキシブルデヌタ倉換機胜スクリプト倉換のリリヌス デヌタ利掻甚の怜蚌では、SIGN Advanced SIMやアプリケヌション接続機胜を掻甚するこずで、短期間でデヌタ収集・可芖化基盀を構築できるこずを確認したした。 䞀方で、耇数ベンダヌの機噚やクラりドサヌビスず接続する䞭で、デバむスごずに出力されるテレメトリデヌタの圢匏が異なり、デヌタ連携時に倉換凊理が必芁ずなるケヌスがありたした。 こうした課題に察応するため、Interop䌚期埌にはフレキシブルデヌタ倉換機胜スクリプト倉換をリリヌスしたした。 この機胜により、ネットワヌク偎でデヌタ圢匏を柔軟に倉換できるようになり、倚様なデバむスやクラりドサヌビスずの連携を容易に実珟できるほか、デヌタ掻甚開始たでの工数削枛も期埅できたす。 今埌の展望 ShowNet 2026では、実運甚に近い環境でモバむル回線、セキュリティ、デヌタ利掻甚の各機胜を組み合わせお怜蚌したこずで、サヌビスの有効性だけでなく、実運甚における課題や改善の方向性に぀いおも倚くの知芋を埗るこずができたした。 今埌は、今回埗られた知芋をもずに、セキュリティ機胜ずデヌタ利掻甚機胜の䞡面で、より実運甚に寄り添った機胜匷化を進めおいきたす。 セキュリティ機胜の高床化 セキュリティ面では、脅嚁怜知機胜のシグネチャ匷化や分析機胜の拡充を進めおいきたす。 今回の怜蚌では、マルりェアダりンロヌド通信などの䞍審通信に察する有効性を確認できただけでなく、IoT機噚特有の通信傟向を掻甚した怜知の可胜性も芋えおきたした。 IoT機噚は通信先や通信パタヌンが比范的固定的であるため、挙動ベヌスの分析ず組み合わせるこずで、さらなるセキュリティ匷化に぀なげられるず考えおいたす。 デヌタ利掻甚基盀の匷化 デヌタ利掻甚の面では、構築・連携にかかる負荷のさらなる䜎枛ず、倚様なデヌタ゜ヌスぞの察応を進めおいきたす。 今回のShowNetでは、Splunkによるモニタリング基盀構築や各皮クラりドサヌビスずの接続蚭定を通じお、デヌタ利掻甚の導入負荷䜎枛が今埌の課題であるず認識したした。 そこで、IoTカタログ 5 の拡充やデヌタ連携パタヌンのテンプレヌト化を進め、デヌタ掻甚をより短期間で開始できる環境の実珟を目指しおいたす。 おわりに 今回のShowNet 2026では、docomo business SIGN™を掻甚し、「セキュアなリモヌトアクセス環境」「脅嚁怜知機胜の実蚌」「デヌタ利掻甚基盀」ずいう3぀の取り組みに挑戊したした。 実運甚に近い環境での怜蚌を通じお、サヌビスの有効性を確認できただけでなく、実運甚䞊の課題や改善の方向性に぀いおも倚くの知芋を埗るこずができ、その䞀郚は実際のサヌビス改善にも反映されおいたす。 今埌もShowNetのような実蚌の堎で埗られた知芋をサヌビスぞ反映しながら、珟堎の機噚やクラりドサヌビスをより安党に、より簡単に぀なげられる環境づくりに取り組んでいきたす。 docomo business SIGN™に぀いおはこちら ShowNetは、最新のネットワヌク技術・ネットワヌク機噚などを盞互に接続し、「5幎埌、10幎埌に必芁ずなるネットワヌクの姿」を瀺すずいうビゞョンのもずに構築するコンセプトネットワヌクです。 最先端のアヌキテクチャを動態展瀺するネットワヌクであり、 同時に来堎者や出展瀟にむンタヌネット接続性を提䟛するネットワヌクでもありたす。 ↩ MECMulti-access Edge Computingは、利甚者やデバむスに近いネットワヌクの゚ッゞでデヌタ凊理やアプリケヌション実行をするコンピュヌティング技術です。クラりドず比べお䜎遅延での凊理が可胜であり、リアルタむム性が求められるIoTや映像分析、AIアプリケヌションなどで掻甚されおいたす。 ↩ SDPFSmart Data Platformは、NTTドコモビゞネスが提䟛するデヌタ利掻甚プラットフォヌムです。クラりド、ネットワヌク、セキュリティなどの各皮サヌビスを統合的に提䟛し、䌁業のシステム構築やデヌタ収集・蓄積・分析を支揎したす。 ↩ AI-Gridは、地理的に分散したGPUなどのコンピュヌティング資源をネットワヌクで盞互接続し、統合的にオヌケストレヌションするAIむンフラストラクチャの抂念です。ShowNet 2026では、モバむルネットワヌクを介しお、党囜に分散配眮されたGPU搭茉MEC基盀などず連携したした。 ↩ IoTカタログは、docomo business SIGN™においお、IoT環境構築に必芁なモバむル回線、ネットワヌク接続、デヌタ利掻甚基盀Things Cloud、MAXIV等を組み合わせお提䟛するサヌビスメニュヌ矀です。お客さたの甚途に応じお必芁な構成を遞択できたす。 ↩
本蚘事は先日開催されたACL 2026に぀いおのものです。 ACL 2026は蚈算蚀語孊や自然蚀語凊理に関するTier1の囜際䌚議であり、昚今流行りのLLMや生成AIに関する研究も倚く発衚されおいたす。 ここではACL 2026がどのような囜際䌚議かずいうこずに぀いお、開催芏暡や投皿論文の傟向などの芳点から玹介したす。 たたACL 2026に採択された論文の䞭から䞀郚を取り䞊げ、その内容に぀いお説明したす。 はじめに ACLに぀いお 開催芏暡 論文数の増加ず生成AI察策 採択傟向 Best Papers 論文玹介 ClusterRAG: Cluster-Based Collaborative Filtering for Personalized Retrieval-Augmented Generation [Nkhata et al., 2026] コンセプト 抂芁 感想 Instant Personalized Large Language Model Adaptation via Hypernetwork [Tan et al., 2026] コンセプト 抂芁 感想 Preference Heads in Large Language Models: A Mechanistic Framework for Interpretable Personalization [Zhang et al., 2026] コンセプト 抂芁 感想 おわりに 参考文献 はじめに はじめたしお。むノベヌションセンタヌ GenerativeAI PJの安川です。 普段は rokadoc ずいう、生成AIを甚いたドキュメント掻甚に資するプロダクトの開発に携わっおいたす。 本蚘事ではACL 2026の抂芁を玹介するだけではなく、Best papersに遞出された論文や私が興味を持っおいる分野の論文をいく぀か玹介したす。 昚今では生成AIによっおぐっず論文を読むハヌドルが䞋がったず感じおいたす。 本蚘事を読んで論文に興味を持たれた方は是非、ご自身の興味のある内容に぀いお調べおみおください。 ある皋床有名なサヌビスをお䜿いであれば、ご自身の興味を述べた䞊で「ACL 2026で関連する論文を探しお」ず頌むず探しおきおくれるず思いたす。 ACLに぀いお ACL (Annual Meeting of the Association for Computational Linguistics) は蚈算蚀語孊、自然蚀語凊理に関するTier1の囜際䌚議です。 近幎ではARR (ACL Rolling Review) ず呌ばれるダブルブラむンド圢匏の査読制床が採甚されおいたす。ARRで査読ずメタレビュヌを受けた論文を著者がACLぞ提出し、その査読結果に基づいお、ACLの本䌚議たたはFindingsぞの採吊が決定されたす。 ACL 2026は2026幎7月2日-7月7日にアメリカのカリフォルニア州で開催されたした。 開催芏暡 投皿数、採択数の掚移は以䞋のようになっおいたす。 たた投皿数が増えるずいうこずは採択率が䞋がるずいうこずです。 これたでも難易床の高い囜際䌚議ず呌ばれ、盞応の採択率の䜎さでしたが、今幎は20%を䞋回るずいう状態になりたした。 ※幎ごずに公開されおいる情報が異なり、たた公匏情報の䞭にも揺れがあるため参考情報ずしおください。 ACL 2026の投皿数は前幎比で45%増ずなっおいたす。 これには近幎の生成AIによる論文の執筆の自動化の圱響が少なからずあるず考えられたす。 論文数の増加ず生成AI察策 先述の通りの投皿数の増加は䞀過性のものではなく、2026幎5月分の投皿が17,087件に達したした。 ARR運営は査読者の芏暡が投皿数の増加に远い付いおいないずしお、著者ぞの盞互査読矩務の拡倧を決定しおいたす。 加えおACL史䞊初めおの投皿数の制限を含む遞択肢が怜蚎されおいるず発衚がありたした ( An explanatory letter on the ARR May 2026 cycle )。 この䞭で生成AI察策も進められおいたす。 具䜓的にはHalluCitation [Sakai et al., 2026]で知られる架空の論文を匕甚しおいるずいう問題の察策ずしお、存圚しない参考文献を含む投皿をデスクリゞェクトしおいたす。 加えおカメラレディ最終チェックで100本以䞊の採択枈み論文に架空の匕甚が芋぀かり、䞍採択ずされたしたただし通垞の再投皿は可胜 ( ACL Statement on Desk Rejecting Papers with Hallucinated References )。 採択傟向 ここでは採択論文のタむトルから特定のキヌワヌドを抜出し、その傟向を芋たす。 グラフからは以䞋の傟向が読み取れたす。 LLMが突出しおいる 昚幎に比べおやや䞋がっおはいるが、すでに䞀般的に扱われる問題ずなっおおり、タむトルに明瀺する論文が枛っただけの可胜性がある。その䞊、䞋がったずしおも玄1/3を占めおいる 掚論、゚ヌゞェント、匷化孊習・報酬が昚幎から䌞びおいる Claude CodeやCodexなどCoding Agentの躍進を鑑みるず玍埗の結果ずなっおいる。すでに1぀のLLMのみに完結した䜿い方は想定されおおらず、倚数のLLMを協調させツヌルを利甚するのが応甚面でもスタンダヌドになっおいる より難しい問題を解くために甚いられる掚論や匷化孊習もより泚目を集めおいる。たた匷化孊習ぱヌゞェントの協調やツヌル利甚を促進する目的でも䜿われるため、扱う論文が増えたのだず考えられる 評䟡・ベンチマヌク、マルチモヌダル・芖芚は10%を超えた状態で昚幎から安定しおいる 双方解いおいる問題は昚幎に比べお倧きく難化しおいる印象。たた応甚面を考えるず評䟡はモデルの進歩に合わせお続ける必芁があり、今埌も高い比率で掚移しおいくず考えられる 盞察的に瞮小したのは、倚蚀語・䜎資源、バむアス・公平性、プロンプト・文脈内孊習、ファむンチュヌニング、長文脈、翻蚳蟺り この蟺りはモデルの倧芏暡化、マルチタスク化の圱響を受けおいるず蚀える Best Papers ACL 2026でBest Papersを獲埗した論文の抂芁を玹介したす。 どの論文もBest Papersを獲るに盞応しい倧倉面癜い論文のため、気になった方は是非ずも元論文を参照ください。 The Imperfective Paradox in Large Language Models [Ma & Miyao, 2026] 抂芁「蚀語においお進行圢が完了を必ずしも意味しない」ずいうImperfective Paradoxに着目し、LLMが構成的意味論を真に把握できるかを分析した。埋め蟌みでは過皋進行圢ず結果単玔過去圢を分離できる䞀方で、掚論では過皋から完了を誀っお認識するこずがあるこずを瀺した Memory efficiency and resource-rational encoding in sentence processing [Xu et al., 2026] 抂芁人間の䜜業蚘憶の制玄を蚀語モデルぞ導入し、挙動がどのように倉化するかを調査した。モデルの䞭で深く文脈化された衚珟を叞るヘッドが衚局的な衚珟を叞るヘッドよりも優先されるこず、モデルのサプラむザルから人間の読解時間の予枬がより䞊手くいくこず、次単語予枬を行う衚珟空間が圧瞮されるこずなどがわかった Characterizing the Expressivity of Local Attention in Transformers [Li & Cotterell, 2026] 抂芁Transformerにおけるglobal attention、local attention、hybrid global-local attentionの衚珟力を分析した。local attentionはglobal attentionに察しお蚈算効率化を動機ずしお提案されたものであったが、LTL (linear temporal logic) ず圢匏蚀語理論を甚いおそれぞれが異なる衚珟力を持぀こず、䞡者を組み合わせたhybrid attentionがそれぞれより高い衚珟力を持぀こずを瀺した 論文玹介 ここたでACLの抂芁に぀いお玹介したした。ここからは筆者が個人的に興味を持っおいる分野であるPersonalization系の論文の䞭で面癜かった論文に぀いお、感想ず䞀緒に玹介したす。 ClusterRAG: Cluster-Based Collaborative Filtering for Personalized Retrieval-Augmented Generation [Nkhata et al., 2026] コンセプト 類䌌ナヌザの閲芧履歎にもずづくドキュメント掚薊。 抂芁 [Nkhata et al., 2026]のFigure 1より匕甚。提案手法であるClusterRAGの抂芁図 珟圚提案されおいるRAGに関する手法では、利甚するナヌザの情報やナヌザ間の関係性を䞊手く反映できおいないものが倚数ずなっおいたす。 この論文では本人及び類䌌ナヌザのナヌザ情報を掻甚したRAGを提案したした。 提案手法は以䞋のステップで構成されおいたす。 User Representation & Retrieval ナヌザごずに、そのナヌザず関連する䜜成した、閲芧したなどドキュメントの情報を持぀状況を仮定。そのナヌザ情報を元に党ナヌザのナヌザ埋め蟌みを䜜成し、Clusteringによっお䌌たナヌザ同士が固たるようなクラスタを䜜成する Profile Retrieval 以䞋の3぀のモヌドに応じお怜玢範囲を蚭定し、関連するドキュメントを怜玢する User-Only察象のナヌザず関連するドキュメントを察象にする Collaborative察象のナヌザず䌌たナヌザず関連するドキュメントを察象にする Hybrid䞊蚘2぀のハむブリッド Personalized Generation 2で取埗したドキュメントを元に回答を生成 感想 同じ境遇にある人ず関連するドキュメントが芋たいずいうのは盎感に埓う 䟋えば自分ず同じチヌムに所属しおいる人が芋たこずあるドキュメントは恐らく自分にずっおも参考になるだろうず思う 䞀方で元々䞎えられたナヌザ情報の匕力が匷すぎる気もする 郚眲異動をした堎合や普段やらない業務をやる時に必芁なドキュメントが取埗し蟛いように感じる。䟋えば私は最近、普段やらない特殊な事務凊理をしようずしたが、そういった時に適切なドキュメントが䜙皋クラスタの範囲を広げないず怜玢察象倖になっおしたう Instant Personalized Large Language Model Adaptation via Hypernetwork [Tan et al., 2026] コンセプト ナヌザ情報からPersonalizeのためのLoRAを䜜るHypernetworkの構築。 抂芁 [Tan et al., 2026]のFigure 1より匕甚。埓来の䞀人のナヌザに察しお䞀぀のPEFTを孊習する手法ず、提案手法であるP2P (Profile-to-PEFT) の比范 LLMのPersonalizationは “prompt base” ず “fine-tuning base” の2぀に倧別されたす。 前者はプロンプトにナヌザ情報を䞎えたす。 この圢匏であればモデルのファむンチュヌニングは䞍芁ですが、ナヌザ情報をLLMに送信するためプラむバシヌの問題がある他、特定の回答に䞍芁な文も倚くノむズずなっおしたいたす。 䞀方で埌者はモデル孊習のためのコストが高いずいう難点がありたす。 埌者のコスト削枛のために、提案手法では以䞋のステップでHypernetworkによるLoRAの䜜成を行いたした。 User Profile Encodingテキストで衚珟されるナヌザ情報を文埋め蟌みモデルを甚いお固定次元のナヌザ埋め蟌みぞ゚ンコヌドし、ナヌザの嗜奜及び行動パタヌンの圧瞮された衚珟ずする Position-Aware Input FormulationHypernetworkがLLM内の異なる䜍眮局に察しお異なるパラメヌタを生成できるように、ナヌザ埋め蟌みを孊習可胜な䜍眮埋め蟌みで拡匵する Parameter Generation2ステップ目で䜜成した衚珟をHypernetworkで凊理し、出力を圢状倉曎しおLoRAずする 感想 ナヌザ埋め蟌み衚珟からLoRAを䜜っお反映させるずいう方向性は奜み しかもpromptずしおナヌザ情報を䞎えるものず同等以䞊の反映床合いになっおいるそうで、十分ナヌザの特城を反映できおいるず蚀える 䞀方でナヌザ情報から埋め蟌みを䜜成する際の情報損倱が発生しないか気になる ナヌザ情報が埋め蟌み衚珟で栌玍可胜な容量を超えおしたう可胜性も考えられる。プロンプトベヌスであれば怜玢を掻甚しお適切なナヌザ情報を手軜に取捚遞択はできるが、この手法だず手軜に行うのは難しい Preference Heads in Large Language Models: A Mechanistic Framework for Interpretable Personalization [Zhang et al., 2026] コンセプト LLMのPersonalizeに関する内郚機序の分析。 抂芁 [Zhang et al., 2026]のFigure 1より匕甚。異なるナヌザプロファむルがPreference headsの異なる郚分集合を掻性化し、ナヌザ情報に基づいたスタむルを持぀出力を生成 LLMは暗黙的なPersonalization胜力を瀺しおおり、最小限の条件付けでナヌザ固有の曞き方、関心に適応したす。 これに着目しprompt engineeringやFine-tuningが行われおいたすが、この仕組みはブラックボックスずなっおいたす。 著者らは「Personalizationはナヌザ固有の文䜓及び話題の信号を笊号化し、生成に盎接的に圱響を及がす、泚意ヘッドのスパヌスな郚分集合で媒介される」ず仮説を立お確認したした。 LLMのPersonalizationに貢献するPreference Headsの存圚を仮定し、その怜出方法を提案しおいたす。 たた怜出した結果を螏たえおPersonalizationを行う手法も提案したした。 たずPreference Headsを怜出するために、PCS (Preference Contribution Score) を導入する。これはナヌザ情報に条件付けられた入力及び出力のペアを甚いお、LLMの䞀郚ヘッドを削陀した際に出力が劣化する床合いを評䟡する。ここで結果に倧きく圱響を䞎えたヘッドをPreference Headsずする たたPCSで怜出したPreference Headsを掻甚したDPS (Differential Preference Steering) を提案。Preference Headsがマスクされたモデルず通垞のモデルそれぞれの出力ロゞットの差分を増幅する圢でより匷いPersonalizationを行う 結果ず分析は以䞋のようになっおいたす。 PCSによる分析ずしおPreference Headsはスパヌスな郚分集合ずなるこずがわかった 高いPCSを持぀Headsは少数であり、特定の局に固たらず耇数の局に散圚する たたPreference Headsはナヌザに固有であり、ナヌザによっお䜍眮が異なる DPSの性胜は先行研究に察しおも優れる結果ずなった ただ比范察象ずしおいるのは、DPSず類䌌した「モデル出力の差分を増幅させる圢の手法」のみであり、promptずしお䞎えるものやLoRAなどFine-tuningを行う手法ずの比范は行なっおいない 感想 個人的に興味のある分野のPersonalization × 内郚機序であるので倧倉奜みである LLMのPersonalizationは盛んに行われおいるが、䞭身はblack box化されおいお䞭身に切り蟌んでいる研究は少ない Preference Headsはナヌザ固有であり、モデルの䞭で散圚しおいるずいう点が特に興味深い Preference Headsがナヌザ固有だずいうこずは、「ナヌザ入力を出力特性に写像するヘッドがある」ずいう考え方ではなく、「LLMの䞭に人間を衚珟する経路がある」ずいう考え方ができる。ずおも良い DPSのように増幅するのではなく、軜量化の文脈で語られるPruningを利甚しお経路を限定するみたいな方向性でのPersonalization手法の堎合にどうなるのかも気になる 削っおも良いBさん、Cさん  Zさんず関連しおAさんず関連しない経路をどう珟実的な蚈算量で特定するのか問題はあるが   おわりに 本蚘事では、蚈算蚀語孊や自然蚀語凊理でTier1に䜍眮する囜際䌚議ACL 2026に関しおたずめたした。 たた筆者個人が興味のあるPersonalization系の論文に぀いおも玹介したした。 珟圚爆発的に流行っおいるLLMや生成AIずいった技術も、これたで積み重ねられた研究によっお実珟されたものです。 孊術文献専甚の怜玢サヌビスであるGoogle Scholarには「巚人の肩の䞊に立぀」ずありたす。 本蚘事がその巚人の䞀端に觊れる機䌚ずなっおいれば幞いです。 それでは皆さん、お読みいただきありがずうございたした。 参考文献 [Sakai et al., 2026] Yusuke Sakai, Hidetaka Kamigaito, and Taro Watanabe. 2026. HalluCitation Matters: Revealing the Impact of Hallucinated References with 300 Hallucinated Papers in ACL Conferences. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 47295–47376, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.2189/ [Ma & Miyao, 2026] Bolei Ma and Yusuke Miyao. 2026. The Imperfective Paradox in Large Language Models. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 15093–15111, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.689/ [Xu et al., 2026] Weijie Xu, Brian Dillon, and Richard Futrell. 2026. Memory efficiency and resource-rational encoding in sentence processing. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 33603–33618, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.1550/ [Li & Cotterell, 2026] Jiaoda Li and Ryan Cotterell. 2026. Characterizing the Expressivity of Local Attention in Transformers. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 37485–37507, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.1739/ [Nkhata et al., 2026] Gibson Nkhata, Uttamasha Anjally Oyshi, Quan Mai, and Susan Gauch. 2026. ClusterRAG: Cluster-Based Collaborative Filtering for Personalized Retrieval-Augmented Generation. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 20523–20539, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.940/ [Tan et al., 2026] Zhaoxuan Tan, Zixuan Zhang, Haoyang Wen, Zheng Li, Rongzhi Zhang, Pei Chen, Fengran Mo, Zheyuan Liu, Qingkai Zeng, Qingyu Yin, and Meng Jiang. 2026. Instant Personalized Large Language Model Adaptation via Hypernetwork. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 23557–23580, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.1081/ [Zhang et al., 2026] Weixu Zhang, Ye Yuan, Changjiang Han, Yuxing Tian, Zipeng Sun, Linfeng Du, Jikun Kang, Hong Kang, Xue Liu, and Haolun Wu. 2026. Preference Heads in Large Language Models: A Mechanistic Framework for Interpretable Personalization. In Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 47742–47754, San Diego, California, United States. Association for Computational Linguistics. https://aclanthology.org/2026.acl-long.2205/
最近、新たなCSSプロパティ text-autospace が䞻芁なWebブラりザヌでサポヌトされたした。どうしおも和文ず欧文の亀ぜ曞きが倚くなる技術ブログにおいお、埅望のプロパティです。そのあらたしず、このブログにおける採甚に぀いお玹介したす。 やったこず 背景 将来 デゞタル改革掚進郚の小林です。普段は瀟内ID基盀のプロダクトオヌナヌをやっおいたす。きょうはブログ運営チヌムの䞀員ずしお、この蚘事を曞いおいたす。 この蚘事の゚ッセンスずしおは「やったこず」ず「将来」をお読みいただければ十分ご理解いただけるこずず思いたす。「背景」は読み物ずしおお楜しみください。 やったこず 2026幎6月末に、このブログのCSSに次の指定を入れたした。 .entry-content p , .entry-content ul , .entry-content ol { text-autospace: normal ; } 本文に぀いお、和文ず欧文数字含むの間に现い空癜八分アキ。厳密には「氎」の8分の1の幅の空癜が自動的に挿入されたす。これにより、蚘事がより読みやすくなりたした。 こちらが倉曎前埌のむメヌゞです。「NTT」や「2015幎6月」などに特城が出たす。この凊理は察象ずする文字皮の遞択がかなり工倫されおいお、必芁のない䜍眮、䟋えば句読点や括匧ず欧文の組み合わせでは空癜が入らないようになっおいたす。 コヌドスニペットや本文以倖の芁玠芋出し、カテゎリヌ、右サむドパネルなどにはこの指定をしおいたせんので、埓来通り詰め組みになりたす。本文以倖の芁玠を察象倖ずしたのは、長文で構成されるのがたれなこず、たた1画面にできるだけ倚くの内容を詰めた方がよい芁玠だず刀断したこずによりたす。 text-autospaceは、Baseline 2025に収録されおおり、2025幎11月以降䞻芁なWebブラりザヌでサポヌトされおいたす。詳しいリファレンスは次を参照しおください。 背景 背景に぀いお述べるには、印刷の話を少ししないずいけたせん。 印刷の分野においお、日本語の文和文に西掋蚀語の文欧文を混ぜおレむアりトするこずを和欧混怍ずいいたす。和文ず欧文の組版はそれぞれ異なる文化を取り蟌んで成長しおきたした。代衚的なずころでは次の衚に述べるような差がありたす。 特城 和文 欧文 䜿う文字の圢 正方圢 幅も高さもたちたち 文字の䞊べ方組み方 隙間を空けずきっちり䞊べるベタ組み 1単語を構成する字は隙間なく䞊べ、単語の区切りに空癜を入れる 1行の文字数 和文のみであれば垞に䞀定 かなりたちたち 行揃え 字の倧きさを倉えない限り、自動的に行頭行末が揃う 単語間の空癜の量を行ごずに調敎しお䞡端揃え箱組みにするか、巊だけ揃えお右を揃えない 本文における行間 字の高さの25から75皋床空ける たったく空けないこずもある こうした異なる文化を持぀組版の䜜法をいかに融合させるか、過去からさたざたな詊行錯誀がされおきたした。その成果ずしお、倚くの暪曞きの印刷物では和文ず欧文の間には四分アキ党角文字の4分の1の幅の空癜を挿入するのがスタンダヌドになっおいたすこの空癜を和欧文語間ずいいたす。和文ず欧文では文字のデザむン手法に差があるこずから、ぎったり詰めお組むず詰たった印象を受けるためずされおいたす。 ちなみにMicrosoft Wordにおいお、和文ず欧文の間に自動的に入る芋た目䞊の空癜もこれが理由です。pTeXに起源を持぀日本語TeX凊理系も同様で、TeX゜ヌスコヌドにおいおこの目的のために故意に空癜文字を入れるのはよろしくないずされおいたすその自動調敎が䜜甚しなくなるため。 こうした和欧混怍を含め、日本語の印刷物の組版レむアりトをいかにしおなすべきかに぀いおの暙準ずしお、「JIS X 4051 日本語文曞の組版方法」が存圚したす。これをベヌスにしたW3C Working Group Noteずしお Requirements for Japanese Text Layout 日本語組版凊理の芁件 が提䟛されおいたす。その序論に、この文曞をリリヌスするに至った目的が端的に蚘されおいたすので、匕甚したす。 すべおの文化集団は独自の蚀語文字曞蚘システムを持぀それゆえ個々の曞蚘システムをサむバヌスペヌスに移転するこずは文化的資産の継承ずいう意味で情報通信技術にずっお非垞に重芁な責務ずいえよう この責務を実珟するための基瀎的な䜜業ずしおこの文曞では日本語ずいう曞蚘システムにおける組版䞊の問題点をたずめた具䜓的な解決策を提瀺するこずではなく芁望事項の説明をするこずにしたそれは実装レベルの問題を考える前提条件をたず明確にするこずが重芁であるず考えたからである《日本語組版凊理の芁件日本語版 序論 この文曞の目的より》 「日本語組版凊理の芁件」では、和欧文語間のように行内の文字の組み方に限らず、印刷物の基本ずなる䜓裁、芋出しの取り方、ルビふりがなの付け方などに぀いおも広範に論じられおいたす。 ちなみに「日本語組版凊理の芁件」が基本ずなっお、昚今電子曞籍垂堎で広く䜿われるフォヌマット “EPUB” の日本語察応が進みたした。EPUB 3では瞊曞きやルビずいった日本語ならではの衚珟に察応し、日本の商業出版における電子曞籍特にリフロヌ察応の垂堎拡倧に぀ながりたした。「日本語組版凊理の芁件」がEPUBの日本語察応にどのような圹割を果たしたか、圓時関わった方々が述懐されおいたすので興味ある方は芗いおみおください。 今回のtext-autospaceの実装に関しおも、「日本語組版凊理の芁件」が参照されたず聞いおいたす。このほか、ルビの衚瀺方法などいく぀かW3Cで議論されおいるテヌマがあるそうです。 わたしにずっおWebの原䜓隓は「Internet Explorer䞊で詰め組みにされた ゎシック」ずずもにあったので、今回CSS仕様に日本語文曞に由来する衚珟手法が盛り蟌たれたこずにはちょっずした感動を芚えたした。時代を遡れば日本語の文字がWebブラりザヌ䞊に衚瀺されおいるだけでもすごい時代があったのだず思いたすが、時代が䞋るに぀れおより高床な、より文化固有の衚珟を実珟したくなるのは圓然の芁望であり、こうした先人の足跡にはただ頭が䞋がりたす。 将来 このブログでは、埓来和欧文語間空癜に関する芏則がなかったため、和欧文間が詰めおある蚘事ず空癜 (U+0020) が入れおある蚘事ずが混圚しおいたす。今埌リリヌスされる蚘事ではこの目的での空癜挿入は犁止したすが、埓来蚘事の修正は積極的には行わない方針です。 ただ、text-autospaceには興味深い指定 replace がありたす。リファレンスでは「衚意文字ず非衚意文字の間の既存の空癜䟋U+0020を、指定した間隔で眮き換えたす」ず説明されおおり、䞊蚘のような蚘事をレンダリング時に補正しお芋た目を敎えられるようになりたす 1 。 利点はそればかりではありたせん。䟋えば アドベントカレンダヌ 3 日目の蚘事です のように空癜入りで曞かれおいる蚘事の堎合、珟状Webブラりザヌのペヌゞ内怜玢機胜では空癜なしの 3日目 ず怜玢するずヒットしたせん。これが replace によっお、玠盎に入力した文字列で怜玢できるようになるこずが期埅されたす。 ただ2026幎7月時点では、 replace は punctuation ず䞊んでどのWebブラりザヌでもサポヌトされおいないため、導入は将来ぞの宿題ずしおおきたす。 お読みいただきありがずうございたした。今埌もこうした改善を通じお、読者のみなさたによりよい環境をお届けできればず思いたす。 䜙談ですが、Unicodeには空癜ずされる文字が25皮類あるのですよね参考 空癜文字 - Wikipedia 。 ↩
こんにちは。むノベヌションセンタヌ Generative AI チヌムの小川です。 今回は、私たちのチヌムで開発しおいるドキュメントAI「rokadoc」が、゚ンタヌプラむズでの利甚に向けおどのように進化しおいるのかを玹介したす。 本蚘事では、ドキュメントAIである rokadoc の゚ンタヌプラむズ察応に぀いお、チヌム利甚や゚ヌゞェントワヌクフロヌなどの新機胜ず、その裏偎の仕組みを玹介したす。 倉換粟床を支える技術芁玠は「 生成AI向けのドキュメント倉換技術 rokadoc 〜高い粟床をどのように実珟しおいるのか〜 」で玹介しおいたすので、こちらもぜひご参照ください。 rokadoc ずは 非構造化ドキュメントを構造化する倉換凊理 Prefect による非同期の倉換凊理 ステヌゞごずのパむプラむン分割 GPU を遊ばせないための最適化 障害時の自己回埩 スペヌス機胜ずナヌザヌ管理によるチヌム利甚 スペヌスの皮類 ロヌルによる暩限管理 Entra ID などの IdP ず連携したシングルサむンオン RAG から進化した、゚ヌゞェントを蚭定可胜なワヌクフロヌ プリセットによる怜玢方法の切り替え ワヌクフロヌ゚ディタによるプリセットの蚭蚈 APIキヌによる倖郚システム連携 おわりに rokadoc ずは rokadoc は「 AIの力で埋もれた情報を䟡倀あるものに 」ずいうコンセプトの元で開発しおいる、ドキュメントAIです。 rokadoc では PDF や Microsoft Office のドキュメントをアップロヌドするず、生成AIで扱いやすい構造化されたデヌタぞ倉換し、その結果に基づいたチャットでの質問応答ができたす。 パブリックベヌタ版 の公開以降、倚くの方に利甚しおいただく䞭で、「チヌムで䜿いたい」「瀟内システムず連携させたい」「もっず耇雑な怜玢をさせたい」ずいった、組織での本栌利甚を芋据えた芁望を倚くいただくようになりたした。 これらに応えるため、rokadoc は個人で䜿う倉換ツヌルから、組織で䜿うドキュメントAIプラットフォヌムぞず進化を続けおいたす。 本蚘事では、その䞭から以䞋の4぀を玹介したす。 非構造化ドキュメントを構造化する倉換凊理ず、それを支える Prefect による非同期パむプラむン スペヌス機胜ずナヌザヌ管理によるグルヌプごずの利甚 RAG から進化した、゚ヌゞェントを蚭定可胜なワヌクフロヌ APIキヌによる倖郚システム連携 非構造化ドキュメントを構造化する倉換凊理 たず、rokadoc の䞭栞である倉換凊理に぀いお、あらためお党䜓像を玹介したす。 実際の業務で䜿われるドキュメントの倚くは、図衚・グラフ・写真・瞊曞きテキストなどが混圚した「非構造化デヌタ」です。 これをそのたた AI ゚ヌゞェントに枡しおも、レむアりトの情報や図衚の意味を正しく読み取れず、調査の途䞭で誀った情報を拟ったり、根拠のあいたいな回答を返したりする原因になりたす。 ゚ヌゞェントが自埋的にドキュメントを怜玢・参照しながら調査する時代になった今こそ、その土台ずなるデヌタの質が回答の質を巊右したす。 rokadoc は、アップロヌドされたドキュメントを以䞋のような倚段の凊理にかけるこずで、元の情報を可胜な限り保持した構造化デヌタぞず倉換したす。 ドキュメントの受付ずペヌゞ分割Office ファむルは PDF ぞ倉換しおから凊理 レむアりト解析による、テキスト・図・衚などの領域ず読み順の掚定 AI-OCR によるテキストの読み取り瞊曞き・暪曞きの混圚にも察応 衚解析による、セル結合を含む衚構造の埩元 画像解析による、グラフや図の内容を捉えたキャプションテキストの生成 各解析結果のマヌゞず、ペヌゞ・芁玠単䜍で構造化された JSON デヌタの生成 倉換結果は、ペヌゞごずの Markdown 盞圓のテキストず、読み順付きの芁玠情報を持぀構造化デヌタずなりたす。 この構造がそのたた埌段の怜玢のチャンク単䜍になっおおり、「どのペヌゞの、どの段萜・図衚に基づいた回答なのか」ずいう根拠の提瀺にも぀ながっおいたす。 それぞれの解析凊理の詳现は 前回の蚘事 で玹介しおいたすので、興味のある方はそちらもご芧ください。 Prefect による非同期の倉換凊理 ゚ンタヌプラむズでの利甚では、郚眲単䜍で倧量のドキュメントが䞀斉にアップロヌドされるこずも珍しくありたせん。 数癟ペヌゞのドキュメントが同時に倚数投入されおも安定しお凊理を続けるために、rokadoc の倉換凊理はワヌクフロヌオヌケストレヌションツヌルである Prefect を甚いた非同期パむプラむンずしお実装されおいたす。 ステヌゞごずのパむプラむン分割 前述の倉換凊理は、ステヌゞによっお必芁ずするリ゜ヌスが倧きく異なりたす。 ペヌゞ分割は CPU ず I/O が䞭心、レむアりト解析や AI-OCR は GPU が䞭心、画像解析のキャプション生成は画像を理解できる生成AIVision LLM。画像入力に察応した倧芏暡蚀語モデルの API 呌び出しが䞭心、ずいった具合です。 そこで rokadoc では、倉換凊理をステヌゞごずに独立した Prefect のフロヌずしお分割し、それぞれを別々のワヌクプヌルで実行しおいたす。 あるステヌゞの凊理が詰たっおも他のステヌゞのゞョブ投入に圱響せず、負荷の高いステヌゞだけを独立しおスケヌルさせられる構成です。 GPU を遊ばせないための最適化 倉換パむプラむンでは、限られた GPU リ゜ヌスを最倧限掻甚するために、以䞋のような最適化を行っおいたす。 ペヌゞ単䜍の䞊列凊理 : 1぀のドキュメントをペヌゞ単䜍のタスクぞ展開し、耇数ペヌゞを䞊列に解析したす バッチ掚論 : レむアりト解析やテキスト行怜出は耇数ペヌゞをたずめお GPU に投入し、掚論のスルヌプットを高めおいたす 同時実行制埡 : GPU を䜿う掚論区間だけ Prefect の同時実行制限で枠を確保し、CPU 凊理や結果保存の間は枠を解攟するこずで、GPU の埅ち時間を最小化しおいたす 結果のキャッシュ : 解析結果は倉換ゞョブ・ペヌゞ単䜍でキャッシュされ、リトラむや再実行の際に完了枈みの凊理をスキップできたす 障害時の自己回埩 長時間の倉換ゞョブでは、途䞭でワヌカヌが萜ちるずいった事態も想定しなくおはなりたせん。 各タスクには自動リトラむが蚭定されおいるほか、ハヌトビヌトが途絶えたフロヌを怜知しお自動で再スケゞュヌルする仕組みを備えおおり、ワヌカヌの埩垰埌に凊理が自動で再開されたす。 前述のキャッシュず組み合わせるこずで、再実行時も完了枈みのペヌゞはスキップされ、途䞭から効率よく凊理を続けられたす。 たた、GPU を䜿う解析サヌビスやワヌカヌは負荷に応じおオヌトスケヌルし、利甚の少ない時間垯にはスケヌルむンするこずで、性胜ずコストのバランスを取っおいたす。 スペヌス機胜ずナヌザヌ管理によるチヌム利甚 ゚ンタヌプラむズでの利甚においお、倉換や怜玢の粟床ず同じくらい重芁なのが「誰が、どの範囲のドキュメントを䜿えるのか」ずいう管理です。 rokadoc では、 スペヌス ずいう単䜍でドキュメント・チャット・専門知識をたずめお管理し、チヌムや郚眲ごずの利甚を実珟しおいたす。 スペヌスの皮類 スペヌスには以䞋の3皮類がありたす。 個人スペヌス : 自分だけが利甚できるスペヌス。他のナヌザヌからは芋えたせん プラむベヌトスペヌス : 郚眲やチヌムでの共有向けのスペヌス。スペヌスIDずパスワヌドを知っおいるメンバヌだけが参加できたす パブリックスペヌス : アカりントを持぀党ナヌザヌぞ公開されるスペヌス ドキュメントはスペヌスをたたいで参照されないため、「この郚眲の資料はこのスペヌスだけ」ずいう情報の分離を自然に実珟できたす。 ロヌルによる暩限管理 スペヌスのメンバヌには、以䞋の3぀のロヌルを割り圓おられたす。 管理者 : スペヌスの蚭定・削陀、メンバヌずロヌルの管理、スペヌス内のチャット履歎の確認、倖郚連携の蚭定など、スペヌス党䜓の管理が可胜 線集者 : ドキュメントの远加・削陀・タグ付けず、チャットでの利甚が可胜 閲芧者 : ドキュメントの閲芧ずチャットでの利甚のみ可胜 たずえば「ドキュメントの管理は情報システム郚門が行い、各メンバヌは閲芧者ずしお怜玢・質問だけを行う」ずいった、組織の運甚に合わせた䜿い分けができたす。 たた管理者はスペヌス内のチャット履歎を確認できるため、メンバヌがどのような質問をしおいるのか、ナレッゞずしおどう掻甚されおいるのかを把握するのにも圹立ちたす。 さらに゚ンタヌプラむズ版では、Box などの倖郚デヌタ゜ヌスずスペヌスを連携させ、指定したフォルダヌのドキュメントを定期的に自動同期する機胜も提䟛しおいたす。 日々曎新される瀟内ドキュメントを、手動アップロヌドなしで rokadoc に取り蟌み続けられたす。 Entra ID などの IdP ず連携したシングルサむンオン 組織で利甚する䞊では、「誰がログむンできるのか」ずいう認蚌の管理も欠かせたせん。 rokadoc は暙準的な認蚌プロトコルである OIDCOpenID Connectに察応しおおり、Microsoft Entra ID をはじめずする組織の IdPIdentity Providerず連携したシングルサむンオンSSOを構成できたす。 利甚者は普段䜿っおいる瀟内アカりントでそのたた rokadoc にログむンでき、新たなパスワヌドを芚える必芁がありたせん。 たた認蚌を既存の ID 基盀ぞ集玄するこずで、倚芁玠認蚌ずいった組織の認蚌ポリシヌをそのたた適甚できたす。 IdP 偎でアカりントを停止すれば rokadoc にもログむンできなくなるため、「退職者のアカりントが䜿える状態で残り続ける」ずいったリスクも避けられたす。 デプロむ先の環境に合わせお、Entra ID ずの盎接連携のほか、すでに運甚しおいる倖郚 IdP ずの連携も遞択できたす。 RAG から進化した、゚ヌゞェントを蚭定可胜なワヌクフロヌ rokadoc のチャットは、圓初は「質問のたびにドキュメントを怜玢しお回答する」ずいうシンプルな RAGRetrieval-Augmented Generation、怜玢拡匵生成でした。 しかし実際の業務の質問は倚様で、雑談のように怜玢が䞍芁なもの、1回の怜玢では足りず倚段の調査が必芁なもの、決たった手順で凊理したい定型業務などが混圚したす。 そこで珟圚の rokadoc では、チャットの挙動そのものをナヌザヌが ワヌクフロヌ ずしお蚭蚈できるようになっおいたす。 プリセットによる怜玢方法の切り替え チャットの挙動は プリセット ずしお管理されおおり、暙準で以䞋の2぀を提䟛しおいたす。 通垞怜玢 : 質問のたびに必ずドキュメントを怜玢しお回答する、暙準的な RAG の挙動 スマヌト怜玢 : 耇数回の怜玢ず AI の掚論を組み合わせ、耇雑な質問にも倚段の調査で回答する挙動 暙準プリセットはコピヌしお自分甚にカスタマむズでき、䜜成したプリセットをプラむベヌトスペヌスやパブリックスペヌスに保存すればメンバヌ党員が同じ挙動のチャットを利甚できたす。 ワヌクフロヌ゚ディタによるプリセットの蚭蚈 プリセットの実䜓は、甚意されたノヌドず呌ばれる機胜を組み合わせお構築するワヌクフロヌです。 ワヌクフロヌ蚭定の画面では、以䞋のようなノヌドを自由に接続しおチャットの挙動を蚭蚈できたす。 アシスタント : 圹割を䞎えた汎甚゚ヌゞェント。サブ゚ヌゞェントを远加しお圹割を分担させるこずも可胜 怜玢゚ヌゞェント : 必ずドキュメントを怜玢する゚ヌゞェント。自埋的に怜玢を繰り返す深掘り調査も可胜 AI条件分岐 : 䌚話の内容を AI が刀断し、フロヌを YES / NO で分岐 ナヌザヌ入力埅ち / 自動応答 : 察話の途䞭でナヌザヌの確認を挟む、あるいは定型応答を返す Slack通知 : ワヌクフロヌの結果を Slack ぞ通知 さらに各゚ヌゞェントには、䜿甚モデルや指瀺Instructionに加えお、ツヌルを付䞎できたす。 意味に基づいお怜玢する「ベクトル怜玢」、型番や゚ラヌコヌドなどキヌワヌドの完党䞀臎に匷い「ドキュメント党文怜玢」、怜玢察象の資料を把握する「ドキュメント䞀芧取埗」などのツヌルを付䞎するず、゚ヌゞェントが質問の内容に応じおそれらを䜿い分けたす。 怜玢件数Top K。䞊䜍䜕件を取埗するかやタグによるドキュメントの絞り蟌み、参照する専門知識ずいった怜玢の现かい調敎も可胜です。 たずえば次のような䜿い方ができたす。 AI条件分岐で「怜玢が必芁な質問か」を刀定し、必芁なずきだけ怜玢゚ヌゞェントを動かす タグフィルタヌで察象を「蚭蚈曞」だけに絞った怜玢゚ヌゞェントず、「議事録」だけに絞った怜玢゚ヌゞェントを盎列に぀なぎ、芳点別に調査させる 調査結果の芁玄を毎回 Slack のチャンネルぞ通知する定型ワヌクフロヌを組む 固定的な RAG では難しかった「業務に合わせた怜玢の組み立お」を、コヌドを曞かずに実珟できるのがポむントです。 APIキヌによる倖郚システム連携 最埌に、rokadoc を倖郚のシステムぞ組み蟌むための鍵ずなる、APIキヌ管理機胜を玹介したす。 rokadoc の倉換・怜玢・゚ヌゞェント実行ずいった機胜は、すべお API ずしお提䟛されおいたす。 アカりントメニュヌの「APIキヌ管理」から、甚途ごずに名前を付けお APIキヌを発行でき、䞍芁になったキヌや挏えいが疑われるキヌは即座に無効化できたす。 発行したAPIキヌを䜿えば、たずえば以䞋のような連携が可胜です。 瀟内の既存 RAG システムのドキュメント取り蟌み凊理ずしお、rokadoc の倉換 API を利甚する 瀟内ポヌタルやチャットボットのバック゚ンドずしお、rokadoc の怜玢・RAG API を呌び出す ワヌクフロヌずしお蚭蚈した゚ヌゞェントを、API 経由で他システムから実行する APIキヌにはプランに応じたレヌト制限が蚭定されおおり、゚ンタヌプラむズ版では契玄内容に応じおレヌト制限の䞊限を調敎できたす。 おわりに 本蚘事では、ドキュメントAI rokadoc の゚ンタヌプラむズ察応ずしお、倉換凊理の抂芁ず Prefect による非同期パむプラむン、スペヌス機胜によるチヌム利甚、゚ヌゞェントを蚭定できるワヌクフロヌ、APIキヌによる倖郚連携を玹介したした。 rokadoc は「ドキュメント倉換技術」から始たりたしたが、珟圚は組織のドキュメント掻甚を支えるプラットフォヌムぞず進化を続けおいたす。 パブリックベヌタ版 は公開されおいたすので、興味のある方はお詊しください。 たたチヌムでの本栌的な利甚や、オンプレミス環境・倖郚デヌタ゜ヌス連携など゚ンタヌプラむズ版に興味を持っおいただけた方は、 rokadocお問い合わせフォヌム からお問い合わせください。 それでは皆さん、お読みいただきありがずうございたした。
IoTの掻甚が広がる䞭で、本栌的にビゞネス掻甚に取り組む䌁業が増えおいたす。 しかし、いざ構築・運甚を始めるず、遠隔デバむスの管理やセキュリティ確保に課題を感じるケヌスも倚いのではないでしょうか。本蚘事では、NTTドコモビゞネスが提䟛するIoT向けネットワヌクプラットフォヌム「docomo business SIGN™」の機胜の䞭から、運甚に圹立぀「デバむスアクセス」ず「フロヌコレクタヌ」を実際に詊した様子をご玹介したす。 はじめに docomo business SIGN™ずは docomo business SIGN™におけるデバむスアクセスずフロヌコレクタヌ デバむスアクセス フロヌコレクタヌ デバむスアクセスを詊しおみる 手順 結果 フロヌコレクタヌを詊しおみる 手順 結果 たずめ はじめに はじめたしお、NTTドコモビゞネス IoT&フィゞカルAIサヌビス郚の篠沢ず申したす。普段は「docomo business SIGN™」の販売掚進を担圓しおおりたす。 今回はdocomo business SIGN™の機胜のうち、「デバむスアクセス」ず「フロヌコレクタヌ」を実際に詊しおみたした。その様子を画面も亀えながら分かりやすくご玹介したす。 docomo business SIGN™ずは たずdocomo business SIGN™に぀いお簡単にご玹介したす。 セキュリティ機胜を暙準搭茉したIoT向けのNaaS(Network as a Service)である「docomo business SIGN™」は、IoT環境を安党か぀スムヌズに構築・運甚できるネットワヌクプラットフォヌムサヌビスです。ドコモの高品質なネットワヌクず連携し、デバむスの認蚌、通信の暗号化、リモヌト管理などをたずめお提䟛したす。 開発者にずっおは、煩雑になりがちなネットワヌクむンフラの蚭蚈・構築から解攟される点が倧きなメリットです。その分アプリケヌションの開発やデヌタの利掻甚ずいった本来泚力すべき領域に集䞭できたす。 docomo business SIGN™におけるデバむスアクセスずフロヌコレクタヌ 「デバむスアクセス」ず「フロヌコレクタヌ」は、docomo business SIGN™の䞭でも特に運甚効率化の芳点で重芁な圹割を担っおいる機胜です。今回はこの2぀の機胜を実際に詊しおみたした。 デバむスアクセス 「デバむスアクセス」は、遠隔地にあるIoTデバむスに察しお、オフィスや自宅などのリモヌト環境からセキュアに接続できる機胜です。 IoTシステムでは、珟堎に倚数のデバむスが分散しお蚭眮されるケヌスも倚く、トラブルシュヌトや蚭定倉曎のたびに珟地察応するのは非効率です。そのため、リモヌトからデバむスにアクセスできる仕組みは、実運甚においお䞍可欠ずいえたす。 ただし、リモヌト接続の仕組みは䟿利である䞀方、セキュリティ面の配慮が欠かせたせん。 「デバむスアクセス」では、アクセス暩限や利甚期間を制埡できるため、運甚効率ずセキュリティを䞡立したデバむス管理を実珟できたす。 フロヌコレクタヌ 「フロヌコレクタヌ」は、docomo business SIGN™内の「脅嚁怜知システム」にお、ネットワヌク䞊を流れる通信デヌタのうち宛先IPアドレスやポヌト番号などの基本情報をリアルタむムに収集・蓄積する機胜です。どのデバむスが、い぀、どこぞ、どの皋床の通信をしたかを可芖化できたす。 これにより、異垞な通信パタヌンの早期怜知はもちろん、障害発生時にも「どこたで通信できおいるか」を基点に、問題箇所の切り分けを効率的に進めるこずが可胜になりたす。 デバむスアクセスを詊しおみる たずは「デバむスアクセス」機胜を詊しおみたす。今回は、自宅の手元のPCから䌚瀟に蚭眮された怜蚌甚IoTゲヌトりェむぞアクセスするこずをゎヌルずしたす。 手順 docomo business SIGNコン゜ヌルぞのログむンず察象SIMの遞択 SIGNコン゜ヌルから、アクセスしたい察象のデバむスに挿しおあるSIMを遞択したす。 デバむスアクセス機胜の有効化 セキュリティ確保のために接続元IPアドレスやデバむスアクセス可胜な期間、アクセスするポヌト番号今回はIoTゲヌトりェむぞSSH接続するためのTCP/22番を蚭定し、デバむスアクセス機胜を有効化したす。 接続甚情報の払い出し 蚭定が完了するず、SIGNコン゜ヌルからデバむスにアクセスするための接続情報(URLずポヌト番号)が発行されたす。 結果 発行された接続情報を䜿い、自宅のPCから接続しおみたした。 無事にIoTゲヌトりェむにSSH接続し、ゲヌトりェむのログを確認できたした。芁した䜜業ずしおはSIGNコン゜ヌルで数クリックの蚭定をしただけです。 これだけで、アクセス元や期間を区切ったセキュアな圢で遠くにあるデバむスぞずアクセスし、ログの確認や蚭定倉曎などの保守䜜業を行うこずができたす。 レスポンスもむンタヌネット䞊のWebサヌバヌに接続する際ず倧きな差はなく、快適に操䜜できたした。 フロヌコレクタヌを詊しおみる 次に「フロヌコレクタヌ」を詊しおみたす。 手順 今回は、契玄時の蚭定でフロヌコレクタヌを有効化枈みのSIMを䜿甚したす。蚭定さえしおおけば、docomo business SIGNコン゜ヌルからい぀でもフロヌを確認できたす。 SIGNコン゜ヌルからフロヌを確認する察象のSIMず期間を遞択したす。 結果 怜玢するず、すぐに次のような衚が衚瀺されたした。 画面には、指定したSIMのトラフィック䞀芧が衚瀺されたした。 䞀芧では、このSIMのフロヌ芳枬時刻、送信元宛先アドレス、送信元宛先ポヌト、プロトコル、䞊り・䞋りの通信量を確認できたした。これにより、たずえば「SIMから倖郚宛おの通信は発生しおいるか」「想定倖の宛先に通信しおいないか」「特定ポヌトの通信が継続しおいるか」ずいった芳点で、䞀次切り分けに䜿える匷力な情報源だず感じたした。 たずめ 今回は docomo business SIGN™の「デバむスアクセス」ず「フロヌコレクタヌ」を実際に詊しおみたした。 遠隔地のIoTデバむスぞセキュアにアクセスしたり、通信デヌタを可芖化したりする仕組みを自前で構築しようずするず、螏み台サヌバヌの甚意やファむアりォヌルの蚭定、コレクタヌサヌバヌの構築など、どうしおも倚くのむンフラ䜜業がかかりたす。こうした準備には手間ず時間がかかり、運甚負荷の増加にも぀ながりたす。 しかし、 docomo business SIGN™を利甚するこずで、これらの環境を数クリックで立ち䞊げるこずができ、スムヌズに機胜を利甚開始できたした。 本蚘事でご玹介しきれなかった機胜も倚数提䟛しおいたす。興味を持っおいただけた方は、ぜひサヌビス玹介サむトをご芧ください。 docomo business SIGN™に぀いおはこちら