Above & Beyond

日々のアウトプット記録

Team OS/2 だった頃の話

これは DevRel Advent Calendar 2019 の16日目の記事です。

adventar.org

f:id:kabukawa:20191215105736p:plain:w300

はじめに

いきなりですが、皆さんは OS/2 というOSをご存知ですか? IBMMicrosoftが共同で開発をしていたPC向けのOSです。 その頃のWindowsDOSの上で動くように開発されていたのとは異なり、最初からOS/2として動くように設計されたもので、当時としては意欲的なものでした。 そのため、Microsoftビル・ゲイツ氏が「90年代のOSはOS/2しかない!」とカンファレンスで宣言するくらい、期待のOSだったのです。

しかし、OS開発の方針を巡ってIBMMicrosoftが対立し、2.0からはIBMが独自に開発を続ける形になりました。 ちなみに、Microsoftはというと、その後OS/2をベースにWindows NTというOSを開発しています。 Windows NTがブートできなくなると「SYS OS/2! xxxx」という感じのメッセージが表示されたりして、「あぁ、OS/2の魂がこんなところに」なんて思ったりもしました。

その頃、1994年くらいだったと思いますが、僕に一つの転機が訪れました。 ある金融系のシステム開発の仕事でOS/2を使うことになったのです。 今回の記事は、その頃の話です。


目次


こうしてOS/2を使い始めた

仕事でOS/2を使うなら、自分でも使ってみないとな、ということで個人のPCにOS/2を入れるということからはじめました。 すると、これが面白い。使っていてワクワクする。 LANの機能も標準搭載でファイル共有なんかも簡単にできたし、Webブラウザなどインターネット接続に必要な様々なツールも付いてくる。(Windows95が世に出る前のことです) そして何よりオブジェクト指向UIであるWarkPlaceShellが最高だった。 OS/2自体にはアプリは少なかったのですが、Win-OS/2という仕掛けがあって、OS/2上でWindows3.1がそのまま動くのでそれ程困ることも有りませんでした。(それが良かったのかどうかは別の問題) ということであっという間にOS/2の虜になりました。 好きすぎてPCを買うと最初にOS/2をインストール(Windowsはさようなら)することになり、IBMの認定技術者資格(OS/2)も自費で取って一緒に仕事をしていたIBMの社員の人からもドン引きされるくらいでした。

で、その頃を振り返りながら、「あれってDevRel活動だったんじゃね?」ということを思ったので、DevRelの3Cに「むりやり」絡めてエントリを書こうと思った次第です。


Code

OS/2は仕事で使い始めたので、そこで動くアプリケーションを開発する事になりました。 きちんと開発をするならC/C++ですが、ウィンドウアプリケーションを開発するのは結構大変なので他の選択肢を探しました。 そこでプロジェクトで採用されたのは、Basicでした。 もちろん、システムに近いところはC/C++で開発するのですが、この部分はIBMのすごい人が開発してくれたので、他の開発者はBasicとJavaでアプリを開発していました。 Basicの開発環境なんてOS/2にあったの?と思われるかもしれませんが、当時はCA-RealizerというのとVisualAge Basicという2つの選択肢があり、プロジェクトでは前者を選択しました。 理由は、Windowsアプリも生成できる「クロスプラットフォーム」開発ができたこと。 ただ、Windows上で動くアプリについては、VisualBasicのほうが自由度が高く機能も充実していたので、VisualBasicで開発をしていたんですけどね。 IBMがプライムで請け負っていた案件なので、それ以外にもIBMによる強力なサポートもあって、開発自体は結構順調に進みました。 英語ではあったけれどもドキュメントは大量にありました。(このあたりは流石IBM) お願いすればサポートをするエンジニアの方からサンプルコードをもらえました。 OS/2 テクニカルインターチェンジというイベントが有って、そこにも参加しました。(もちろん自費でですが、確か参加費が結構高かった気が) 自分か知らない様々な技術や仕組みを学びながら仕事ができたので、この時の仕事は今の自分に大きな影響を与えています。 このとき感じたのは、Codeはあっても説明が英語だったりするとそれだけで読まない人はいるし、それを提供してくれる人が近くにいないと得られない、ということでした。


