はてなキーワード: アーキテクチャとは
anond:20240324030115 へつづく
色々開発に携わってきたが大体2パターンある
Case month when 1 then ~って感じのコード。thenの後にif文や更にCase文がある。この辺りに28日までとか書いてある。
ソースレビューがあったら指摘する内容だが機能していない場合はこのレベルが来る。オフショアで海外に出すとマジでこんなの書いてくる。指摘するとはいはい言うけどどうすれば良いのか悩む。
アーキテクチャ次第だが単に29までに変更すれば良い場合もあるが、たまに他にも影響したりして結構絶望する。月末日取得で書いてたら説教レベル
大体Case文パターンでロジックが考えられない場合国内外が提案してくるのがマスタ化だ。発注元も何故か柔軟な対応が出来るからと賛成してくる
結果年1や月1のマスタ設定が必要になり運悪いタイミングで担当者が閏年を忘れてると大体起きる。賛成した人らは運用しないので気楽だ。
こっちはマスタ設定すれば良いのだが、閏年ですよ忘れていませんかチェックは無いくせに登録出来るのは翌日以降チェックはしっかり入ってたりする。
設計段階で考慮すれば良いのだがマスタは何故か新人の仕事となり結果糞仕様にスキル不足が重なって復旧に時間がかかったりする。もちろん新人に罪は無い。日付をキーにするマスタなんて要件で考えた奴が悪い
閏年に影響されない業務やフローにする。そもそも年月日を指定するか2/28の次は3/1だと明示しない限りはシステムは閏年でバグを起こさない。
もし日付チェックを自作の変なロジックで作って発生させてたら20代なら許すが30代以上は即引退して他の仕事探したほうが良い。変に生き残って上流に行くと出来上がるのは意味の分からない事を言うステークホルダーという老害で将来はコンサルとか名乗って中小零細で惨めなシステム論を語る粗大ゴミだ
今までだと命令やデータはキャッシュに乗るのが前提だったが、AIだと、AIモデルがGB単位なのでキャッシュにそもそも乗らない。
いかにキャッシュヒットさせるか、DRAMとのレイテンシを隠蔽するかだったが、キャッシュに乗らないので、メモリ帯域勝負になる。
GPUが汎用性があるので使われているが、ゲームだとテクスチャをVRAMに乗せておいて、演算した結果はモニター側へ出力すればよく、
なんだかんだ帯域は足りていたが、AIだとチップチップ間の帯域が足りない。
ニューラルネットワークの接続自体をFPGA的に切り替えるのも手だと思うがモデルが大きすぎる。
未だに「謎の半導体メーカー」程度の認識の方になぜNVIDIAが時価総額世界4位なのかをあれこれ説明する必要があるので短めにメモ。半導体業界のすみっこの人間なので機械学習まわりの説明は適当です
・~1993年 AI冬の時代。エージェントシステムがさほど成果を挙げられなかったり。まだ半導体やメモリの性能は現代とくらべてはるかに劣り、現代のような大規模データを用いた統計的処理など考えられなかった。2006年のディープラーニングの発明まで実質的な停滞は続く。
・1995年 NVIDIAが最初のグラフィックアクセラレータ製品NV1を発売。
・1999年 NVIDIAがGeForce 256発売。GPUという名が初めて使われる。以降、NVIDIAはGPU業界1位の座を守り続ける。
・2006年 GPGPU向け開発基盤CUDAを発表。以降、その並列計算に特化した性能を大規模コンピューティングに活用しようという動きが続く。
・2006年 ディープラーニングの発明。のちのビッグデータブームに乗り、これまでよりはるかに高性能なAIを模索する動きが始まる(第3次AIブームのおこり)
・2006年 CPU業界2位のAMDがGPU業界2位のATIを買収、チップセットにGPUを統合することで事実上自社製品をNVIDIAと切り離す戦略に出る。CPU業界1位のインテルも、同じく自社CPUに自社製GPUを統合する動きを強める。NVIDIAはこれまでの主力だったGPUチップセット製品の販売を終了し、データセンター向けGPGPUのTeslaシリーズ、ゲーム用外付けGPUのGeForceシリーズ、ARM系CPUと自社GPUを統合したTegraシリーズの3製品に整理する。このうちTeslaシリーズが性能向上やマイクロアーキテクチャ変更を経て現代のAIサーバ製品に直接つながる。GeForceシリーズはゲーマー向け需要や暗号通貨マイニング向け需要も取り込み成長。Tegraシリーズは後継品がNintendoSwitchに採用される。
・2012年 ディープラーニングが画像認識コンテストで圧倒的な成績を収め、実質的な第3次AIブームが始まる。
・2017年 Transformerモデル発表。これまでのNN・DLと異なり並列化で性能を上げるのが容易=デカい計算機を使えばAIの性能が上がる時代に突入。
・2018年 IBMがNVIDIAと開発した「Summit」がスパコン世界ランキング1位の座を5年ぶりに中国から奪還。全計算のうち96%がGPUによって処理され、HPC(ハイパフォーマンスコンピューティング)におけるGPUの地位は決定的になる。NVIDIAの開発したCPU-GPU間の高速リンク「NVLink」が大規模に活用される。「Summit」は2020年に「富岳」にトップを奪われるまで1位を維持。
・2018~2021年 BERTやXLNet、GPT2など大規模言語モデルの幕開け。まだ研究者が使うレベル。
・2019年 NVIDIA CEOジェスン・ファン(革ジャンおぢ)が「ムーアの法則は終わった」と見解を表明。半導体のシングルスレッド性能の向上は限界に達し、チップレットを始めとした並列化・集積化アーキテクチャ勝負の時代に入る。
・2022年 NVIDIAがH100発表。Transformerモデルの学習・推論機能を大幅に強化したサーバ向けGPUで、もはや単体でもスパコンと呼べる性能を発揮する。H100はコアチップGH100をTSMC N4プロセスで製造、SK Hynix製HBMとともにTSMC CoWoSパッケージング技術で集積したパッケージ。※N4プロセスは最新のiPhone向けSoCで採用されたN3プロセスの1つ前の世代だが、サーバ/デスクトップ製品向けプロセスとモバイル製品向けプロセスはクロックや電流量が異なり、HPC向けはN4が最新と言ってよい。
・2022年 画像生成AIブーム。DALL-E2、Midjourney、Stable Diffusionなどが相次いで発表。
・2022年 ChatGPT発表。アクティブユーザ1億人達成に2カ月は史上最速。
・2023年 ChatGPT有料版公開。Microsoft Copilot、Google Bard(Gemini)など商用化への動きが相次ぐ。各企業がNVIDIA H100の大量調達に動く。
・2024年 NVIDIAが時価総額世界4位に到達。半導体メーカー売上ランキング世界1位達成(予定)。
こうして見るとNVIDIAにとっての転換点は「ディープラーニングの発明」「GPGPU向けプログラミング環境CUDAの発表」「チップセットの販売からコンピューティングユニットの販売に転換」という3つが同時に起こった2006年であると言えそう。以降、NVIDIAはゲーマー向け製品やモバイル向け製品を販売する裏で、CUDAによってGPGPUの独占を続け、仮装通貨マイニングやスパコンでの活躍と言ったホップステップを経て今回の大きな飛躍を成し遂げた、と綺麗にまとめられるだろう。
数年前は、TSP(Tensor Streaming Processor)と呼んでいたが、LPU(language processing unit)と名前を変えた?
数年前のチップをそのまま使い続けているか分からないが、同じならアーキテクチャは4年前のユーチューブを見るか、アスキーあたりの記事にある。
https://youtu.be/UNG70W8mKbA?si=9VFeopAiPAdn08i_
要は、コインパイラで変換が必要。なので提供されているLLMモデルが限られている。
PCIeボードが400万くらいらしいが、SRAMの容量が小さすぎて1ボードでは動かない。
DRAMのレイテンシがSRAMではないので早いのだ、という意見も見られてたが、
1チップのSRAM容量が小さすぎるので、チップチップ間、ボードボード間の通信レイテンシは必ずあるはず。
(数ヶ月前から性能上がっているのは、このあたりのチューニングのはず)
DRAMのレイテンシというが、これも今どきはレイテンシ気にしないように隠蔽するはず。
チームが小さすぎてハード作れなかった可能性もあるが・・・。DMACでチューニングしているか?
ボードにでかいDRAMが載せられるのであれば、そちらの方がボードボード間の通信時間より減るのでは?
GF使ったのは、おそらくAMD設計者が居たからでは。デザインルールどこ破れば性能でるかある程度わかってたとか。1GHzくらいなのは知見なしでやってるとそれくらいで上限くるのはそうだと思う。
チップの世代を更新するかはわからないが、兎にも角にも電力下げて、チップ大量に載せて、チップチップ間の通信時間を下げられるか。
社内のほぼ全員が社内ニートである会社で働いたことがあるだろうか。
強制的にクビになるまで意地でもしがみつくその根性、そして増やすだけ無駄な仕事を勝手に増やす愚かさ。
利益を追求するチームと、社内ニートとして仕事っぽいことをしているその他のチームがいるのである。
まあ滅ぶ寸前だったら転職すればよい。
しかしである。社内ニートの連中は暇な時間をなんとか仕事に変換したいらしい。
そこでここでは連中が駆使している暇つぶし創出のちょっとしたテクニック集を開陳する。
1. 議論
だれかが議論をするといい始めた時は、大抵暇な時だ。
社内SNSでテキストベースで議論し始めたり、誰か特定の人間を集めて会議室で議論したりする。
だがこれらの議論はあまり生産的ではなく、生産的であろうとするが、無能なので何も生み出さない。
ずれたことを言うことに慣れきっているので、こんな議論さえある:
「俺たちの目的は社会貢献だ。社会に貢献するためには社会の不安定要因を見つける必要がある。ハッタショが社会を不安定化させているのではないか。もしそうだとすると、ハッタショを更生するには周囲のサポートがいるのではないか。もしそうだとすると、サポート要員を確保するために人件費を与える必要がある。もしそうだとすると、利益になるビジネスモデルがない限りそのような人件費は払われない。もしそうだとすると、利益に頼らない方法を見つける必要がある。」
こいつがハッタショについて議論し始めたのは、普段からハッタショにムカついていてスカッとしたい以外の理由はなく、ハッタショを更生するビジネスなどやる気は微塵もない。
「もしそうだとすると」が多すぎて、前提が崩れるとすべての議論が無駄になるのである。
2. 調査
調査というのは議論の次に多い言葉だ。まともな調査をする人もいるが、大抵の場合は信頼できないソースを引っ張り出し、自説を補強する以外のことはしない。
そもそもググって情報を見つけることを「調査」と仰々しくいうほどのことではないだろう。だが、そういって仰々しくいうと、本格的な情報を調べるように見せかけることができる。
信頼できる調査とそうでない調査の違いは、その努力の方向性である。
一時情報源を見るために論文を翻訳する人たちや、バグの原因究明のためにデバッグしている人たちはかなり努力しているが、ツイートを引用するだけの連中は脳が足りない。
3. 発信
社会貢献は世間に影響を与えられてこそであるといい、匿名のアカウントを使って炎上や工作活動を行う。
これを最も好んで「暇つぶし」にしている人もいる。会社の目的に合致していればまだしも、ただのインプレ稼ぎに成り下がっていることが多い。
例えば画像生成AIでどんな絵が生成できるか検証してみました、みたいな連中だ。
まだ未検証のうちはそれでいいかもしれないが、何度も生成してどういうものか分かった段階でまだ続けようとしても生産的ではないだろう。
そもそも画像生成のAIをどうやって利益に変換するつもりなのか。そういう根本的な発想が抜けている。
社員のほぼ全員が社内ニートというのだから、そもそも会社としての仕事がなんであったのか誰もわからない状態になることがある。
そういう時に、誰かが暇潰しのための議論で「こういうツールがあったらなぁ」などといい始める。
それでエンジニアが実際にそういうツールを作ると、「なんかちょっと違うんだよなぁ、僕が研究してきた哲学をもっと含ませて欲しいんだよね」と理解不能なことを言う。
だからツールも作ったきりで発展しない。利益に繋げようという意欲がない。
「インフラの監視」といって、無理やり仕事を作り出そうとする人もいるが、インフラのインシデントが常日頃から膨大に発生するようなことはない。
監視のための仕組みをもっと徹底して導入するだの、k8sを使うだのいって無理やり仕事を増やそうとするが、コストにしかならない。
イベントを開いて人を集めれば、確かに社の知名度を高めたり、イベントから収益を得たりは可能だろう。
ただ利益の決定打には及ばない。場合によってはコストの方が高くつく。
被災地にプレゼントを、などと言うが、被災地が今欲しいのは水と食料であるという基本的な部分の認識すら欠如し、頓珍漢なものをプレゼントしようとする。
8. PoC
会社にまともな仕事は存在するのか?と疑心暗鬼になっているエンジニアがPoCをし始める。
これはこれで、後々役に立つことはある。実運用で適用可能な技術も多い。
しかし、一部のエンジニアは漠然と「すごいこと」をやろうとしており、それが厳密に言語化されないので、PoCの方向性があちらこちらに行く。
利益に貢献するようなサービスを運用しているとして、その運用時にマニュアル作業が発生していることがある。
これらを自動化するツールを作る提案をすれば、暇つぶしもできるし、生産性向上によって時間的余裕を創出できる。
まあ、時間的余裕を創出するからこそ社内ニートがより深刻化するのだが。
最新技術の勉強をするといって、技術書を読む。場合によっては、勉強会を開く。
例えばマイクロサービスアーキテクチャを正しく運用するには、とかそういったことだ。
ソフトウェアアーキテクチャにおいては、品質要件のトレードオフが重要な要素となります。
これは、全てのビジネス要件や状況に適合する万能のアーキテクチャは存在しないため、どのアーキテクチャ特性を優先するかという思考が必要になるからです。
品質属性要件(Quality Attribute Requirements: QAR)はアーキテクチャの原動力となります。
これらの要件を無視したり、不十分な定義にしたりすることは、失敗のもととなります。
そのため、アーキテクチャの選定を行う際には、機能的設計だけでなく非機能的内容も考慮する必要があります。
また、アーキテクチャの選定には「どのアーキテクチャ特性を優先するか」という思考が重要になります。
これは、全てのビジネス要件や状況に適合する万能のアーキテクチャは存在しないためです。
プログラマーの三代美徳は、怠惰でもなければ傲慢でもない。本能、感情、混乱である。
本能とは、モチベーションの本質的部分である。エロいdeepfakeを作りたい、頭よく見られたい、金儲けしたいといった動機によってプログラマーは手を動かす。
本能がなければドーパミンも存在しない。コードを書く誘因は本能的衝動によって生み出されている。
感情とは、要するに好き嫌いのことだ。たくさんの経験を積み重ねてセンスを獲得するには、好き嫌いに敏感でなければならない。
なぜvscodeがクソで、emacsが素晴らしいのか。なぜマイクロサービスアーキテクチャに強い疑念があるのか。なぜベンダーロックインが金の浪費に繋がるのか。
そういったことは、経験から学び、そして感情という次元に落とし込まれる。感情は少数の次元で美的感覚を得るための優れたセンサーである。
混乱とは、人生である。混乱したことのないものはエントロピーを操ることはできない。
コードは常にエントロピー増大の法則に晒されている。高エントロピーの乱雑的コードを読んで混乱したことがなければ、リファクタリングもできないだろう。
'サービス 開発 リモートワーク 提供 機械学習 プロダクト ソリューション 大規模 技術 要件 する チーム 企画 運用 設計 検索 ため 推進 製品 活用 改善 通信 投資 terraform アーキテクチャ フレームワーク ポジション データ 用い cto プラットフォーム gcp 課題 ビジネス 備考 リーダー scala クラウドサービス 配信 利用 リード 特化 github 処理 ユーザー ci js パーソルクロステクノロジー 新規 喫煙 月額 ai 提案 ビッグデータ クラウド 検知 仕様 スクラム 受注 施策 連携 マーケティング 展開 主体的 インフラ メディア フレックスタイム制 翻訳 広告 社会 事業内容 年俸制 行動 対する マネジメント 音声 自然言語処理 東京メトロ django レコメンド 保養 docker 購入 分析 go メンバー 解決 フルフレックス 検討 jira sas ステークホルダー 折衝 基本給 定義 創業 表彰 新橋駅 インターネット ansible'
'制作 応募 ます 未経験 ゲーム 月給 研修 案件 ください あり 完全 ok 交通費 歓迎 java 土日 アクセンチュア 試用期間 希望 契約社員 です たい テスト 休み スキル ヶ月 電話 エンジニア 年収 まで ませ 実績 あなた 名古屋 住宅手当 スクール ブランク 弊社 php サーバー 面接 net お客様 紹介 vb 豊富 up タイトル 経験者 チェンジ 原則 から 営業 夏季休暇 ディビジョン 不問 ses 全額支給 step ドローン ござい 許可 つけ 相談 みなとみらい 言語 か月 定期的 書類 好き 気軽 製造 内定 当社 活躍 db また 昇給 週休 教育 全員 prevent 面談 デバイス ソクコム 内容 分野 人数 cobol 雇用 策定 先輩 有料 連絡 求人 知識 安心 農業 残業 産前産後休暇'