Picopicowvo

AI development education

Let's make AI with us.

企業のDX内製化を強力にサポート

Let's make AI with us.

企業のDX内製化を強力にサポート

Let's make AI with us.

企業のDX内製化を強力にサポート

Let's make AI with us.

企業のDX内製化を強力にサポート

AI開発内製化サービス

社内にAIエンジニアを育成するプランです。
御社のエンジニアと当社の開発講師が一緒にAIを開発してリリースまでを行います。一緒に開発しながら開発手法を学ぶことにより、3か月でAI開発ができるエンジニアの育成を目指します。

※対象エンジニア:エンジニア歴3年目以上を想定しています。

本サービスの位置づけ

これは段階的にサービスを完成させることを示した図です。
ポイントは、各段階において「動く製品を顧客に提供すること」です。
顧客の要望に沿うであろうシンプルなものを提供し、徐々に複雑なものを提供します。
本サービスの目的は「最初の一歩」を作ることです。

本サービスはAIの中での主力的な位置づけである「深層学習」を用いた開発を目指しています。
機械学習はシンプルな認識や分類に適した手法で、深層学習は複雑な認識や分類に適した手法です。
深層学習でできることは以下のようなことです。

本サービスの流れ

本サービスは、3か月間でサービスをリリースするまでを念頭に置いて開発を進めます。

本サービスと相性が良い企業
なぜ一緒に開発しながら学ぶ形式が良いのか

本サービスは、AIベンダとe-learningで起きるであろう問題を解消します。

AIベンダに外注する際の問題点

AIベンダに開発をお願いする際には、メリットとデメリットを把握しておきましょう。

■ラボ型開発の問題

AIベンダは主にラボ型開発方式でAIを開発します。 ラボ型開発とは、御社のデータをベンダ社内に持ち込み、AI開発を行う開発方式です。 発注者のもとに出向して開発すると、まず、環境を構築する必要がありますが、ラボ型開発の場合はベンダ社内に構築済みの環境を使うため、構築する手間が省けます。そのため、短期間でAIを開発できるメリットがあります。しかし、データを社外に持ち出すため、情報漏洩のリスクがどうしてもあります。また、自社のウリである貴重なデータはAIベンダとの共同開発により、AIベンダも使用することができ、希少性が薄れてしまいます。さらにAIベンダは作成したAI(学習済みモデル)をファインチューニングという手法で別方向に進化させることができます。発注側はデータを提供したにも関わらず、技術を持たないため進化させることはできません。また、日本の法律ではソフトウェア(この場合は学習済みモデル)の著作権は開発した側(AIベンダ)が持つため、発注側は大金をかけて依頼したにも関わらず、学習済みモデルを勝手に改造することはできません。さらに、学習済みモデルを追加で学習するときは同じような環境が必要になるため、仮に別のベンダに頼むと一から開発になる可能性もあります。 そのため、最初は共同でサービスを開発していると感じますが、次第にAIベンダの発言力が増していきます。

■契約の問題

AIの開発では準委任契約を結ぶことが多いです。準委任契約とは「期間を定めて何かを依頼し、その期間に作業をすること」を約束する契約です。これはAI開発の性質上、仕方がないことです。AI開発はシステム開発とは異なり、精度が出るか出ないかは開発してみないと分かりません。開発した結果、AIの精度が悪すぎてサービスとして展開できないということはよくあります。そこでベンダ側はもめ事を防ぐために準委任契約を結びます。仮にAIの精度が悪く、サービスが展開できなかったとしても働いた分の報酬は頂く契約です。 しかし、発注側は大金を支払ったにも関わらず、サービスも展開できず、技術的な蓄積もないとなると発注者の立場が問われかねません。

■追加学習の問題

では、常駐契約にしてみたらどうでしょう。 AIベンダの社員が御社の社内に常駐してAIを開発してくれます。御社のエンジニアは技術的なことを覚える必要がなく、スムーズにAIシステムが出来上がります。問題なくいきそうです。しかし、サービスには改修がつきものです。顧客獲得のための新しい取り組みや、AIのブラッシュアップ、ユーザビリティの強化など、お客様の要望に応えてユーザ数を増やしていかなくてはいけません。DX時代はこれまで以上に改修が求められる時代です。社内に技術力がないと、都度、AIベンダに改良(追加学習)を依頼することになります。追加学習のコストはこれまでのシステム開発とは違い、かなり割高です。依頼のたびに数百万円の出費になってしまいます。これではサービスの改良があまりできないのではないでしょか。 サービスをよりよく育て続けるには、米中のように社内のエンジニアが自ら育てていく内製化スタイルが一番適しています。