Contents

で、OS/2に関するドキュメント類はIBMからたくさん提供されているわけですけど、実際に使う上での困り事などの情報は流石に出てこない。 そういう情報はどこで得ていたかと言うと、雑誌とパソコン通信でした。 雑誌は最盛期は2種類の雑誌が出ていたり、書籍もそこそこの数が出版されていました。 Widnows向けのものは初心者向けで、OS/2向けはちょっと「分かっている」人向けが多かった気がします。 雑誌はひたすら買ってました。 雑誌以外の生の声はパソコン通信の会議室を通じて流通していました。 僕の場合は Nifty Serveの F-OS/2 というフォーラムでした。 そこにはOS/2を使いこなしている猛者も、インストールが上手くできなくて悩む初心者もたくさんいました。 中には「この人はIBMの社員では?」と思うような、技術的に詳しい人もいたりしましたが、とにかく、情報が毎日書き込まれていました。 そこに参加してからは当然、そこに書き込まれる様々な話題を、毎日読むことが日課になったのでした。 得られる情報はWindowsの圧倒的な量にはかないませんでしたが、それでも探せば結構な情報はあったと思います。 問題は、それが広く知られていないことでした。


Community

で、好きなものはみんなにも知ってほしい、と思うのは人情。 Nifty Serveの F-OS/2 というフォーラムで知ったのが Team OS/2というもの。 これは今で言う「外部エバンジェリスト」のようなもので、OS/2を広めたいと思っているIBM以外の人が「宣言するだけで」参加可能な制度です。 宣言するだけなんですけど、Team OS/2のリストというのがあって、そこに登録をしてもらえます。 Nifty Serveの F-OS/2 というフォーラム自体が今で言うSNSのコミュニティのようなものだったのですが、宣言することでますますOS/2にのめり込んでいきました。 オフに参加して仲間を見つけたり、OS/2を使う上での悩みを相談したり。 自社内でOS/2を使った開発を提案したりもしました。(これは逆にアンチOS/2を増やす結果になったので、なかなか難しいものです) そうやって少しずつ和を広げていきました。

Team OS/2を始めたIBM自身にはそんな意識はなかったかもしれませんが、今思えばコミュニティマーケティングのような形で機能していたのではないかと思います。 (その後日本で少しの間OS/2アンバサダーという制度があったんですが、いつの間にか無くなりましたね)


まとめ

OS/2自体はその後、IBMが開発をやめて他の会社に譲渡されてしまいました。 いまでも別の名前で開発は続いているようですが、我々が購入してインストールできるようなOSでは無くなりました。 それとともに、Team OS/2の活動も雲散霧消していますが、それでも時々OS/2の話題を見ると旧友に会ったような気がしてホッとする自分がいます。

このエントリで書きたかったこと。

  • 実はDevRelの3Cって昔からあったんじゃないか
  • Team OS/2に参加することで、自分も少しは「外部エバンジェリスト」の仲間になれていたのではないか
  • 結局のところ、情報にいかにリーチさせるか、そこがきっかけとしてはとても大事
  • 製品がなくなっても、それを語る人間がいるくらい愛される製品だってある
  • OS/2、やっぱり大好きだ

12/09~12/15 参加予定の勉強会など

予定表

今週の参加予定を書いておきます。

f:id:kabukawa:20191208213703j:plain:w400

日付 時刻 イベント ハッシュタグ
12/09(月) - なし
12/10(火) 19:00〜21:30 hhkbvol3.peatix.com #HHKBミートアップ
12/11(水) 19:00〜21:00 awsreinvent2019containersrecap.splashthat.com #AWSLoft
12/12(木) 19:30〜22:00 slackapp.connpass.com #ginza_slackapp
12/13(金) 19:00〜22:00 bq-sushi.connpass.com #bq_sushi
12/14(土) 11:00〜18:00 gdg-devfest-tokyo2019.peatix.com
12/15(日) - なし

