2018.02.20 · 技術と道具

Watson Visual Recognitionのライトプランではカスタムモデルを更新できない

ほとんど出落ちというか、タイトルがこの記事で言いたいことのすべてなのですが・・・。

Watsonの画像認識サービスであるVisual Recognitionを使って、ある企業の新サービスを作れるかどうか検証するというお仕事をしています。

最初はかなり少なめの枚数を学習させてみると、認識精度は「当たるも八卦当たらぬも八卦」よりはマシというか、ちゃんと認識出来るものと、なかなか難しいものがきれいに分かれるような結果となりました。

認識精度を上げるための方法は、ドキュメントにまとまっていて、こちらのようなガイドラインがあります。例えば、1つのクラスあたり50枚以上の訓練データを準備するとか、ネガティブデータもあった方が良いとか、そういうものです。

そこで、もともと作ってあるカスタムモデルの精度を向上させるため、訓練データを増やすという方法をまず試すことにしました。

以前のVisual Recognitionは、既存のカスタムモデルに訓練データを増やすということはできず、常に常に新規のカスタムモデルを作る必要がありました。自然言語を分類するNatural Language Classifier(NLC)は、いまでもそうですね・・・。

しかし、最近のAPIリファレンスを見ると、update_classifierというAPIがあって、既存のカスタムモデルに訓練データを追加することができるようになっています。Watson SDKでもきちんと対応しています。最近の私は、CurlよりもPythonのSDKでAPIを叩くことが多いので、SDKのソースとサンプルコードだけ見て、APIリファレンスはあまり読まない・・・という感じが増えています。

で、update_classifierをやってみたところ、何回やっても、こういうレスポンスが返ってくるのです。

TEXT
WatsonApiException: Error:

<center></center> 
<h1>413 Request Entity Too Large</h1>
 

<hr />

<center>nginx</center>


, Code: 413

HTMLがそのまま来るというのも凄いですが、それはさておき、Request Entity Too Largeらしい。

クラス数が多いので、試しに1つのクラスの訓練データを送ってみても、結果は同じ。だいたい、もっと大きなサイズのデータを使って、初回のcreate_classifierをやっているので、どうにも解せない。

で、あらためてAPIリファレンスを読むと、こんなことが書いてありました。

Important: You can’t update a custom classifier with an API key for a Lite plan. To update a custom classifer on a Lite plan, create another service instance on a Standard plan and re-create your custom classifier.

なるほど。ライトプランだと、そもそもupdate_classifierはできない・・・。しかも、ちゃんとImportantって言ってる。

ということで、やっぱりリファレンスはきちんと読まないといけないなと、感じた次第。

お仕事だし、ライトプランじゃなくて、標準プランに切り替えるか・・・。’

2018/02/20 16:05
← ITエンジニアがIoTをやって考えていること
「初めてのWatson」韓国版が発売されました →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。