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

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

吉田真吾
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. -BOH$IBJOͱϑϧαʔόʔϨεͰ
    ͢͹΍͘ηΩϡΞͳ3"(ΞϓϦ
    Λͭ͘ΔͨΊͷ࣮ફղઆ

    גࣜձࣾηΫγϣϯφΠϯ ୅දऔక໾$&0
    ٢ాਅޗ

    View full-size slide

  2. 吉田真吾 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

    View full-size slide

  3. -BOH$IBJOΛ͔ͭͬͯ
    ޮ཰తʹνϟοτγες
    ϜΛͭ͘Δ

    View full-size slide

  4. -BOH$IBJOͱ͸
    • LLMΛ࢖ͬͨΞϓϦέʔγϣϯ։ൃͷ
    OSSϑϨʔϜϫʔΫ
    • Python/JavaScript൛
    • LLMͷϞσϧ/ϝϞϦ/ΤʔδΣϯτ/
    RetrieverɺϓϩϯϓτςϯϓϨʔτͳͲΛ
    LangChain͕ந৅Խͨ͠ػೳͱͯ͠ར༻Մೳ
    →AIΦʔέετϨʔγϣϯ૚ͱͯ͠ΞϓϦ͔Β
    গͳ͍ίʔυͰޮ཰తʹΞϓϦ։ൃͰ͖Δ
    • ։ൃॳظͳͲʹෳࡶͳϓϩϯϓτΤϯδχΞ
    Ϧϯάͷख͕ؒল͚ͨΓɺϢʔεέʔεʹ߹கͨ͠
    ϞδϡʔϧΛݟ͚ͭͯ୹ظతʹ։ൃ͢Δ͜ͱ͕Մೳ

    View full-size slide

  5. 3"( ݕࡧ֦ுੜ੒
    ΞϓϦ
    $:%"4ʹɺࣾһ͔Βͷ໰͍߹ΘͤʹࣗಈͰ౴͑Δ(15ػೳʮ$:%"4$IBUʯ
    https://www.cydas.co.jp/news/press/202304_people-gpt/

    View full-size slide

  6. ͳͥz·ͣz-BOH$IBJOͰ3"(ΛֶͿ΂͖͔
    ←トランザクション価値
    コスト/難易度→
    RAG / チャットボット
    AIエージェント (リサーチ/課題解決)
    ※専⾨性が⾼いがシットジョブが多い領域
    AITuber
    トレンド
    Copilot (作業⽀援)
    → LLM関連の要素技術のキャッチアップを早めに済ませておける
    → 的外れな期待値を持たず、スジの良いLLMとの向き合いかたができる

    View full-size slide

  7. -BOH$IBJOΛ͔ͭͬͯ
    ޮ཰తʹνϟοτγες
    ϜΛͭ͘Δ
    ˣ ˣˣˣ
    ͩ͜ΘΓϙΠϯτʹ
    lαʔόʔϨεzͰͭ͘Δ

    View full-size slide

  8. 23-24 SEPTEMBER
    Tokyo 2023
    Three Tracks. Two Days. One Community

    View full-size slide

  9. = IaaS/PaaS/ SaaS
    イベント
    αʔόʔϨεͱ͸
    αʔόʔϨεͷಛ௃

    View full-size slide

  10. αʔόʔϨεͱ͸
    4PGUXBSF&YDFMMFODFͷ؍఺
    n ϚΠΫϩαʔϏεࢦ޲
    • খن໛Ͱࣗ཯తͳγεςϜ
    • ͭͷ໨తʹϑΟοτ͍ͯ͠Δ
    n ϦΞΫςΟϒͳΞʔΩςΫνϟ
    • ϦΫΤετϧʔςΟϯάػೳʢόΠϯυτϦΨϑΝϯΞ΢τʣʗϥϯλ
    ΠϜʗঢ়ଶ؅ཧʗӬଓετϨʔδΛʮ෼཭ʯ͢Δ͜ͱͰίʔυΛϝϯςφ
    ϯε͠΍͍͢ঢ়ଶʹҡ࣋͠ɺੜ࢈ੑΛ޲্͢Δ
    n ೝূɾೝՄʹ΋ͱͮ͘ϦιʔεΞΫηε
    • αʔϏεؒͷΞΫηε͸ೝূαʔϏε͔Βऔಘͨ͠ҕ೚τʔΫϯΛ༻͍ͯ
    ೝՄ͞ΕΔ 4".-0QFO*%$POOFDU

    n %3:
    • ڝ૪ྗΛಘΒΕͳ͍൚༻ػೳͷΞ΢τιʔε

    View full-size slide

  11. αʔόʔϨεͱ͸
    ͱ͸͍͑ʜ ݱ࣮

    n ϚΠΫϩαʔϏεधཁͱαʔόʔϨε࣮૷ͷဃ཭ʲదࡐదॴɺखஈͱ໨తʳ
    • ଟ͘ͷ։ൃऀ͸ޮ཰తͳϞϊϦεͰ·ͣ͸े෼
    • େن໛෼ࢄ؀ڥ͸ɺιϑτ΢ΣΞΞʔΩςΫνϟ΍σʔλϑϩʔ΍ϑϨʔ
    ϜϫʔΫͳͲϥΠϑαΠΫϧશମͷઃܭ͕༏ઌɻαʔόʔϨε͔Ͳ͏͔͸
    खஈͷ໰୊
    n ͢Ͱʹ࢖͍ͬͯΔ໰୊ʲؾ͔ͮͣαʔόʔϨεʳ
    • ଟ͘ͷ։ൃऀ͸ɺศར͔ͩΒͱ͍͏ཧ༝Ͱ͢Ͱʹ࢖͍ͬͯΔɻ
    • ͕ɺΘ͟Θࣗ͟ຫ͢Δ΄ͲͰ΋ͳ͍ɻ
    n ϚʔέςΟϯάࢹ఺Ͱ౎߹Α͘ࡲΓ͗ͨ͢໰୊ʲ๞͖ʳ
    • ʮαʔόʔΛҙࣝ͢Δඞཁ͕ͳ͍ʯʴЋ͘Β͍Ͱ l⿝⿝ 4FSWFSMFTTz
    • ։ൃऀ͸lͳʹ͕αʔόʔϨε͔zʹ๞͖͍ͯΔ

    View full-size slide

  12. ຊॻʹ͓͚ΔϑϧαʔόʔϨεߏ੒
    • ڞ௨
    • (PPHMF$PMBCʲ+VQZUFS /PUFCPPLBB4ʳ
    • "84$MPVEʲ౷߹։ൃ؀ڥ *%&
    BB4ʳ
    • ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷
    • 4USFBNMJU $MPVEʲ4USFBNMJU BB4ʳ
    • ୈষɿετϦʔϜܗࣜͰཤྺΛ౿·͑ͨԠ౴Λ͢Δ4MBDLΞϓϦͷ
    ࣮૷
    • "84-BNCEBʲ'BB4ʳ
    • .PNFOUP $BDIFʲ4FSWFSMFTT $BDIFʳ
    • ୈষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷
    • 1JOFDPOFʲ7FDUPS *OEFYBB4ʳ

    View full-size slide

  13. ౷߹։ൃ؀ڥ *%&
    "84$MPVE
    AWS Cloud9 とは? https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/welcome.html

    View full-size slide

  14. ౷߹։ൃ؀ڥ *%&
    "84$MPVE
    ϝϦοτ
    • ؀ڥࠩҟͷͳ͞
    • *".ʹΑΔอޢ
    σϝϦοτ
    • Πϯλʔωοτ͕ඞཁ
    • ΦϯϥΠϯΤσΟλͷମݧ
    • 74$PEF͔Β44)Մೳ
    AWS Cloud9 とは? https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/welcome.html

    View full-size slide

  15. ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷
    ࣭໰ʹରͯ͠ɺ%VDL%VDL(PͰ֎෦ݕࡧͯ͠
    ౴͑Δ8FCΞϓϦ
    LLM を組み込んだチャットアプリケーションを写経しながら実装できる「ChatGPT/LangChain によるチャットシステム構築[実践]⼊⾨」を読んだ
    https://kakakakakku.hatenablog.com/entry/2023/10/16/085525

    View full-size slide

  16. ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷

    View full-size slide

  17. ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷
    -BOH$IBJOͷ"HFOUπʔϧͱͯ͠
    %VDL%VDL(Pͱ8JLJQFEJBΛϩʔυ͢Δ

    View full-size slide

  18. ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷
    QVTI
    EFQMPZ

    View full-size slide

  19. ୈষɿ֎෦ݕࡧɺཤྺΛ౿·͑ͨԠ౴Λ͢Δ8FCΞϓϦͷ࣮૷
    ࣭໰ʹରͯ͠ɺ%VDL%VDL(PͰ֎෦ݕࡧͯ͠
    ౴͑Δ8FCΞϓϦ
    LLM を組み込んだチャットアプリケーションを写経しながら実装できる「ChatGPT/LangChain によるチャットシステム構築[実践]⼊⾨」を読んだ
    https://kakakakakku.hatenablog.com/entry/2023/10/16/085525

    View full-size slide

  20. ୈষʴষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷
    LLM を組み込んだチャットアプリケーションを写経しながら実装できる「ChatGPT/LangChain によるチャットシステム構築[実践]⼊⾨」を読んだ
    https://kakakakakku.hatenablog.com/entry/2023/10/16/085525
    Ξοϓϩʔυͨ͠υΩϡϝϯτʹ
    ͍࣭ͭͯ໰ʹ౴͑Δ4MBDLΞϓϦ

    View full-size slide

  21. ୈষʴষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷
    ϩʔΧϧ։ൃ !$MPVEιέοτϞʔυ

    View full-size slide

  22. ୈষʴষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷
    ɾ$MPVE͔Β4FSWFSMFTT'SBNFXPSLͰσϓϩΠ
    ɾιέοτϞʔυˠ-BNCEBʹ੾Γସ͑
    TMT EFQMPZ
    $MPVE

    View full-size slide

  23. ୈষʴষɿࣾ಺จॻʹ౴͑Δ4MBDLΞϓϦͷ࣮૷
    LLM を組み込んだチャットアプリケーションを写経しながら実装できる「ChatGPT/LangChain によるチャットシステム構築[実践]⼊⾨」を読んだ
    https://kakakakakku.hatenablog.com/entry/2023/10/16/085525
    Ξοϓϩʔυͨ͠υΩϡϝϯτʹ
    ͍࣭ͭͯ໰ʹ౴͑Δ4MBDLΞϓϦ

    View full-size slide

  24. ষɿ--.ΞϓϦͷຊ൪ϦϦʔεʹ޲͚ͯ
    • ҙਤ͠ͳ͍ίϯςϯπͷೖྗ๷ࢭ
    νϟοτϘοτͷ࣭໰ͳͲɺೖྗίϯςϯπʹҙਤ͠ͳ͍΋ͷ
    Λؚ·ͳ͍Α͏ɺΞϓϦέʔγϣϯͷ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/
    ηΩϡϦςΟϦεΫ΁ͷରԠʹ͍ͭͯ

    View full-size slide