コメント

いよいよ今年も1ヶ月を切ったので、体調に気をつけながらあと一息頑張ろうと思います。

JDDStudy #7 JDDのデータサイエンティスト集団「M-AIS」の取り組み

11/27(水) は「JDDStudy #7 JDDのデータサイエンティスト集団「M-AIS」の取り組み」に参加してきました。

japan-d2.connpass.com

f:id:kabukawa:20191208145203p:plain:w600

会場は Japan Digital Design株式会社 さんのイベントスペース。

f:id:kabukawa:20191208110647j:plain:w600

以前来たときと少しレイアウトが変わって、スクリーンが見やすくなった気がします。


目次


JDDStudy とは

Japan Digital Design株式会社 さんが取り組んでいるFintechを中心に、ブロックチェーン、AI、DevOps、セキュリティなど、広く発信するための勉強会です。 過去に3回ほど参加していて、そのうち2回の参加報告を書いているのでそちらもどうそ。

kabukawa.hatenablog.jp

kabukawa.hatenablog.jp

前回は仕事の都合で参加できなかったので、半年ぶりの参加になりました。


内容

イベント概要にある通り、今回は MUFG AI Studioの活動についての内容でした。メガバンクグループが持つデータを活用してどのようなことをやっているのか、とても興味深い内容ですね。

MUFGグループ独自の機械学習モデルを開発・研究するために設立された「MUFG AI Studio」(「M-AIS」 呼称:アイス)があります。 今回のJDD Studyでは、MUFG各社が持つ膨大なデータを収益力強化やサービス向上に繋げる「M-AIS」の活動を紹介致します。

当日のTweetはトゥギャられていますので、そちらもどうぞ。(今回は自分のTweet割合が多めな気が、、、汗)

togetter.com


【オープニング】Japan Digital Designについて

JDD CEO 上原 高志 さん

[スライドは公開されたら追記します]

オープニングはJDDのCEOの上原さんから。JDDが最近どんなことをやっているのか、今回のテーマとどのような関わりがあるのかについて。 直近だとこんなサービスを始めたとのこと。

medium.com

銀行口座のトランザクションデータから与信情報を導き出すという形でお金の貸し出しをするというサービスとのこと。 銀行の持っているデータを活用したものとして、面白い取り組みだなぁと思いました。

どんなことをやっていて、どこへ向かおうとしているのかというのが聞けるので、個人的にはこのオープニングを結構楽しみにしていたりします。


「M-AISのVisionとMission」

JDD 平山 元清 さん

www.slideshare.net


MUFG AI Studio」(「M-AIS」 呼称:アイス)の概要について。

japan-d2.com

R & D & B Research & Development & Business

R:Research

  • 最先端の探求
    主要な4つのカンファレンスだけで3000本近くの論文発表
  • 産学連携
    共同研究 東京大学スタンフォード大学アフィリエイトにも参加
    企業との連携
  • 最適解の探求
    持っているデータとそれをどう生かしていくか、そしてその蓄積
  • 付加価値の探求

D:Development

  • 分析環境
    マネージドサービスの活用 databricksを使っている
  • ML DevOps

B:Business

  • 与信判断
  • 市場取引判断
  • 顧客行動予測
  • 人事
  • 不正検出

そのための技術

  • eta Learning / Few-Shot Learning

…などなど

機械学習を受託業務で行うことの課題

  • 人月ビジネスになりがち
  • いずれ委託者と受託者で利益相反
  • データがない
  • 出口となるエンドユーザーとつながっていないのでスケールしない

M-AISの強み

  • MUFGメンバーとして大局的な利害が一致
    グループ各社と補完関係
  • MUFGからデータを集積
  • MUFG各社のビジネスを出口に持つ

スライドがわかりやすく書かれているのでそちらを参照していただければと思います。 機械学習を受託業務で行うことの課題とM-AISの強みのところはなるほどなと思う反面、それ故の苦労もあるんだろうなと感じました。 興味深い取り組みだと思うので、引き続き注目していきたいと思います。


