Upgrade to Pro — share decks privately, control downloads, hide ads and more …

この先を生き残るために!!「生存戦略としてのLLMアプリ開発技術」/20240124_PE-...

 この先を生き残るために!!「生存戦略としてのLLMアプリ開発技術」/20240124_PE-BANK

吉田真吾

January 24, 2024
Tweet

More Decks by 吉田真吾

Other Decks in Technology

Transcript

  1. 吉田真吾 n バックグラウンド 証券システム基盤開発 p基盤システム開発、Oracleチューニング エバンジェリスト‧SA p講演113回/年 pAWS設計‧構築‧移⾏ pエバンジェリスト‧SA スタートアップCTO

    pタレントマネジメントSaaS 開発‧運⽤ n 現在のしごと (株) セクションナイン 代表取締役 pAWS、DevOps、サーバーレス開発 n 実績等 pAWSウルトラクイズ 初代チャンピオン (2012年) pAWS Samurai 2014 / 2016 pAWS Serverless Hero
  2. ੜ੒"* (FOFSBUJWF"* େྔͷςΩετͰτϨʔχϯά͞Εɺจষ಺ͷ࣍ͷ୯ޠΛ༧ଌ͢Δେن໛ ݴޠϞσϧ --. ͳͲΛར༻͢Δɻ "*ͷҰछɻ ੜ੒"*ͷ୅දతͳྫ  ࣗવݴޠੜ੒

    /-1 /-( $IBU(15ͷΑ͏ʹɺ͔͋ͨ΋ਓ͕ؒੜ੒ ͔ͨ͠ͷΑ͏ͳจষΛੜ੒͢Δٕज़ɻ෺ޠ΍اըͷੜ੒ɺνϟοτ Ϙοτͱͷର࿩ɺ&ϝʔϧͷ࡞੒ͳͲͷ༻్Ͱར༻Ͱ͖Δ  ը૾ੜ੒ ("/ (FOFSBUJWF"EWFSTBM/FUXPSL ͳͲͰೖྗΛݩʹ৽ ͍͠ը૾Λੜ੒͢Δٕज़  ࣗવݴޠ͔Βը૾Λੜ੒ͨ͠Γɺݴޠͱը૾Λੜ੒͢ΔϚϧνϞʔ μϧͳϞσϧ΋͋Δ ج൫ϞσϧͷਐԽ • 5SBOTGPSNFS "UUFOUJPO*T"MM:PV/FFEɿBS9JW ͔Β (15·Ͱ • ϩʔΧϧ--.)VHHJOH'BDF $JWJU"* "*Ϟσϧ൛ͷ(JU)VC(JUMBC • ج൫Ϟσϧͷ։ൃʹ͸਺ेԯن໛͔͔Δ
  3. $IBU(15ڰ૝ۂ ೥݄೔ 0QFO"*͕ࣾ$IBU(15ΛϦϦʔε • ର࿩ମݧͷੑೳ͕ߴ͍ͱ࿩୊ • िؒˠສϢʔβʔ ϲ݄ˠԯϢʔβʔ • (15ԯύϥϝʔλʔ

    ೥݄·Ͱ • (PPHMFඇৗࣄଶએݴ • .JDSPTPGUఏܞ Πϯϑϥఏڙ CJOH΁ͷ૊ΈࠐΈ ೥݄೔ $IBU(15 "1*ΛϦϦʔε • UFYUEBWJODJͷͷίετͰར༻Ͱ͖Δ HQUUVSCP • CPU΍ΞϓϦͳͲͷϒʔϜ ೥݄೔ (15ΛϦϦʔε • ஹݸ ࣗশ ͷύϥϝʔλ਺ • ϚϧνϞʔμϧػೳ ςΩετ ը૾ͳͲ ˞ະఏڙ
  4. --.׆༻ɿ೥;Γ͔͑Γ #$ ফඅऀ ## Ϗδωε׆༻ $IBU(15ϒʔϜ • ۀ຿ޮ཰Խ • ݕࡧͷ୅ସ

    • Ξγελϯτ FUDʜ "*ΩϟϥΫλʔ • "*൴ঁ • "*5VCFS • -JWF% 7PJDFWPYʜ ࣾ಺׆༻ • ࣾ಺$IBU(15 • ʴηΩϡϦςΟˍΨόφϯε • ࣾ಺φϨοδͷ3"(׆༻ • ࣾ಺υΩϡϝϯτΠϯσοΫε αʔϏεج൫ • αʔϏε಺ͷ3"(׆༻ • 2" • ΠϯαΠτੜ੒ • $IBU2VFSZ
  5. --.׆༻ɿ೥;Γ͔͑Γ • ϏδωεΞϓϦͷ੒ޭऀͷෆࡏ • ηϛφʔ΍ࣾ಺$IBU(15 ͭΔ͸͠ചΓ ͘Β͍ • ׆༻࣮ײࣗମ͸ͱͯ΋ߴ͍ •

    POΞγελϯτͰຖ೔ʮนଧͪܕͷᛉ૝ʯ • ͜ͷϓϨθϯ΋Ұ൪࣌ؒͷ͔͔ΔΞ΢τϥΠϯ࡞੒͸$IBU(15ʹ·͔ ͤͯ෼ͰͰ͖ͨ • $IBU(15ΞϓϦ͕υϥΠϒͷ࿩͠૬ख • ະདྷ 5P#F ͱݱࡏ "T*T ͷࠩ෼ΛͲ͏ຒΊΔ͔  ਖ਼͘͠5P#FΛఆٛ͢Δ  ਖ਼͘͠"T*TΛͱΒ͑Δ  ద੾ʹొ͍ͬͯ͘
  6. τϥϯβΫγϣϯՁ஋ˢ ઐ໳ੑˢ τʔΫϯ૿ʗίετ௿ˠ ࣌ؒ࣠ˠ RAG / チャットボット エージェント / 外部実⾏性能

    専⾨性⾼いがシットジョブが多い領域 ⾃⽴業務エージェント (RAG,CodeInterpreter,etc…) AIキャラクター 営業提案書⽣成+レビュー 監査調書⽣成+レビュー 特許申請⽣成+レビュー AIキャバクラ AITuber 受注活動計画/通知設定 スケジュール調整 再現性 ਖ਼͘͠5P#FΛఆٛ͢Δ
  7. ਖ਼͘͠"T*TΛͱΒ͑Δ • े෼ͳ౤ࢿΛ४උ͍ͯ͠Δݱ৔͸͞΄Ͳଟ͘ͳ͍ • lࣄۀߩݙzΛϕʔεʹยखؒʹ--.z΋z΍Β͟ΔΛಘͳ͍ • ద༻ՄೳͳϢʔεέʔεࣗମʹؾ͍ͮͯͳ͍ݱ৔͕େ൒Ͱ͋Δ • ٕज़ଆͷϘτϜΞοϓʹ͸ݶք͋Γ •

    اը΋ίϥϘϨʔγϣϯ͕؊ اըͱٕज़ݟۃΊΛ͢͹΍͘ճ͢ඞཁ • ͢΂ͯͷγνϡΤʔγϣϯʹ"*ΤʔδΣϯτɺͱͳΔʹ͸·ͩ ٕज़తͳགྷΓ৔͕Կճ͔͋Γͦ͏ • ͋ͨΓͷΤʔδΣϯτϒʔϜ ˠ ग़དྷ͸͍·͍ͪ • ݱࡏͷ՝୊ • ೖྗϓϩϯϓτʹΑΔݸਓ৘ใɺػີ৘ใͷྲྀग़͕౰ͨΓલʹى͖ͯ ͍Δ • --.ಛԽͳ߈ܸ τʔΫϯফඅ߈ܸɺϞσϧ%P4ɺϥΠϒϥϦ੬ऑੑ ͕૿͑Δ • --.ੑೳͷධՁ͸ϦʔμʔϘʔυ͕͋Δ͕ɺΞϓϦϨϕϧͰͷධՁํ ๏ཱ͕͍֬ͯ͠ͳ͍ ˠ มߋ͝ͱʹ໨ݕ֬ೝ
  8. ਅͷʮ"*ͷຽओԽʯʹඞཁͳίϥϘϨʔγϣϯ  "*.-ΤϯδχΞ • --.ͷ࢓૊Έ΍࠷৽৘ใɺຊ൪ӡ༻ʹ޲͚ͨϊ΢ϋ΢΍νϡʔχϯά ͳͲɺσϦόϦʔʹ޲͚ͯඞཁͳέΠύϏϦςΟ  ΞϓϦέʔγϣϯΤϯδχΞ • --.ٕज़Λ࣮ࡍʹϑϩϯτΤϯυ΍Πϯϑϥ্ʹߏங͠ɺ$*$%ύΠ

    ϓϥΠϯʹࡌͤͯܧଓతʹσϦόϦʔ͢ΔͨΊʹඞཁͳέΠύϏϦ ςΟ  υϝΠϯΤΩεύʔτ • ֤υϝΠϯͰ༗ޮͳϢʔεέʔεΛݟ͚ͭͯίϯϓϥΠΞϯεɺϓϥ ΠόγʔอޢͳͲʹਫ਼௨͍ͯ͠Δ
  9. ద੾ͳొΓ͔ͨ • υϝΠϯΤΩεύʔτʴΞϓϦ։ൃऀʴ.-ΤϯδχΞͷڠۀ • Ϣʔεέʔε͝ͱͷࣄۀߩݙ౓ͷࢉग़ • ͢͹΍͍࣮ݱੑͷݕূɺσϞ࣮૷ • ٕज़తΞϓϩʔνͷϨϕϧΞοϓ •

    69ݕূɺηΩϡϦςΟݕূɺίϯϓϥΠΞϯεݕূ • ΨΠυϥΠϯͷࡦఆ • औΓѻ͍σʔλ͝ͱͷϦεΫ؅ཧ • ϨϏϡʔମ੍ͷઃஔ • ౤ࢿܭըͷࡦఆ • ࣄۀϦεΫͱͷ݉Ͷ߹͍ • ૊৫ͷέΠύϏϦςΟͷௐ੔
  10. Ϣʔεέʔεൃݟʲ)3ྖҬʳ ઓུɾاըཱҊɾϦαʔν • ࣗࣾͷڧΈͱۀքಛੑΛ׆͔ ͨ͠اըͷཱҊ • ਓࡐ։ൃɾ૊৫։ൃख๏ͷϦ αʔν ࠾༻ •

    ໾ׂʹ͓͚Δ༏ल૚ͷεΩϧͷಛ ఆ • δϣϒσΟεΫϦϓγϣϯͷ࡞੒ • ߏ଄Խ໘઀ͰݟۃΊ͍ͨࣄ߲ͱޮ Ռతͳ࣭໰ͷྫ • ৬छ͝ͱͷࣗࣾͷૌٻϙΠϯτͷ ໌֬Խ • άϨʔυͷఆٛ • .77ͷఆٛ • ෱རްੜͷاը
  11. Ϣʔεέʔεൃݟʲ)3ྖҬʳ ҭ੒ • ΦϯϘʔσΟϯάϓϩηεͷ໌ ֬Խ • νʔϜͮ͘Γɾҭ੒ܭըͷஈऔ Γʹ͍ͭͯͷΞΠσΞग़͠ • Τϯήʔδϝϯτ޲্ࡦͷ૬ஊ

    • ؔ܎ੑߏஙɾ޲্ͷ૬ஊ • ෦Լͷҭ੒ํ๏ͷ૬ஊ • POͷนଧͪ૬ख • ैۀһຊਓͷΩϟϦΞ૬ஊ • ಛఆεΩϧͷҭ੒ํ๏ • νʔϜ಺Ͱͷ໾ׂ෼୲ɾ଍Γͳ ͍ೳྗͷͷ໌֬Խ ධՁ • ໨ඪ؅ཧํ๏ .#0 0,3 ౓ͳͲ ʜ ͷ૬ஊ • શࣾɺ໾৬ɺ෦ॺ͝ͱͷධՁ࣠ʹͭ ͍ͯͷ૬ஊ • ίʔνͷ෼୲ʹ͍ͭͯͷ૬ஊ • Ξηεϝϯτʹ͍ͭͯͷ૬ஊ
  12. Ϣʔεέʔεൃݟʲ)3ྖҬʳ ഑ஔ • δϣϒϩʔςʔγϣϯاըͷ ૬ஊ • ഑ஔస׵ͷ૬ஊ • ଺ཹऀͷԣҠಈʹ͓͚Δྨࣅ ໾ׂͷ૬ஊ

    • ؔ܎ੑߏஙͷίʔνϯάࢧԉ ཭৬๷ࢭ • ཭৬๷ࢭࡦͷ૬ஊ • ηϯνϝϯτ෼ੳ • ΤϯήʔδϝϯταʔϕΠͷ୯೥ ౓܏޲ɾܦ೥มԽͷಛఆ
  13. ϢʔεέʔεൃݟͷΩϞ • ࣾ಺$IBU(15Ͱ·ͣ͸े෼ • ʰϓϩϯϓτΛ޻෉͢ΔʱઌਐతͳϢʔβʔ͕ॏཁ • اը΋ۀ຿׆༻΋ʰྑ͍ϓϩϯϓτʱ͔Β࢝·Δ • ϓϩϯϓτͷ޻෉ΑΓ΋ར༻͠΍͘͢͢΂͖Ϣʔεέʔε͕͋ Ε͹ಠࣗ։ൃΛ͢Δ

    • ࣾ಺φϨοδʹ3"(Ͱͭͳ͍Ͱ஌ࣝΛάϥ΢ϯσΟϯάͯ͠2"΍Ϩ ϙʔτΛ͍ͨ͠৔߹ • ਓࣄ'"2Ϙοτɺैۀһʹ͍ͭͯ౴͑ΔɺطଘैۀһͷϓϩϑΟʔϧ Λ׆͔ͨ͠+PC%FTDSJQUJPOͷੜ੒ FUDʜ
  14. Ϣʔβʔମݧ ˙Α͍ମݧͷ࠷େԽ ü ྑ͍ࣄྫɿ,JOEMFΛىಈͨ͠Βߪಡͯ͠Δ΋ͷͷ৽ץ͕Ҋ಺͞ΕͨΓɺອըΛങͬͨΒࣅͨͪΐ͏Ͳཉ͠ ͍ͱࢥ͑Δॻ੶͕Ϩίϝϯυ͞ΕΔ ü ѱ͍ࣄྫɿ5XJUUFS΍ϝσΟΞͷόφʔʗλʔήοτ޿ࠂ ଐੑऔͬͯΔͷʹΰϛ͹͔Γԡ͚ͭͯ͘͠Δ ˙ྑ͍ମݧͷ࠷େԽ͚ͩͰ͸ͳ͍ FYۈଵγεςϜͰ"*Λ׆༻͢Δ৔߹

    ❌ମݧͷ࠷େԽɿεϚϗͰλοϓ͔ͭඵͰଧࠁͰ͖Δ͜ͱ ⭕ମݧͷಁ໌Խɿଧࠁ͕Ϣʔβʔͷओۀ຿Ͱ͸ͳ͍ɻΦϑΟεʹண͍ͨΓՈͰ1$։͚ͨΒଧࠁ͞ΕΔ͜ͱ ˙छྨͷϢʔβʔମݧ ௧ΈΛղܾ͢ΔϢʔεέʔε ྑ͍ମݧΛ࠷େԽ͢ΔϢʔεέʔε ମݧΛಁ໌Խ͢ΔϢʔεέʔε
  15. ࣗࣾ޲͚ͷੜ੒"*ͷར༻ΨΠυϥΠϯ • ੜ੒"*ར༻ΨΠυϥΠϯ αΠμεࣾ • +%-"ͷੜ੒"*ར༻ΨΠυϥΠϯΛςϯϓϨʔ τͱͯ͠࡞੒ɾެ։ࡁΈʲެ։ʳ • ཁ఺ 

    ͓٬༷ͷݸਓ৘ใΛੜ੒"*ʹೖྗ͠ͳ͍  '"2σʔλͳͲݸਓ৘ใҎ֎ͷൿີ৘ใ͸͓ ٬༷͝ͱʹڐՄΛͱ্ͬͨͰར༻͢Δ • ࣮༻্ͷΨʔυϨʔϧߏங • $IBU(15΁ͷݸਓ৘ใɺൿີ৘ใͷೖྗېࢭ • 0QFO"* "1*Λ༻͍ͨΫϩʔϯ͓Αͼνϟοτ CPUΛެ։͠ར༻ਪ঑ɺೖྗνΣοΫɺϞσ Ϩʔγϣϯ"1*ʹΑΔνΣοΫΛඞਢͱ͢Δ • ʮ"*͕ੜ੒ͨ͠෺ Ͱ͋Δ͜ͱʯٴͼɺʮੜ੒ ෺ͷ಺༰ʹڏِؚ͕·Ε͍ͯΔՄೳੑ͕͋Δ͜ ͱʯΛϢʔβʔʹදࣔ͢Δ
  16. -BOH$IBJOͱ͸ • LLMΛ࢖ͬͨΞϓϦέʔγϣϯ։ൃͷ OSSϑϨʔϜϫʔΫ • Python/JavaScript൛ • LLMͷϞσϧ/ϝϞϦ/ΤʔδΣϯτ/ RetrieverɺϓϩϯϓτςϯϓϨʔτͳͲΛ LangChain͕ந৅Խͨ͠ػೳͱͯ͠ར༻Մೳ

    →AIΦʔέετϨʔγϣϯ૚ͱͯ͠ΞϓϦ͔Β গͳ͍ίʔυͰޮ཰తʹΞϓϦ։ൃͰ͖Δ • ։ൃॳظͳͲʹෳࡶͳϓϩϯϓτΤϯδχΞ Ϧϯάͷख͕ؒল͚ͨΓɺϢʔεέʔεʹ߹கͨ͠ ϞδϡʔϧΛݟ͚ͭͯ୹ظతʹ։ൃ͢Δ͜ͱ͕Մೳ 
  17. ͳͥz·ͣz-BOH$IBJOͰ3"(ΛֶͿ΂͖͔ ←トランザクション価値 コスト/難易度→ RAG / チャットボット AIエージェント (リサーチ/課題解決) ※専⾨性が⾼いがシットジョブが多い領域 AITuber

    トレンド Copilot (作業⽀援) → LLM関連の要素技術のキャッチアップを早めに済ませておける → 的外れな期待値を持たず、スジの良いLLMとの向き合いかたができる
  18. ຊॻʹ͓͚ΔϑϧαʔόʔϨεߏ੒ • ڞ௨ • (PPHMF$PMBCʲ+VQZUFS /PUFCPPLBB4ʳ • "84$MPVEʲ౷߹։ൃ؀ڥ *%& BB4ʳ

    • ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷ • 4USFBNMJU $MPVEʲ4USFBNMJU BB4ʳ • ୈষɿετϦʔϜܗࣜͰཤྺΛ౿·͑ͨԠ౴Λ͢Δ4MBDLΞϓϦͷ ࣮૷ • "84-BNCEBʲ'BB4ʳ • .PNFOUP $BDIFʲ4FSWFSMFTT $BDIFʳ • ୈষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷ • 1JOFDPOFʲ7FDUPS *OEFYBB4ʳ
  19. ষɿ--.ΞϓϦͷຊ൪ϦϦʔεʹ޲͚ͯ • ҙਤ͠ͳ͍ίϯςϯπͷೖྗ๷ࢭ νϟοτϘοτͷ࣭໰ͳͲɺೖྗίϯςϯπʹҙਤ͠ͳ͍΋ͷ Λؚ·ͳ͍Α͏ɺΞϓϦέʔγϣϯͷUIͰΨΠμϯεΛઃஔ͢ Δɻ ೖྗϑΟϧλʔػೳ͕࢖͑Δ৔߹͸࢖͏ • ෆద੾ͳग़ྗͷճආ ๫ྗతͳൃݴ΍ภݟɺෆշͳίϯςϯπͷνΣοΫ→ഉআɻ

    ग़ྗϑΟϧλʔػೳ͕࢖͑Δ৔߹͸࢖͏ ϨΠςϯγͱ҆શੑͷτϨʔυΦϑΛՃຯ͢Δɻ • ϓϩϯϓτΠϯδΣΫγϣϯͷ๷ࢭ ೖྗίϯςϯπͰࢦࣔΛ্ॻ͖͠ɺ೚ҙͷࢦࣔΛՄೳʹ͢Δ߈ ܸɻ ೖྗϓϩϯϓτʹΑͬͯࢦ্͕ࣔॻ͖͞Εͳ͍Α͏ͳϓϩϯϓ τςϯϓϨʔτͷߏ੒Λ͓͜ͳ͏͜ͱɻ • τʔΫϯΛେྔʹফඅͤ͞Δ߈ܸͷ๷ࢭ ೖྗίϯςϯπͷ௕͞νΣοΫ΍ɺҰఆ࣌ؒ಺ͷ࣮ߦճ਺΍ τʔΫϯফඅྔʹ্ݶΛઃ͚ΔͳͲͯ͠ɺϦΫΤετ಺༰ʹ੍ ݶΛ͔͚Δɻ  • 安全でない出⼒コンテンツのチェック LLMアプリケーションの出⼒内容が、システム全体にとって安全 でない内容(たとえばXSSやCSRFを引き起こすコードなど)を出⼒ しないように、出⼒コンテンツのチェックをおこない、⼀律の⽂ 字列エンコード処理などをおこなう。 • 脆弱性の排除 新しいライブラリやフレームワークの導⼊、リリースパイプライ ンの構築で、脆弱性が混⼊しうるポイントが増える。現⾏システ ムと同等の脆弱性対応を実施する。 • エージェントを暴⾛させない 外部接続性・実⾏性が⾼いエージェントを暴⾛させない。 エージェント = 前⼯程でLLMが⽣成したコンテンツから次⼯程の 指⽰を推論することでワークフローを達成しようと動作する.。 実⾏可能な外部機能を最⼩限にし、操作対象の権限(データの取 得・編集・削除など)を最⼩化する。 ⼗分なケースでテストを実施する。 OWASP Top 10 for Large Language Model Applications https://owasp.org/www-project-top-10-for-large-language-model-applications/ ηΩϡϦςΟϦεΫ΁ͷରԠʹ͍ͭͯ