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
2024_1_17_ローカルLLMに向き合う会_LT会発表資料
Search
hikettei
January 17, 2024
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2024_1_17_ローカルLLMに向き合う会_LT会発表資料
hikettei
January 17, 2024
More Decks by hikettei
See All by hikettei
cl-waffe2
hikettei
0
220
Other Decks in Technology
See All in Technology
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
5.1k
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
190
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
hackers_champloo_2026_tidb
makocchi
0
170
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
Getting Started with Google Antigravity
glaforge
0
320
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
470
Metadata - Section 1: HTML Basics
mohab1
0
120
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
PRO
0
440
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.3k
会社説明資料
persolserverworks
0
9.8k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
The Limits of Empathy - UXLibs8
cassininazir
2
720
Discover your Explorer Soul
emna__ayadi
2
1.3k
Building Applications with DynamoDB
mza
96
7.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
Why Our Code Smells
bkeepers
PRO
340
58k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Balancing Empowerment & Direction
lara
6
1.3k
Designing Experiences People Love
moore
143
24k
Transcript
hikettei ਂֶशίϯύΠϥೖ ϩʔΧϧLLMʹ͖߹͏ձ (2024/01/17༻)
ࣗݾհ hikettei @ichndm - ਂֶशͷόοΫΤϯυΛ͍ͬͯ͡ΔਓؒͰ͢ @hikettei - ڵຯ͋Δ͜ͱ: ਂֶशίϯύΠϥ/ྔࢠԽ/ߦྻԋࢉ -
Common Lisp͕͖ͰझຯͷOSSΛΑͬͯ͘·͢ - ·ͨLLMؔ࿈ͷ͜ͱΓ͍ͨͰ͢
ʙ ͓ॻ͖ ʙ - 1. ਂֶश”ϑϨʔϜϫʔΫ”ͷཱ - 2. தؒදݱ౷ҰԽͷಈ͖ -
3. ਂֶश”ίϯύΠϥ"ͷཱ - 4. ࠷దԽख๏Λ͍ͯΈΔ (Polyhedral Compiler) - 5. ࠷ۙͷ໘നͦ͏ͳDLίϯύΠϥͱ͔ (Tinygrad) - 6. ࢀߟจݙ (ͬͱΓ͍ͨਓ͚) ਂֶशͷόοΫΤϯυΔਓؒͬͯ݁ߏك༗Β͍͠ ͔ͤͬ͘ͳͷͰֶशͨ͠ϞσϧΛͲ͏ӡ༻͢Δ͔ͷΛ͠·͢ ʙ࣍ʙ
1. ਂֶश”ϑϨʔϜϫʔΫ”ͷཱ ਂֶशϞσϧͷܭࢉաఔΛ෦ͰͲ͏දݱ͢Δ͔ʁ (Ҿ༻: https://onnx.ai/onnx/intro/concepts.html) - ӈͷΑ͏ͳܭࢉάϥϑΛΈ߹Θͤͯදݱ͢Δ ྫ: y=ax+b ςϯιϧ͕leaf,
ԋࢉ͕ϊʔυͷநߏจ(AST) - ͜ͷදݱΛ౷Ұ͠ɼମܥతͳϞσϧͷֶशɼਪɼݕূΛࢧԉ͢Δ ͷ͕ਂֶशϑϨʔϜϫʔΫ PyTorchTensor fl ow, JAXͳͲ ଟ͘ΈࠐΈDSL (Embedded DSL)ͱ࣮ͯ͠ݱ ͜ΕΒϑϨʔϜϫʔΫѻ͑Δάϥϑͷදݱྗ͕ߴ͍ͷͰɼදݱͰ͖ΔϞσϧ෯͍ C++/Python/Julia͕ओྲྀ PythonͷAPIΛհͯ͠άϥϑߏΛ࡞ͨ͠Γ͢Δɻ - ͜ͷάϥϑߏΛͱʹɼࣗಈඍͨ͠ΓॱൖΛܭࢉͨ͠Γ͢Δɻ
2. தؒදݱ౷ҰԽͷಈ͖ - ONNX (ΦχΩε) 20179݄7ʹFacebookɼMicrosoft͕ࣾத৺ͱͳΓఏএ - ͦΕ·ͰҟͳΔϑϨʔϜϫʔΫؒͷܭࢉάϥϑޓੑ͕ͳ͔ͬͨ ONNXΛதؒදݱͱ֤͠ϑϨʔϜϫʔΫ͕αϙʔτ͢Δ͜ͱͰɼ૬ޓӡ༻ੑΛ࣮ݱ -
ֶशڥͱਪڥΛ͢Δಈ͖ ҟͳΔϑϨʔϜϫʔΫؒͰಉ݁͡ՌΛ࠶ݱ͘͢͠ͳͬͨ e.g.:) PyTorchͰֶशͨ͠ϞσϧΛONNXʹอଘͯ͠ɼਪʹಛԽͨ͠ϑϨʔϜϫʔΫͱ૬ޓӡ༻͢Δɻ ਪʹಛԽͨ͠ίϯύΠϥΛ։ൃ͢Δ͕Ͱ͖ͨ ֶशϞσϧΛϓϩμΫτʹԠ༻͢Δࡍʹɼ
3. ਂֶश”ίϯύΠϥ”ͷཱ ܭࢉάϥϑΛ࠷దԽ͢ΔίϯύΠϥ 1. ֶशࡁΈਂֶशϞσϧΛ (ONNXͳͲͷ) தؒදݱͱͯ͠ड͚औΓ (ೖྗ) 2. (෦)
άϥϑͷֶతੑ࣭σʔλͷґଘؔΛݩʹɼ࠷దԽΛ͠ (ߴϨϕϧදݱ) 3. తͷϋʔυΣΞ(CPU/GPU)ͷੑ࣭ʹಛԽͨ͠࠷దԽΛ͠ (Ϩϕϧදݱ) 4. ϋʔυΣΞͰ࣮ߦͳܗࣜ(C++/CUDAͳͲ)ͰίʔυΛੜ͢Δ (ग़ྗ) ͜Ε͕ਂֶशίϯύΠϥͷఆٛ
4. ਂֶशίϯύΠϥͷॴ ϓϩμΫτ։ൃʹ͓͚Δॴ ֶशࡁΈϞσϧ ֶशڥ ਪڥ(ίϯύΠϥ) “ίϯύΠϥ””ϑϨʔϜϫʔΫ”ΑΓ୲͢Δकඋൣғ͕ڱ͍ (ਪ͚ͩΛߟ͑ΔͳΒ) - ਪ͢ΔڥʹಛԽ͕͍͢͠
i.e.:) GPUڥͰֶशͨ͠ϞσϧΛCPUNPUʹҠ২͢Δͷָ͕ ྫ: GPU͋ΓͷPyTorchͰֶशͨ͠ϞσϧΛ࠷దԽͯ͠ϥζύΠʹಈ͔࣌͢ͳͲ - ϑϨʔϜϫʔΫͷϨϕϧͰࢪͤͳ͍࠷దԽ͕ՄೳʹͳΔ (࠷ۙͷPyTorchJITඪ४ࡌͰ͕͢ɻɻɻ) PyTorchؙ͝ͱҠ২ࠎ͕ંΕΔ͚ͲɼίϯύΠϥ͍ͬͯ͡Cͷίʔυు͔ͤͯҠ২͢ΔํͳΒݱ࣮తͩ͠࠷దԽ͍͢͠ (ਤ: ֶश~ਪͷྲྀΕ͜ͷΑ͏ͳۀߏʹͳͬͯΔ)
5. ࣮ࡍͷ࠷దԽख๏ͷྫ - ࠷ۙษڧͨ͠ख๏ʹ͍ͭͯͨͯ͘͠ɼࠓ͔Β͍ͩͿҧ͍ͰϚΠφʔͳΛ͠·͢ɻ Θ͔Γ͑͘͢ΕΔࣗ৴͕ͳ͍ͷͰɼͬͱཏతͰΘ͔Γ͍͢ࢿྉΛష͓͖ͬͯ·͢ɻ https://xsig.ipsj.or.jp/wp-content/uploads/sites/6/2019/06/imai_20190529_xSiG_public_s.pdf - ਂֶशίϯύΠϥͷ֓ཁͱ࠷ۙͷಈ - ࠓ͔Β͢ͷɼߦྻੵ(gemm)ΈࠐΈ(Conv,
im2col)ͳͲ ϝϞϦͷಡΈํ͕ෳࡶͳϞσϧΛࣗಈͰฒྻԽ/࠷దԽ͢Δͱ͍͏ٕज़Ͱ͢ɻ - ͜ͷੈքʹײతͳख๏͔Βͳ͔ͥߦྻ͕ͨ͘͞Μग़ͯ͘Δख๏͕͋Γ·͢ɻ
5. ࣮ࡍͷ࠷దԽख๏ͷྫ ଟॏforจͷ࠷దԽ άϥϑͷߏ͔ΒҎԼͷίʔυ͕ੜͰ͖Δͱ͢Δ
5. ࣮ࡍͷ࠷దԽख๏ͷྫ ଟॏforจͷ࠷దԽ άϥϑͷߏ͔ΒҎԼͷίʔυ͕ੜͰ͖Δͱ͢Δ ← kͱjΛೖΕସ͑ͯຊ࣭తͳҙຯಉ͡
5. ࣮ࡍͷ࠷దԽख๏ͷྫ ଟॏforจͷ࠷దԽ άϥϑͷߏ͔ΒҎԼͷίʔυ͕ੜͰ͖Δͱ͢Δ ← kͱjΛೖΕସ͑ͯຊ࣭తͳҙຯಉ͡ - i, j, kͷϧʔϓͷॱ൪దʹฒͼସ͑ͯɼίʔυਖ਼͘͠ಈ࡞͢Δɻ(ґଘੑ͕ͳ͍͔Β)
- Ͳͷॱ൪ͰϧʔϓΛճ͔͢Ͱɼίʔυͷେ͖͘มΘΔɻ - దʹมܗ͢ΔͱฒྻԽͨ࣌͠ʹϝϞϦΛಡΉॱ൪͕͓͔͘͠ͳͬͯɼίʔυ͕յΕΔ - ϝϞϦ্Ͱ͍ͭ͘ஔ͖ʹྻͷཁૉΛಡΈࠐΜͰ͍Δ͔ʁ(CPUͳΒ1ͭஔ͖ͩͱخ͔ͬͨ͠Γ) Q. ͜ͷෳࡶͳґଘؔΛࣗಈͰ࠷దԽ͢ΔϞσϧΛ࡞Εͳ͍͔ʁ
5. ࣮ࡍͷ࠷దԽख๏ͷྫ Polyhedral Compiler - kͷ0, 1, 2, … 32ͷॱ൪Ͱಡ·ͳ͍ͱ͍͚ͳ͍
- i, jΛಡΉॱ൪ҙͰ͍͍ ੍ (࣮ࡍͬͱటष͍) తؔ - jΛ࠷ޙʹ࣋ͬͯ͘ΔͱϝϞϦੑೳ͕ߴ͍ 1. Z[i, k]X[i, j]ʹܾఆ͞ΕΔ 2. Z[i, k]Y[j, k]ʹܾఆ͞ΕΔ (einsum(ij, jk -> ik)ͷσʔλґଘؔ, Credit: https://github.com/ftynse/clint) → ͜ΕΛάϥϑʹॻ͘ͱ… (Polyhedra) - ҹ͕σʔλͷґଘؔΛද͢ ͜ΕΛյ͞ͳ͚Είʔυมܗͯ͠OK - ઢܗܭըͱͯ͠࠷దԽͰ͖Δ LaTeXྗͷѹతͳܽͰ៉ྷʹࣜΛॻ͚·ͤΜͰͨ͠ɻ͝༰͍ࣻͩ͘͞ Կ͕خ͍͔͠ʁ → ྫ: ߦྻԋࢉͷ͓͍ͯॏཁͳฒྻԽΛࣗಈͰνϡʔχϯάͰ͖Δ
5. ࣮ࡍͷ࠷దԽख๏ͷྫ (༨ஊ) ࣮ͯ͠Έͨ (https://github.com/hikettei/cl-polyhedral) (OpenBLASͰ9G fl opsग़ΔCPUͱߦྻͷαΠζͩͱࣗ࡞ͷ͕ͭ3GFlops͘Β͍ɼଟAVX512໋ྩ͑͏গ͕ࠩ͘͢͠ͳΔͳΔͣ) → ਂֶशͰ͏ΦϖϨʔλʔΛɼࣗલͰߴʹੜ͢Δ͜ͱ͕Ͱ͖ͨ
6. ࠷ۙͷDLίϯύΠϥ Tinygrad (https://github.com/tinygrad/tinygrad) - 202211݄͔Β։ൃ͕࢝·ͬͨൺֱత৽͍͠DLίϯύΠϥ (ΊͬͪΌ໘ന͍) - ಛ: 0͔Β100·ͰࣗಈίʔυੜʹཔΔ
ਂֶशͰ͏ΦϖϨʔλʔͷ࣮Λશͯࣗಈੜʹґଘ͢Δͱ͍͏ۃͳํ ॴ ॴ - ϚΠφʔڥʹ1000ߦ͘Β͍ͷ֦ுΛॻ͚ϑϨʔϜϫʔΫؙ͝ͱҠ২Ͱ͖Δ e.g.:) ϥζύΠʹಛԽͨ͠ਂֶशίϯύΠϥΛ࡞Ζ͏ͱࢥͬͯधཁ͕ͳͯ͘։ൃͷܖػ͕ͳ͔ͬͨ - શͯίʔυੜʹཔΔ <-> ґଘϥΠϒϥϦ͕΄΅0 e.g.:) CUDAͱ͔PyTorchͷόʔδϣϯཧͰϓϩδΣΫτ͕ࢮ͵͜ͱ͋Μ·Γͳ͍ - ߴԽ - ߴԽ͕͍͠ ͬͺΓਆͷΑ͏ʹݡ͍ίϯύΠϥ͕ඞཁ + खಈͰνϡʔχϯά͢Δ͜ͱͱͷࠩେ͖͍ e.g.:) ܭࢉʹ༻͍Δάϥϑͷ୯Ґ͕ࡉ͔͍ -> ΑΓଟ͘ͷ໋ྩΛ༥߹ͨ͠ΓͰ͖Δ - ͬͯΔ͜ͱͷIQ͕ߴ͗͢Δ άϥϑͷ୯Ґ͕େ͖͍ vs খ͍͞ɼ࣮ͷ͢͠͞ vs ͠͞ͷτϨʔυΦϑɻͦͷTinygradҰ൪͍͠ͱ͜ΖΛߦͬͯΔ ίϯύΠϥຊମ5000ߦ͘Β͍ͷPythonίʔυͰهड़͞Ε͍ͯΔ
ਂ۷Γ͍ͨ͠ਓ - The Deep Learning Compiler: A Comprehensive Survey https://arxiv.org/pdf/2002.03794.pdf
͜ΕΛಡΊશମ૾͕Θ͔ΔɼDLίϯύΠϥͷSurveyจ - Introduction to Polyhedral Compiler https://www.slideshare.net/ahayashi10/introduction-to-polyhedral-compilation Polyhedral Compilerͷ͏ͪΐͬͱݫີͳεϥΠυ ͜ͷಈըྑ͔ͬͨ: https://www.youtube.com/watch?v=rBhvUoGYhXo - ͦͷଞ໘ന͍ϦϙδτϦ … TVM, ONNX, Tinygrad, Petalisp, etc… ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ :) SpeakerDeck: (ະఆ)