Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust を他の言語と同じように 活用して感じた採用効果
Search
hajime
March 11, 2024
Technology
260
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
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
170
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
180
背中から、背中へ /paying forward to community
naitosatoshi
0
190
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
200
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
160
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
200
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
190
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
300
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
280
WebGIS AI Agentの紹介
_shimizu
0
600
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
310
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
300
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Thoughts on Productivity
jonyablonski
76
5.2k
For a Future-Friendly Web
brad_frost
183
10k
A Soul's Torment
seathinner
6
3k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Designing for Performance
lara
611
70k
Odyssey Design
rkendrick25
PRO
2
710
Faster Mobile Websites
deanohume
310
32k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
320
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
Testing 201, or: Great Expectations
jmmastey
46
8.2k
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. では ⼀緒に働く仲間を募集しています カジュアル⾯談してみませんか?