[[SRE NEXT 2023 CFP]]に基づきプレゼンテーションのアウトラインを書く。 ![[Pasted image 20230826191238.png]] ## メモ - ソフトウェアエンジニアが実装すると価値が高そうな論文候補 - [[2023__arXiv__LogPrompt - Prompt Engineering Towards Zero-Shot and Interpretable Log Analysis|LogPrompt]] - [[2020__SAC__Black-box inter-application traffic monitoring for adaptive container placement]] - [[2023__SSE__Towards a Prime Directive of SLOs]] - [[LLM4SRE]] - [[2020__NSDI__Meaningful Availability|Meaningful Availability]] ## Outline - 1p: 本講演への期待 - 「学術」アプローチに基づき、SREの「NEXT」の拡大を狙う - 発表者がエンジニアの立場となって論文を探して読むならどんなチャレンジがあるか? - ソフトウェア開発の現場で明日から使える知識やテクニックの話はありません。 - エンジニアとしての将来の挑戦の手がかりを得るきっかけになれば幸いです。 - 実務家としてのエンジニアならば、どんな論文であれば読みたいか、論文を読むことにどれだけの価値があるかは未知数であるため、「Interactivity」 - はじめに - 2p: エンジニアと論文 - 9年前のブログ記事[インフラエンジニア向けシステム系論文](https://blog.yuuk.io/entry/system-papers)の公開 - https://gist.github.com/yuuki/20f22bdd85a00630006b8dab6386881e - 3p: 技術のマネージド化と製作のチャレンジの減少 - SREの関連技術はマネージドサービス化やCloud Native系の海外OSS化が著しい。 - 自ら製作するチャレンジは良くも悪くもその機会が少なくなっている - マネージドの裏側の要素技術は高度化していく - 論文で提案されている技術が製品化もしくは逆の流れがある - 自作のソフトウェアを作りたい欲求があるがアイディアがない - 4p: エンジニアが論文を読む動機 - 社会実装済み技術論文 - すでに普及が進んでいる有名なアルゴリズムやソフトウェアの技術的詳細を知る - rrreeeyyy, 情報処理学会第40回インターネットと運用技術研究会 招待講演, 2018 https://speakerdeck.com/rrreeeyyy/iot40-rrreeeyyy - 要素技術は高度化されており、マネージドとはいえ、エンジニアもその中身を理解しておく必要がある。 - メガクラウドのマネージドサービスとして実装されている技術の学術的な文脈でどこが新しく有用なのかが述べられている。 - 未社会実装技術論文 - 文字通り社会実装されておらず、実証されたアイディアのみが公開されている状態 - 5p: 「SREらしい」論文は未普及技術論文 - 研究者が論文を探し・読む方法は多数共有されているが、ソフトウェアエンジニアの向けのそれはほとんどない - 論文の著者は、社会実装する時間がない。 - 6p: 講演の目的 - エンジニアによる製作のためのアイディア探しを目的として、未普及技術論文に着目し、探し方と読み方を紹介する。 - 前提条件 - 想定する問題の規模や種類は、SRE NEXTに登壇されている企業で遭遇する範囲とする。 - アイディアは、1)個人で実装・展開可能であること、2)SREの業務に適用しやすそうであること - 学術論文とは - 7p: 学術論文とは - [[The illustrated guide to a Ph. D]] - 新規性・有用性 - 8p: 学術論文の主な分類(情報科学系) - 媒体別 - 学位論文(卒業論文、修士論文、博士論文) - 原著論文(ジャーナル論文) - 国際会議論文(情報系だと重要度がジャーナルと同等以上) - Full paper(2段組みだと8ページ以上程度)がおすすめ - 投稿先が雑誌(Magazine, Journal, Transaction)、 Conferenceかの差異 - 学会が雑誌と会議を運営 - ACM、IEEE,USENIX... (日本だとIPSJ、IEICE) - 提案種別 - 技術提案論文 - 新規性のあるアルゴリズムやシステムの提案 - サーベイ論文(総説論文、レビュー論文) - 主にジャーナルに掲載される - SRE論文の探し方 - 9p: 探し方の方針 - 二次情報やキュレーターが不在 - ほとんどのSRE論文はSNSでは英語圏含めて共有されていない - 能動的な探索法(情報検索)に頼る - 論文用の検索エンジン - 論文の参考文献 - 主要な国際会議のプログラムの巡回 - 10p: SRE関連の国際会議 - ICSE、ISSRE、IEEE CLOUD、ASE、IWQoS - [[SRE関連の国際会議(2023年版)]] - トップ会議の論文はおもしろいが、問題設定の規模が大きすぎる・深すぎることも多い。 - それでもトップ会議の論文はReferencesが充実しているため、IntroductionやRelated Workの節に引用されている文献をみるだけでもおもしろい。 - 11p: 論文検索ツール - Google Scholarがインデキシングが早く、動作も高速なのでおすすめ。 - Connected Papersは論文間の引用関係を追跡しやすい。 - 検索キーワード - SREの専門用語 "Observability"などは他分野の論文がヒットしてしまいがち - SREconのスライドがヒットしてしまいがち - 分野を限定させるマジックワードを追加する "Microservice" "Cloud" - その他、具体的なソフトウェア名を含めるのもおすすめ - 12p: 探索の流れ(テーマが決まっている場合) 1. テーマに沿ってサーベイ論文を検索する。「"Survey" "Observability" "Microservices"」 など。製品名やアーキテクチャ名などでもよい。ACM Computing Surveys、IEEE Accessなど。 ![[Pasted image 20230921085544.png|400]] 3. サーベイ論文から分野の地図やキーワードを得る 4. - 13p: 探索の流れ(テーマが決まっていない場合) - 国際会議リストのFieldにSoftware Engineering、Cloud Computing、Reliabilityと書かれている会議の最新のプログラムリストを眺める。 - リストの中から興味のありそうな論文タイトルをピックアップし、論文検索ツールで検索する - その論文のReferencesを眺めて、興味のありそうな論文タイトルを見つける -> 以降繰り返し - 13p: 論文のブックマークとアラート - Paperpile on Google Drive - ブラウザ拡張でGoogle Scholarとの連携機能あり - Google Scholar Alert - 興味のある論文が他論文に引用されたとき、論文の著者が新規論文を公開したときにメール通知される - 育てていくと受動的な探索が可能に。 - SRE論文の読み方 - 14p: 論文の一般的な構成と読む順番(研究者の場合) - 15p: Introductionの読み方 - 16p: 社会実装する上での読み方 - その論文が取り組む問題はなにか? その問題に興味はあるか? - 問題を解く手法やその実装に目が行きがち - 実験環境や実験条件は、自分の想定の範囲内か? - 実験結果をみて期待できるような結果になっているか? - 手法は現実的に実装可能あるいはデプロイ可能か? - 実装に用いる既存のソフトウェアに独自パッチが必要かどうか - 新規性が高い手法ほど、既存のエコシステムに乗せにくい - 17p: 翻訳・要約ツール - 翻訳はReadbleがオススメ - 生成されたPDFのレイアウトがほぼ崩れない - 日本語と英語の各ページが交互に出力されるため、見開きで読める - LLMに要約を生成させる方法もある。プロンプトに自分の興味や想定を含めて、それに沿って要約させるのはよいかもしれない - 18p: 読書記録 - 大量の関連論文をひとつひとつ記憶しておくことは難しい - Obsidianで論文ノートをつくり、論文のカテゴリごとにマッピングしている - SRE Lounge Slackの `#aiops` にノートの例を置いている。 - 参考: [[論文読みの日課について - joisino]] - SRE論文の社会実装に向けて - 19p: 分野ごとの所感 - SLI/SLO [[SLI-SLOベースの論文]] - Observability - Chaos Engineering - システムソフトウェア系 - AIOps(Failure Detection, Root Cause Analysis) - + 普及したOSSがなくブルーオーシャン - 例 github.com/salesforce/PyRCA - + 既存のエコシステムの上に展開しやすい - ObservabilityツールのAPI -> MLエンジン -> WebUI or Chat API - - 機械学習の知識が必要 - - 再現性問題に遭遇しやすい - 20p: 社会実装の難しさ - 全体的に不確実性が高い - 自分の興味に沿う論文を発見する手間 - 論文を読む手間 -> 読んだ結果のミスマッチの徒労感 - 実装する手間 -> 読んでも実装の詳細がわからない - 結果が再現しない -> 実験結果のようなよい性能がでない - 論文の提案内容で特許が取得されているケースの考慮 - 21p: 得られるリターン - SREコミュニティでは他でやられていない深い専門性 - 実装を公開するのであれば - 人気OSSの開発機会 - (特許の問題がなければ)論文の著者からの感謝 - 関連分野の研究者からの感謝 - 自分が書く論文のために既存論文を実装しないといけないため - むすび - 22p: まとめ - 普及済み技術論文と未普及済み技術論文をエンジニアによる製作のためのアイディア探しを目的として、未普及技術論文に着目し、探し方と読み方を紹介する。 - 未普及論文を社会実装するなら、不確定性の高さに対する覚悟は必要。 - 23p: 今後の活動 - SRE論文に限っても最新の主要な論文を1人で把握し続けることは困難 - エンジニア目線での未普及論文の付き合い方はまだまだ手探り - SRE Loungeの #sre-paper にて相互に情報共有をしていきたい - 質問なども受け付けます - ただし「〇〇についての論文ありますか?」の回答は難しいことが多い