※追加学習が割高な理由
深層学習アルゴリズムで作られたAIの判別能力が高い理由は、複雑なパラメータを絶妙なバランスで最適化しているからです。追加で学習させる行為はこのバランスを崩しかねません。せっかく長い時間かけて最適化していた状態が追加学習で崩れてしまうのです。そのため、以前は正確に判別出来ていたものが判別できなくなることがあります。以前と同じ精度を保ちつつ、追加で学習したことの精度も上げることは難しいのです。

e-Learningの問題点

e-Learningは、動画を視聴しながらプログラミングを体験していく学びのスタイルです。 自分の空き時間に進められることが特徴です。

■環境との相性問題

e-LearningでAIを勉強するにあたっては手順に沿って環境を表示(構築手順は省略する工夫が施された動画が多いです)して、手順に従いモデルを学習します。e-Learningは個人レッスンではなく、不特定多数に向けたサービスなので当然です。その分、リーズナブルな価格で提供されており、様々なコースを受講して多くの学びを得ることができます。
ただ、AI開発を実務として行うときは、勉強したときと同じ環境とモデルではありません。サービスに適したモデルを選定してモデルに沿った環境を構築する必要がでてきます。実務で応用するには手順の意味・意図まで理解しておく必要があります。
また、e-Learningは点の学びです。現場では点と点を上手く繋げて線にするスキルが必要になってきます。 実務でe-Learningの学びを実践するのは難しいのです。
本サービス「AI内製化支援サービス」では、実務で開発を行います。サービスに適したモデルの調査&選定ロジックを学び、点と点をつなぐ考え方を学んでいきます。実務で使える学習スタイルが特徴です。

■デバッグの問題

e-Learningでは、決まった手順でプログラミングします。手順通りであればエラーは発生しません。しかし、実際の開発現場では、プログラミングよりもエラーと悪戦苦闘する時間のほうが多いのが実情です。エラーを解消するデバッグ力が必要になります。 モデルのデバッグは難しいものです。他人が書いたコードであり、設計書はありません。設計思想を論文から読み解く必要があります。長年システム開発を続けていたエンジニアであってもコードを理解することは容易ではありません。コードを理解にするには、AIフレームワークの仕組みの他に、その分野の代表的なアルゴリズムの理解が必須です。また、基本的な画像処理の仕組み、自然言語処理の仕組みなどにも精通しておく必要があります。このあたりの知識は通常のシステム開発ではほぼ関わらない領域であるため、専門的に学ぶ必要があります。 本学習スタイルでは、モデルの仕組みを学び、コードと対比させながら学びを深めていきます。

■AI(学習済みモデル)完成後の問題

e-LearningでのAI開発は「学習済みモデル」を完成した時点で終わる動画もみうけられます。しかし、実際の現場ではそこから先にたくさんの工程があります。学習済みモデルの精度を確認したり、システムに組み込み、ユーザがアプローチできる状態にまで作り込む必要があります。 本学習スタイルでは、サービスをリリースするまでの流れを通して作りこむため、PDCAのループを回し続けることが可能になります。
本サービスの詳細

■サービス検討

ここでは作りたいサービスを検討します。既存の業務を自動化することでも良いのですが、従来のサービスをデジタルに置き換えた時に本来のあるべき姿を検討することもやっておくとよいでしょう。デジタルの特徴は「距離がない」「時間の流れがフィジカルよりも早い」「製品を売っても減らない」「組み合わせが容易」「バージョンアップが容易」です。この特徴を活かすやり方がデジタルトランスフォーメーションのフォーメーションの部分になります。デジタルの特徴を踏まえて何がベストなのかを検討しましょう。

■モデル選定

AIをまったくのゼロベースから作り始めることは通常ありません。たとえ研究者であっても、どこかの研究者が発表した論文とモデルをベースに作ります。エンジニアは研究者ではないため、モデルを研究し、そこに新しいアルゴリズムを搭載することはないのです。サービスが適用できる論文を探し出し、そこに紐づく検証用モデルをベースに開発します。検証用モデルはMITライセンス(つまり商用可能)になっていることが多いため、これを流用します。
ここでいうモデルとは「AIを作成するシステム」のことを指しています。AIのモデルには汎用性があるため、モデルに入れるデータの種類によって、できあがるAIの特徴は異なります。そのため、作りたいサービスに適したモデルを探すことがAI作成の最初のアプロ―チになります。
ここではモデルの調査方法を学びます。その前提となるAI論文の理解方法も踏まえて一緒に学習していきます。

