内容紹介
ローカルLLMでファインチューニングとRAGを学ぼう!
本書は、公開されている大規模言語モデル(LLM: Large Language Model)を使ってローカル環境に独自のチャットボットを構築することを目標に、LLM のファインチューニングと RAG (Retrieval Augmented Generation) の基礎と、そのプログラミングについて学ぶものです。
ChatGPTの台頭により、高性能なチャットボットへの期待が急速に高まっています。しかし、そのチャットボットの核となるLLMは基本的に言語モデルであるために、幻覚(誤った情報)を生成してしまいます。とくに、LLMはローカルな情報や最新の情報は持っていないため、それらに関する質問に対しては正しい回答が期待できません。また、ChatGPTのようにLLMが外部のサーバにある場合、自社データや顧客データを入力することには抵抗があると思います。
本書では、そういった課題を解決するために、公開LLMをファインチューニングしたり、公開LLMを使ったRAGを構築したりすることで、よりニーズに沿ったチャットボットを構築します。こういった調整を行って構築したチャットボットは、特定の分野について深く正確に回答してくれるようになります。
<本書のポイント>
・LLMについての基本事項を学べます。
・LLMのファインチューニングの方法とRAGの構築方法を学べます。
・解説したプログラムをウェブサイトで配布します。
このような方におすすめ
◎ LLMに興味がある自然言語処理エンジニア、研究者
〇自然言語処理を学ぶ情報系学部などの大学生
目次
主要目次
第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に量子化を利用する
① 量子化とは
② 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 この章で使用した主なプログラム
あとがき/索引/奥付
続きを見る