LLMのファインチューニングとRAG チャットボット開発による実践

ローカルLLMでファインチューニングとRAGを学ぼう!

このような方におすすめ

◎ LLMに興味がある自然言語処理エンジニア、研究者
〇自然言語処理を学ぶ情報系学部などの大学生
  • 著者新納 浩幸
  • 定価2,640 (本体2,400 円+税)
  • A5 176頁 2024/05発行
  • ISBN978-4-274-23195-7
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3営業日以内で発送いたします。
※取寄が可能な場合もございますのでお問合せください。

  • 概要
  • 主要目次
  • 詳細目次

本書は、公開されている大規模言語モデル(LLM: Large Language Model)を使ってローカル環境に独自のチャットボットを構築することを目標に、LLM のファインチューニングと RAG (Retrieval Augmented Generation) の基礎と、そのプログラミングについて学ぶものです。

ChatGPTの台頭により、高性能なチャットボットへの期待が急速に高まっています。しかし、そのチャットボットの核となるLLMは基本的に言語モデルであるために、幻覚(誤った情報)を生成してしまいます。とくに、LLMはローカルな情報や最新の情報は持っていないため、それらに関する質問に対しては正しい回答が期待できません。また、ChatGPTのようにLLMが外部のサーバにある場合、自社データや顧客データを入力することには抵抗があると思います。

本書では、そういった課題を解決するために、公開LLMをファインチューニングしたり、公開LLMを使ったRAGを構築したりすることで、よりニーズに沿ったチャットボットを構築します。こういった調整を行って構築したチャットボットは、特定の分野について深く正確に回答してくれるようになります。

<本書のポイント>

・LLMについての基本事項を学べます。

・LLMのファインチューニングの方法とRAGの構築方法を学べます。

・解説したプログラムをウェブサイトで配布します。

https://www.ohmsha.co.jp/book/9784274231957/
第1章 大規模言語モデル
第2章 ファインチューニング:言語モデルの追加学習
第3章 Instruction Tuning:指示に基づくファインチューニング
第4章 大規模言語モデルのファインチューニング
第5章 RAG:検索を併用した文生成
第6章 ChainlitによるGUIのチャットボット
はじめに/目次

第1章 大規模言語モデル
1.1 言語モデルとは
1.2 言語モデルとチャットボット
1.3 日本語特化のLLM
1.4 LLMの利用
1.5 この章で使用した主なプログラム

第2章 ファインチューニング:言語モデルの追加学習
2.1 基本的な学習の処理
2.2 Trainerの利用
2.3 訓練データをDatasetへ
2.4 collator
2.5 保存されたモデルからの文生成
2.6 Early Stoppingの導入
2.7 この章で使用した主なプログラム

第3章 Instruction Tuning:指示に基づくファインチューニング
3.1 Instruction Tuningとは
3.2 Instruction Tuningの学習データ
3.3 Instruction Tuningの学習データの作成
3.4 Instruction Tuningの実行
3.5 Instruction Tuningモデルによる文生成
3.6 この章で使用した主なプログラム

第4章 大規模言語モデルのファインチューニング
4.1 LoRA:低ランク行列によるファインチューニング
4.2 PEFT:効率的にファインチューニングするためのライブラリ
4.3 LoRAモデルによる文生成
4.4 QLoRA:LoRAに量子化を利用する
(1) 量子化とは
(2) bitsandbytesの利用
4.5 Prompt Tuning:プロンプトの効率的なチューニング法
4.6 この章で使用した主なプログラム

第5章 RAG:検索を併用した文生成
5.1 RAGとは
5.2 FAISSによるデータベースの構築
(1) パッセージの作成
(2) パッセージのベクトル化
(3) ベクトルデータベースの構築
5.3 RetrievalQAとOpenAIのLLMによるRAGの構築
5.4 RetrievalQAと公開LLMによるRAGの構築
(1) プロンプトの作成
(2) HuggingFacePipelineを利用したLLMの設定
(3) プロンプトの変更
5.5 RAGの各種パーツの変更
(1) WikipediaRetrieverクラスの利用
(2) Wikipediaからの自前データベースの作成
(3) Document LoaderとDocument transformersによるデータベースの作成
(4) キーワードデータベースの検索
(5) 量子化モデルの利用
5.6 HyDE:仮想的文書作成による検索法
5.7 RAGの性能向上のために検討するべき要素
5.8 この章で使用した主なプログラム

第6章 ChainlitによるGUIのチャットボット
6.1 インストール
6.2 Chainlitの基本プログラム
6.3 OpenAIのLLMを使ったチャットボットのGUI
6.4 公開LLMを使ったチャットボットのGUI
6.5 RAGを利用したチャットボットのGUI
6.6 Chainlitのサーバでの稼働
6.7 この章で使用した主なプログラム

あとがき/索引/奥付