Soumettre la recherche
Mettre en ligne
Internship at PFI
•
1 j'aime
•
1,361 vues
Sotaro Karasawa
Suivre
インターンシップ最終成果報告会@PFI
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 57
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Mobile Openid
Mobile Openid
Toru Yamaguchi
PHP懇親会発表資料
PHP懇親会発表資料
Sotaro Karasawa
第32回PHP勉強会
第32回PHP勉強会
Sotaro Karasawa
第二回 PHP 懇親会
第二回 PHP 懇親会
Sotaro Karasawa
Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会
Sotaro Karasawa
新しくなったOpenpear by nequal
新しくなったOpenpear by nequal
Sotaro Karasawa
openpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンス
Sotaro Karasawa
第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料
Sotaro Karasawa
Recommandé
Mobile Openid
Mobile Openid
Toru Yamaguchi
PHP懇親会発表資料
PHP懇親会発表資料
Sotaro Karasawa
第32回PHP勉強会
第32回PHP勉強会
Sotaro Karasawa
第二回 PHP 懇親会
第二回 PHP 懇親会
Sotaro Karasawa
Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会
Sotaro Karasawa
新しくなったOpenpear by nequal
新しくなったOpenpear by nequal
Sotaro Karasawa
openpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンス
Sotaro Karasawa
第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料
Sotaro Karasawa
Ethna Updates
Ethna Updates
Sotaro Karasawa
Openpear Project の紹介
Openpear Project の紹介
Sotaro Karasawa
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHP Source Code Search with PHP
PHP Source Code Search with PHP
Sotaro Karasawa
フレームワークxWordPress
フレームワークxWordPress
Sotaro Karasawa
Introduction of openpear
Introduction of openpear
Sotaro Karasawa
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ
Sotaro Karasawa
LT openpear@LL温泉
LT openpear@LL温泉
Sotaro Karasawa
PHP超入門@LL温泉
PHP超入門@LL温泉
Sotaro Karasawa
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会
Sotaro Karasawa
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会
Sotaro Karasawa
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
Sotaro Karasawa
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会
Sotaro Karasawa
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
Sotaro Karasawa
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
Sotaro Karasawa
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
Sotaro Karasawa
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
Contenu connexe
Plus de Sotaro Karasawa
Ethna Updates
Ethna Updates
Sotaro Karasawa
Openpear Project の紹介
Openpear Project の紹介
Sotaro Karasawa
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHP Source Code Search with PHP
PHP Source Code Search with PHP
Sotaro Karasawa
フレームワークxWordPress
フレームワークxWordPress
Sotaro Karasawa
Introduction of openpear
Introduction of openpear
Sotaro Karasawa
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ
Sotaro Karasawa
LT openpear@LL温泉
LT openpear@LL温泉
Sotaro Karasawa
PHP超入門@LL温泉
PHP超入門@LL温泉
Sotaro Karasawa
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会
Sotaro Karasawa
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会
Sotaro Karasawa
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
Sotaro Karasawa
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会
Sotaro Karasawa
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
Sotaro Karasawa
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
Sotaro Karasawa
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
Sotaro Karasawa
Plus de Sotaro Karasawa
(16)
Ethna Updates
Ethna Updates
Openpear Project の紹介
Openpear Project の紹介
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
PHP Source Code Search with PHP
PHP Source Code Search with PHP
フレームワークxWordPress
フレームワークxWordPress
Introduction of openpear
Introduction of openpear
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ
LT openpear@LL温泉
LT openpear@LL温泉
PHP超入門@LL温泉
PHP超入門@LL温泉
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
Dernier
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Dernier
(9)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Internship at PFI
1.
Internship at Preferred Infrastructure Sotaro Karasawa
(sotarok) Yet Another PHP Programmer
2.
Agenda • 目標 • 転置インデックス用ライブラリ
libkorakuen – 中間発表までのおさらい – 新しいアプローチでの実装 – 実装にあたってのポイント – 英語 Wikipedia のインデックス作成 – デモ – libkorakuen のこれから • インターンを終えて Copyright © sotarok @ PFI.
3.
目標 • 転置インデックス用のライブラリをつくる! –
メモリに乗り切らないような大規模で使える – インデックスファイルを圧縮する – Sedue で使える Copyright © sotarok @ PFI.
4.
転置インデックス用ライブラリ libkorakuen
5.
中間発表までのアプローチ
⽂書 読み込み libkorakuen Temporary Index On Memory Encoder Index Index Copyright © sotarok @ PFI.
6.
中間発表までのアプローチ
⽂書 読み込み libkorakuen Temporary Index On Memory Encoder Index Keyword: Document (Pos, Pos, ...), Document (Pos , ...), ... Keyword: Document (Pos, Pos, ...), Document (Pos , ...), ... Index Keyword: Document (Pos, Pos, ...), Document (Pos , ...), ... ... Copyright © sotarok @ PFI.
7.
中間発表までのアプローチ
⽂書 読み込み libkorakuen Temporary Index On Memory Encoder Index Index Copyright © sotarok @ PFI.
8.
中間発表までのアプローチ
⽂書 Temporary 書き出す libkorakuen Index On Memory Encoder Index Index Copyright © sotarok @ PFI.
9.
中間発表までのアプローチ
⽂書 読み込み Temporary 書き出す libkorakuen Index On Memory Encoder Index Index Copyright © sotarok @ PFI.
10.
中間発表までのアプローチ
⽂書 libkorakuen Temporary Index On Memory Encoder Index Index Copyright © sotarok @ PFI.
11.
中間発表までのおさらい • 中間発表時
– ⼀応インデックスは作れた – 10万⽂書程度で実験もOK ところが... Copyright © sotarok @ PFI.
12.
問題点 • ⼀時インデックスに,Tokyo Cabinet
を使っていた Copyright © sotarok @ PFI.
13.
問題点 • ⼀時インデックスに,Tokyo Cabinet
を使っていた Keyword Index Keyword2 Index ... ... Copyright © sotarok @ PFI.
14.
問題点 • ⼀時インデックスに,Tokyo Cabinet
を使っていた Keyword Index Index2 Keyword2 Index ... ... Copyright © sotarok @ PFI.
15.
問題点 • ⼀時インデックスに,Tokyo Cabinet
を使っていた Keyword Index Index2 Index3 Keyword2 Index ... ... Copyright © sotarok @ PFI.
16.
問題点 • ⼀時インデックスに,Tokyo Cabinet
を使っていた Keyword Index Index2 Index3 Keyword2 Index ... ... • メモリから⼀時インデックスに書き出すたびに Tokyo Cabinet上での「Append」が発⽣ • 巨大なデータを扱うと途中から⼊らなくなる Copyright © sotarok @ PFI.
17.
アプローチを考え直す 英語のWikipediaすべてが目標
英語のWikipediaを最低目標とし 可能な限りスケールする設計 Copyright © sotarok @ PFI.
18.
新しいアプローチ •
MapReduce 的な考え⽅! • 途中でインデックスを作成せずにすべて読み込む • それぞれのファイルをソートする • 2つずつマージする • インデックスを作成する Copyright © sotarok @ PFI.
19.
読み込む
20.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ... ... ... Copyright © sotarok @ PFI.
21.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ... ... ... Copyright © sotarok @ PFI.
22.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ... ... ... Copyright © sotarok @ PFI.
23.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ... ... ... Copyright © sotarok @ PFI.
24.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ... ... ... Copyright © sotarok @ PFI.
25.
何も考えずにとりあえず読み込む
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 6 3 0 ⼀時ファイル ... ... ... Copyright © sotarok @ PFI.
26.
分割された⼀時ファイル ⽂書
keyword id doc id pos 1 1 0 libkorakuen 2 1 4 3 1 10 4 2 0 5 2 8 1 2 12 ⼀時ファイル 6 3 0 ... ... ... Copyright © sotarok @ PFI.
27.
ソートする
28.
ソートする
On Memory keyword id doc id pos ⽂書 1 1 0 2 1 4 3 1 10 libkorakuen 4 2 0 5 2 8 1 2 12 ⼀時ファイル 6 3 0 ... ... ... Copyright © sotarok @ PFI.
29.
ソートする
On Memory keyword id doc id pos ⽂書 1 1 0 1 2 12 2 1 4 libkorakuen 3 1 10 4 2 0 5 2 8 ⼀時ファイル 6 3 0 ... ... ... ソート済み ⼀時ファイル Copyright © sotarok @ PFI.
30.
マージする
31.
マージする
ソート済み ソート済み ソート済み ⼀時ファイル ⼀時ファイル ... ⼀時ファイル ⽂書 1 2 n libkorakuen マージ済み ⼀時ファイル 1
32.
マージする
ソート済み ソート済み ソート済み ⼀時ファイル ⼀時ファイル ... ⼀時ファイル ⽂書 3 4 n libkorakuen マージ済み マージ済み ⼀時ファイル ⼀時ファイル 1 2
33.
マージする
ソート済み ソート済み ⼀時ファイル ⼀時ファイル ⽂書 n-1 n libkorakuen マージ済み マージ済み マージ済み ⼀時ファイル ⼀時ファイル ... ⼀時ファイル 1 2 2/n
34.
マージする ⽂書 libkorakuen ひとつの大きな
マージ済み ⼀時ファイル
35.
インデックス作成
36.
インデックス作成
Keyword Document (Pos, Pos, ...), Document (Pos , ...), ... Document (Pos , ...), ... ⽂書 Document (Pos , ...), ... Keyword Document (Pos, Pos, ...), Document (Pos , ...), ... libkorakuen Document (Pos , ...), ... Document (Pos , ...), ... Keyword Document (Pos, Pos, ...), Document (Pos , ...), ... ひとつの大きな マージ済み Document (Pos , ...), ... ⼀時ファイル Document (Pos , ...), ...
37.
インデックス作成
Keyword Document (Pos, Pos, ...), pos Document (Pos , ...), ... 0 Document (Pos , ...), ... ⽂書 Document (Pos , ...), ... Keyword Document (Pos, Pos, ...), pos Document (Pos , ...), ... libkorakuen 122 Document (Pos , ...), ... Document (Pos , ...), ... Keyword Document (Pos, Pos, ...), ひとつの大きな pos Document (Pos , ...), ... マージ済み 456 Document (Pos , ...), ... ⼀時ファイル Document (Pos , ...), ...
38.
インデックス作成
インデックス! ⽂書 libkorakuen
39.
ポイント
40.
ポイント • 簡潔で,Sedue にも使いやすそうなAPI
– ⽂書数分だけ Addして – BuildIndexするだけ – Search で探す Copyright © sotarok @ PFI.
41.
Add • 単語の分割やポジションはライブラリの外で • ⽂書ID(外部で管理してるものでOK)
– 自動的に内部でIDを振りなおす • 単語とその出現場所のリスト(vector) – 単語IDも⽣成 Copyright © sotarok @ PFI.
42.
Search • 単語をわたす (結果を⼊れるvectorもわたす) •
その単語の出現するドキュメントとポジションが 得られる Copyright © sotarok @ PFI.
43.
圧縮 • 中間発表からかわらず,Variable Byte
Code Copyright © sotarok @ PFI.
44.
Variable Byte Code 3:
00000000 00000000 00000000 00000011 3: 10000011 Copyright © sotarok @ PFI.
45.
Variable Byte Code 3:
00000000 00000000 00000000 00000011 3: 10000011 Byte ? Copyright © sotarok @ PFI.
46.
圧縮 •
ドキュメントIDのリスト • 昇順にソートされている • 前の⽂書との差分に変換 • 差分とった整数をエンコード Copyright © sotarok @ PFI.
47.
英語インデックスの作成 • 単語数: 約
1500 万(たぶん) • ドキュメント: 約 300万 • 元⽂書: 8.9 GB • 作成時間: 1:30:37.09 • 作成後インデックス:6.1 GB – ドキュメントIDを振りなおしているおかげでほとん どがものすごく⼩さい整数 → 圧縮率良 Copyright © sotarok @ PFI.
48.
デモ
49.
その他のポイント • テストケースかきました –
まだ GetKeywordID, GetDocID しかない Copyright © sotarok @ PFI.
50.
その他のポイント2 • ライブラリ検証用プログラム (デモしたやつ)
– ii_search – ii_check Copyright © sotarok @ PFI.
51.
これからの libkorakuen
52.
これからの libkorakuen • Sedue
に • テストケースかきまくる必要性 • ソート/マージ はスレッド使えば並列作業ができ るはず Copyright © sotarok @ PFI.
53.
インターンを終えて
54.
成果として • Tokyo Dystopia
を使っていては作れない大きさの 転置インデックスが作れるライブラリが作成でき た Copyright © sotarok @ PFI.
55.
やりたかったのにできなかった • Sedue への組み込み •
PHP 関連のライブラリ – これは趣味でもできそうなので近いうち実装する Copyright © sotarok @ PFI.
56.
その他さまざまな思い • 技術的なことに関して –
アルゴリズムやデータ構造を考えてプログラムを 組むこと – ライブラリを利用するか自分で実装するか – 実装の背景にある理論や研究 • 技術者として – 自分の知らない分野のことを勉強するのは楽しい – PHP とか怖くないという自信(何 • まとまらないので近⽇中にブログに書きます! Copyright © sotarok @ PFI.
57.
ありがとうございました お世話になりました!
Télécharger maintenant