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
ChatGPTなどの言語モデルは どのようにシステムで使えるか / How to use LLM in System
Search
Naoki Kishida
June 14, 2023
Programming
4
1.4k
ChatGPTなどの言語モデルは どのようにシステムで使えるか / How to use LLM in System
2023/6/14に開催されたFukuoka Integration Xでの登壇資料です
https://fix.connpass.com/event/283871/
Naoki Kishida
June 14, 2023
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
Java 22 Overview
kishida
1
190
Is Object-Oriented nessesary?
kishida
0
41
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
31
22k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.6k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
23
12k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
24
7.2k
Java 21の概要 / outline of Java 21
kishida
10
6.1k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
14k
Other Decks in Programming
See All in Programming
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
120
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
310
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
GitHub Copilotのススメ
marcy731
1
220
ゆるい個人開発のススメ
kuroppe1819
10
1k
Deep Dive into React Stream/Serialize
mugi_uno
3
480
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
390
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
1
330
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
2
200
"config" ってなんだ? / What is "config"?
okashoi
0
250
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
370
Featured
See All Featured
Building an army of robots
kneath
300
41k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
The Cult of Friendly URLs
andyhume
74
5.7k
Happy Clients
brianwarren
92
6.4k
Infographics Made Easy
chrislema
238
18k
What's new in Ruby 2.0
geeforr
337
31k
Fantastic passwords and where to find them - at NoRuKo
philnash
38
2.5k
Building Adaptive Systems
keathley
32
1.9k
We Have a Design System, Now What?
morganepeng
44
6.8k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Transcript
ChatGPTなどの言語モデルは どのようにシステムで使えるか LINE Fukuoka きしだ なおき 2023/6/14 Fukuoka Integration X
2023/06/14 2 自己紹介 • きしだ なおき • LINE Fukuoka •
twitter: @kis • 「プロになるJava」という Java入門書を書いてます
ChatGPTとは • サービスとして • Webやアプリでチャットを行う • APIとして • プログラムからChatGPTを呼び出す •
言語モデルとして • ChatGPTの基盤になるTransformerをベースにした言語モデル • 文章のどこが大事か注目する • 実際には2つのモデル • gpt-4 • gpt-3.5-turbo(サービスとしては無償で利用可能)
ChatGPTによって「AI」開発が活発に • 研究者から技術者へ • 日本でも独自モデルを作ろうという動き • 富岳での言語モデル開発 • 日本語特化モデルの相次ぐ発表
リスクの議論も始まる • 著作権 • 日本の著作権ではモデル作成がやりやすい • 利用時は人間の手による創作と変わらない基準 • ただし量が多い •
個人情報 • 利用時の問い合わせに個人情報を含めてしまう • 意図せずモデル作成に使われる • 有害情報 • モデル作成時の偏り • 思いがけない出力
ChatGPTの使いかた • サービスとして使う • APIとして使う
ChatGPTの利用方法 • 「言語の計算機」 • 文章の変換 • 文章の解析 • 一般知識の解説 •
テキスト生成(プログラムを含む)
文章の変換 • 箇条書きからメール文 • 要約 • 文体の変換 • 翻訳
文章の解析 • 文章の妥当性のチェック • 特性の判断 • プログラムの解説
特性判断の例 • ブログ著者のプロファイリング
プログラムの解説 • よくわからないプログラムを解説してくれる
一般知識の解説 • 検索がわり • 業務フローなどの解説
文章の生成 • 物語 • 詩 • プログラム
プロンプトの技術 • プロンプトエンジニアリング • Chain Of Thought(CoT) • Zero Shot
CoT
Chain Of Thought(CoT) • 考え方を提示すると正しい答えが出やすくなる
Zero Shot CoT • 「Let’s Think Step by Step」をつけるだけでいい
システムからの利用 • APIを利用 • 関数定義が可能になった • 文章から適切な機能呼び出しの抽出 • プラグイン •
ChatGPTのサービスから自分たちのサービスを呼び出す • Embedding(埋め込み) • 文章をベクトル化 • 近い文章を見つける
Embedding(埋め込み) • 文章の特徴をあらわすベクトルに変換 • 方向が近いベクトルは似た文章 • 文章検索に利用できる
ChatGPT以外の言語モデル • Google • PaLM2 • Bardで使われる • Meta •
LLaMA • OPT •
日本語特化LLM(発表順) • B=10億 • ChatGPTのGPT-3.5が355Bと言われている 提供元 名称 パラメータ数 オープン利用 LINE,
Naver ワークスモバイルジャパン HyperCLOVA 39B, 82B開発中 オルツ LHTM-2 160B ABEJA ABEJA LLM 13B Open版ABEJA LLM 2.7B 〇 CyberAgent 極予測AI 13B OpenCALM 6.8B 〇 Rinna Rinna 3.6B 〇 AI Inside PolyShere-1 140B
必要なメモリ • 32bit Floatだとパラメータ数の4倍 • 16bit Floatだとパラメータ数の2倍 • Rinna 3.6Bは8GB程度のGPUメモリが必要
使いやすくする • 小さいメモリで動かす • Int8 • パラメータ数と同じ量のメモリ • 4bit量子化 •
パラメータ数の半分のメモリ • Rinna 3.6Bだと2GB • CPUで動かす • llama.cpp • スマホで動かせる
ローカルLLMのメリット • 実験がやりやすい • LLMの動きを体感しやすい • 独自の学習ができる • Fine Tuning
FineTuningとプロンプトの違い • プロンプトは台本 • シナリオに沿った応答をしてくれるけど、「素」がでる • Fine Tuningは教育 • 「素」を変える
Fine Tuningの技術 • Fine Tuningを素直にやると大量のメモリが必要 • LoRA • Low Rank
Adaptation • 少ないメモリでFine Tuneできる
Fine Tuningにはデータセットが必要 • データセットはプロンプトの集合体 • プロンプトエンジニアリングのスケールアップ
まとめ • 現状は実験段階 • ChatGPTが出て半年で多くのサービス • つまり半年で実装できる • プログラミング的には難しくない •
現状は「思ったより使える」 • 「使える」になるにはもうしばらくかかる • 実験して、何ができるか、どのような制約があるか体感するのが 大切