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
勉強会3_LLMを活用する技術について
Search
milky04
May 19, 2024
Programming
0
42
勉強会3_LLMを活用する技術について
社内勉強会資料です(2023/11/15)
milky04
May 19, 2024
Tweet
Share
More Decks by milky04
See All by milky04
勉強会2_機械学習のモデル学習と開発について
milky04
0
30
勉強会4_アップデートされたAssistantsAPIを試す
milky04
0
2.2k
勉強会1_SlackのAIチャットボットを作ってみた
milky04
0
49
Other Decks in Programming
See All in Programming
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
140
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
350
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
110
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
5
950
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
iOS開発におけるCopilot For XcodeとCode Completion / copilot for xcode
fuyan777
1
110
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
820
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
970
Haze - Real time background blurring
chrisbanes
1
520
テストコード書いてみませんか?
onopon
2
210
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
300
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Docker and Python
trallard
42
3.1k
Scaling GitHub
holman
459
140k
Speed Design
sergeychernyshev
25
670
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Designing for Performance
lara
604
68k
Building Your Own Lightsaber
phodgson
103
6.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Transcript
LLMを活用する技術について
はじめに • LLM(Large Language Model(大規模言語モデル))が話題ですが、 LLMを使 用したシステム・アプリケーション開発はどのように行うのか? →LLMを活用する技術のうち、「LangChain」と「Open Interpreter」について、 簡単に解説や紹介をしていきます。
• 実際にコードも見て、 (時間の許す限り)動かしていきます。 ※最新の情報が反映できていない部分があるかもしれません。
LLMとは • Large Language Model(大規模言語モデル)の略 • 大量のテキストデータを使ってトレーニングされた自然言語処理モデル • ファインチューニング等により様々な自然言語処理タスクに適応可能 •
例:テキスト生成/分類、感情分析、情報抽出、文章要約、質問応答 →ChatGPTはLLMの応用例の1つ。LLMを対話特化にファインチューニング したもの。
LangChain • LLMと連携するアプリの開発を支援するライブラリ • 言語モデルアプリケーションの構築に使用可能な、多くのモジュー ルを提供している • モジュールを個別に使用したり、組み合わせたり繋げて(Chain)複雑 なアプリケーションの作成が可能
LangChainの主なモジュール • Language Model : 言語モデルによる推論の実行 └LLM : テキスト生成モデル └ChatModel
: チャットモデル • Prompt Template : ユーザー入力からのプロンプトの生成 • Chain : 複数のLLMやプロンプトの入出力を繋げる • Agent : ユーザーの要求に応じてどの機能をどういう順番で実行するかを決定 • Memory : 過去のやりとりに関する情報を保持 • Retrieval : 検索拡張生成 (RAG) • Callback : ロギング、モニタリング、ストリーミングなどで利用
Open Interpreter • LLMを活用して開発されたオープンソースのツール • 自然言語による対話を通じてローカル環境でコードを実行し、結果を返す • ローカル環境で動作するため、OSを直接操作させることが可能であり、ファイル容 量やネット接続の制約がない •
対応言語:Python/R/JavaScript/shell/AppScript/HTML • 例えば以下のような様々な事が可能 └「YouTubeから動画をDLしてアニメーションを作成して」「動画に字幕をつけて」 └「ローカルにあるファイルを開いて中身を書き換えて」など →AIアシスタントの開発等に有用
Open Interpreterの仕組み 1. ユーザー入力受付&LLM初期化 2. ユーザー入力に関連したcode snipetsを取得(自然言語で問い合わせると Pythonコードのチュートリアルを返すAPIにリクエストして取得) 3. LLMへの指示とcode
snipets、ユーザー入力、ユーザーのOS等の情報をまとめ てpromptを作成し、LLMに投げる 4. エラー発生等うまくいかない場合は目標達成するまで再実行 ↑上記流れを繰り返す • 仕組みの詳細については以下参考 └Open Interpreterのログ解析して、何が行われているのか確認してみた └Open Interpreterの実装を読み解く
実際にコードを見ていきます • GoogleColab • https://colab.research.google.com/drive/1MpqkWFNs0UFH47AJgpGaVc 7umirZCDRd?usp=sharing
おわりに • こうした技術を活用して、LLMを使用したシステム・アプリケーション開発を することで、アイデアや工夫次第で様々な可能性が広がると思います。 • 技術の発展スピードが凄く、追うのは中々大変ですが今後も注目であり、こ の先どう進歩していくか色々な意味で楽しみですね(先日もOpenAI DevDay で発表がありましたね)。 •
今回紹介した他にもLLM関連の技術は様々なものがあるので、興味のあ る方は調べてみてください。