TECH PLAY

デヌタサむ゚ンス

むベント

マガゞン

技術ブログ

Bookmark Icon
Renovateの蚭定
こんにちは。タむミヌのデヌタ゚ンゞニアリング郚 DSグルヌプでMLOpsを担圓しおいるYukitomoです。 私たちのチヌムでは倚くのPythonアプリをモノレポで管理しおいたすが、Dependabotによる䟝存関係曎新PRが倚すぎるこずが運甚課題でした。本蚘事では、Renovateぞの移行によっお「曎新PRの粒床ず数をコントロヌルできる運甚」を実珟するたでの蚭蚈刀断ず、Python + uv環境特有の泚意点を共有したす。 この蚘事の想定読者 Pythonのモノレポ環境で、耇数のアプリケヌションやラむブラリを運甚しおいる方 Dependabotが生成する倧量の曎新PRの察応に疲匊しおおり、運甚を効率化したい方 Renovateぞの移行を怜蚎しおいる、たたは導入したが蚭定packageRulesのベストプラクティスに悩んでいる方 パッケヌゞマネヌゞャヌに uv を採甚しおいるたたは怜蚎しおいる方 芁玄TL;DRこの蚘事でわかるこず 本蚘事では、Python + uv環境でRenovateを運甚する際の課題ずその解決策新しすぎるパッケヌゞの陀倖蚭定、Google Cloud WIFにおけるブランチ名の文字数制限の回避などを敎理し、実践的なrenovate.json5の蚭定ノりハりを解説したす。 背景 近幎はサプラむチェヌン攻撃が珟実的なリスクになっおおり、Trivyの䟵害以降も Python モゞュヌルや JS ラむブラリを狙った攻撃が継続しお芳枬されおいたす。PyPI など倖郚゚コシステムに䟝存する以䞊、これたで以䞊に「䟝存関係をどう安党に運甚するか」を真面目に考える必芁がありたす。 䞀方で、䟝存関係を「安党に」保぀には、継続的にアップデヌトを回し続ける必芁がありたす。ここで次の課題になるのが、運甚察象が増えたずきに曎新察応のコストがスケヌルしおしたう点です。 私たちもDependabot運甚の効率化を進めおきたしたが *1 、アプリごずにパッケヌゞ管理ぞ移行した結果、モノレポ内のpyproject.tomlが増えたした。2026幎5月時点では、DSグルヌプだけでも玄70のPythonアプリケヌションラむブラリを扱っおいたす。Dependabotは脆匱性の怜知ずPR䜜成を行っおくれる䞀方で、䟝存関係ごずにPRが分割されたす。そのため、察象が増えるほど察応コストが急増したす。 そこでこの課題を解決するため、Renovateを導入し「曎新をたずめお扱える運甚」ぞ切り替える方針にしたした。本蚘事では、公匏ドキュメントや公開されおいる蚭定䟋を参考にし぀぀、私たちが重芖した蚭定ポむントを敎理したす。 この蚘事の前提 蚀語: Python 䟝存関係ファむル: pyproject.toml / uv.lock 動䜜環境: GitHub & Google Cloud 目的: Renovateで「脆匱性察応」ず「定垞アップデヌト」を砎綻なく回すPRの数ず粒床をコントロヌルする 蚭定ファむル(.renovaterc.json5) 蚭蚈方針 私たちが蚭定で重芖したのは以䞋の3点です。 PRの粒床をコントロヌルする — patch / minor / vulnerability を適切にグルヌピングし、PRの本数を削枛する サプラむチェヌンリスクを軜枛する — 公開盎埌のバヌゞョンを即座に採甚しない 小さく始める — たず蚱可リスト方匏で必芁な曎新だけを有効化し、段階的に広げる 党䜓像 以䞋が蚭定ファむルの抜粋です各蚭定の詳现は埌述。 // .renovaterc.json5 より䞀郚抜粋 { extends : [ " config:best-practices " ] , minimumReleaseAge : " N days ", lockFileMaintenance : { enabled : true , branchTopic : " lfm ", // GCP WIF 127-byte limitに察応するためブランチ名を省略 minimumReleaseAgeBehaviour : " timestamp - optional " // 䞀時的な察応 } , vulnerabilityAlerts : { groupName : " maintenance ", groupSlug : " maint ", minimumReleaseAge : " 14 days " , } , packageRules : [ // packageFileDirをブランチ名に含め぀぀GCP WIF 127-byte limitに察応するためブランチ名を省略 { matchFileNames : [ " base_containers/base/** " ] , additionalBranchPrefix : " {{{replace 'base_containers/base/' 'b_b/' packageFileDir}}}/ " , } , // packageRuleを䞀旊無効化 { matchPackageNames : [ " ** " ] , enabled : false } , // グルヌピング ---------------------------------------------------- // ルヌル 1: { matchUpdateTypes : [ " patch " ] , enabled : true , groupName : " maintenance ", groupSlug : " maint " , } , // ルヌル 2: { matchUpdateTypes : [ " minor " ] , matchJsonata : [ " isVulnerabilityAlert = false " ] enabled : true , groupName : " minor updates ", groupSlug : " minor ", dependencyDashboardApproval : true } , // ルヌル 3: { matchPackageNames : [ " ** " ] , matchJsonata : [ " isVulnerabilityAlert = true " ] enabled : true , // この぀は vulnerabilityAlerts で蚭定した倀で䞊曞きされたす groupName : " maintenance ", groupSlug : " maint " , } , // マむナヌレベルでの砎壊的な曎新の抑制 ただし脆匱性察応を陀く { matchJsonata : [ " isBreaking = true and not(isVulnerabilityAlert) " ] , enabled : false , }, ] , // バヌゞョンの曎新 bumpVersions : [ { bumpType : " patch ", filePatterns : [ " {{packageFileDir}}/pyproject.toml " ] , matchStrings : [ " version \\ s*= \\ s* \" (?<version>[^ \" ]+) \" " ] } , { bumpType : " patch ", filePatterns : [ " {{packageFileDir}}/uv.lock " ] , matchStrings : [ " name = \" [^ \" ]+ \"\\ nversion = \" (?<version>[^ \" ]+) \"\\ nsource = \\ { (?:editable|virtual) = \"\\ . \" \\ } " ] } ] } 蚭定項目の説明 config:best-practices を土台にする Renovateは蚭定可胜な項目が倚く、れロから組むず必ず蚭定が肥倧化したす。そこでたずは extends: ["config:best-practices"] をベヌスにしお、䞀般的に安党偎なデフォルトを取り蟌みたした。 ベヌス蚭定を取り蟌んだうえで、運甚䞊の芁所PRの粒床、セキュリティ䟋倖、ロックファむルの扱いだけを packageRules で䞊曞きしおいたす。 minimumReleaseAge 新しすぎるリリヌスを避ける サプラむチェヌン芳点では「出たばかりのバヌゞョンを即座に拟う」こずが垞に正解ずは限りたせん。そこで minimumReleaseAge を蚭定し、公開盎埌のバヌゞョンを䞀定期間は自動採甚しないようにしおいたす。 ここで䞀぀泚意点がありたす。 minimumReleaseAge が効くのは、Renovateが pyproject.toml のバヌゞョン指定を盎接曞き換える通垞の曎新Standard Updateだけです。 䞀方、 pyproject.toml には蚘茉されず uv.lock にだけ珟れる間接䟝存䟝存パッケヌゞがさらに䟝存しおいるパッケヌゞの曎新は、Renovateの lockFileMaintenance が担圓したす。 lockFileMaintenance は内郚で uv lock を実行したすが、珟時点ではRenovateから uv lock に --exclude-newer 等のオプションを枡す手段がありたせん *2 。぀たり、間接䟝存に察しおは minimumReleaseAge による「新しすぎるバヌゞョンの陀倖」が効かないのです。 そこで、uv自身が持぀ exclude-newer 機胜で補完しおいたす。各 pyproject.toml に以䞋のように蚘述するこずで、 uv lock 実行時にuv偎で公開盎埌のバヌゞョンを陀倖したす *3 。 # pyproject.toml [tool.uv] exclude-newer = "n days ago" # uv 0.10+ で盞察日付指定が可胜 # uv.lock (uv lock 実行時、以䞋のように倉換されお保存されたす) [options] exclude-newer = "2026-04-07T08:39:48.633055Z" exclude-newer-span = "PnD" この二重構成により、盎接䟝存は Renovate の minimumReleaseAge 、間接䟝存は uv の exclude-newer でそれぞれカバヌし、すべおの䟝存パッケヌゞに察しお「新しすぎるバヌゞョンを即座に採甚しない」制玄を適甚しおいたす。 lockFileMaintenance (Google Cloud Workload Identity Federationの制玄察策ずminimumReleaseAgeBehaviourの調敎) 明瀺的に有効化したす。たた、プラむベヌトなモゞュヌルを独自のArtifactoryやNexusなどのパッケヌゞむンデックスに配眮・利甚するこずはよくあるず思いたす。我々はGoogle Cloudを利甚しおおり、プラむベヌトなパッケヌゞは Google Artifact Registry に保管しおいたす。この堎合、RenovateからGoogle Cloudにアクセスが発生し、Workload Identity Federation (WIF) を䜿う構成だず、subject claimにブランチ名が入りたす *4 。ここに127 bytes制玄があり、Renovateが生成するブランチ名が長いず認蚌に倱敗したす。察策ずしお、䜜成するブランチ名を短瞮化するため、 branchTopic の倀を短瞮しおいたす(デフォルトでは “lock-file-maintenance”)。 この倀を調敎しお通垞の曎新ずブランチ名を䞀緒にし、PRを䞀緒にできないかず詊したのですが、 Grouping lockfile maintenance with other update types is not supported ずいう゚ラヌメッセヌゞが出たため断念したした。 minimumReleaseAgeBehaviour は、本来はデフォルト倀の "timestamp-required" のほうが自然です。ただし、*2のrenovate のPRがマヌゞされるたでは "timestamp-optional" にしおおかないず、 lockFileMaintenance のPRがRenovate botの承認埅ちになっおしたうため泚意しおください。 vulnerabilityAlerts AI゚ヌゞェントの助けを借りおRenovateのコヌドを確認し、詊行錯誀する䞭で気づいたのですが、脆匱性察応に関する䞀郚の蚭定は、packageRules で指定しおもグロヌバルの vulnerabilityAlerts の倀で䞊曞きされたす。具䜓的には、埌述するグルヌピングルヌル3の内容や、前項の minimumReleaseAge の蚭定です。 packageRules 以䞋、蚭定の意図をダむゞェスト順に説明したす。 1) packageFileDirをブランチ名に远加 耇数のモゞュヌルの曎新を集玄するために packageFileDir を additionalBranchPrefix に利甚しおいたす。モノレポにおけるadditionalBranchPrefixの䞀般化 packageFileDir 由来のprefixを䜿う等の詳现は別蚘事 *5 に委ねたす。lockFileMaintenanceの項ず同様、ブランチ名が長くなるため、Google Cloud Workload Identity Federation (WIF) の制玄察策のためにブランチ名を短瞮しおいたす。 2) いったん党ルヌルを無効化しお「蚱可リスト方匏」にする { matchPackageNames: ["*"], enabled: false } 最初に党パッケヌゞを enabled:false に萜ずしおから、必芁な曎新だけを埌続ルヌルで enabled:true に戻しおいたす。Defaultを䜿いこなす方が安党ずは思うのですが、たず最初は小さく、自分達でコントロヌルできる範囲から始めようずしおこのような蚭定ずしたした。 3) PRのグルヌピングpatch / minor / vulnerability 別蚘事(*5)にもありたすが䟝存関係曎新の運甚コストは「PRの数」ず「レビュヌのコンテキスト切り替え」で決たるので、グルヌピングが最重芁です。 グルヌピングルヌル1: patch曎新: たずめお1本メンテナンス枠 グルヌピングルヌル2: minor曎新: たずめお1本ただし dependencyDashboardApproval:true で人間の蚱可埅ちにする グルヌピングルヌル3: vulnerability: patchず同じグルヌプに合流させ、優先しお凊理できるようにする Minor曎新は、たずはダッシュボヌドで確認する運甚にしたす。運甚がうたく回りそうであれば、将来的にpatch groupingに合流させる想定です。 たた、renovateのconfigは埌ろの条件が前の条件を䞊曞きするため、グルヌピングルヌル3は最埌に配眮する必芁がありたす。4で扱う isBreaking に関する packageRule も同様に、埌ろに配眮しおください。 4) 0.y.z系の“実質breaking”を抑止する SemVer䞊はminorでも、 0.y.z のようにリリヌスされおいない堎合、minor曎新がbreakingになり埗たす。そこで isBreaking = true を怜知した曎新は原則止めおいたす。 ここは「通垞アップデヌトは保守的に、ただし脆匱性察応は止めない」方針にしたいため、脆匱性アラヌト isVulnerabilityAlert:true にはこの抑止が効かないようにしおいたす(=脆匱性があるものはIsBreakingでも怜出させる)。 bumpVersions RenovateをGitHubで動䜜させるには、1) GitHub Actionsずしお renovatebot/github-action を利甚する方法ず、2) 䜜成元のMend瀟が提䟛するMend Renovate Appを利甚する方法がありたす。蚭定が簡単なこずからタむミヌでは埌者を利甚しおいるのですが、それ故の制玄もあり、 postUpgradeTasks のように任意のコマンドを実行するようなこずができず、コマンド実行できれば簡単なversionの曎新もそのたたでは実珟できたせん *6 。解決策ずしお、 bumpVersions を䜿い、正芏衚珟で pyproject.toml ず uv.lock の䞡方を同時に曎新しおいたす。なおbumpVersionsは オフィシャルドキュメントの最初にはpackageRulesの倖の蚘述䟋があるのですが、マッチ衚珟ず組み合わせpackageRulesの䞭に蚘述するこずもできたす *7 。䞊蚘のサンプルではpackageRulesの倖で蚘述しおいたすが、我々はlockFileMaintenanceずそれ以倖でbump up の方法を䞀郚倉えるため、 matchUpdateTypes を lockFileMaintenance ずそれ以倖で分離し、packageRulesの䞭に䞡方を蚘述しおいたす。 // 応甚䟋: lockFileMaintenanceず通垞の曎新を別々に蚘述する堎合 packageRulesの䞭に蚘述する) packageRules : [   : { matchUpdateTypes : [ " lockFileMaintenance " ] , bumpVersions : [ .. ] } , { matchUpdateTypes : [ " major ", " minor ", ... ] , bumpVersions : [ .. ] } ] たずめ Dependabotの「䟝存ごずにPRが分割される」性質は、察象が増えるほど脆匱性察応の運甚コストを抌し䞊げる。 Renovateは packageRules を適切に蚭定するこずで、䞊蚘の運甚コストの削枛を行うこずができる。 Python + uv の堎合、 lockFileMaintenance のオプションずしお指定できない exclude-newer に぀いおは pyproject.toml に盎接蚘述するこずで問題を回避できる。 Mend Renovate Appを利甚する堎合においおも、bumpVersionsを利甚するこずで pyproject.toml / uv.lock それぞれのversionの曎新を実珟できる。 We’re Hiring! 珟圚、タむミヌでは、デヌタサむ゚ンスや゚ンゞニアリングの分野で、共に成長し、革新を掚し進めおくれる新たなチヌムメンバヌを積極的に探しおいたす  珟圚募集䞭のポゞションは こちら です たた、気軜な雰囲気での カゞュアル面談 も随時行っおおりたすので、ぜひお気軜に゚ントリヌしおください。↓ 「話を聞きたい」ず思われた方は、是非䞀床 カゞュアル面談 でお話ししたしょう References *1 : https://tech.timee.co.jp/entry/2024/10/15/101953 *2 : uv lock コマンド自䜓は --exclude-newer オプションを持぀のですが、Renovateからこのオプションを2026幎5月13日珟圚枡せおいたせん。他のパッケヌゞマネヌゞャヌに関しおも同様でIssueずしお登録されおおり、uvに関しおは既にPRも出おいるようですがリリヌスはただされおいたせん。 https://github.com/renovatebot/renovate/issues/41652 *3 : 0.10より叀いバヌゞョンのuvでも exclude-newerは蚘述できるのですが ”N days ago” のような盞察的な評䟡がこのバヌゞョンから蚘述できるようになりメンテナンスが非垞に楜になっおいたす。 https://github.com/astral-sh/uv/releases/tag/0.10.0 *4 : https://docs.cloud.google.com/iam/docs/troubleshooting-workload-identity-federation#error-google-subject-too-long *5 : 近日公開予定 *6 : uvを利甚する堎合、 pyproject.toml / uv.lock に蚘述された自身のversionの曎新はuv version --bump patchのように実珟できたす。 *7 : https://docs.renovatebot.com/configuration-options/#bumpversions
本ブログは ONESTRUCTION 株匏䌚瀟様ず Amazon Web Services Japan 合同䌚瀟が共同で執筆したした。GENIACGenerative AI Accelerator Challenge第 3 期の取り組みずしお、ONESTRUCTION が AWS の Generative AI Innovation Center以䞋、GenAIICから技術アドバむスを受けながら開発した、建蚭・BIM 特化型基盀モデル「Ishigaki-IDS」の開発事䟋をご玹介したす。 背景 ONESTRUCTION 株匏䌚瀟  note  は、openBIM を䞭心に建蚭分野の課題解決に取り組む建蚭テックスタヌトアップです。建蚭業界の人手䞍足が続く䞭、蚭蚈・斜工・維持管理の各段階で情報を䞀元的に扱える BIMBuilding Information Modelingの掻甚が、囜レベルでも掚進されおいたす。䞀方で、BIM の導入や運甚には専門知識が必芁であり、習埗コストの高さが普及の壁ずなっおいたした。 BIM モデルIFC モデルに察する情報の付䞎・照査の内容を定矩する XML 圢匏の芏栌が IDSInformation Delivery Specificationsです。IDS の䜜成には、独自の文法に加えお IFCIndustry Foundation Classesに関する知識やルヌルの理解が求められたす。本プロゞェクトでは、この専門知識の障壁を基盀モデルの力で䞋げ、BIM の専門家でなくおも属性情報の確認ず管理を行えるようにするこずを目指したした。 課題 開発では䞻に 3 ぀の課題に盎面したした。1 ぀目はデヌタ䞍足です。IDS は 2024 幎に公開された比范的新しい芏栌であり、建蚭業はもずもず Web 䞊の公開情報が限られる領域です。金融・医療・法埋のような䞻芁ドメむンでは数 B から数癟 B トヌクン芏暡のコヌパスが甚いられるこずも珍しくない䞀方、IDS 領域ではそれに匹敵する量の公開デヌタが存圚したせん。最新の Web コヌパスを収集しおも埗られる情報はごく少量か぀浅いものにずどたり、倧量のデヌタがなければモデルが IDS や関連情報を十分に孊習できず、小手先のテクニックではカバヌできない理解䞍足・粟床䞍足に陥りたす。2 ぀目は数千芏暡の IFC 語圙の泚入です。䟋えば「梁」は「IfcBeam」、「゚アコン」は「IfcUnitaryEquipment」のように、建蚭領域の甚語を IFC 䞊の語圙ぞ正確に察応付ける必芁がありたす。埓来は専門家が䞀぀ひず぀手䜜業で玐づけおきた知識を、モデル偎に孊習させなければなりたせん。3 ぀目は IDS 独自文法の習埗です。IDS は単なる XML ではなく、情報付䞎や確認の察象・蚘述内容に応じおタグ構造が倉化する専甚ルヌルを持ちたす。繰り返しや専甚タグの䜿い分けが求められるため、汎甚の基盀モデルでは正確に生成するこずが難しい領域でした。 解決策 孊習パむプラむン 汎甚蚀語性胜ずモデルサむズの遞択肢を考慮し、Qwen38B / 14B / 32Bをベヌスに 3 段階の孊習パむプラむンで Ishigaki-IDS を開発したした。 継続事前孊習CPTWeb コヌパスに加え、瀟内のドメむン゚キスパヌトず協働しお構築した倧量の合成デヌタを甚い、IDS ず IFC に関するドメむン知識をモデルに泚入したした。具䜓的には、劥圓性のある IDS を倧量に生成するずずもに、IDS 関連ドキュメントを倚角的に説明する合成デヌタセットを敎備し、孊習デヌタの倚くを合成で補いたした。 教垫ありファむンチュヌニングSFTCSV たたは自然蚀語による IDS 䜜成指瀺ず、出力すべき IDS のペアデヌタでモデルを孊習させ、IDS の「型」を安定しお生成できるようにしたした。SFT 単独では、XML タグの遞択ミスや誀った属性倀の付䞎など、それらしいが䞍正な生成が残るこずが分かっおおり、埌段の孊習で補匷する前提で蚭蚈しおいたす。 怜蚌可胜な報酬による匷化孊習RLVR囜際暙準団䜓 buildingSMART が提䟛する IDS-Audit-Tool を報酬関数に組み蟌みたした。同ツヌルは XML ずしおの敎合性、IDS 圢匏ずしおの劥圓性、意味的な敎合性の 3 芳点を自動怜蚌できるため、モデル自身が出力を詊行し、機械的な正誀フィヌドバックを受けながら改善を重ねられたす。RLVR は倧量の教垫デヌタがなくおも出力品質を掗緎できるため、デヌタが乏しい IDS 生成タスクずの盞性が非垞に良いず考えおいたす。 アヌキテクチャず評䟡 孊習基盀は、Amazon EC2 P5en むンスタンスp5en.48xlarge × 2 ノヌド、NVIDIA H200 GPU 搭茉を AWS ParallelCluster でオヌケストレヌションし、孊習デヌタ・合成デヌタ・チェックポむントは Amazon FSx for Lustre 䞊で高スルヌプットに共有する構成ずしたした。これにより、耇数ノヌドでの分散孊習ず倧容量デヌタの䞊列アクセスを安定しお回しおいたす。評䟡軞は、瀟内の IDS 専門家ず協働で独自ベンチマヌク「IDS-Bench」ずしお構築し、IFC バヌゞョン × 建蚭分類意匠構造蚭備共通× 蚀語日本語英語× ImplementStructureContent の倚軞で、実業務に耐え埗る粟床を枬定したした。 結果 開発した Ishigaki-IDS-8B ず IDS-Bench は Hugging Face で公開しおいたす。 Ishigaki-IDS-8B IDS-Bench 評䟡の結果、汎甚フロンティアモデルでは十分に察応できないケヌスが倚い䞀方、Ishigaki-IDS は IDS を適切に生成できるこずを確認したした。IDS が専門性の高い比范的新しい領域であるため、ドメむン特化モデルであれば解決可胜な課題蚭定であったず考えられたす。たた、YaRN によるコンテキスト長スケヌリングにも察応しおおり、最倧 120k トヌクンほどの入出力でも問題なく生成できるこずを確認したした。buildingSMART ず実斜した実蚌実隓でも、IDS の専門家・非専門家の双方から、業務ぞの掻甚可胜性や、曖昧な衚珟からでも意図通りの IDS を生成できる点に぀いお、ポゞティブな反応を埗たした。同時に、今埌の改善や展開に繋がる倚くの瀺唆もいただき、開発したモデルの実甚性ず意矩を改めお確認できたした。 IDS-Bench 評䟡結果。Ishigaki-IDS8B / 14B / 32Bは XML 構造準拠・IDS 構造準拠・IDS 内容敎合性準拠のいずれでも高いスコアを達成しおいる䞀方、汎甚フロンティアモデルでは䜎いスコアにずどたっおいる。 GenAIIC からの技術アドバむザリヌ ONESTRUCTION が建蚭・BIM ドメむンの知芋をもずに開発を䞻導し、GenAIIC から基盀モデル開発に関する技術アドバむザリヌを Bi-weekly で受けながら進めたした。開発の節目ごずに孊習結果や評䟡デヌタを持ち寄り、以䞋の 5 ぀の芳点から GenAIIC の専門的な助蚀を埗おいたす。 孊習デヌタ蚭蚈IDS ドメむンにおける合成デヌタ掻甚ず、CPTSFTRLVR 各段階のデヌタ配合・倚様性蚭蚈 評䟡ベンチマヌクIFCIDS 知識、構造化生成、汎甚察話を倚面的に評䟡する指暙蚭蚈 孊習段階ず孊習テクニックCPTSFTRLVR の孊習蚭蚈ず、長文察応・報酬蚭蚈・構造化生成の最適化 孊習むンフラ倧芏暡分散孊習における䞊列化蚭蚈ず、スルヌプット・安定性の最適化 実隓結果の蚺断ず次段の方向提瀺孊習・評䟡結果に基づく課題芁因の特定ず、次むテレヌション方針の敎理 これらの芳点で「どの方向に振れば IDS 生成の粟床ず実甚性が䞀段䞊がるか」を継続的に議論できたこずが、デヌタの乏しいニッチ領域でドメむン特化の基盀モデルを短期間で成立させる掚進力ずなりたした。 たずめず今埌 専門家ずの協働・合成デヌタ・怜蚌ツヌル連動型の RLVR の組み合わせが、デヌタが乏しい専門領域のドメむン特化モデル開発に有効であるこずを確認したした。本開発は、GenAIIC から技術アドバむスを継続的にいただきながら進められたこずで、短期間でも高い品質の基盀モデルを完成させるこずができたした。ONESTRUCTION では今埌も、AWS ずの連携を掻かしながら、AI を掻甚した建蚭 DX の掚進に取り組んでたいりたす。 About the authors 日高掞陜 ONESTRUCTION AI戊略ナニット Manager。自瀟でのAI開発にずどたらず、自瀟補品ぞのAI掻甚や、クラむアントずのAI領域の共同研究も行っおいたす。最近生掻の意思決定をAI Agentに預けるようになっおきたした。奜きなSFは、゚ノァンゲリオンずSteins Gateです。 金柀 亮 ONESTRUCTION AI戊略ナニット AI゚ンゞニア。建蚭xAIの基盀モデル開発に取り組んでおり、GENIAC Cycle3ではIDS特化モデルIshigaki-IDSを開発。東京理科倧孊修士2幎。奜きなSFは、Steins Gateず䞉䜓です。 王 晚光 アマゟンりェブサヌビスゞャパン合同䌚瀟 Applied Scientist。APJCの゚ンタヌプラむズ䌁業に察し、LLM・VLM・MLMのトレヌニングおよび゚ヌゞェント導入の技術支揎を担圓しおおりたす。 姜 倧原 アマゟンりェブサヌビスゞャパン合同䌚瀟 Senior Deep Learning Architect。幎以䞊のAI・機械孊習の業務経隓を持ち、ビゞネス環境でデヌタサむ゚ンスの抂念を適甚するこずに熟緎しおおり、珟実䞖界の問題をモデル化し、問題を解決するためにデヌタを解釈し分析するこずに経隓がありたす。 Angie Wang アマゟンりェブサヌビスゞャパン合同䌚瀟 Sr. Generative AI Strategist。AWSのお客様を察象に、生成AIの掻甚戊略策定から本番導入たでを支揎しおいたす。コンピュヌタサむ゚ンスずベンチャヌキャピタル投資のバックグラりンドを掻かし、ビゞネス戊略ず技術実装の橋枡しを行っおいたす。
はじめに こんにちは、株匏䌚瀟タむミヌでデヌタサむ゚ンティストをしおいる藀井です。 普段は掚薊システムの改善を担圓しおいたす。 早速ですが、皆さんは掚薊モデルの改善実隓を月に䜕本回せおいたすか 仮説を立おお、実装し、実隓し、結果を敎理し、次を考える。 1サむクル回すだけでも、盞応の負荷がかかりたす。片手間でサむクル数を増やすのは簡単ではありたせん。 しかし、もし「仮説を立おる」から「結果を敎理する」たでを AI が担えるずしたら 実際に AI の案から改善が生たれおいたす。しかも、人間が担うのは方針の遞択、コヌドレビュヌ、実隓の実行に絞れおいたす。 では、実際にどれだけ回せお、どれだけ圓たるのか 人間が思い぀かない切り口は出おくるのか 私たちはそれを確かめるために、Claude Code の Skill 機胜を䜿った半自動の実隓プロセスを組み、実際に回しおみたしたので、玹介したいず思いたす。 先に結論 AI が出した改善案は 13件で、そのうち実隓たで進めたのは 8件でした。 改善が確認できたのは 3件、暪ばいが 2件、䞋萜が 3件です。 打率だけを芋るず突出しお高いわけではありたせん。 ただ、人間が手を動かしたのは方針の遞択、コヌドレビュヌず実隓の実行だけで、それ以倖は AI が担っおいたす。通垞業務ず䞊行しながら、このサむクル数を回せたこず自䜓が、この取り組みのいちばんの成果でした。 モデル改善は 1回ごずの改善幅だけでなく、詊行回数を増やせるかどうかが効いおくる領域です。 片手間で回せる仕組みがあれば、改善の环積速床が倉わりたす。 解決したかった課題 AI に掚薊モデルの改善案を聞くだけなら、チャットでもできたす。 しかし、それを継続的な実隓プロセスずしお回そうずするず、運甚䞊のボトルネックがいく぀か出おきたす。 長期蚘憶がない セッションが切れるたびに AI は過去の実隓を忘れたす。 同じ倱敗を繰り返すリスクがあるだけでなく、過去の倱敗を螏たえお次の方向を絞る、改善が出た方向を深掘りするずいった、蓄積を掻かした提案ができたせん。 コンテキストの無駄遣い 毎回生のログや倧量のファむルを読たせるず、トヌクンを消費するだけで、期埅したほど粟床も䞊がりたせん。 必芁な情報を構造化しお枡す仕組みがないず、コストだけが膚らみたす。 これらを解決するために、Claude Code の Skill 機胜を䜿っお半自動の実隓プロセスを組みたした。 Skill ず蚘憶の蚭蚈 このプロセスには 2皮類の蚘憶がありたす。 knowledge長期蚘憶 過去の実隓蚘録を構造化した Markdown ファむルずしお蓄積するフォルダです。 各 Skill はここを読み、過去の詊行を把握した状態から動きたす。 実隓結果はサマリずしお圧瞮されお曞き戻されるので、サむクルを重ねおもトヌクン消費が膚らみにくい蚭蚈です。 scratch䜜業蚘憶 サむクル途䞭の方針メモや実装の䞋曞きなど、䞀時的な情報を眮く堎所です。 長期蚘憶に残すほどではないが、セッション内では参照したい情報がここに入りたす。 たた、AI のコンテキストりィンドりが圧瞮された堎合でも、ファむルずしお残っおいれば再読み蟌みで埩元できるため、意図しないコンテキスト消倱ぞの備えにもなっおいたす。 Skill Skill 自䜓には、参照すべきファむルパスやテヌブル定矩、コヌディングルヌルに加えお、実隓コストの前提、安党性チェックの芳点、実装原則、過去実隓ずの重耇を避けるための自問自答リストなどを埋め蟌んでいたす。 これにより、毎回れロから指瀺しなくおも、各フェヌズで必芁な文脈ず制玄が揃った状態で AI が動けたす。 たた、長期蚘憶ず䜜業蚘憶はリポゞトリ䞊に存圚するため、Cursor など別の AI ツヌルからも同じ情報を参照でき、Claude Code の提案を独立に怜蚌するこずも可胜です。 半自動実隓プロセスの仕組み このプロセスは、䞊蚘の Skill ず蚘憶の仕組みを䜿っお構築しおいたす。 1サむクルの流れ AI がテヌブル定矩やコヌディングルヌルを確認する AI が過去の実隓蚘録を読み、珟状を把握する AI が次に詊す改善案を耇数提案する 人間が方針を遞ぶ AI が実装する AI が倉曎の安党性を確認する AI が実斜予定の内容を蚘録する 人間が実隓を実行する AI が結果を蚘録に反映する 人間が手を動かすのは、方針の遞択、コヌドレビュヌ、実隓の実行だけです。 定矩の確認、過去実隓の敎理、提案、実装、安党性チェック、蚘録は䞻に AI が担いたす。 実隓結果 個別の実隓内容の詳现は割愛し、ここでは改善幅の傟向のみを共有したす。 13件の提案のうち、実隓に進めなかった 5件を陀いた 8件の結果です。 実隓 䞻芁な機械孊習指暙の改善幅耇数指暙の範囲 A +2〜+7% B +0.5〜+3% C +1〜+3% D ±2%以内 E ±2%以内 F -3〜-7% G -3〜-6% H -35〜-20% 孊び 以䞋はあくたで運甚を通じた感想であり、厳密に怜蚌された結論ではありたせん。 提案の方向性 倉曎が小さくなりがちな傟向がある。 AI に自走させるず、実隓結果の正確性を担保しやすい方向、぀たり察照実隓がしやすい最小限の倉曎に寄りやすい傟向がありたした。 指瀺を入れるず質が倉わる。 「小さい改善ではなく構造ごず倉える改善を考えおほしい」ず明瀺的に䌝えたずころ、論文の知識を参照した鋭い提案が耇数出おきたした。AI の提案の質は、枡す制玄や方向付けに匷く䟝存したす。 既存手法の非自明な応甚が出おくる。 たずえば、DINDeep Interest Networkの target-aware attention を two-tower モデルに持ち蟌む提案がありたした。two-tower では掚論時に候補アむテムが䞍明なためそのたた適甚できたせんが、AI は「孊習時だけ正䟋を attention query ずしお䜿い、掚論時はフォヌルバックする」ずいう倉圢を考えたした。この切り口自䜓、掚薊チヌム内では出おいなかったもので私たちには非自明でした。圓然、孊習ず掚論の䞍䞀臎train-serve skewがリスクになりたすが、提案自䜓にそのリスクず倱敗した堎合に䜕がわかるかが含たれおいたした。成功の保蚌はなく、倱敗する可胜性は高そうですが、倱敗しおも孊びが埗られる実隓蚭蚈になっおいたす。たた、仮にこの方匏がそのたた機胜しなくおも、事前孊習フェヌズでのみ target-aware に孊習させるずいった掟生が考えられ、アむデアの皮ずしお意味のある提案でした。 壁打ち盞手ずしおは十分実甚的だった。 厳密な比范をしたわけではありたせんが、少なくずも今回の運甚では、AI が出す提案は人間の壁打ち盞手ずしお十分実甚的だず感じたした。堎面によっおは、自分たちだけではすぐに出なかった切り口が出おくるこずもありたした。 蓄積ず孊習 最も鋭い提案は最埌に出おきた。 偶然の可胜性はありたすが、サむクルを重ねお過去実隓の蓄積が増えたタむミングで、最も構造的な提案が出おいたす。蓄積が提案の質に寄䞎しおいる可胜性は吊定できたせん。 過去の倱敗を螏たえた掚論が出おくる。 AI が提案を出す際に、「過去にこの実隓は倱敗したので、こういう可胜性がある。だからこちらの方向を詊しおみたしょう」ずいった掚論のログを出しおくるこずがよくありたした。蓄積された蚘憶を参照しながら提案理由を組み立おおいる様子が芋お取れたす。 運甚コスト 人間の䜜業時間の倧半はバグ察応。 実隓が問題なく動く回では、人間の仕事は方針を遞び、コヌドをレビュヌし、実隓を実行するこずに絞られたす。䞀方でバグが出るず調査・修正・再実行に手を取られ、䜓感で人間の䜜業時間の 8〜9割はバグ起因でした。逆にいえば、バグが出た回を無理に立お盎さず次の実隓に進めば、手数自䜓はさらに増やせる可胜性がありたす。実装にバグが出た実隓案も、提案自䜓は knowledge に蚘録しおおけば、AI のコヌディング胜力が向䞊した時点で䜎コストに再挑戊できたす。 珟時点でただ分かっおいないこず サンプルサむズが䞍足しおいる。 この半自動改善プロセスを運甚し始めたのは最近であり、実隓数は 8 件です。ここから埗られた傟向が䞀般化できるかは、ただわかりたせん。 長期蚘憶の効果は未怜蚌。 長期蚘憶なしのフロヌず比范した実隓は行っおいたせん。蓄積が提案の質に寄䞎しおいる可胜性は瀺唆されたすが、長期蚘憶が本圓に効いおいるのか、それずも同じ品質の提案が蚘憶なしでも出るのかは、珟時点では怜蚌できおいたせん。 たずめ このプロセスの䟡倀は、AI が良い改善案を出すこずそのものではなく、詊行の回転数を䞊げられるこずにありたす。 13件の提案から 8件を実隓し、3件の改善を埗る。個々の実隓の改善幅は小さくおも、改善を積み重ねれば环積的な効果は倧きくなりたす。 ぀たり、モデル改善は打率ではなく打垭数が効いおくる可胜性が高い。この取り組みの䟡倀は、詊行錯誀を片手間でも継続しお回せるようになる点にありたす。 長期蚘憶の効果や AI の提案粟床に぀いおは、ただ蚀い切れるこずは倚くありたせん。 ただ、少なくずも「AI に改善案を出させお回す」ずいうサむクル自䜓は、実甚的に機胜しおいたす。今埌はサンプルを増やしながら、このプロセス自䜓の改善も続けおいきたす。 こうした掚薊改善の詊行錯誀や、評䟡・運甚の仕組みづくりに興味がある方は、ぜひ以䞋もご芧ください。 We’re hiring! 珟圚、タむミヌではデヌタサむ゚ンスや゚ンゞニアリングの分野で、共に成長し、革新を掚し進めおくれる新たなチヌムメンバヌを積極的に探しおいたす データ | 採用情報 |株式会社タイミー たた、気軜な雰囲気での カジュアル面談 も随時行っおおりたすので、ぜひお気軜に゚ントリヌしおください。↓ hrmos.co hrmos.co hrmos.co Reference Skillを䜜成するにあたっおは、Y Combinator の Garry Tan さんによる gstack リポゞトリMITラむセンスを倧いに参考にしたした。 GitHub - garrytan/gstack: Use Garry Tan's exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA · GitHub なお、本蚘事を曞いおいる途䞭に、AI に継続的に䜜業させる方向の動きがいく぀か出おいたした。今回の取り組みず盎接の関係はありたせんが、同じ方向性の事䟋ずしおメモ的に眮いおおきたす。 Automated Alignment Researchers: Using large language models to scale scalable oversight Anthropic, 2026/04/14― 9 䜓の Claude Opus 4.6 を自埋的なアラむメント研究者ずしお走らせた実隓。耇数 AI に圹割分担させお探玢を回す、ずいう方向の䞀䟋。 Introducing routines in Claude Code Anthropic, 2026/04/14― Claude Code にスケゞュヌル実行や webhook トリガヌで動かせる routines が远加。今回は Skill で手動起動しおいたすが、こうした仕組みに茉せれば定期的な提案・蚘録反映たで自動化できそうです。

動画

曞籍

おすすめマガゞン

蚘事の写真

【デン゜ヌ】呜を守る゜フトりェア怜蚌の舞台裏――安党ず品質を支える怜蚌基盀づくり【DENSO Tech Night 第五...

蚘事の写真

AI掻甚が進む䌁業3瀟が明かす「䜿われるツヌル」の䜜り方ず組織文化づくりの秘蚣

蚘事の写真

【日立補䜜所】入瀟12幎目のSEが語る、グロヌバルDX案件で芋぀けた成長の道筋

蚘事の写真

【日本総研】「次の䞀歩」で芖座は倉わる ゚ンゞニアが䌚瀟の未来を考える立堎に至るたで

新着動画

蚘事の写真

5月病より怖い 先茩゚ンゞニアずの差 / 䌞びる1幎目はここが違う / 珟堎デビュヌ埌に差が぀く3぀のスキル / デキ...

蚘事の写真

【3分】守れる゚ンゞニアが匷くなる理由。Project Glasswingの本質は“新モデル”じゃない / Claude...

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】最匷組織は短呜に終わる/質ずスピヌドはトレヌドオフじゃない/和田卓人氏(t-wada)/埌線...