TECH PLAY

Kaggle

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

該圓するコンテンツが芋぀かりたせんでした

技術ブログ

Kaggleで開催された心電図画像のデゞタル化をテヌマにした医療系コンペティションの参加レポヌトです。画像の正芏化やセグメンテヌション技術を掻甚したAIモデルの構築手法に぀いお詳しく解説しおいたす。
G-gen のバロキです。圓蚘事では、Anthropic の Claude Code ず Google Cloud の デヌタサむ゚ンス゚ヌゞェント ずいう 2 ぀の AI ツヌルに、同䞀のデヌタセットず指瀺を䞎えお比范したした。自動生成されるデヌタ分析ノヌトブックに、どのような違いが生たれるかを怜蚌したした。 抂芁 はじめに デヌタサむ゚ンス゚ヌゞェントずは Claude Code ずは 怜蚌の前提条件 䜿甚したデヌタセット 投入したプロンプト 評䟡の芳点 生成されたノヌトブックの党䜓像 デヌタサむ゚ンス゚ヌゞェントの特城 Claude Code の特城 芳点別の比范 コヌドの量ず構造 可芖化のスタむル 説明可胜性 デヌタクレンゞングぞの姿勢 コヌドの再利甚性 蚭蚈思想の察比 ナヌスケヌス別の䜿い分け デヌタサむ゚ンス゚ヌゞェントが向いおいるケヌス Claude Code が向いおいるケヌス 抂芁 はじめに 「デヌタを枡すず、AI が分析ノヌトブックを生成しおくれる」ずいう䜓隓が、䞀般的になり぀぀ありたす。Google Cloud のデヌタサむ゚ンス゚ヌゞェントや、Claude Code をはじめずする倧芏暡蚀語モデルLarge Language Model、以䞋、LLMベヌスの゚ヌゞェントツヌルは、いずれもデヌタ分析の自動化を可胜にしたす。 しかし実際に怜蚌しおみるず、同じデヌタセットず同じ指瀺を䞎えおも、ツヌルによっお出力されるノヌトブックに違いがあるケヌスがありたす。圓蚘事では、䞡者の成果物を䞊べお比范し、その差がどこから生たれるのかを読み解きたす。 結論を先に述べるず、2 ぀のツヌルに優劣はなく、想定されおいる甚途やナヌザヌ局が異なりたす。なお、圓蚘事の内容は、怜蚌を行った2026幎5月珟圚の仕様に基づいおいたす。 デヌタサむ゚ンス゚ヌゞェントずは デヌタサむ゚ンス゚ヌゞェント は、Google Cloud の Colab Enterprise に組み蟌たれた、 Gemini をベヌスずするデヌタ分析゚ヌゞェントです。タスクをサブタスクに分解し、ステップごずに思考プロセスを瀺しながら凊理を進める点が特城です。BigQuery テヌブルや CSV ファむルを入力に、自然蚀語の指瀺から動䜜する Colab ノヌトブックを生成したす。 参考 : デヌタ サむ゚ンス ゚ヌゞェントを䜿甚する - Colab Enterprise 以䞋の蚘事も参照しおください。 blog.g-gen.co.jp Claude Code ずは Claude Code は、Anthropic が提䟛する、タヌミナル䞊で動䜜する゚ヌゞェント型のコヌディングツヌルです。プロンプトを受け取るず、ノヌトブック党䜓の構成をあらかじめ蚭蚈し、䞀括で曞き䞋ろすスタむルが特城です。 参考 : Claude Code overview 怜蚌の前提条件 䜿甚したデヌタセット 怜蚌には、Kaggle で公開されおいる「Japanese Universities」デヌタセットを䜿甚したした。1872 幎以降の日本の倧孊情報を網矅したオヌプンデヌタです。 参考 : Japanese Universities - Kaggle デヌタセットの䞻な仕様は以䞋のずおりです。 項目 仕様 公開者 webdevbadger 内容 1872 幎以降の日本の倧孊情報所圚地、創立幎、評刀、難易床など ラむセンス Open Data Commons Public Domain Dedication and LicenseODC-PDDL 行数 / 列数 813 æ ¡ / 22 列 察象範囲 47 郜道府県すべおを網矅 創立幎範囲 1872 幎 11 月明治期〜 2022 幎 4 月近幎 蚭眮䞻䜓内蚳 Private 626 æ ¡ / Public 101 æ ¡ / National 86 æ ¡ 䞻なカラム code 、 name 、 name_jp 、 type National / Public / Private、 address 、 state_jp 、 latitude 、 longitude 、 found YYYY-MM、 faculty_count 、 department_count 、 review_rating 、 review_count 、 difficulty_SD 、 difficulty_rank A〜F 圓デヌタセットは、蚭眮䞻䜓や地域の分垃に明確な構造を持ち、創立幎の時間軞も広いため、探玢的デヌタ分析exploratory data analysis、以䞋 EDAの怜蚌玠材ずしお適しおいたす。EDA ずは、本栌的なモデリングに入る前に、デヌタの分垃や欠損、倉数間の関係を可芖化しながら把握する䜜業です。AI に EDA を䟝頌し、その出力の質を比范する甚途にも向いおいたす。 投入したプロンプト 䞡者には、以䞋の 4 ぀の芳点を網矅する EDA を䟝頌する同䞀の本文を、いずれも日本語のプロンプトで䞎えたした。 デヌタ品質 : 欠損、重耇、異垞倀、基本特性、数倀倉数間の関係 地理的分析 : 倧孊の空間分垃ず郜道府県・地域別の蚭眮䞻䜓構成 機関特性 : National / Public / Private を芏暡ず評刀の䞡面から比范 時系列分析 : 創立の経幎トレンドず蚭立時期別の蚭眮䞻䜓構成 加えお、最終成果物に「分析から埗られた重芁な気づきを 5 ぀」を含めるこず、および日本語テキストが正しく衚瀺されるこずを条件ずしたした。 なお、公平性のため分析を䟝頌する本文は䞡者で同䞀にしおいたすが、成果物の保存先の指瀺だけは実行環境に合わせお倉えおいたす。Claude Code はロヌカルのタヌミナルで動䜜するため、「成果物を output/ フォルダに保存する」よう明瀺的に指瀺したした。䞀方、デヌタサむ゚ンス゚ヌゞェントは Colab Enterprise 䞊でノヌトブック自䜓が保存されるため、この指瀺は䞎えおいたせん。 デヌタサむ゚ンス゚ヌゞェントに入力したプロンプト分析本文は Claude Code ず同䞀 Claude Code のタヌミナルに入力したプロンプト 評䟡の芳点 生成されたノヌトブックの品質を、以䞋の軞で芳察したした。 実行性゚ラヌなく走るか カバレッゞプロンプトの芁求項目を満たしおいるか コヌド品質慣甚的か、再利甚可胜か 可芖化の量ず質 説明可胜性各ステップの意図が読み取れるか 構造の芋通しの良さ 生成されたノヌトブックの党䜓像 デヌタサむ゚ンス゚ヌゞェントの特城 デヌタサむ゚ンス゚ヌゞェントは、タスクをサブタスクに分解し、各ステップの目的を明瀺しおから実行したす。出力されたノヌトブックでは、各コヌドセルの盎前に「 Reasoning : ...」ずいう Markdown セルが配眮され、これから䜕を行うか、なぜその凊理が必芁なのかが自然蚀語で解説されたす。 䞻な特城は以䞋のずおりです。 各セルが自己完結する必芁なむンポヌトをセル内で郜床実行する 「デヌタの読み蟌み → 欠損倀の確認 → 補完凊理 → 可芖化」のように段階を明瀺する 各ステップに Reasoning ブロックを付䞎する ゚ラヌや譊告が発生した堎合、それを怜知しお次のセルでリカバリするプロセスが蚘録される ステップごずの透明性の確保が、デヌタサむ゚ンス゚ヌゞェントの蚭蚈思想の䞭栞ず蚀えたす。 デヌタサむ゚ンス゚ヌゞェントのコヌドセル䞊郚に衚瀺される Reasoning マヌクダりン Claude Code の特城 Claude Code は、ノヌトブック党䜓を 1 ぀の完成品ずしお蚭蚈しおから曞き䞋ろしたす。プロンプトを受けるず、内郚で党䜓構造をプランニングし、必芁なラむブラリ、再利甚するカラヌパレットや定数、セクション構成を最初に決定したうえで、䞀括でノヌトブックを出力したす。 䞻な特城は以䞋のずおりです。 むンポヌト文ずグロヌバル定数 TYPE_ORDER 、 TYPE_PALETTE などを冒頭に集玄する 同じ可芖化スタむルを党セクションで䞀貫させる セルあたりのコヌド密床が高く、1 ぀のセルで耇数のグラフを配眮する 各セクションの最埌に「ポむント」ずしお短い解釈を蚘述する 芳点別の比范 コヌドの量ず構造 出力されたノヌトブックの構成を数倀で瀺したす。 項目 Claude Code デヌタサむ゚ンス゚ヌゞェント 総セル数 55 41 コヌドセル 30 16 Markdown セル 25 25 総コヌド行数 箄 353 行 箄 286 行 むンポヌトの䜍眮 冒頭に集玄 各セルで郜床実行 セル数やコヌド行数の違いは、それぞれの蚭蚈思想を反映しおいたす。Claude Code は完成されたレポヌトずしおの密床を重芖し、デヌタサむ゚ンス゚ヌゞェントはステップごずの実行ログずしおの読みやすさを重芖しおいるず蚀えたす。 可芖化のスタむル Claude Code はラむブラリ遞択の幅が広く、 folium による地図プロット、 seaborn の violinplot 、 pairplot 、 heatmap などを柔軟に䜿い分けたす。1 ぀の芳点に察しお倚角的にアプロヌチする構成です。 デヌタサむ゚ンス゚ヌゞェントは、 plotly express による地図プロットや、 matplotlib ず seaborn を組み合わせたシンプルな boxplot 、積み䞊げ棒グラフが䞭心です。皮類を絞るこずで、初孊者でもプロセスを远いやすい䞀貫性を持たせおいたす。 Claude Code が生成した Folium 地図ず violinplot/heatmap デヌタサむ゚ンス゚ヌゞェントが生成した Plotly Express 地図ず box plot 説明可胜性 ここが 2 ぀のアプロヌチで最も倧きく分かれるポむントです。 Claude Code が生成するノヌトブックは、コヌドは掗緎されおいるものの、「なぜその可芖化手法を遞んだのか」ずいった意図はコヌドから読み解く必芁がありたす。䞀定以䞊のデヌタ分析リテラシヌを前提ずしたレポヌト構成です。 䞀方、デヌタサむ゚ンス゚ヌゞェントでは、各セルの盎前に凊理の意図が明蚘されたす。䟋えば欠損倀凊理のフェヌズでは、以䞋のような Reasoning が出力されたす。 Reasoning: Based on the analysis of missing values, I will impute phone with 'Unknown' as it is a categorical identifier. For numerical columns review_rating, review_count, and difficulty_SD, I will use median imputation as it is more robust to outliers. For the categorical column difficulty_rank, I will use mode imputation. デヌタサむ゚ンス゚ヌゞェントの Reasoning 付き欠損倀補完セル Claude Code の可芖化䞭心の欠損倀凊理セル 「䜕を、どう凊理しお、なぜそうするのか」が逐䞀蚀語化されるため、デヌタ分析を孊習䞭のメンバヌにずっお、ノヌトブック自䜓が良質なチュヌトリアル教材ずなりたす。 デヌタクレンゞングぞの姿勢 デヌタクレンゞングに察する姿勢も察照的です。 Claude Code は欠損倀を可芖化しお報告するに留め、欠損のたた分析を進めたす。EDA ずしおは䌝統的な進め方で、欠損のパタヌン自䜓に情報があるため、むしろ望たしいずいう芋方もありたす。 デヌタサむ゚ンス゚ヌゞェントは、欠損倀を統蚈的に補完むンピュテヌションしたす。むンピュテヌションずは、欠損したセルを平均倀や䞭倮倀などで埋める凊理のこずです。 phone は 'Unknown' 、数倀カラムは䞭倮倀、カテゎリカラムは最頻倀で埋める、ずいう戊略を文章で宣蚀しおから実行したす。䞋流のモデリングに繋ぐパむプラむンを想定するず、この明瀺性は実務で有甚です。 どちらが正解ずいうこずはなく、Claude Code は分析者の刀断を読者に委ね、デヌタサむ゚ンス゚ヌゞェントは刀断を逐䞀衚に出す、ずいう思想の違いです。 コヌドの再利甚性 Claude Code はグロヌバル定数 TYPE_ORDER 、 TYPE_PALETTE ず再利甚可胜なヘルパヌ関数 iqr_outliers を冒頭で定矩し、以降のセルがそれを参照する構造になっおいたす。コヌドベヌスずしお手入れし続ける甚途に適しおいたす。 デヌタサむ゚ンス゚ヌゞェントはセルごずに自己完結しおいるため、䞀郚のセルだけを別のノヌトブックにコピヌしお流甚するのが容易です。「特定の凊理だけ䜿い回したい」ずいうナヌスケヌスには、デヌタサむ゚ンス゚ヌゞェントのスタむルが向きたす。 蚭蚈思想の察比 これたでの怜蚌を螏たえ、䞡者の蚭蚈思想の違いを䞀芧にたずめたす。 芳点 Claude Code デヌタサむ゚ンス゚ヌゞェント 出力の性栌 完成圢のレポヌト 実行ログ・チュヌトリアル プランニング 䞊䜍から䞀括生成 ステップ単䜍で挞進的に実行 説明可胜性 サマリでの論評 各セルに Reasoning を配眮 カバレッゞ 網矅的か぀深局的 コアずなる芳点に集䞭 ゚ラヌハンドリング ゚ラヌを起こさない前提のコヌド ゚ラヌ時は次セルでリカバリを実行 コヌドの密床 高い 䜎い可読性重芖 再利甚性 グロヌバル定矩による䞀元管理 セルごずの自己完結型 介入の容易さ 䜎い 高い 想定ナヌザヌ 経隓豊富なアナリスト 孊習者・ビゞネス局・探玢的分析 ナヌスケヌス別の䜿い分け デヌタサむ゚ンス゚ヌゞェントが向いおいるケヌス デヌタ分析の孊習フェヌズ Reasoning が䜵蚘されるため、分析者の思考プロセスを远䜓隓する教材ずしお䜿甚できたす。 察話的な探玢フェヌズ 「ここたでの結果を螏たえ、次は別の切り口で怜蚌したい」ずいった、人間が途䞭で介入しながら進める探玢に適しおいたす。 ビゞネス局によるデヌタ探玢 非開発者が自然蚀語でデヌタを問い合わせる際、凊理がブラックボックス化せず、結果の根拠をステップごずに確認できたす。 Colab 環境での完結 Colab 起動を前提ずした環境蚭定コヌドも含たれるため、ブラりザのみで即座に分析を開始したい堎合に最適です。 パむプラむンの郚分流甚 セル自己完結型のため、デヌタクレンゞングのセルだけを別ノヌトブックにコピヌするずいった郚分流甚がしやすくなりたす。 Claude Code が向いおいるケヌス 迅速なレポヌト䜜成 分析結果を玠早くレポヌトずしお共有したいケヌスで、䞀括生成が匷みを発揮したす。可芖化のバリ゚ヌションが豊富で、レポヌトずしおの完成床が高い特城がありたす。 経隓豊富なアナリストの叩き台 コヌドが慣甚的で密床が高いため、これをベヌスに独自のカスタマむズや手動の曞き換えを玠早く行う甚途に適しおいたす。 芁求項目の網矅カバレッゞ重芖 プロンプトに指定したチェックリスト的な芁求に察しお、抜け挏れなく䞀括で察応させたい堎合に有利です。 カスタムビゞュアラむれヌションの䜿甚 folium のクラスタリング地図、scatter matrix、violin plot など、デヌタ分析で慣習的に䜿われる可芖化を幅広く䜿いたい堎合に匕き出しが倚くなりたす。 ハサナル・バロキ (蚘事䞀芧) クラりド゜リュヌション郚 クラりドサポヌト課。むンドネシア北スマトラ州ビンゞャむ垂出身。 YKK株匏䌚瀟での金型蚭蚈を経お IT 業界ぞ転身。AIシステム゚ンゞニアずしおの経隓を積み、珟圚は G-gen におクラりドサポヌトに埓事。 趣味は氎泳ず RAG チャットボット開発OpenAI・Gemini・Vector Search 等。奜きな食べ物はラヌメンず寿叞。
本蚘事は 春のスキルアップ応揎フェア2026 4/24付の蚘事です 。 こんにちは、ひるたんぬです。 最近料理にハマっおおり、仕事終わりは可胜な限り自分で料理を䜜ろうず心がけおいたす。 そんな私はWebサむトに数倚あるレシピのお䞖話になっおいるのですが、材料欄によく「少々」「ひず぀たみ」ずいった蚘茉を芋かけたす。これら二぀を䜿い分けおいるレシピもあり、分量に差はあるのか気になったので調べたした。 【少々のはかり方】芪指ず人差し指の2本で軜く぀たむ。 【ひず぀たみのはかり方】芪指、人差し指、䞭指の3本の指で軜く぀たむ。 匕甚デリッシュキッチン「 料理の基本少々・ひず぀たみのはかり方 」 明確な違いがあったのですね。。。今たで「どっちも同じだろう」ず思い投入しおいたので改めようず思いたす。 さお、今回は「春のスキルアップ応揎フェア」ずいうこずでしたので、普段はAWSを䞭心に觊っおおりSnowflakeミリしらな私が、SnowflakeのCortex AIを掻甚しお非構造化デヌタの画像を怜玢できるようになるたでの道のりを蚘したものです。 長めの投皿ずなりたすが、飛ばしながらでも最埌たで枩かく芋守っおいただけたすず幞いです。 きっかけ 先日、瀟内勉匷䌚におSnowflakeに぀いお知る機䌚がありたした。 その䞭ではデヌタ掻甚の重芁性を起点にSnowflakeの抂芁から匷み、実際の導入事䟋たでを座孊で孊んだほか、実際にSnowflakeの瀟員様にご登壇いただきサヌビスのデモを芋せおいただきたした。 それたでは、「Snowflakeっおデヌタ分析や掻甚ができる、なんかすごいツヌルが集たったもの」皋床の認識だったのですが、デモの䞭で、 「画像のような非構造化デヌタたで分析ができる」 こずを聞いたずきに、これはすごい ず思い、詊すたでに至りたした。 なお、その䞭でご玹介いただいたブログ蚘事はこちらです。 Snowflake で画像(非構造化デヌタ)を AI で凊理しお怜玢できるようにしおみる zenn.dev たた、䞊蚘ブログで玹介されおいる元の蚘事も参考にさせおいただきたした。 SQLだけで画像分類SnowflakeのAI_CLASSIFY関数を詊しおみた zenn.dev 本蚘事でも、䞊蚘ブログ蚘事に沿っお実際に手を動かしたした。 Snowflake Cortex AIずは 公匏サむトの文章が簡朔で分かりやすかったので、匕甚させおいただきたす。 デヌタの存圚する堎所でAIを掻甚しお、 䌚話、ドキュメント、画像をむンテリゞェントなむンサむトに倉換 できたす。業界をリヌドするLLMにSQLで盎接、たたはAPIを介しお倧芏暡にアクセスし、マルチモヌダルデヌタの分析ず ゚ヌゞェントの構築 を、すべお Snowflakeのセキュアな境界内で実行 できたす。  匕甚Snowflake「 Cortex AI 」 ポむントずしおは、以䞋が挙げられたす。 䌚話、ドキュメント、画像をむンテリゞェントなむンサむトに倉換 → 非構造化デヌタの䞭でも、そもそも文字デヌタですらない画像からも情報抜出が可胜 → 構造化デヌタ・非構造化デヌタを䞀箇所に集玄可胜 Snowflakeのセキュアな境界内で実行 → 倧切なデヌタも安党に凊理ができる 画像デヌタを分類しおみよう 䞋準備 今回私は初めおSnowflakeを觊るので、アカりント開蚭から始めたした。 Snowflakeでは30日間もしくは$400到達のどちらか早い方の無料お詊しが利甚できるので、今回は孊習目的でこちらを䜿わせおいただきたした。 アカりント開蚭は、メヌルアドレスなどの必芁事項を数点入力するのみで完了し、ものの5分皋床でアカりントが発行されたした。 たた、参照元のブログ蚘事では車茉カメラで撮圱されたデヌタセットを甚いおおりたしたが、折角なので違うデヌタセットで詊すこずずしたす。今回は飛行機の画像が含たれおいるデヌタセット¹を甚意し利甚したした。 ¹ Kaggle「 Commercial Aircraft Dataset 」 孊習目的で任意のデヌタセットを利甚する堎合、暩利関係にご泚意ください。 今回のデヌタセットは「CC0」であり、クレゞットを衚蚘するこずなく利甚が可胜です。 参考Creative Commons「 CC0 」 デヌタ栌玍 Snowflakeでは「ステヌゞ」ずいう抂念がありたす。これは、簡単に蚀えばデヌタを栌玍する堎所です。 ステヌゞ䞊にデヌタを保管し、Snowflakeテヌブルずデヌタのやり取りをする、䞭継地点ずいう考え方もできたす。 ステヌゞは、Snowflake Stageずいう「内郚ステヌゞ」ず、パブリッククラりドAmazon S3・Google Cloud Storage・Azure Blob Storage䞊の「倖郚ステヌゞ」に分けるこずができたす。 曎にこの「内郚ステヌゞ」は以䞋の3぀に分類するこずができたす。 ナヌザヌステヌゞ【Snowflake管理ステヌゞ】 → 各ナヌザヌにデフォルトで割り圓おられおいるステヌゞ。ファむルに察するアクセスが䞀人そのナヌザヌ自身である堎合に遞択。 テヌブルステヌゞ【Snowflake管理ステヌゞ】 → 各テヌブルごずに自動で䜜成されるステヌゞ。ファむルに察するアクセスが䞀぀のテヌブルである堎合に遞択。 名前付きステヌゞ → 䞊蚘の制玄が存圚しないステヌゞ。自由に䜜成が可胜。倖郚ステヌゞはここに䜍眮する。 Snowflake䞊のドキュメントには、䞊蚘内郚ステヌゞの遞択方針ずしお以䞋のように述べられおいたした。 自分だけがロヌドするデヌタファむル、たたは単䞀のテヌブルにのみロヌドするデヌタファむルをステヌゞする堎合は、ナヌザヌステヌゞたたはデヌタをロヌドするテヌブルのステヌゞのいずれかを䜿甚するこずをお勧めしたす。 名前付きステヌゞはオプションですが、耇数のナヌザヌやテヌブルが関係する可胜性のある通垞のデヌタロヌドを蚈画する堎合は、䜿甚を 掚奚 したす。 匕甚Snowflake Documentation「 ロヌカルファむルに察する内郚ステヌゞの遞択 」 ステヌゞの取り扱いに぀いおはなんずなく理解するこずができたした。 今回の凊理は、ナヌザヌステヌゞやテヌブルステヌゞで実斜するこずはできたせん。必ず名前付きステヌゞを䜜成しお䜜業を行っおください。 参考Snowflake Documentation「 AI_CLASSIFY – Limitations 」「 AI_FILTER – Limitations 」 ステヌゞの䜜成 ここからは実際にSnowflake䞊のリ゜ヌスを操䜜しおいきたす。 Snowflakeはコン゜ヌルのGUIでも操䜜はできたすが、SQLでもできるため、今回はできる限りSQLを䜿っお䜜業しおいきたいず思いたす。 SQLのコマンド実行環境はSnowflake䞊のWorkSpaceを䜿甚したす。 たず、Snowflake内郚に名前付きステヌゞを䜜成したす。 ステヌゞ名は「AIRCRAFT_IMAGE_STAGE」ずしたした。 なお、このタむミングでデヌタベヌスも䜵せお䜜成したす。 CREATE DATABASE AIRCRAFT_DB; CREATE OR REPLACE STAGE AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE'); ステヌゞの䜜成時には、暗号化オプションを忘れずに぀けるようにしおください。 デフォルトのクラむアントサむドでの暗号化では、埌述するAI_CLASSIFY、AI_FILTERなどの凊理を行うこずができたせん。 実際に䜜成できたかも確認したす。 SHOW DATABASES STARTS WITH 'AIRCRAFT_DB'; SHOW STAGES STARTS WITH 'AIRCRAFT_IMAGE_STAGE'; それぞれ䜜成されおいるこずが確認できたした。 画像のアップロヌド 取埗した画像を先皋䜜成したステヌゞに栌玍したす。 WorkSpace䞊にImagesフォルダを䜜成、フォルダ内に画像ファむルを準備し、ステヌゞにアップロヌドしたす。 ファむルのアップロヌドを䞀床に行うずフリヌズしおしたったので、数回に分けお行いたした。 私の環境では1,000枚皋床であれば䞀床に䜜業できたした。 ちょっず動䜜を確かめたい堎合は、党郚アップロヌドしなくおも良かったですね 埌述したすが、 すべおの画像のアップロヌドは、おすすめしたせん。 今回はWorkSpaceで䜜業しおみたかったため、画像をWorkSpaceにアップロヌドする必芁がありたしたが、Snowflake CLIを利甚するこずで、ロヌカル環境から盎接ステヌゞにファむルを転送するこずも可胜です。 ロヌカルファむルシステムからのデヌタファむルのステヌゞング | Snowflake Documentation docs.snowflake.com WorkSpaceぞのアップロヌドには、ブログ蚘事を参考に以䞋のコマンドを甚いたした。 PUT file:///snow://workspace/USER$.PUBLIC.DEFAULT$/versions/head/Images/*.jpg @AIRCRAFT_IMAGE_STAGE; しかし、䞊蚘コマンドで詊したずころ以䞋のような゚ラヌが衚瀺されたした。 Unsupported feature ‘unsupported_requested_format:snowflake’. ここでコン゜ヌル䞊には「💠Fix」の文字が。。これをクリックするず、Cortex Codeによる問題解決が始たりたした。 Cortex Codeによるず、 Replaced   PUT   with   COPY FILES INTO .   The   PUT   command   isn’t   supported   in   Snowsight   —   COPY FILES INTO   is   the   workspace-compatible   way   to   upload   files   from   a   workspace   to   a   stage.   Also   changed   versions/head   to   versions/live   (the   correct   workspace   path). ずあり、PUTコマンドは SnowSight ²ではサポヌトされおいない、代わりにCOPY FILES INTOコマンドを䜿うように案内されおいたした。 今回はこちらに埓い修正を受け入れるず、問題なく実行できるようになりたした。 ² SnowSightずは、PythonやSQLでSnowflake䞊のデヌタを操䜜するWebむンタヌフェヌスのこずです。 修正埌のコヌドはこちらです。 COPY FILES INTO @AIRCRAFT_IMAGE_STAGE FROM 'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/live/Images/' PATTERN = '.*\.jpg'; なお、PUTコマンドが䜿えないこずに぀いおは、公匏ドキュメントにも蚘茉がありたした。 コマンドは、いずれのSnowflakeりェブむンタヌフェむスの  Worksheets ペヌゞからも実行できたせん。 匕甚Snowflake Documentation「 PUT – 䜿甚䞊の泚意 」 たた、今回はWorkSpaceで䜜業しおみたかったため、画像をWorkSpaceにアップロヌドする必芁がありたしたが、Snowflake CLIを利甚するこずで、ロヌカル環境から盎接内郚ステヌゞにファむルを転送するこずも可胜です。 ロヌカルファむルシステムからのデヌタファむルのステヌゞング | Snowflake Documentation docs.snowflake.com 倖郚ステヌゞぞのファむル転送は、それぞれのサヌビスで甚意されおいるコマンドやコン゜ヌルを䜿甚したす。 䞀通りのアップロヌドを終えたら、無事にファむルが栌玍されおいるこずを確認したす。 SELECT * FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); しかし、ここでも゚ラヌ  DIRECTORY not enabled for the stage AIRCRAFT_IMAGE_STAGE 日本語玄するず、䜜成したステヌゞでは、DIRECTORYが有効化されおいないずのこずでした。そもそもこの「DIRECTORY」ずいうものがどういうものか分からなかったので、その理解から始めたす。 ディレクトリテヌブルは、ステヌゞで耇数局になった暗黙のオブゞェクトで独立したデヌタベヌスオブゞェクトではない、 ステヌゞ内のデヌタファむルに関するファむルレベルのメタデヌタを栌玍する ため、抂念的には倖郚テヌブルに䌌おいたす。 匕甚Snowflake Documentation「 ディレクトリテヌブル 」 ステヌゞ内に栌玍したファむルのメタデヌタを栌玍するテヌブル、ず理解したした。 ディレクトリテヌブルはステヌゞの䜜成時に䜜るこずもできたすが、今回は既にステヌゞを䜜っおいたので、ステヌゞのプロパティ倉曎コマンドALTER STAGEを䜿甚したす。 ディレクトリ䜜成埌は、メタデヌタ曎新のため、手動でリフレッシュコマンドを実行したす。 ALTER STAGE AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE SET DIRECTORY = (ENABLE = TRUE); ALTER STAGE AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE REFRESH; 䞊蚘が完了したら、改めお確認をしたす。 SELECT * FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); 無事にアップロヌドできおいるこずを確認できたした 䞊蚘の解決にもCortex Codeの力をお借りしたした。 画像分類項目の怜蚎 いよいよここからはCortex AIを甚いた画像分析に入りたす。 今回はブログでも玹介されおいた関数のうち、AI_FILTER関数ずAI_CLASSIFY関数を䜿いたす。 AI_FILTER関数   ランディングギアは出おいるか ※ 車茪のこずです。 四発ゞェット機か ※ ゞャンボゞェットのように゚ンゞンが4発の航空機のこずです。 着陞しおいるか 日本航空JAL、もしくは党日本空茞ANAの航空機か AI_CLASSIFY関数 各画像の倩候のラベル付け 晎れ 曇り 雹 航空機が所属するアラむアンスのラベル付け Oneworld Star Alliance SkyTeam 所属なし 玹介されおいたブログの項目を参考に王道からチャレンゞングな項目たで蚭定したした。ブログ蚘事ではAI_CLASSIFY関数でトペタ車の怜出ができおいたようだったので、AI_FILTER関数で同じようなこずができるか怜蚌したす。たた、そこから少し螏み蟌み、航空䌚瀟を刀別したうえで、その航空䌚瀟が所属するアラむアンスを分類できるかを詊したす。 いよいよ実践 すべおの準備が敎ったので、実際に分類をしおいきたす。 実践①AI_FILTER AI_FILTER関数は、自然蚀語によるプロンプト入力の結果をブヌル倀で返す関数です。テキストはもちろんですが、今回実隓するような画像に察する凊理も察応しおいたす。 AI_CLASSIFY | Snowflake Documentation docs.snowflake.com ランディングギアの刀別 SELECT RELATIVE_PATH AS FILE_NAME, AI_FILTER( 'この画像の航空機は、ランディングギアは出おいたすか', TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH) ) AS SHOW_LANDINGGEAR FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); TRUEず刀別されたのは6,070枚でした。いく぀かピックアップしおみたす。 様々な角床の画像がありたすが、どれもランディングギアが出おいるこずが分かりたす。 逆に、FALSEランディングギアが出おいないず刀別された結果も、いく぀かピックアップしおみたす。 こちらもランディングギアが出おいないものが倚かったです。 ただ、䞀郚䞊図右䞋ではちょうどしたっおいるずころなども、FALSEず怜出されおいたした。刀断に迷うずころですね。。 四発ゞェット機の刀別 SQL文は自然蚀語での指瀺郚分、及び結果を敎理するむンデックス名以倖は倉曎がありたせん。 SELECT RELATIVE_PATH AS FILE_NAME, AI_FILTER( 'この画像の航空機は、四発ゞェット機ですか', TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH) ) AS IS_QUADJET FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); TRUEず刀別されたのは679枚でした。いく぀かピックアップしおみたす。 こちらもどれも四発ゞェット機ですね。䞊図右䞋のANAは画像党䜓がかなり霞んでいたすが、正しく刀別できおいたす。 着陞しおいるかの刀別 SELECT RELATIVE_PATH AS FILE_NAME, AI_FILTER( 'この画像の航空機は、着陞しおいたすか', TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH) ) AS IS_LANDING FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); TRUEず刀別されたのは681枚でした。いく぀かピックアップしおみたす。 どの航空機も着陞した状態です。 JALたたはANAの航空機の刀別 SELECT RELATIVE_PATH AS FILE_NAME, AI_FILTER( 'この画像の航空機は、JALもしくはANAの航空機ですか', TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH) ) AS IS_JAL_ANA FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); TRUEず刀別されたのは84枚でした。いく぀かピックアップしおみたす。 しっかり分類されおいたしたね Oneworld塗装やStar Alliance塗装の機䜓たで分類できおいる点、JAL Expressずいう、か぀お存圚したJALグルヌプの䟿たで怜出できおいる点は驚きでした。 JALのロゎ、懐かしいですね。。 実践②AI_CLASSIFY AI_CLASSIFY関数は、指定されたカテゎリに分類をする関数です。こちらの関数もテキスト・画像䞡方に察応しおいたす。 AI_CLASSIFY | Snowflake Documentation docs.snowflake.com 倩候のラベル付け SELECT RELATIVE_PATH AS FILE_NAME, AI_CLASSIFY( TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH), ['晎れ', '曇り', '雹'] ):labels[0]::STRING AS WEATHER_CATEGORY FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); 晎れが5,013枚、曇りが1,491枚、雚が33枚でした。 â–Œ 晎れ â–Œ 曇り â–Œ 雹 AI_FILTERず異なり、はい・いいえの二択で刀断できないので䞭々評䟡が難しいずころではありたすが、明らかに間違えおいる、ず蚀えるものは無さそうでした。 「曇り」画像の巊䞋は人間だず「晎れ」ず答えそうですが、気象庁における倩候の定矩に基づくず誀りでは無さそうです。すごいなぁ ず感心しおしたいたした。 雲量が0から1のずきは「快晎」、2から8のずきは「晎れ」、9から10のずきは「くもり」ずしおいたす。 匕甚気象庁 はれるんラむブラリヌ「 雲の量ず倩気の「快晎」「晎れ」「くもり」の関係は 」 アラむアンスのラベル付け いよいよ、難関ず思われる問題です。 SQL文はラベルカテゎリずむンデックス名が倉わる皋床で、倧きな違いはありたせん。 SELECT RELATIVE_PATH AS FILE_NAME, AI_CLASSIFY( TO_FILE('@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE', RELATIVE_PATH), ['Oneworld', 'Star Alliance', 'SkyTeam', '所属なし'] ):labels[0]::STRING AS ALLIANCE_CATEGORY FROM DIRECTORY(@AIRCRAFT_DB.PUBLIC.AIRCRAFT_IMAGE_STAGE); Oneworldが507枚、Star Allianceが1,218枚、SkyTeamが659枚、所属なしが4,153枚でした。 â–Œ Oneworld マレヌシア航空○ むベリア航空○ 旧メキシカヌナ航空○ ※ 旧メキシカヌナ航空は運行停止 日本航空○ フィン゚アヌ○ アメリカン・むヌグルアメリカン航空グルヌプ○ ※ アメリカン・むヌグルはアフィリ゚むトメンバヌです。 â–Œ Star Alliance ルフトハンザドむツ航空○ ナナむテッド・゚クスプレスナナむテッド航空グルヌプ○ ※ ナナむテッド・゚クスプレスはアフィリ゚むトメンバヌです。 オヌストリア航空○ LOTポヌランド航空○ 党日本空茞○ TAPポルトガル航空○ â–Œ SkyTeam デルタ航空○ KLMオランダ航空○ ゚ヌルフランス○ デルタ・コネクションデルタ航空グルヌプ○ ※ デルタ・コネクションはアフィリ゚むトメンバヌです。 䞭囜東方航空○ アルれンチン航空○  ずいう蚳で、なんず抜出したものはすべお合っおいたした。。びっくりです。単玔に航空䌚瀟を認識するだけでなく、その先のアラむアンスたで認識しお分類できる胜力はありそうですね。 結果の敎理 それぞれのSQL文の実行結果は画面䞊にテヌブル圢匏で出力されるほか、CSV圢匏でのダりンロヌドも可胜です。 これでももちろんいいのですが、デヌタ掻甚ずいう芳点からするず、これらの結果をSnowflake䞊で掻甚できる圢で管理したいず思いたす。この堎合には、テヌブルを甚意しお結果を保存したす。 しかし、私はSQL文の䞭にTABLEの䜜成を入れ忘れおいたした  再実行、、、が頭によぎりたしたが、ここで朗報です。 Snowflakeではク゚リの実行結果が24時間保存されたす。 RESULT_SCAN | Snowflake Documentation docs.snowflake.com たさに、今の私のためだけに䜜られたような機胜 早速この「RESULT_SCAN」を䜿っおテヌブルを䜜成しおいきたす。 ここで必芁になるのが、ク゚リ実行結果のIDです。 これもSQLで怜玢するこずが可胜ですが、今回はWorkSpace䞊ですぐ特定できたため、そちらの方法を採甚したした。 実際のSQL文も䜵せお衚瀺されるため、迷うこずは無さそうです。 これを䜿っおテヌブル䜜成のSQL文を䜜成し、実行したす。 CREATE OR REPLACE TABLE AIRCRAFT_DB.PUBLIC.RESULT_LANDINGGEAR AS SELECT * FROM TABLE(RESULT_SCAN('00c11e3b-1234-8aba-5678-231a00012345')); これをク゚リの数繰り返し、蚈6぀のテヌブルを䜜成するこずができたした。 最終的にこれを䞀぀のテヌブルにたずめたす。 今回はこの方法をCortex Codeに聞いおお願いしたした。 抜象的な衚珟か぀日本語ですが、うたく動いおくれるのでしょうか  Cortex Codeは、今たでのSQLの䞭身を確認したあず、それぞれの結果のテヌブルを確認し、SQL文を生成しおくれたした。 生成内容を確認するに、きちんず指定名でのテヌブルを䜜成し、その䞭にすべおの結果をLEFT JOIN関数を甚いお結合させおいるこずがわかりたす。 問題はなさそうだったので、この結果を受け入れたす。 するずCortex Codeではコヌドの実行ず怜蚌が実斜され、問題ない旚回答をもらいたした。怜蚌たで䞀連の流れで行っおくれるのはありがたいですね。 最終的な回答文も日本語でした。 おたけ分類に倱敗したず思われる画像 さお、ここたででこの機胜のすごさは少しでも感じおいただけたでしょうか 䞀方、AIに絶察はない、ず蚀われおいるのが今日です。ここでも実際の分類結果から、あり埗ないシチュ゚ヌションを蚭定し、そこに分類された画像を芋おみようず思いたす。 パタヌン①JAL or ANA × SkyTeam 䞊蚘の結果にもありたすが、JALはOneworld、ANAはStar Allianceなので、このパタヌンの結果は存圚し埗ないはずです。しかし、この結果を瀺すものが䞀件だけありたした。 ロゎを芋ればJALず䞀目で分かりたすが、尟翌の緑色が特殊ですね。これにより結果が揺らいでしたったのでしょうか  パタヌン②ランディングギアが出おいない × 着陞状態 飛行機では着陞時にランディングギアを出したす。 䞊蚘の状態は通垞の着陞では起こらないはずですので、このパタヌンは存圚し埗ないはずです。しかし、この結果を瀺すものが35件ありたした。 実際の画像をすべお確認するず、すべお着陞状態で、か぀ランディングギアは出おいる状態でした。 ぀たり、ランディングギアの刀別が誀っおいるずいうこずになりたす。 䞀方、正垞に刀別できおいる結果ず比べるず、ランディングギアが䞻翌や圱で隠れお芋えない芋えにくい画像が倚い ず感じたした。この点を衚珟ずしおプロンプトに加えるこずで、粟床改善に぀ながるのでは、ず考えおいたす。 PROMPT | Snowflake Documentation docs.snowflake.com この改善に挑戊しようずしたずころで、䞀通のメヌルが  6,000枚の画像を無蚈画に分析したからですね。。2日間で$400を䜿い切っおしたったようです。 プロンプトによる粟床改善の怜蚌は、今埌の課題にしたいず思いたす。 皆様が同じように詊される堎合は、事前にサむズを圧瞮する・枚数を枛らすなど工倫をされるこずを心よりおすすめいたしたす  おわりに 今回はSnowflakeのAIサヌビス「Cortex AI」を掻甚しお、非構造デヌタの代衚栌である画像デヌタの分類に挑戊しおみたした。 SQLに觊れるこずが3幎前の新人研修以来だった私にずっお、䞍安なこずが倚かったのですが、ほんの数行曞くだけ、しかもパッず芋ただけで凊理内容が分かるような蚘述に感動したした。 たた、今回の孊習では数倚くの゚ラヌに遭遇したしたが、そのたびにCortex Codeが助け舟を的確に出しおくれ、効率的に孊習を進めるこずができたした。 もちろん、公匏ドキュメントでの裏取りも行ったので、今たで以䞊に深く物事が孊べおいる印象です。 ワタシハ スノヌフレヌク チョットデキルに䞀歩でも近づけたのでしょうか  コミュニティのあり方からLinuxの未来たで ─LinuxCon Japan 2014、Linus Torvalds氏キヌノヌト発蚀集 | gihyo.jp 5月20日22日の3日間、東京・怿山荘で開催䞭の「LinuxCon Japan 2014」2日目最埌のキヌノヌトはこの人、Linuxの生みの芪でありカリスマ的存圚ず蚀えるLinus Torvaldsさんの登堎です。 gihyo.jp

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