関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、公開されている大規模言語モデル(LLM: Large Language Model)を使ってローカル環境に独自のチャットボットを構築することを目標に、LLM のファインチューニングと RAG (Retrieval Augmented Generation) の基礎と、そのプログラミングについて学ぶものです。
ChatGPTの台頭により、高性能なチャットボットへの期待が急速に高まっています。しかし、そのチャットボットの核となるLLMは基本的に言語モデルであるために、幻覚(誤った情報)を生成してしまいます。とくに、LLMはローカルな情報や最新の情報は持っていないため、それらに関する質問に対しては正しい回答が期待できません。また、ChatGPTのようにLLMが外部のサーバにある場合、自社データや顧客データを入力することには抵抗があると思います。
本書では、そういった課題を解決するために、公開LLMをファインチューニングしたり、公開LLMを使ったRAGを構築したりすることで、よりニーズに沿ったチャットボットを構築します。こういった調整を行って構築したチャットボットは、特定の分野について深く正確に回答してくれるようになります。
<本書のポイント>
・LLMについての基本事項を学べます。
・LLMのファインチューニングの方法とRAGの構築方法を学べます。
・解説したプログラムをウェブサイトで配布します。
書誌情報
- 著者: 新納浩幸
- 発行日: 2024-05-09 (紙書籍版発行日: 2024-05-22)
- 最終更新日: 2024-05-09
- バージョン: 1.0.0
- ページ数: 176ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: オーム社
対象読者
LLMに興味がある自然言語処理エンジニア、研究者 、自然言語処理を学ぶ情報系学部などの大学生
著者について
新納浩幸
1961年生まれ。
1985年 東京工業大学理学部情報科学科卒業
1987年 東京工業大学大学院理工学研究科情報科学専攻修士課程修了
現在、茨城大学工学部情報工学科教授、博士(工学)。専門は自然言語処理。
目次
はじめに/目次
第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に量子化を利用する
- ① 量子化とは
- ② bitsandbytesの利用
- 4.5 Prompt Tuning:プロンプトの効率的なチューニング法
- 4.6 この章で使用した主なプログラム
第5章 RAG:検索を併用した文生成
- 5.1 RAGとは
- 5.2 FAISSによるデータベースの構築
- ① パッセージの作成
- ② パッセージのベクトル化
- ③ ベクトルデータベースの構築
- 5.3 RetrievalQAとOpenAIのLLMによるRAGの構築
- 5.4 RetrievalQAと公開LLMによるRAGの構築
- ① プロンプトの作成
- ② HuggingFacePipelineを利用したLLMの設定
- ③ プロンプトの変更
- 5.5 RAGの各種パーツの変更
- ① WikipediaRetrieverクラスの利用
- ② Wikipediaからの自前データベースの作成
- ③ Document LoaderとDocument transformersによるデータベースの作成
- ④ キーワードデータベースの検索
- ⑤ 量子化モデルの利用
- 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 この章で使用した主なプログラム