■環境構築

AI開発には高性能GPU環境が必要になります。高性能GPUは1つ数百万円と、とても高価です。しかし、ご安心ください。クラウド(例えばAWS)を使うと、とても安価に高性能GPU環境を構築することができます。ここではクラウドでの環境構築手順を学びます。また、モデルはすんなりインストールできるものではありません。検証用モデルはさまざまな条件の下で動いています。OSのバージョン、cudaのバージョン、AIフレームワークのバージョン、pythonのバージョン、コマンドやライブラリのバージョンなどを全て一致させないと動きません。モデルが動作する環境を作ることはとても難しいのです。
ここでは、モデルを動作させるための最適な環境構築方法を学びます。

■データ加工

AI(学習済みモデル)にデータを学習させることで特徴を持つAIが育ちます。しかし、そのままのデータを学習させることはできません。モデルが指定するインプット形式に加工する必要があります。モデルが精度よく学習するには膨大なデータ量が必要です。膨大なデータを手作業で加工することはできません。データ加工用のプログラムを書くことになります。モデルによってはアノテーションという手順が必要になったり、形態素解析が必要になります。また、データには学習の妨げになる不要な情報が混在しているため、それを除去することも重要です。 ほとんどのモデルはPythonで動いています。ここではPythonを使ったプログラムの書き方と不要なデータの見極め方を学びます。

※アノテーションとは
写真やイラストなどの画像データを加工するときに用いる手法です。画像には背景とオブジェクト(人物、犬、椅子、車、信号、樹木など)が含まれています。 AIに特定のオブジェクトを学習させたいとき、それを囲むことで学習対象として指定します。囲んだ領域のデータをアノテーションデータといいます。

※形態素解析とは
答案用紙、感想文、小説などのテキスト系データを加工するときに用いる手法です。 テキスト系のAIは文章内の単語間の距離を判断材料として学習しています。そのため、文章を単語区切りに変換する処理を行わなくてはいけません。この変換処理を形態素解析といいます。

■AI学習

加工したデータをモデルにインプットしてAI学習を開始します。学習が終わると「学習済みモデル」をアウトプットします。これがAIのコアになります。モデルにもよりますが、最近のモデルはパラメータが膨大なため、高性能GPU環境でも学習に数日かかります。 ここではモデルが正しく学習していることを確認する方法と、チェックポイントについて学びます。

■チューニング

出来上がったAI(学習済みモデル)を使ってテスト(推論といいます)してみます。もし、精度が出ていなければ、インプットデータを見直したり、ハイパーパラメータというモデル内の変更できる個所を微調整し、より精度が出るように試行錯誤します。

■インタフェース開発

AI(学習済みモデル)をユーザに使ってもらうためにインタフェースを作ります。エンジニアの数にもよりますが、AI開発と同時並行で進める場合が多いです。 インタフェースは分野によってイメージが異なります。AIをWebやスマホ上で動作させるのであればUI開発になり、RaspberryPiにAIを組み込むシステムではカメラやセンサーがインタフェースとなります。
インタフェース開発はAIの開発ではありません。システム開発の領域になります。むしろ、御社のエンジニアが得意としている部分でしょう。
そのため、ここではプログラミングというよりも設計についてを学びます。インタフェースはユーザからデータを受け取る窓口です。受け取ったデータは学習済みモデルのインプットになります。そして、AIの出力結果をユーザに受け渡す窓口にもなります。ここではインプットとアウトプットの接続方法を学びます。

■結合テスト

インタフェースとAI(学習済みモデル)を連結させて、一連の流れが正常に行えているかをテストします。さまざまなパターンでテストを行い、予期せぬエラーを防ぎましょう。

■リリース

テストを終えたら、一旦、完成ということでユーザに公開します。 まだまだ精度的にいまいち微妙な出来栄えです。これからはユーザの意見をくみ取りながらブラッシュアップしていきます。 意見を反映させる際に、もしかしたらAIに更なる学習を実施することになるかもしれません。
ここでは追加学習の方法を学びます。

AIを使いこなし、デジタルトランスフォーメーションを成功させましょう!!