Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rust を他の言語と同じように 活用して感じた採用効果
Search
hajime
March 11, 2024
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rust を他の言語と同じように 活用して感じた採用効果
hajime
March 11, 2024
Other Decks in Technology
See All in Technology
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
670
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
2.9k
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
330
Claude起点の仕様駆動開発
tanakaseiya
0
300
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
140
KanaAI
shreyas1009
0
140
Incremental HTTP
kazuho
5
2k
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
230
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
570
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
140
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
110
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
The Cost Of JavaScript in 2023
addyosmani
55
10k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Building an army of robots
kneath
307
47k
Chasing Engaging Ingredients in Design
codingconduct
0
340
The Pragmatic Product Professional
lauravandoore
37
7.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
560
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
380
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Transcript
ROSCAFE Rust を学ぶ会 Rust を他の⾔語と同じように 活⽤して感じた採⽤効果 2024.02.07 hajime watanabe
もくじ Rust の活⽤事例 2 : 採⽤⾯での良さ 3 : 会社紹介 4
: 終わりに 5 : Copyright © LabBase,Inc. All Rights Reserved. ⾃⼰紹介 1 :
渡辺 創 ⼤学院で⾃然⾔語処理を研究後、⼤⼿通信会社にてAIコンサルタン トを経験。事業会社で事業を深く理解しながら機械学習やデータを 活⽤した価値を創りたいという思いからLabBaseに⼊社。⼊社後 は、新規開発やLabBaseの機能開発を経験。現在リサーチチームの リーダーとして、機械学習やLLMを活⽤した機能のプロトタイプ作 成や検証を⾏っています。 株式会社LabBase Researchチーム
リーダー https://github.com/HHajimeW ⾃⼰紹介 Copyright © LabBase,Inc. All Rights Reserved.
話すこと‧離さないこと Copyright © LabBase,Inc. All Rights Reserved. • 弊チームでの Rust
使い⽅の具体例 • 採⽤のメインにRustを掲げて、感じた効果 話すこと • Rustならではの開発における⾔語的なメリット 話さないこと
Research チームとは Copyright © LabBase,Inc. All Rights Reserved.
Research チームのミッション Copyright © LabBase,Inc. All Rights Reserved. • 検索キーワードの推薦
• 募集の⾃動⽣成 • RAGを使った社内の問い合わせ • マーケティングの部分的な⾃動化 最新技術を利用したプロトタイプ開発。 直近は費やす時間に対してインパクトが大きそうな GPTをつかった機能に注力。
Copyright © LabBase,Inc. All Rights Reserved. Rust の活⽤事例
サービス紹介 Copyright © LabBase,Inc. All Rights Reserved. 学⽣が⾃らの研究情報を登録 企業の⽅が検索し、学⽣をスカウト 研究が忙しい学⽣が時間を節約しながら、
専⾨性を⽣かして就職活動ができるように。
検索例と学⽣情報 Copyright © LabBase,Inc. All Rights Reserved.
検索に使う技術的なキーワードは表記がゆれやすい。 学生側と企業側でキーワードの選択が異なる。 今回、着⽬した課題 Copyright © LabBase,Inc. All Rights Reserved. AND検索
や OR検索に も不向きがある。 検索クエリ:機械学習 or ⾃然⾔語処理 機械学習 NLP 深層学習 ⾃然⾔語処理
ベクトル検索で曖昧な検索を行う。 解決策 Copyright © LabBase,Inc. All Rights Reserved. 検索クエリをベクトル化
学生のキーワード列をベクトル化 機械学習 ⾃然⾔語処理 [1.5, ... , 0.4] [0.8, ... , -0.2] 機械学習 分⼦化学 NLP 深層学習 [0.7, ... , 0.1] [-0.3, ... , 1.2] ユークリッド距離で ランキング
主なユーザが人事のかたであるということもあり、 どこがヒットしたのかわかりにくいという声がある。 新たな課題 Copyright © LabBase,Inc. All Rights Reserved. AND検索
や OR検索 ベクトル検索 検索クエリ:機械学習 or ⾃然⾔語処理 機械学習 ⾃然⾔語処理 NLP 深層学習 解決策として、 学生のキーワード列をまとめてベクトル検索した後、 個々のキーワードとの距離を計算し、近い順に並べる。
データベース Copyright © LabBase,Inc. All Rights Reserved. keyword_id keyword_text embedding
student_id student_name keyword_list_embedding student_id keyword_id keywords students student_keyword_relations NLP 深層学習 1 1 2 1 1 1 2 NLP 深層学習 [0.9, …, -0.2] [-0.3, …, 1.2] 山田花子 [0.6, …, -0.7] NLP 深層学習 [0.9, …, -0.2] [-0.3, …, 1.2] [0.6, …, -0.7] NLP 深層学習 keywords の embedding カラム students の keyword_list_embedding カラム
処理フロー Copyright © LabBase,Inc. All Rights Reserved. 事前準備 • 各種データを
csv からデータベースにデータを⼊れる。 • OpenAI の Embeddingを使って、 ◦ keywords の embedding を取得し保存。(この時、pgvectorというPostgreSQLの拡張機能を使う) ◦ students の keyword_list_embedding を取得し保存。(この時、pgvectorというPostgreSQLの拡張機能を使う) 検索の実施 クエリ:機械学習 [0.1, …, -0.8] keyword_list_embedding を検索し、 ベクトルの距離が近い学⽣ Top n を取得 画像認識 学⽣の順序は変えずに個別の キーワードを検索クエリに 近い順に並べ替え 分⼦化学 バイオ 構造解析 BERT 遺伝⼦⼯学 DNA ⾃動運転 物体検出 画像処理 ⼈⼯知能 AI ⾳声認識 深層学習 機械学習 機械学習 構造解析 バイオ 分⼦化学 BERT 遺伝⼦⼯学 DNA 画像処理 物体検出 ⾃動運転 ⼈⼯知能 ⾳声認識 AI 深層学習 画像認識
実装のポイント(https://github.com/HHajimeW/pgvector) Copyright © LabBase,Inc. All Rights Reserved. CREATE OR REPLACE
FUNCTION get_similar_student_list( query_vector vector(1536) ) RETURNS SETOF type_student_list_output AS $FUNCTION$ DECLARE hit_keywords type_hit_keyword[]; begin RETURN QUERY SELECT stu.student_id, stu.student_name, ARRAY_AGG( ROW( key.keyword_id, key.keyword_text, key.embedding <-> query_vector )::type_hit_keyword ) AS hit_keywords FROM students stu LEFT JOIN student_keywords_relations skr ON stu.student_id = skr.student_id LEFT JOIN keywords key ON skr.keyword_id = key.keyword_id GROUP BY stu.student_id ORDER BY stu.keyword_list_embedding <-> query_vector limit 10; END; $FUNCTION$ LANGUAGE plpgsql; ストアドプロシージャでかいてvector を渡せば、 ⼀発で返ってくるものをかけて、Rust の Struct で受け取れる。 [{ student_id: 1, student_name: ⼭⽥花⼦, keyword_list: [ { keyword_id: 1, keyword_text: "NLP", distance: 0.1 }, { keyword_id: 2, keyword_text: "深層学習", distance: 0.8 }, ] }, …, {...} ] ユニークビジョンさん の CTO の方のブログ参考にしました https://qiita.com/aoyagikouhei/items/9e52ae732d0f795f4dfc
実装のデータ Copyright © LabBase,Inc. All Rights Reserved.
リサーチチームでの活用の仕方に 他の言語と大きく違いがあるわけではない。 Rustの活⽤の仕⽅ Copyright © LabBase,Inc. All Rights Reserved. •
今回のような実験のコード • プロトタイプのWebアプリケーション ▪ Axum とか、SQLx とか ▪ React ✖ Rust
Copyright © LabBase,Inc. All Rights Reserved. 開発⾯以外の良さ 実際に導入して感じた
Rust のよく聞く特徴 Copyright © LabBase,Inc. All Rights Reserved. • メモリ安全性
• ⾼パフォーマンス • スレッド安全性 • リッチな型システム • エラー処理が分かりやすい メリット デメリット • ⽇本語のドキュメントが少ない • ライブラリなどが未成熟 • 低レイヤの意識が必要 • 学習コストが⾼い
最近、⼊社する⼈の特徴 Copyright © LabBase,Inc. All Rights Reserved. Rustが好きな⼈ 低レイヤーへの 興味が強い
プロダクトで Rustを使いたい⼈ クレート読む プログラムをかくのが好き
Copyright © LabBase,Inc. All Rights Reserved.
考えられる因果 Copyright © LabBase,Inc. All Rights Reserved. ⼤変なこともあるけど、 プロダクトでRustを使いたい Rust
のデメリット 好奇⼼ 深く理解 する 意識せず 挑戦 学習コスト 気にしない つくるのが 好き Rust のメリット
Copyright © LabBase,Inc. All Rights Reserved. 採⽤において、Rust 使⽤を掲げたら 弊社の⽬指すカルチャーにマッチした⼈が ⼊社した
CTOはもしかしたら、また違う感覚をもっているかもしれない 是⾮カジュアル⾯談してみてください
None
25 Copyright © LabBase,Inc. All Rights Reserved. 研究を頑張る理系学⽣と企業をつなぐスカウト サービス「LabBase就職」、研究開発者‧技術 者と企業をつなぐスカウトサービス
「LabBase転職」、研究室とあなたをつなぐ 研究室検索サービス「LabBase研究室サーチ」 などを運営中。 The Research Empowerment Platform 株式会社LabBaseは、 【研究の⼒を、⼈類の⼒に。】という パーパスを掲げ、研究エンパワープラット フォームの創造を⽬指しています。
終わりに Copyright © LabBase,Inc. All Rights Reserved. では ⼀緒に働く仲間を募集しています カジュアル⾯談してみませんか?