幕張メッセでやっている何が正式名称なのか良く分からないITの展示会に行って来ました。お目当てはもちろん生成AI関係ですが、正直小粒なコバンザメ型の製品・サービスばかりでウンザリしました。GAFAとの差は開くばかりで、太平洋戦争の時、米軍がブルドーザーで一晩で滑走路を作っているのに、日本軍がツルハシとモッコで一月かかっていた状況と似ています。ちなみにジャストシステムも出展していたので生成AI関係の何かを開発しているか聞いてみましたが、やっていないとのことでした。
「IT」カテゴリーアーカイブ
立花和夫著の「入門タグチメソッド」
立花和夫著の「入門タグチメソッド」を何とか読了。一部飛ばした所もあります。マハラノビス距離とかに言及している割りには、タグチメソッドについて、これまで2回くらい理解しようとチャレンジして挫折していますが、3回目でようやく触りくらいは理解しました。実験計画法はQC検定だと2級、タグチメソッド(ロバストパラメータ設計)は1級の出題範囲であり、はっきり言って難しいです。前の会社で、部下の20代の若手社員に4日間のタグチメソッドの研修に行かせたことがありますが、その若手も落ちこぼれていました。
この本は数式だけではなくて、具体例が豊富で、特に安定化電源回路を使っての、S/N比と感度の説明は分かりやすかったです。つまり10Vの直流電圧を出すことをゴールとして、それに対してばらつきを与える各抵抗の公差や使用温度条件などのノイズ要因の影響を最小にするパラメーターの組み合わせを求め、それが出来てから今度は目的の10Vに持っていく、という2段階の設計がタグチメソッドの本質のようです。その過程で、直交表というある要素と別の要素の組み合わせの実験で、何通りに値を振ればいいのかを教えてくれる表を用いて実験し、その結果を使ってパラメーターの組み合わせを絞って行く、ということのようです。
この本はマハラノビス距離についての解説もあり、ユークリッド距離とどう違うのかということも良く分りました。要は要素間に相関がある場合にその相関を考慮したのがマハラノビス距離であり、それによってあるデータが基準空間の平均に近いデータなのか外れたデータかを判別するのがマハラノビス距離だということです。2つの要素に相関が無い場合は、X、Y軸にそれぞれの要素を取ると、各データの分布は円形に近くなります。しかし2つの要素に相関があれば、円形が楕円になり、原点からのユークリッド距離が同じだったデータも、マハラノビス距離では差が出てくるということになります。
トークンと形態素
P.S.
ずばり、ChatGTP-4に聞いてみたら、形態素とトークンは違う概念ですという回答でした。
=================================================================
教養としてのデータサイエンス
最近、データサイエンティストの養成が急務!とかいった論をよく見るので、データサイエンスに関する入門書を読んでみました。しかし悪い意味で予想が当たり、流行のIT用語を浅く広く紹介し、それに若干の統計学の初歩を付け加えただけの本でした。例えば実験計画法は注で2行の説明だけ。マハラノビス距離についてはまったく出て来ません。私には先日のDatabricksのセミナーでの大企業でのビッグデータとの格闘の例の方がはるかに参考になりました。
また、こんなの読むくらいだったら昔の数理統計学の本を読んだ方がよっぽどマシだとも思いました。写真は元々亡父(元高専の数学教師)の本で、私が情報処理技術者試験の一種を受ける時に、待ち行列などの参考書として持ち出したものです。1950年代後半から1960年代にかけての本です。
生成AIとConceptBase
ジャストシステムが2000年~2005年頃に販売開始した製品にConceptBaseというのがありました。
一言で言えば、類似文書検索システムです。ある文書と良く似た内容の文書を社内の文書ライブラリーから探して来るとか、FAQシステムとして、何かの不具合の解決方法を書いた文書を探すとか、そういうためのものでした。
その基礎になっている技術は、マハラノビスの汎距離と言って、ある文書の中の名詞系の語彙だけを抜き出し、それらの語彙に対して一種の分類を行い、分類の種類を一つの座標軸にし、単語の出現回数によって多数のベクトルを持った多次元ベクトル空間を作り、その重心を取ります。類似文書とはつまりその重心同士の距離が短いということになります。
これって実は今話題の生成AIのEmbeddingと呼ばれる技術そのものです。ただConceptBaseの頃は名詞系の語彙だけで多次元ベクトル空間を作りましたけど、今はトークンと呼ばれていますけど、名詞系以外の形態素も含めて分類情報を与えているのだと思います。
ちなみにChatGPT4にマハラノビスの距離とEmbeddingが関係あるか聞いてみました。回答はやはりその通りでした。
Q: 生成AIのEmbeddingは、マハラノビス距離と関連がありますか?
A: ChatGPT
はい、マハラノビス距離と生成AIのembeddingには関連があります。マハラノビス距離は、特徴空間において、データの分布を考慮して2つの点またはデータセット間の距離を測定する方法を提供します。生成モデルのembeddingは、高次元データを低次元空間にマッピングし、データ間の関係を捉える役割を果たします。
具体的には、生成モデルが学習する過程で、データの内部構造やデータ間の関係を学習し、これらの情報を低次元のembedding空間にエンコードします。マハラノビス距離を利用することで、この低次元空間においてデータ点間の相対的な距離をより適切に計算し、クラスタリングや異常検知、類似度計算など多くのタスクを効果的に行える可能性があります。マハラノビス距離は、特にデータの分布が正規である場合や共分散行列が利用可能な状況で有用です。
ちなみにこのマハラノビス距離は、品質保証の分野でも、田口メソッドと組み合わせたマハラノビス・タグチ法として、機械などの運用中に起こりうる不具合の時期を予測する技術としても使われています。
Amazon Linux 2023でvsftpdで10.5MiB以上のサイズのファイルがアップロード出来ない。
会社でExmentを動かすため、アマゾンのAWSのEC2という仮想サーバーでAmazon Linux 2023のサーバーを構築しました。(構築しました、と言っても、すぐにターミナルソフトでログイン出来る形で提供されます。)
このサーバー上でvsftpdを動かしてFTPサーバーとしたのですが、何故かクライアントからアップロードした場合、サイズが10.5MiBを超えるファイルは転送が止まりエラーになります。ちなみに私の家のサーバー(AlmaLinux 9)につなぐと問題ありませんので、クライアントや会社のファイヤーウォールの問題ではありません。
色々調べてみたのですが、Amazon Linux 2023自体がまだ公開から半年くらいからのせいか、Web上には情報がありませんでした。
取り敢えず以下の代替案は見つけました。
1.クライアントとしてWinSCPを使う。
2.プロトコルをftpではなくscpにする。
3.https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html?fbclid=IwAR0zkJ-x5x3ZS6xntB9q-vppMKDSGEcMJvpMGM8nDptqs1KtMDRNg2D9Rf より、puttygen.exeをダウンロードする。
4.puttygen.exe を使い、pemファイルからppkファイルを作成し、それをWinSCPの認証の所に設定。
3、4、が必要なのは、EC2のサーバーはログインの時にIDとPW以外にPEMファイルを使います。ところがWinSCPはPutty形式しか受け付けないので、3のツールでPEMからPPKファイルを作る必要があります。WinSCPはAmazonのS3もサポートしているので、持っておいて損は無いと思います。
なお、ファイル数が少なければ、TeraTerm(EC2にはベータ版が必要)でサーバーにつないだ後に、その窓上にファイルをドロップすればアップロード出来ます。この場合もプロトコルはSCPです。
ついでに、これまでCentOS他のLinuxを使っていて、Amazon Linux 2023を初めて使った人が最初にとまどうのは、firewalldが入っていないことです。別にdnfで入れればいいのですが、ポートの開け閉めは別にセキュリティーグループというのを設定してそこでやるのがAWSのec2のスタンダードなやり方になっています。
kintoneとExment
6月から勤めている会社で今は取り敢えずITの仕事しています。そこであるデータベースを作ることになりました。データは20数年分あるのですが、その入力がExcelでされていて、入力チェックがほとんど入っていません。そのためデータの揺れが非常に大きいまま、最終的にはkintoneのアプリの中に収録されています。それでまず入力はBPM(Business Process Management)のツールである、Questetra BPM Suiteを使うように変えました。Questetraは入力欄を正規表現で規制出来るので、非常に強力な入力チェックが簡単に実装出来ます。またXML形式のリストデータを参照してそこから選んでデータを入れることも出来ます。そしてQuestetraには、最初からkintone連携というのが用意してあったので、最初はこれを使って自動的にkintoneのアプリにデータを書込めばいいかと思っていました。ところが、kintoneにはコースが2つあり、今の会社で使っているのは安い方で、これには外部連携機能がありません。外部連携機能を使うためには、高い方のコースに全アカウント切り替えないといけません。それでそこまでしてkintoneを使う価値があるかどうか調べました。その結果、「kintoneって一体何の役に立つの?」という疑問が湧いて止みませんでした。
kintoneの問題点はというと、
(1)データベースのツールのように宣伝していますが、リレーショナルデータベースではまったくありません。従ってデータが増えれば増えるほど管理が面倒になり、スピードも低下します。主キーの設定とかリレーションの設定も当然ありません。トランザクション処理(一連の複数のデータベース操作処理のこと)も出来ません。
(2)普通何かのマスターテーブルを参照してデータを入れる、というのはデータベースの基本中の基本ですが、kintoneだとこれが「ルックアップ」ということになっています。しかし、ルックアップは別のアプリのデータを一度コピーしてそれを参照するだけのものであり、元のアプリのデータが変更されても、それはコピーした側のアプリには自動的に反映されません。
(3)データの容量も1アカウント当たり5GBしかありません。
(4)見た目のカスタマイズも機能が限定されていて、データの一覧が見にくいです。今の会社では皆結局CSVをエクスポートして、Excelで見ています。
(5)入力の制限に正規表現がサポートされていません。
kintoneを作っているのはサイボウズですが、ここの開発のトップのH氏は元ジャストシステムの方で、私と同じ頃在籍されています。しかしその方が所属していたのはJOSSというグループウェアのチームです。なのでサイボウズのガルーンというグループウェア(今の会社で使っています)は笑ってしまうくらいJOSSとそっくりです。でもガルーン自体はそんなに悪くありません。しかし、kintoneは「なんちゃってデータベース」ツールであり、私に言わせれば「ゴミデータ作成ツール」です。
それでどうしたかと言うと、結局kintoneを止めて、前の会社で使った経験のあるExmentに変えました。これは前の会社であるデータベースを操作するアプリを開発するのに、ある開発会社から提案されたもので、これを使うことで開発費を半分に抑えることが出来ました。また、ExmentはMySQLを使うWebアプリの開発ツールであり、当然ちゃんとしたリレーショナルデータベースのアプリが簡単に作れます。今実際にExmentでデータベースアプリを作り始めましたが、生産性は非常に良いです。kintoneのコース変更は止めて、そのお金でAWSのEC2サービスでAmazon Linux 2023を動かし、その上でExmentを動かしています。前の会社ではExmentのインストールはその開発会社にやってもらいましたが、今回は自分でやりました。サーバーのその他の設定も含めて3日もかからず構築出来ました。大事なことを言い忘れましたが、Exmentはオープンソースのツールであり、一つの会社で一つのサイトを使い、また開発元にカスタマイズを要求しない限りは無償です。カスタマイズはプラグインを開発することで無償のまま可能です。私としてはkintoneよりもExmentを強くお勧めします。自分で開発するのが敷居が高ければ、NTTデータCCSという会社が構築サービスをやっています。
停電のためサーバーが落ちていました。
今朝5時頃から8時40分まで、停電のためサーバーが落ちていました。
サーバーの移設完了
サーバーを新居に移設し、DNS設定も変更し、このブログは元通りにアクセス出来るようになりました。
サーバー移設によるアクセス停止の件
このブログを動かしている自宅サーバーを引っ越しにより移設するため、8月11日(金)の16時より同日深夜0時くらいまで、一時的にアクセス出来なくなります。移設が完了して元通りアクセス出来るようになりましたら、また連絡します。