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
LangChainのDocument機能を使って文書処理を柔軟にする
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
西岡 賢一郎 (Kenichiro Nishioka)
October 27, 2023
Technology
0
1.2k
LangChainのDocument機能を使って文書処理を柔軟にする
機械学習の社会実装勉強会第28回 (
https://machine-learning-workshop.connpass.com/event/298301/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
October 27, 2023
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
380
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
780
Claude Codeを使った情報整理術
knishioka
19
13k
Claude Skillsで"仕事の型"を配布する
knishioka
0
360
Claude Agent SDKで始める実践的AIエージェント開発
knishioka
0
160
AIがAIを拡張する時代へ ~Claude Codeで実現する高品質文書作成~
knishioka
0
190
MLflow × LLM 生成AI時代の実験管理とリスク低減
knishioka
0
180
Conductor: Git Worktreeで実現する並列AIコーディング
knishioka
0
160
ローカルLLMでファインチューニング
knishioka
1
2.7k
Other Decks in Technology
See All in Technology
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
6
810
Phase12_総括_自走化
overflowinc
0
1.4k
既存アプリの延命も,最新技術での新規開発も:WebSphereの最新情報
ktgrryt
0
170
Windows ファイル共有(SMB)を再確認する
murachiakira
PRO
0
260
FastMCP OAuth Proxy with Cognito
hironobuiga
3
180
モジュラモノリス導入から4年間の総括:アーキテクチャと組織の相互作用について / Architecture and Organizational Interaction
nazonohito51
4
2k
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
110
20260320_JaSST26_Tokyo_登壇資料.pdf
mura_shin
0
120
Phase01_AI座学_基礎
overflowinc
0
3.7k
詳解 強化学習 / In-depth Guide to Reinforcement Learning
prinlab
0
370
品質を経営にどう語るか #jassttokyo / Communicating the Strategic Value of Quality to Executive Leadership
kyonmm
PRO
3
1.2k
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
430
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
92
Mind Mapping
helmedeiros
PRO
1
130
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
Joys of Absence: A Defence of Solitary Play
codingconduct
1
320
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
The Spectacular Lies of Maps
axbom
PRO
1
640
Navigating Weather and Climate Data
rabernat
0
140
Thoughts on Productivity
jonyablonski
75
5.1k
Transcript
LangChainのDocument機能を使って 文書処理を柔軟にする 2023/10/28 第28回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ Twitter: @ken_nishi ◦ note:
西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro) ◦ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル (https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg) • 経歴 ◦ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 ◦ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト ライディアを設立 ◦ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 ◦ CDPのスタートアップ (Sr. PdM)・株式会社データインフォームド (CEO)・株式会社ディース タッツ (CTO) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
本日のお話 • LangChainを使った分散処理 • LangChainのDocument Loader • デモ
LangChainを使った分散処理
ChatGPTのToken制限 • GPT-3.5 Turboでは4Kまたは16Kのtoken、GPT-4 では8Kまたは32Kのtokenを渡すことが可能 • 英語であれば1単語1tokenだが、日本語のtokenは文 字によるので、token数の推定が困難 • token数を確認するしたい場合はこちら
→ https://platform.openai.com/tokenizer • ticktokenというライブラリを使うことでtoken数を 調べることもできる ◦ ChatGPTでは「cl100k_base」という tokenizerを使用 ◦ 日本語のtoken数は英語に比べて多くなる傾 向にある • 長文を処理したい場合、Token数の制限にひっか かってしまう
長文の分散処理 • ChatGPTのtoken数制限を超える文書を処理したい場合、長文を分割して短い文章 単位で分散処理することが有効 • LangChainでは長文の分散処理方法として、Map Reduce, Refine, Map Rerankなど
が用意されている。 • 分散処理を利用することで、長文の要約や長文のQAができるようになる。
Map Reduce • 分割された文章をそれぞれ処理し (Map)、それぞれの結果をまとめて (Reduce)、まとめられた結果から最終的な回答を出す。 • Mapフェーズは独立した処理となるため、並列処理をすることが可能。 • 分散された分、ChatGPTの呼び出し回数が増える
(コストがかかる)。
Refine • 分割された文書を順番にChatGPTに処理させる。 • 直前の結果を入力に含めるのが特徴。 • 処理が独立していないため、Map Reduceより文脈の把握が得意。 • 逐次処理のため並列化はできない。また、文書の順番に影響を受ける。
Map Rerank • 分割された文書から、回答と回答に対する自信をスコアで出し、最高スコア となったものを回答として出す。 • 独立した処理となるため、並列処理が可能。Map ReduceよりもAPI呼び出し が少なくなる。 •
文書間の情報を組み合わせることができない。
LangChainのDocument Loader
Document Loader • そもそもChatGPTに処理させる文書が、ウェブペー ジやPDFなど単純なテキスト形式ではない場合は、 LangChainのDocument Loader (https://python.langchain.com/docs/integration s/document_loaders) を利用する。
• 100種以上のDocument Loaderが用意されている。 ◦ ArxivLoader: arXivから論文を取得する。 ◦ ConfluenceLoader: Conflunceのページを取 得する。 ◦ GitHubIssuesLoader: GitHubのIssueやPull Requestを取得する。 ◦ WikipediaLoader: Wikipediaの検索結果を取 得する。 ◦ YoutubeLoader: YouTubeの文字起こしを取 得する。
デモ • デモの内容 ◦ Token数をカウントする方法 ◦ Document Loader ◦ 長文の要約
◦ 長文のQA • ソースコード https://github.com/knishioka/machine-learning-workshop/blob/main/l angchain/question_and_summarize.ipynb