From bceb7196d1bb1b09a86149fd97f95bea49c07e7c Mon Sep 17 00:00:00 2001 From: Yunlin Mao Date: Mon, 13 Jan 2025 21:03:59 +0800 Subject: [PATCH] update doc with llama_index (#1180) --- ...rch_QA_based_on_langchain_llamaindex.ipynb | 342 +++++++++++++++++- ...en_doc_search_QA_based_on_llamaindex.ipynb | 126 +++++-- 2 files changed, 422 insertions(+), 46 deletions(-) diff --git a/examples/pytorch/application/qwen_doc_search_QA_based_on_langchain_llamaindex.ipynb b/examples/pytorch/application/qwen_doc_search_QA_based_on_langchain_llamaindex.ipynb index e6ddabfd..a66c079d 100644 --- a/examples/pytorch/application/qwen_doc_search_QA_based_on_langchain_llamaindex.ipynb +++ b/examples/pytorch/application/qwen_doc_search_QA_based_on_langchain_llamaindex.ipynb @@ -2,6 +2,10 @@ "cells": [ { "cell_type": "markdown", + "id": "8230365523c9330a", + "metadata": { + "collapsed": false + }, "source": [ "# Usage\n", "1. Install python dependencies\n", @@ -30,11 +34,7 @@ "``` \n", "\n", "3. Enjoy your QA AI" - ], - "metadata": { - "collapsed": false - }, - "id": "8230365523c9330a" + ] }, { "cell_type": "code", @@ -94,7 +94,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "1cb8feca-c71f-4ad6-8eff-caae95411aa0", "metadata": { "ExecutionIndicator": { @@ -109,7 +109,312 @@ }, "tags": [] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading Model to directory: /mnt/workspace/.cache/modelscope/Qwen/Qwen-1_8B-Chat\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading Model to directory: /mnt/workspace/.cache/modelscope/Qwen/Qwen-1_8B-Chat\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Try importing flash-attention for faster inference...\n", + "Warning: import flash_attn rotary fail, please install FlashAttention rotary to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/rotary\n", + "Warning: import flash_attn rms_norm fail, please install FlashAttention layer_norm to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/layer_norm\n", + "Warning: import flash_attn fail, please install FlashAttention to get higher efficiency https://github.com/Dao-AILab/flash-attention\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "114cb3d66e9e4f6694ba66c91fc4b8a9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Loading checkpoint shards: 0%| | 0/2 [00:00 List[Document]:\n", " \"\"\"Get documents relevant for a query.\"\"\"\n", " try:\n", - " from llama_index.indices.base import BaseIndex\n", - " from llama_index.response.schema import Response\n", + " from llama_index.core.indices.base import BaseIndex\n", + " from llama_index.core import Response\n", " except ImportError:\n", " raise ImportError(\n", " \"You need to install `pip install llama-index` to use this retriever.\"\n", @@ -239,9 +541,9 @@ "\n", "# define QianWen LLM based on langchain's LLM to use models in Modelscope\n", "class QianWenChatLLM(LLM):\n", - " max_length = 10000\n", + " max_length: int = 10000\n", " temperature: float = 0.01\n", - " top_p = 0.9\n", + " top_p: float = 0.9\n", "\n", " def __init__(self):\n", " super().__init__()\n", @@ -270,11 +572,11 @@ "# STEP2: load knowledge file and initialize vector db by llamaIndex\n", "print('STEP2: reading docs ...')\n", "embeddings = ModelScopeEmbeddings4LlamaIndex(model_id=embedding_model)\n", - "service_context = ServiceContext.from_defaults(embed_model=embeddings, llm=None)\n", - "set_global_service_context(service_context) # global config, not good\n", + "Settings.llm = None\n", + "Settings.embed_model=embeddings # global config, not good\n", "\n", "llamaIndex_docs = SimpleDirectoryReader(knowledge_doc_file_dir).load_data()\n", - "llamaIndex_index = GPTVectorStoreIndex.from_documents(llamaIndex_docs, chunk_size=512)\n", + "llamaIndex_index = VectorStoreIndex.from_documents(llamaIndex_docs, chunk_size=512)\n", "retriever = LlamaIndexRetriever(index=llamaIndex_index)\n", "print(' 2.2 reading doc done, vec db created.')\n", "\n", @@ -318,7 +620,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.9.20" } }, "nbformat": 4, diff --git a/examples/pytorch/application/qwen_doc_search_QA_based_on_llamaindex.ipynb b/examples/pytorch/application/qwen_doc_search_QA_based_on_llamaindex.ipynb index 194c46a2..51505e84 100644 --- a/examples/pytorch/application/qwen_doc_search_QA_based_on_llamaindex.ipynb +++ b/examples/pytorch/application/qwen_doc_search_QA_based_on_llamaindex.ipynb @@ -2,6 +2,10 @@ "cells": [ { "cell_type": "markdown", + "id": "f4abc589d9bfffca", + "metadata": { + "collapsed": false + }, "source": [ "# Usage\n", "\n", @@ -34,27 +38,29 @@ "```\n", "\n", "## 3. Go!" - ], - "metadata": { - "collapsed": false - }, - "id": "f4abc589d9bfffca" + ] }, { "cell_type": "code", + "execution_count": null, + "id": "c32122833dd7b8c8", + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "!pip install modelscope\n", "!pip install transformers -U\n", "!pip install llama-index llama-index-llms-huggingface ipywidgets " - ], - "metadata": { - "collapsed": false - }, - "id": "c32122833dd7b8c8" + ] }, { "cell_type": "code", + "execution_count": null, + "id": "63704e2b21a9ba52", + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "!wget https://modelscope.oss-cn-beijing.aliyuncs.com/resource/rag/punkt.zip\n", @@ -74,15 +80,90 @@ "!mv /mnt/workspace/xianjiaoda.md /mnt/workspace/custom_data\n", "\n", "!cd /mnt/workspace" - ], - "metadata": { - "collapsed": false - }, - "id": "63704e2b21a9ba52" + ] }, { "cell_type": "code", - "outputs": [], + "execution_count": 2, + "id": "eef67659e94045c5", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading Model to directory: /mnt/workspace/.cache/modelscope/qwen/Qwen1.5-4B-Chat\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-13 15:52:53,260 - modelscope - INFO - Model revision not specified, using default: [master] version.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-13 15:52:53,637 - modelscope - INFO - Creating symbolic link [/mnt/workspace/.cache/modelscope/qwen/Qwen1.5-4B-Chat].\n", + "2025-01-13 15:52:53,638 - modelscope - WARNING - Failed to create symbolic link /mnt/workspace/.cache/modelscope/qwen/Qwen1.5-4B-Chat for /mnt/workspace/.cache/modelscope/qwen/Qwen1___5-4B-Chat.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4523c5dd31ba411d95cc0ce9e5da8ded", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Loading checkpoint shards: 0%| | 0/2 [00:00