$30 off During Our Annual Pro Sale. View Details »

LangChainとフルサーバーレスですばやくセキュアなRAGアプリをつくるための実践解説...

吉田真吾
November 21, 2023

 LangChainとフルサーバーレスですばやくセキュアなRAGアプリをつくるための実践解説/LangChain_Book

2023.11.21 講演した資料です。
ChatGPT/LangChainによるチャットシステム構築[実践]入門
https://forkwell.connpass.com/event/301152/

吉田真吾

November 21, 2023
Tweet

More Decks by 吉田真吾

Other Decks in Technology

Transcript

  1. 吉田真吾 AWS Serverless Hero n p Oracle SA p 113

    / pAWS n ( ) CTO p SaaS ( ) pAWS DevOps n pAWS (2012 ) pAWS Samurai 2014 / 2016 pAWS Serverless Hero AWS AWS Lambda Amazon S3
  2. -BOH$IBJOͱ͸ • LLMΛ࢖ͬͨΞϓϦέʔγϣϯ։ൃͷ OSSϑϨʔϜϫʔΫ • Python/JavaScript൛ • LLMͷϞσϧ/ϝϞϦ/ΤʔδΣϯτ/ RetrieverɺϓϩϯϓτςϯϓϨʔτͳͲΛ LangChain͕ந৅Խͨ͠ػೳͱͯ͠ར༻Մೳ

    →AIΦʔέετϨʔγϣϯ૚ͱͯ͠ΞϓϦ͔Β গͳ͍ίʔυͰޮ཰తʹΞϓϦ։ൃͰ͖Δ • ։ൃॳظͳͲʹෳࡶͳϓϩϯϓτΤϯδχΞ Ϧϯάͷख͕ؒল͚ͨΓɺϢʔεέʔεʹ߹கͨ͠ ϞδϡʔϧΛݟ͚ͭͯ୹ظతʹ։ൃ͢Δ͜ͱ͕Մೳ 
  3. 

  4. ͳͥz·ͣz-BOH$IBJOͰ3"(ΛֶͿ΂͖͔ ←トランザクション価値 コスト/難易度→ RAG / チャットボット AIエージェント (リサーチ/課題解決) ※専⾨性が⾼いがシットジョブが多い領域 AITuber

    トレンド Copilot (作業⽀援) → LLM関連の要素技術のキャッチアップを早めに済ませておける → 的外れな期待値を持たず、スジの良いLLMとの向き合いかたができる
  5. αʔόʔϨεͱ͸ 4PGUXBSF&YDFMMFODFͷ؍఺ n ϚΠΫϩαʔϏεࢦ޲ • খن໛Ͱࣗ཯తͳγεςϜ • ͭͷ໨తʹϑΟοτ͍ͯ͠Δ n ϦΞΫςΟϒͳΞʔΩςΫνϟ

    • ϦΫΤετϧʔςΟϯάػೳʢόΠϯυτϦΨϑΝϯΞ΢τʣʗϥϯλ ΠϜʗঢ়ଶ؅ཧʗӬଓετϨʔδΛʮ෼཭ʯ͢Δ͜ͱͰίʔυΛϝϯςφ ϯε͠΍͍͢ঢ়ଶʹҡ࣋͠ɺੜ࢈ੑΛ޲্͢Δ n ೝূɾೝՄʹ΋ͱͮ͘ϦιʔεΞΫηε • αʔϏεؒͷΞΫηε͸ೝূαʔϏε͔Βऔಘͨ͠ҕ೚τʔΫϯΛ༻͍ͯ ೝՄ͞ΕΔ 4".-0QFO*%$POOFDU n %3: • ڝ૪ྗΛಘΒΕͳ͍൚༻ػೳͷΞ΢τιʔε
  6. αʔόʔϨεͱ͸ ͱ͸͍͑ʜ ݱ࣮ n ϚΠΫϩαʔϏεधཁͱαʔόʔϨε࣮૷ͷဃ཭ʲదࡐదॴɺखஈͱ໨తʳ • ଟ͘ͷ։ൃऀ͸ޮ཰తͳϞϊϦεͰ·ͣ͸े෼ • େن໛෼ࢄ؀ڥ͸ɺιϑτ΢ΣΞΞʔΩςΫνϟ΍σʔλϑϩʔ΍ϑϨʔ ϜϫʔΫͳͲϥΠϑαΠΫϧશମͷઃܭ͕༏ઌɻαʔόʔϨε͔Ͳ͏͔͸

    खஈͷ໰୊ n ͢Ͱʹ࢖͍ͬͯΔ໰୊ʲؾ͔ͮͣαʔόʔϨεʳ • ଟ͘ͷ։ൃऀ͸ɺศར͔ͩΒͱ͍͏ཧ༝Ͱ͢Ͱʹ࢖͍ͬͯΔɻ • ͕ɺΘ͟Θࣗ͟ຫ͢Δ΄ͲͰ΋ͳ͍ɻ n ϚʔέςΟϯάࢹ఺Ͱ౎߹Α͘ࡲΓ͗ͨ͢໰୊ʲ๞͖ʳ • ʮαʔόʔΛҙࣝ͢Δඞཁ͕ͳ͍ʯʴЋ͘Β͍Ͱ l⿝⿝ 4FSWFSMFTTz • ։ൃऀ͸lͳʹ͕αʔόʔϨε͔zʹ๞͖͍ͯΔ
  7. ຊॻʹ͓͚ΔϑϧαʔόʔϨεߏ੒ • ڞ௨ • (PPHMF$PMBCʲ+VQZUFS /PUFCPPLBB4ʳ • "84$MPVEʲ౷߹։ൃ؀ڥ *%& BB4ʳ

    • ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷ • 4USFBNMJU $MPVEʲ4USFBNMJU BB4ʳ • ୈষɿετϦʔϜܗࣜͰཤྺΛ౿·͑ͨԠ౴Λ͢Δ4MBDLΞϓϦͷ ࣮૷ • "84-BNCEBʲ'BB4ʳ • .PNFOUP $BDIFʲ4FSWFSMFTT $BDIFʳ • ୈষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷ • 1JOFDPOFʲ7FDUPS *OEFYBB4ʳ
  8. ౷߹։ൃ؀ڥ *%& "84$MPVE ϝϦοτ • ؀ڥࠩҟͷͳ͞ • *".ʹΑΔอޢ σϝϦοτ •

    Πϯλʔωοτ͕ඞཁ • ΦϯϥΠϯΤσΟλͷମݧ • 74$PEF͔Β44)Մೳ AWS Cloud9 とは? https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/welcome.html
  9. ষɿ--.ΞϓϦͷຊ൪ϦϦʔεʹ޲͚ͯ • ҙਤ͠ͳ͍ίϯςϯπͷೖྗ๷ࢭ νϟοτϘοτͷ࣭໰ͳͲɺೖྗίϯςϯπʹҙਤ͠ͳ͍΋ͷ Λؚ·ͳ͍Α͏ɺΞϓϦέʔγϣϯͷ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/ ηΩϡϦςΟϦεΫ΁ͷରԠʹ͍ͭͯ