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
LLMアプリケーションの安定性を高めるための精度評価・改善
Search
Ryuya Nakamura
September 26, 2023
Technology
4
2.4k
LLMアプリケーションの安定性を高めるための精度評価・改善
LLMアプリケーションの安定性を高めるための精度評価・改善
Ryuya Nakamura
September 26, 2023
Tweet
Share
More Decks by Ryuya Nakamura
See All by Ryuya Nakamura
フィードバックされやすい人になろう
nrryuya
18
10k
間違いが許されなくてもLLMが使えるユースケースとは @GenAI Playground Meetup #01
nrryuya
11
5.5k
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
4
2k
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
9
11k
20240130 エンプラDXにおける2024年の生成AIトレンド予測 @生成AI新年会2024
nrryuya
2
2k
20240125 開発側・ビジネス側という壁を作らない LLMアプリ開発 @生成AI Conf
nrryuya
8
3.8k
抜擢されるには
nrryuya
19
13k
キャッチアップ速度が速い #とは
nrryuya
71
37k
20230425 PRIVACY TECH NIGHT #02 「統計化すれば安全」の罠 ──差分プライバシーの背景
nrryuya
0
790
Other Decks in Technology
See All in Technology
20分で分かるIAM全機能 (拡大版) / 20240903-jawsug-yokohama-iam
opelab
3
120
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
chayakonanaika
0
520
実践的なバグバウンティ入門
scgajge12
4
2.2k
waitany と waitall を作った話
mrkn
0
110
2024年版 運用者たちのLLM
nwiizo
3
310
強いチームを夢見て-PMからSREに転身して1年の振り返り / 20240906_bengo4_sre
bengo4com
1
770
Dojo 20240830 COBOL to Java on Z
ichikawayasuhisa
0
240
RAGHack: Kickoff and RAG 101
pamelafox
0
220
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
41k
Datadog を使ったプロダクトとクラウドの セキュリティモニタリング
mrtc0
0
490
Namespace, Now and Then
tagomoris
0
170
Featured
See All Featured
Bash Introduction
62gerente
608
210k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
34
1.9k
Navigating Team Friction
lara
183
13k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Optimizing for Happiness
mojombo
375
69k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
47k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Gamification - CAS2011
davidbonilla
79
4.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
27
1.6k
Transcript
Confidential © 2023 LayerX Inc. LLMアプリケーションの安定性を高めるための精度評価・改善 2023/9/26 中村龍矢 (LayerX 事業部執行役員)
© 2023 LayerX Inc. 2 中村 龍矢 (Twitter: @nrryuya_jp) 機械学習エンジニア
東京大 工学部 • データサイエンスと出会う Gunosy データ分析部 • 推薦システム開発等 セキュリティ研究者 (現在) 事業責任者 LayerX 創業時からR&D • プログラムの形式検証 • ブロックチェーン ◦ Ethereumへのコント リビューション • LayerX 事業部執行役員 • IPA 未踏スーパークリエータ • 2020年度 電子情報通信学会 インターネットアーキテクチャ研 究賞 最優秀賞 (共著) • Forbes JAPAN 30 UNDER 30 2023 LayerXの新規事業 • プライバシーテック • 大規模言語モデル 自己紹介
目次 Agenda • LayerXの紹介 • “Beyond PoC” させるLLM活用 • 精度評価と改善
LayerXの紹介
© 2023 LayerX Inc. 5 LayerXの事業概要 LayerX LLM Labsの紹介 *
資本準備金含む 会社名 代表取締役 創業 資本金* 関連会社 株主一覧 取得認証 | 株式会社LayerX(レイヤーエックス) | 代表取締役CEO 福島 良典 代表取締役CTO 松本 勇気 | 2018年 | 112.6億円 | バクラク事業、Fintech事業、Privacy Tech事業 | 三井物産デジタル・アセットマネジメント 三井物産、LayerX、三井住友信託銀行、SMBC日興証券、JA三井リースによる合弁会社 | | 情報セキュリティマネジメントシステム、 JIIMA認証 次世代のプライバシー保護 秘匿化技術 バクラク事業 企業活動のインフラとなる 法人支出管理(BSM)SaaSを 開発・提供 Fintech事業 ソフトウェアを駆使したアセットマネジメント 証券事業を合弁会社にて展開 Privacy Tech事業 IS 747702 / ISO 27001
© 2023 LayerX Inc. 6 法人支出管理SaaS 『バクラク』 LayerX LLM Labsの紹介 toCレベルの使いやすさを追求
AI-OCRの精度にこだわり
© 2023 LayerX Inc. 7 MDM(三井物産デジタル・アセットマネジメント) LayerX LLM Labsの紹介
© 2023 LayerX Inc. 8 AI・データ活用支援の実績 LayerX LLM Labsの紹介 •
決済データの更なる活用に関する協業 • 複数企業間の取引記録インフラの事業検討・技術検証 • 自動車走行データの分析サービスを共同で開発 • LayerXのデータ分析基盤を活用 • テキストデータの活用に関する共同研究 • 医療データ流通における安心・安全なデータ加工に関する共同研究 • LayerXのデータ集計基盤が住民意見収集システムとして採用(秘匿化技術 国内初の実用化事例) 国土交通省様 リクルート様 • 不動産情報の更なる利活用に向けた調査・検証業務においてLayerX のデータ活用基盤が採用 JCB様 つくば市様 JMDC様 あいおいニッセイ 同和損保様
© 2023 LayerX Inc. 9 大規模言語モデル(LLM)のチームを設置 LayerX LLM Labsの紹介
© 2023 LayerX Inc. 10 (手前味噌ながら、、、) LayerXの強み LayerX LLM Labsの紹介
「バズワード」的な技術を現実的に評価・改善し、 お客様の「ペイン」に集中する 1 BtoC出身者で構成される、 「使いやすい」サービスへのこだわり 2
© 2023 LayerX Inc. 11 余談: LLMによる文章データの標準化 LayerX LLM Labsの紹介
従来のDXの難しさ: データのフォーマットが、人・会社によってバラバラで、自動連携できない LLMによって「本当は中身が同じなのに、見た目が違う」 データを標準化 エンタープライズ向けブロックチェーン が実現したかったことに近づく(?)
“Beyond PoC” させる LLM活用
© 2023 LayerX Inc. 13 LayerXにおける、ブロックチェーンやプライバシーテックなどの「新技術」活用の苦い経験から得られたもの 新技術の活用をPoC・実験で終わらせないために “Beyond PoC” させるLLM活用
技術だけではなく、 問題設定も新しい 既存の業務の 明確な課題(ペイン) PoCで終わりやすいもの 本番業務に載せやすいもの 技術の新しさに つられないように PoCと受託開発を重ね ゼロから作っていく (機動力がなくなる) 汎用的なプロダクトに 落とし込む サンクコストにより 誰も欲しくないものに 固執しないように
© 2023 LayerX Inc. 14 チューニングにより切り拓けるユースケース “Beyond PoC” させるLLM活用 ChatGPT・APIをそのまま使うだけでは、精度が安定せず、本番業務に耐えられることは少ない
https://thebridge.jp/2023/07/chatgpt-sees-10-percent-mom-decline https://business.nikkei.com/atcl/gen/19/00466/070400013/ 既存ツールで十分 なユースケース 粘り強い 精度改善により 実現できる ユースケース
© 2023 LayerX Inc. 15 ② 正解に至るプロセスが 明確な業務か Beyond PoCしやすいユースケース選定の観点
“Beyond PoC” させるLLM活用 ① 正解が明確な業務か • LLMに期待する正しいアウトプットが明確に定義できるか • 答えが定まらないと、精度評価できない • LLMに人間の手順・思考回路を再現させる方が簡単 • 「職人芸」「第六感」的な業務は難しい 業務効率化系においては、改善サイクルを回すための「精度評価のやりやすさ」が重要
精度評価と改善
© 2023 LayerX Inc. 17 単語の部分一致 (ROUGE等) 評価指標 精度評価と改善 完全一致
• シンプルだが、ちょっとした表記揺れも×になってしまう • 比較的直感的に部分正解を評価できるが、類義語などが×に 出力が正しいかどうかの採点は、方法もツールも既に色々ある (自作も簡単) LLMによる比較 Embedding (ベクトルの類似度) • 柔軟な評価ルールを定義できるが、ここ自体のチューニングが面倒 • 単語の違いなどがあっても意味が近ければ評価できる 参考: https://speakerdeck.com/nohanaga/azure-machine-learning-prompt-flow-ping-jia-metorikusujie-shuo
© 2023 LayerX Inc. 18 精度が出ない原因の分析 精度評価と改善 採点までは簡単なので、その後にうまくいかない箇所の原因を突き止める方が重要 一般的なLLMのユースケースにおける、原因箇所のパターン インプット
データ (ファイル) LLMの処理 アウトプット プロンプト 生成 ①前処理での欠損・毀損 ②検索での欠損 ③結果をまとめる際の欠損・毀損 ④LLM処理での誤り ④のLLM部分(特にプロンプト)に目が行きがちだが、実は他に問題があるかも
© 2023 LayerX Inc. 19 原因①: 前処理での欠損・毀損 精度評価と改善 PDFやdocxからテキストを抜き出す際に、重要な情報が抜けたり単語・文章が崩れたりする 人間が読む順番と異なる
例: 段落の順番が崩れている (縦割りの学術論文等) ① ② ③ ④ ① ② ③ ④
© 2023 LayerX Inc. 20 原因②: 検索での欠損 精度評価と改善 PDFやdocxからテキストを抜き出す際に、重要な情報が抜けたり単語・文章が崩れたりする 間違ったチャンクが取得されている
例: インプットのテキストを分割したチャンクの検索で、必要なチャンクが選ばれていない Query 正解に必要なチャンク
© 2023 LayerX Inc. 21 原因③: 結果をまとめる際の欠損・毀損 精度評価と改善 例えばLangchainのmap_reduceやrefineで、チャンクごとの結果を合体する過程で欠損したりする 例:
map_reduceでmapでは取れた正解がreduceで欠損する 出典: https://python.langchain.com/docs/modules/chains/document/map_reduce reduceで欠損! mapでは取れている 途中の結果を確認すると良い
© 2023 LayerX Inc. 22 LLMに限らない、アルゴリズム改善の一般的な話 1. パラメタ・アルゴリズムを変えるときは一箇所だけ • 一度に色々変えると、どれの影響なのかわかりづらい
2. 問題を切り分ける • 例: LLMに「AとBをせよ」と指示してうまくいかない場合、Aだけの処理、Bだけの処理に分ける 3. 対象データ・処理内容を段階的に難しくする • “toy example” を作る チューニングにおける一般的な心がけ 精度評価と改善
None