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
1.2k
0
Share
LangChainのDocument機能を使って文書処理を柔軟にする
機械学習の社会実装勉強会第28回 (
https://machine-learning-workshop.connpass.com/event/298301/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
October 27, 2023
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
OpenClawでPM業務を自動化
knishioka
2
410
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
490
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
820
Claude Codeを使った情報整理術
knishioka
19
13k
Claude Skillsで"仕事の型"を配布する
knishioka
0
370
Claude Agent SDKで始める実践的AIエージェント開発
knishioka
0
190
AIがAIを拡張する時代へ ~Claude Codeで実現する高品質文書作成~
knishioka
0
190
MLflow × LLM 生成AI時代の実験管理とリスク低減
knishioka
0
190
Conductor: Git Worktreeで実現する並列AIコーディング
knishioka
0
160
Other Decks in Technology
See All in Technology
AI前提とはどういうことか
daisuketakeda
0
170
プロダクトを育てるように生成AIによる開発プロセスを育てよう
kakehashi
PRO
1
920
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
6
1.4k
Databricksで構築するログ検索基盤とアーキテクチャ設計
cscengineer
0
130
Bluesky Meetup in Tokyo vol.4 - 2023to2026
shinoharata
0
140
さくらのAI Engineから始める クラウドネイティブ意識
melonps
0
130
AIドリブン開発の実践知 ― AI-DLC Unicorn Gym実施から見えた可能性と課題
mixi_engineers
PRO
0
120
試されDATA SAPPORO [LT]Claude Codeで「ゆっくりデータ分析」
ishikawa_satoru
0
340
生成AI時代のエンジニア育成 変わる時代と変わらないコト
starfish719
0
480
2026-04-02 IBM Bobオンボーディング入門
yutanonaka
0
260
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
270
AIを活用したアクセシビリティ改善フロー
degudegu2510
1
170
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
240
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
So, you think you're a good person
axbom
PRO
2
2k
Designing for Timeless Needs
cassininazir
0
190
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Pragmatic Product Professional
lauravandoore
37
7.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
190
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
500
Making Projects Easy
brettharned
120
6.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
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