Submit Search
Upload
研究を基にしたオープンソース開発チェックポイント
•
17 likes
•
6,511 views
Recruit Technologies
Follow
研究室が研究を基に OSS を開発、公開するときに気をつけるポイントをまとめました。
Read less
Read more
Software
Report
Share
Report
Share
1 of 75
Recommended
効率的学習 / Efficient Training(メタサーベイ)
効率的学習 / Efficient Training(メタサーベイ)
cvpaper. challenge
TabNetの論文紹介
TabNetの論文紹介
西岡 賢一郎
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
Deep Learning JP
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
ブースティング入門
ブースティング入門
Retrieva inc.
Recommended
効率的学習 / Efficient Training(メタサーベイ)
効率的学習 / Efficient Training(メタサーベイ)
cvpaper. challenge
TabNetの論文紹介
TabNetの論文紹介
西岡 賢一郎
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
Deep Learning JP
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
ブースティング入門
ブースティング入門
Retrieva inc.
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
Deep Learning JP
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
Deep walk について
Deep walk について
Tamakoshi Hironori
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
Deep Learning JP
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
Deep Learning JP
Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習
Plot Hong
最適輸送入門
最適輸送入門
joisino
Graph Neural Networks
Graph Neural Networks
tm1966
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Preferred Networks
時系列分析による異常検知入門
時系列分析による異常検知入門
Yohei Sato
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
Plot Hong
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
Shintaro Fukushima
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
Yasuhisa Kondo
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
Recruit Technologies
More Related Content
What's hot
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
Deep Learning JP
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
Deep walk について
Deep walk について
Tamakoshi Hironori
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
Deep Learning JP
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
Deep Learning JP
Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習
Plot Hong
最適輸送入門
最適輸送入門
joisino
Graph Neural Networks
Graph Neural Networks
tm1966
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Preferred Networks
時系列分析による異常検知入門
時系列分析による異常検知入門
Yohei Sato
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
Plot Hong
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
Shintaro Fukushima
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
What's hot
(20)
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
最適輸送の解き方
最適輸送の解き方
全力解説!Transformer
全力解説!Transformer
Optimizer入門&最新動向
Optimizer入門&最新動向
Deep walk について
Deep walk について
Active Learning 入門
Active Learning 入門
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習
最適輸送入門
最適輸送入門
Graph Neural Networks
Graph Neural Networks
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
時系列分析による異常検知入門
時系列分析による異常検知入門
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Viewers also liked
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
Yasuhisa Kondo
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
Recruit Technologies
研究データ
研究データ
Taro misumi
技名の考え方
技名の考え方
Mahato Endo
研究の基本ツール
研究の基本ツール
由来 藤原
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
20170212やっつけ仕事にしない「研究」ポートフォリオ 進行スライド1218
20170212やっつけ仕事にしない「研究」ポートフォリオ 進行スライド1218
SR WS
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
Satoru Yamamoto
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
Naoaki Okazaki
20150903 ku-librarians勉強会#195 :世界の“図書館をめぐる冒険”から考える、ライブラリアンによる教育・研究支援の高度化
20150903 ku-librarians勉強会#195 :世界の“図書館をめぐる冒険”から考える、ライブラリアンによる教育・研究支援の高度化
kulibrarians
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
Yoshitake Takebayashi
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
Hiroshi Shimizu
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
学部生向けベイズ統計イントロ(公開版)
学部生向けベイズ統計イントロ(公開版)
考司 小杉
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
Ryosuke Okuta
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
schoowebcampus
研究室リテラシー教育スライド
研究室リテラシー教育スライド
Nobutaka Shimada
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
徹 上野山
5分でわかるベイズ確率
5分でわかるベイズ確率
hoxo_m
機械学習概論 講義テキスト
機械学習概論 講義テキスト
Etsuji Nakai
Viewers also liked
(20)
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
アラビア半島乾燥地オアシスの水環境に関する環境考古学的研究、その後
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
研究データ
研究データ
技名の考え方
技名の考え方
研究の基本ツール
研究の基本ツール
R以外の研究ツール
R以外の研究ツール
20170212やっつけ仕事にしない「研究」ポートフォリオ 進行スライド1218
20170212やっつけ仕事にしない「研究」ポートフォリオ 進行スライド1218
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
20150903 ku-librarians勉強会#195 :世界の“図書館をめぐる冒険”から考える、ライブラリアンによる教育・研究支援の高度化
20150903 ku-librarians勉強会#195 :世界の“図書館をめぐる冒険”から考える、ライブラリアンによる教育・研究支援の高度化
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
学部生向けベイズ統計イントロ(公開版)
学部生向けベイズ統計イントロ(公開版)
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
研究室リテラシー教育スライド
研究室リテラシー教育スライド
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
5分でわかるベイズ確率
5分でわかるベイズ確率
機械学習概論 講義テキスト
機械学習概論 講義テキスト
Similar to 研究を基にしたオープンソース開発チェックポイント
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
20050809
20050809
小野 修司
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Daisuke Nishino
使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
NTT DATA Technology & Innovation
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
Issei Hiraoka
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
Daisuke Nishino
pi-1. プログラミング入門
pi-1. プログラミング入門
kunihikokaneko1
アジャイルマネジメントとは?
アジャイルマネジメントとは?
Kiro Harada
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
Odl intro20141029
Odl intro20141029
NEC Corporation
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
Azure DevOps - ALGYAN Oct 2022.pdf
Azure DevOps - ALGYAN Oct 2022.pdf
YasuhiroHanda2
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
Knowledge & Experience
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
makopi 23
Similar to 研究を基にしたオープンソース開発チェックポイント
(20)
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
20050809
20050809
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
使い捨て python コードの書き方
使い捨て python コードの書き方
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
pi-1. プログラミング入門
pi-1. プログラミング入門
アジャイルマネジメントとは?
アジャイルマネジメントとは?
私とOSSの25年
私とOSSの25年
Odl intro20141029
Odl intro20141029
PHP agile test tips
PHP agile test tips
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Azure DevOps - ALGYAN Oct 2022.pdf
Azure DevOps - ALGYAN Oct 2022.pdf
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
More from Recruit Technologies
新卒2年目が鍛えられたコードレビュー道場
新卒2年目が鍛えられたコードレビュー道場
Recruit Technologies
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
Recruit Technologies
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Recruit Technologies
Tableau活用4年の軌跡
Tableau活用4年の軌跡
Recruit Technologies
HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話
Recruit Technologies
LT(自由)
LT(自由)
Recruit Technologies
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Recruit Technologies
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Recruit Technologies
リクルート式AIの活用法
リクルート式AIの活用法
Recruit Technologies
銀行ロビーアシスタント
銀行ロビーアシスタント
Recruit Technologies
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
Recruit Technologies
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
Recruit Technologies
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
Recruit Technologies
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Recruit Technologies
EMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成する
Recruit Technologies
RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)
Recruit Technologies
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
Recruit Technologies
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
Recruit Technologies
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
Recruit Technologies
「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~
Recruit Technologies
More from Recruit Technologies
(20)
新卒2年目が鍛えられたコードレビュー道場
新卒2年目が鍛えられたコードレビュー道場
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Tableau活用4年の軌跡
Tableau活用4年の軌跡
HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話
LT(自由)
LT(自由)
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
リクルート式AIの活用法
リクルート式AIの活用法
銀行ロビーアシスタント
銀行ロビーアシスタント
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
EMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成する
RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~
研究を基にしたオープンソース開発チェックポイント
1.
研究を基にした オープンソース開発 チェックポイント
株式会社リクルートテクノロジーズ 伊藤 敬彦 1
2.
自己紹介 名前:伊藤敬彦 Twitter
アカウント: takahi_i 所属:株式会社リクルートテ クノロジーズ ATL 専門分野:データマイニング、 グラフ、検索 2
3.
略歴 要約:研究から開発に流れてきた(どっちつかず) 研究(マイニング)
いろいろ開発現職 KDD、PKDD Hadoop ツール群の開発 検索プラットフォーム 3 自動文書校正ツール デプロイパイプライン
4.
最近関わっている OSS RedPen
自動文書校正 ツール URL: http:// redpen.cc 4 Walter デプロイメント パイプライン URL: https:// github.com/ walter-cd
5.
本日のトピック アカデミックの人が研究成果をオープンソースとし て開するときに気をつけること解説
5
6.
トピックを選択した理由 研究室は論文を執筆する。 研究成果を基にコードを公開することで様々なメ
リットが享受できる。 6
7.
研究室でオープンソースを行 うメリット 研究室の先進性をアピール
共同研究 研究資金 学生獲得 社会還元の手段 論文だけでは中々成果を利用してもらえない。 7
8.
学生がオープンソースを行う メリット 就職活動
ちゃんとしたコードを書けることをアピール 8
9.
内容 オープンソースの基礎知識 気をつけるポイント
多くの影響をあたえるためのポイント 9
10.
内容 オープンソースの基礎知識 気をつけるポイント
多くの影響をあたえるためのポイント 10
11.
オープンソース? プログラムのソースコー ドをおいておくこと
現在,多くのソフトウェ アがオープンソースプロ ジェクトとして公開され ている 11
12.
研究分野でも 最新の研究を搭載したツールがオープ ンソースとして公開されている
深層学習 分散フレームワーク 音声認識 等 12
13.
事例:Apache Spark UC
Berkely の AMPLab で研究プロ ジェクトとして開始 研究論文:https:// spark.apache.org/research.html Apache のトッププロジェクトとして 登録される。 BigData界のキープレーヤにサポート された。 13
14.
事例:Hivemall 産総研の油井さんが開発されている分散機械学習ラ イブラリ
リポジトリ:https://github.com/myui/hivemall 米 Tresure Data 社のサービスでサポート http://docs.treasuredata.com/articles/ releasenote-20140617#backend-hivemall-library- v02 14
15.
どこで公開する? バージョン管理システムを設置して運用するのはコストが大 きい
ホスティングサービスを利用すると便利 メジャーなサービス GitHub Google Code Bitbucket 15
16.
公開前に やはりバージョン管理システムについて最低限の 理解が必要
バージョン管理システムでは三つがメジャー Git Subversion Mercurial 16
17.
しかし、ただ研究の際に利用したスクリプト群を 置いておけばよいわけではない。。。 17
18.
内容 オープンソースの基礎知識 気をつけるポイント
多くの影響をあたえるためのポイント 18
19.
オープンソース公開前に 研究成果のツールがあった場合,そのまま出すと 理解されない
使ってもらうところまでいかない 使ってもらうには品質を持つことを示さないといけな い。 論文も重要な国際会議で採録されるのには品質が必要 なのと同じ。 19
20.
論文の品質 研究論文は品質が充分でないと採録されない 論文の品質とは
革新性 論理展開 フォーマット、スタイル 比較検討(サーベイ) 実験の網羅性 20 以外に重要
21.
OSSの品質 OSSも品質が充分でないとインパクトが与えられない 革新性
有用性 コードの品質 使いやすさ 導入しやすさ(わかりやすさ) 21 今日のトピック
22.
研究と技術的負債 所感:最新の研究の成果はそもそも技術的負債が たまりやすい
参考(技術的負債):http://qiita.com/ erukiti/items/9cc7850250268582dde7 理解できる人が限られる➔コードを移譲してチー ムでメインテナンスという流れが起こりにくい。 22
23.
研究と技術的負債 研究系のシステムは他の人がついてこれるコード、 システムになっているか常に意識する必要がある。
意識しないと、 開発が進まなくなり、残骸プロジェクト(メイン テナンスされなくたったコード)になる。 品質向上が進まず、実際のサービスに入れる(運 用する)のが難しくなる。 23
24.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 24
25.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 25
26.
テスト プログラムが期待した振る舞いをしているかを検 証する関数群
各言語毎にテストツールが存在する JUnit (Java)、RSpec (Ruby)、gTest(C++) etc.. 26
27.
例:足し算のテスト int add(int
a, int b) { return a+b; } int testAdd(int a, int b) { 27 assertEquals(2, add(1,1)) }
28.
テストのメリット 早期のバグ発見 変更した際に間違い(バグ)を混入させるとエ
ラーが起こる 新しい開発者への支援 新しく開発者がプロジェクトに参加した時にテ ストから,各コンポーネントの振る舞いを学習 できる 28
29.
テストがないと 様々なデメリットを被る 例:利用方法を理解するコストが増大する。
特に研究系のとんがったツールでは,バグなのか仕様なのか 判断が難しい。 ➔ 理解が進まないので共同開発者が育たない ➔ 生産性の低下 コードを改変した際に、バグを埋め込む可能性が上がる。 29
30.
勉強:テスト 本を読む テスト駆動開発入門
GitHub 等で管理されているツールのテストを参 考にする RedPenのテスト: http://bit.ly/1yzbIDs 30
31.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 31
32.
パッケージを作る プログラムを利用しやすくするためにビルドツー ルを利用してパッケージングする
ビルドツール:ソースファイルからどのように成 果物を生成するかの手順を記述する 言語ごとに存在する: C (Make, CMake, Autotools), Java (Maven), Ruby (Gemfile) etc… 32
33.
ビルドツールが無いと どうやって成果物を生成するのかわからない(分 かりにくい)。
成果物を生成できる人が限られてしまう。 ➔ ユーザ数が伸びない。。。 33
34.
勉強方法:パッケージング 本(各言語毎にパッケージングを扱う本がある) ウェブ記事
GitHub 内のプロジェクトを参考に: https://github.com/fluent/fluentd 34
35.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 35
36.
ソースコードのフォーマット フォーマットが変だと,プロジェクトの品質に疑 いを持たれる
フォーマット不良の例: ➔タブとスペースの混在 ➔一行が長すぎる ➔変数名に統一感がない 36
37.
フォーマットを整えるために 静的チェックツールを利用する フォーマット異常や潜在的なバグを教えてくれ
る 言語毎に存在する Java (CheckStyle), C(lint) etc… 37
38.
勉強方法:静的コード解析ツー ル 本ではあまり扱われていない
Java Power Tools とか一部の本で触れられているが。。 ウェブ上の記事を参照(CheckStyle):https:// sites.google.com/site/yasuda/maven/3-pomno やはり。。。:既存のプロジェクトを参照 Hadoop: https://github.com/apache/hadoop-common/ blob/HADOOP-3628/build.xml 38
39.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう CI を回そう 静的コード解析ツールをつかおう ドキュメントを書こう ライセンスを書こう 39
40.
CI? Continuous Integration
(継続的インテグレージョン) の略 Jenkins が有名 CI がやってくれること: Git や Subversion 等のソースレポジトリにコードを コミットすると,定められた処理を実行する 一般的な利用:テストを実行 40
41.
CI のメリット テスト自動実行してくれるので,バグが起こった
ことがわかる クリーンな環境で実行してくれる(ものもある) ので,ローカルでは発現しないバグを発見できる バグは早めに潰さないと,後になるほど修正にコ ストがかかる 所感:何度も助けられました >< 41
42.
CIを導入する Jenkins は運用を研究室内でやらないといけな
いため、研究室で稼働させるには敷居が高い おすすめ:CI サービスを利用する ➔ Travis、Wercker など CI を手軽に利用でき るサービスがある. 42
43.
勉強する:CI 概念について: ➔継続的インテグレーション入門
CIの使われ方: ➔実際のプロジェクトを参照する。 ➔ウェブ記事を参照:http:// shoma2da.hatenablog.com/entry/ 2014/02/02/200546 43
44.
例:CI サービスの利用 RedPenより
https://travis-ci.org/recruit-tech/redpen 44
45.
Travisの設定 単純なテストなら非常に 簡単
プロジェクトトップに設 定ファイル (.travis.yml)を追加 設定ファイルでは対象言 語を指定する 45 例:Ruby language: ruby rvm: - 2.1.0
46.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 46
47.
ドキュメントを書こう ツールを利用する敷居をさげるためにドキュメントは必 ず書く.
ドキュメントには種類がある クィックスタート:簡単なタスクを用意してユーザに 実行してもらう マニュアル:詳細な利用法を記述する FAQ: よくある間違いに対する解答を載せる 47 特に重要と思う
48.
クィックスタート 自分のツールが簡単に利用できるかはクィックス タートを書いてみるとわかる.
もしクィックスタートで実行する必要なステップ が多い ➔ソフトウェアが手軽に利用できないおそれが ある 48
49.
例:クィックスタート Hadoop: http://hadoop.apache.org/docs/r0.19.0/
quickstart.html RPMで簡単にインストール 起動も2、3ステップ 49
50.
クィックスタートの利益 ソフトウェアのインストールや起動までのステップが短いと、 ユーザ獲得以外にも利益がある。
利益: 問題の再現 バグが報告された時に、簡単に問題を手元で再現できる ステップが短いことで他のソフトウェアへの組み込みが容 易 50
51.
オープンソースを公開する前 にやるべきこと: 入門編
テストをつけよう パッケージングしよう 静的コード解析ツールをつかおう CI を回そう ドキュメントを書こう ライセンスを書こう 51
52.
ライセンスが明記していない と 公開されてても使っても良いのかわからない。
ライセンスには色々ある(GPL, BSD, Apache 2.0 etc)。 各自調査したのち自分の用途にあうものを選択す る。 参考記事:http://www.slideshare.net/ YutakaKachi/ss-8616029 52
53.
ではちょっと先の話を 以下もう一歩踏み込んだトピックについて話しま す。
いきなり全部取り入れるのは難しい、話半分で。 53
54.
オープンソースを公開する前 にやるべきこと: 中級編
Pull Request ベースの開発 リファクタリング 設計の勉強 54
55.
オープンソースを公開する前 にやるべきこと: 中級編
Pull Request ベースの開発 リファクタリング 設計の勉強 55
56.
Pull Request 複数人でひとつのソフトウェアを開発する際に、
開発者のローカルのリポジトリでPushした変更 や機能追加を、ほかの開発者のリポジトリやブラ ンチに取り込んでもらうためのリクエストを出す 機能のこと。 コードブレイクより 56
57.
Pull Request の流れ
1. レポジトリをフォークする 2. ブランチを作成する 3. 機能の実装をする(テストも追加) 4. コミットする 5. 取り込んでもらうように要求(Pull Request)する 6. マージしてもらう 57
58.
Pull Request の何が嬉しい
か レビューを徹底できる ➔結果コードに関する理解が共有される。 特に研究室の場合 開発に割ける時間が限られている。 複数の人がわかっていないとすぐにコードがメンテナン スできなくなる。 レビューをすることでコードを理解できる人を増やそう。 58
59.
例:Pull Request Apache
Spark(SPARK-4611)より トピック:ベクトルのノルム計算の高速化について https://github.com/apache/spark/pull/3462 ポイント: コミット毎にテスト(Jenkins)が走っている。 コード部分について、マージ前に数多くの対話がなされて いる。 59
60.
オープンソースを公開する前 にやるべきこと: 中級編
Pull Request ベースの開発 リファクタリング 設計の勉強 60
61.
リファクタリング コンピュータプログラミングにおいて、プログラ ムの外部から見た動作を変えずにソースコードの
内部構造を整理すること Wikipedia より ソフトウェアは書いていくとコードが複雑になる ➔定期的にコードをシンプルにする 61
62.
コードをシンプルにしないま ま開発が続くと。。。 コードが複雑になる(技術的負債の増大)。
結果プログラムの改変に大きなコストが必要になっ てしまう。 保守できなくなったコードは最終的に放置される。 62
63.
関連書籍:リファクタリング リファクタリング -
プログラ ムの体質改善テクニック レガシーコード改善ガイド 63
64.
例:リファクタリング RedPen でも多くのリファクタリングが行われている
ジェネリクスを廃止し、コードをシンプルにしたリファ クタリング https://github.com/recruit-tech/redpen/pull/ 341 • 変更前:http://bit.ly/1vfpLgJ • 変更後:http://bit.ly/1vEl9Ra 64
65.
オープンソースを公開する前 にやるべきこと: 中級編
Pull Request ベースの開発 リファクタリング 設計の勉強 65
66.
ソフトウェア設計技法 一部はデザインパターンと呼 ばれ、共通知識となっている
導入することで、コードの保 守性が向上する 注:私は教えらるほどわかっ ていないので割愛>< 66
67.
内容 オープンソースの基礎知識 気をつけるポイント
多くの影響をあたえるためのポイント 67
68.
敷居を低く 基本: 専門家でなくても利用できるようにする
理想: 専門家でなくてもコードを変更できる プラグイン化 研究に関する知識が必要な部分を一部コンポーネント に集約する 68
69.
宣伝する リリースしても、なにもしないと存在が知られな い。
布教活動が必要 オープンソース系の勉強会 ブログ を活用する 69
70.
オープンソース系カンファレ ンス できれば広いトピックを扱うところで発表するのがのぞましい。
言語毎 GoCon (Go言語), JJUG CCC (Java), Ruby Kaigi (Ruby), YAPC(Perl), PyCon (Python) etc トピック毎 機械学習、OS、BigData etc http://eventdots.jp/#26 70
71.
サポートする 新規ユーザをサポートする仕組みを提供する。 メーリングリスト
http://blog.redpen.cc/ チャット(IRC) Issue Tracker 新規ユーザが質問すると答えてくれる。 例: Apache Solr http://lucene.apache.org/solr/resources.html 71
72.
依存を避ける 不用意に多数のツール、ライブラリに依存しない。 インストールや実際に動かすところまで出来る限
りスムーズにする。 依存がある場合には、RPM などを利用して簡単 にインストール出来る道を残す。 72
73.
最後に 今回述べたトピックは全部いっぺんに取り入れる必要は ない。
ソフトウェア開発の勉強は研究室内だけで行うのは難し い。 企業の長期インターンに参加、もしくはアルバイトで 勉強できる。 技官としてソフトウェアエンジニアを雇うのも一つのア イデアかと。 73
74.
とはいえ 基礎研究を集中してできるのは学生の間だけ。 OSS
を頑張るのも素晴らしいが、まずは研究論 文で大きな業績を狙ってほしい。 74