ビジネス事例紹介:「オンライン融資サービス『Biz LENDING』のスコアリングモデル」

JDD 澤木 太郎 さん

www.slideshare.net


Biz LENDING 中小企業向け融資サービス

  • 決算書が不要
  • オンラインで手続きが完結
  • 申込みから入金まで最短2営業日

Biz LENDINGのスコアリングモデル

通常は過去データを用いて機械学習でスコアリングモデルを作成し、貸し倒れ確率を算出

口座の異動履歴をインプットとして利用

  • 銀行にデータがあるので決算書などの書類が不要
  • 粉飾などの不正をしにくい

教師あり学習でモデルを構築

スコアリングモデルで使われる 機柱学習モデル

  • ロジスティック回帰
  • 決定木
  • ランダムフオレスト
  • 勾配ブースティング(6 EDT)
  • ディーブラーニング

f:id:kabukawa:20191208125025p:plain:w500

モデルのホワイトボックス化

f:id:kabukawa:20191208125126p:plain:w500

f:id:kabukawa:20191208125139p:plain:w500

f:id:kabukawa:20191208125149p:plain:w500

f:id:kabukawa:20191208125200p:plain:w500

f:id:kabukawa:20191208125212p:plain:w500


個人的には、スコアリングモデルでよく使われる機械学習モデルについての基本的な説明もあって、とてもありがたかったです。 また、モデルの検証の方法は以前から気になっていたのでとても参考になりました。


研究事例紹介:「メタ学習 〜ノーフリーランチ定理を超えてマルチタスクを解く〜」

JDD 林 祐輔 さん

[資料は公開されたら追記します]


メタ学習の研究に関する発表。

f:id:kabukawa:20191208144452j:plain:w500

メタ学習とは

f:id:kabukawa:20191208144638j:plain:w500

ディープニューラルネットワークなどの大容量モデルは、データが豊富なドメインで非常に強力な機械学習技術を可能にしました。 ただし、大容量の関数近似が一般化のために大規模なデータセットに大きく依存しているため、データが不足しているドメインは、このような方法では難しいことが証明されています。 メタ学習は、この問題の潜在的な解決策を提供します。以前の多くのタスクからデータ全体を学習することを学習することにより、数ショットのメタ学習アルゴリズムはタスク間の構造を発見し、新しいタスクをすばやく学習できます。

シングルタスク学習とマルチタスク学習 f:id:kabukawa:20191208145814j:plain:w500 f:id:kabukawa:20191208145828j:plain:w500

破滅的忘却 f:id:kabukawa:20191208150025j:plain:w500

[1612.00796] Overcoming catastrophic forgetting in neural networks

ここでデモ。

arxiv.org

ノーフリーランチ定理

f:id:kabukawa:20191208174537j:plain:w500

www.hellocybernetics.tech

f:id:kabukawa:20191208175046j:plain:w500


正直に言うと話されている内容の半分もわからなかったけど、問題意識とそれを解決するための取り組みはまだまだやるべきことがあるんだな、という風に感じた。

でも、これがビジネスに落ちてくると色々面白いことが起きそうだな、というのが分からないなりに感じることができたのは良かったです。


懇親会

f:id:kabukawa:20191208175440j:plain:w600

懇親会は少し早めに切り上げて帰りました。 取り組みの中でデータサイエンティストの話だけが出てきたので、データの前処理とか整備をするデータエンジニアはどの程度いるのかということを講演者の方に質問したところ、現状はデータサイエンティストが兼務している感じとのことでした。データエンジニアは専任で置いていないところが多いのかもしれませんが、このあたりの環境も大事なんじゃないかな、と感じました。


まとめ

今回はAI周りの話ということで色々期待して参加したわけですが、期待を上回る内容だったなと思います。 細かいところに踏み込まず概観的な説明をしながらというのもあって、苦労話とかはあまり聞くことができませんでしたが、少し時間を割いてそのあたりも聞けたら良かったなと思います。 最後になりますが、今回も講演者、スタッフ、参加者の皆様、ありがとうございました!