大模型基础配置之Win11安装HuggingFace Transformers库

介绍

  • Transformer是大语言模型(Large Language Model, LLM)的基础架构
  • Transformers库是HuggingFace开源的
  • 可以完成各种语言、音频、视频、多模态任务
    • 情感分析
    • 文本生成
    • 命名实体识别
    • 阅读理解:给的那个上下文,从上下文提取答案
    • 掩码填充:完形填空
    • 文本摘要
    • 机器翻译
    • 文本表征
    • 对话机器人

相关库的介绍及其地址

安装

建议在anaconda新建环境安装

  • 新建环境,这里选择python=3.9(与wsl安装的python版本一致)

    conda create -n python=3.9
    
  • 激活环境,配置清华源

    conda activate llm  # 激活
    
    • pip换源

      pip install pip -U
      pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
      
    • conda换源

      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
      conda config --set show_channel_urls yes
      
  • 安装pytorch-->根据自己的cuda版本,选择小于等于cuda版本对应的pytorch(这里cuda选择11.6进行安装

                        

        

    

  • pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
    
  • 安装transformers相关库

    • transformers、datasets、evaluate、peft、accelerate、gradio、optimum、sentencepiece
    • pip install transformers datasets evaluate peft accelerate gradio optimum sentencepiece
      
    • 没有出现的红色的警告信息即安装成功,通过安装实验证明transformers库的确需要torch 1.13.0版本以上的,建议1.13.1版本
  • 安装其他库

    • jupyterlab、scikit-learn、pandas、matplotlib、tensorboard、nltk、rouge、seaborn、tqdm、gtts、pygame
    • pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge seaborn tqdm gtts pygame
      
  • 将环境添加到Jupyter列表

    • 安装ipykernel

      pip install ipykernel
      
      python -m ipykernel install --user --name llm --display-name llm
      
  • demo验证

    from transformers import *
    
    • demo.py

      # 导入gradio
      import gradio as gr
      # 导入transformers相关包
      from transformers import pipeline
      # 通过Interface加载pipeline并启动阅读理解服务
      # 如果无法通过这种方式加载,可以采用离线加载的方式
      gr.Interface.from_pipeline(pipeline("question-answering", model="uer/roberta-base-chinese-extractive-qa", device=0)).launch()
      

        

  • hosts修改-->解决访问github出问题

    • 用everything搜索hosts

    • C:\Windows\System32\drivers\etc下的hosts用vscode打开

    • 末尾添加以下内容并系统管理员保存

      185.199.108.133 raw.githubusercontent.com
      185.199.109.133 raw.githubusercontent.com
      185.199.110.133 raw.githubusercontent.com
      185.199.111.133 raw.githubusercontent.com
      2606:50c0:8000::154 raw.githubusercontent.com
      2606:50c0:8001::154 raw.githubusercontent.com
      2606:50c0:8002::154 raw.githubusercontent.com
      2606:50c0:8003::154 raw.githubusercontent.com
      

缓存路径修改

由于transformers的模型会下载到C盘用户下的.cache\huggingface\hub下,考虑到一般模型文件比较大占用系统内存,因此需要更改缓存路径到其他盘中

  • 缓存路径
    • linux: ~/.cache/huggingface/hub

    • Windows:C:/Users/<用户名>/.cache/huggingface/hub

      • 缓存的模型文件以哈希值形式储存
      <CACHE_DIR> # 缓存路径
      ├─ <MODELS>    # 模型路径
      ├─ <DATASETS>  # 数据集路径
      ├─ <SPACES>    # 空间路径
      

<CACHE_DIR>通常由 HF_HOME 或 HF_HUB_CACHE指定

1. 更改模型下载的缓存路径

  • 修改cache_dir参数

  • 比如将模型下载到E:\huggingface\cache

    from transformers import AutoModelForMaskedLM
    model = AutoModelForMaskedLM.from_pretrained("google-bert/bert-base-uncased",cache_dir="E:/huggingface/cache")
    

        

  1. 设置环境变量
    • HUGGINGFACE_HUB_CACHE
    • TRANSFORMERS_CACHE
    • HF_HOME
    • XDG_CACHE_HOME + /huggingface
    • 优先查找TRANSFORMERS_CACHE
    • windows更改
      • 新建系统环境变量TRANSFORMERS_CACHE,输入更改后的缓存目录路径

建议直接更改缓存目录参数就好

<think>好的,我现在需要帮用户解决在Windows 11上使用DeepSeek部署私有知识的问题。首先,我得确认用户提到的“DeepSeek”具体指什么。可能是指深度求索公司的某个产品,或者是类似DeepSeek-R1之类的开源模型?不过用户可能是指如何用类似DeepSeek的模型搭建私有知识,比如结合LangChain或其他工具。 接下来,我需要考虑用户的需求。私有知识通常需要几个步骤:模型选择、本地部署、文档处理、接口搭建等。用户可能对技术细节不太熟悉,所以步骤要清晰,避免太专业的术语,但又要保证正确性。 首先,模型准备。如果用户想用DeepSeek的模型,可能需要去官网下载或申请API权限。不过如果是开源模型,比如DeepSeek-R1,可能需要从Hugging Face获取。这里可能需要说明如何获取模型文件,比如使用git-lfs下载。 然后,环境配置。用户需要在Windows 11安装Python、PyTorch等依赖。这里要注意说明使用conda或venv创建虚拟环境,安装对应版本的PyTorch,可能还需要CUDA支持,如果用户有GPU的话。 接下来是文档处理。需要将用户的文档(如PDF、Word等)转换为文本,并进行分块和向量化。这里可能需要用到LangChain的文档加载器,比如PyPDF2或Unstructured,然后使用文本分割器,比如RecursiveCharacterTextSplitter。向量化部分可能需要Hugging Face的sentence-transformers模型,或者OpenAI的API,但因为是私有部署,可能更倾向于本地模型。 然后,向量数据的选择。FAISS是常用的本地向量数据,适合Windows环境。需要指导用户安装faiss-cpu,并存储和检索向量。 模型集成部分,需要将问题与检索到的文档结合,生成回答。这里可以用Hugging Face的pipeline加载本地模型,或者使用Transformers。需要处理输入文本,限制生成长度等参数。 接口搭建部分,用户可能需要一个简单的GUI或Web界面。Gradio是一个不错的选择,可以快速搭建界面,方便用户输入问题和获取回答。 此外,还需要考虑可能的错误和问题,比如模型与的版本兼容性、CUDA是否配置正确、文档解析出错等。建议用户在遇到问题时检查日志,安装必要的依赖,比如Microsoft Visual C++ Build Tools。 最后,给出一个示例代码框架,帮助用户理解整个流程。确保代码中的路径和模型名称需要用户根据实际情况修改,并提醒注意事项,比如硬件要求、模型版权和数据处理隐私问题。 总结下来,步骤应该是:准备模型 → 配置环境 → 处理文档 → 向量数据 → 集成模型 → 搭建接口 → 测试优化。每个步骤需要详细说明,但保持简洁,避免让用户感到复杂。同时,提醒用户可能的陷阱,比如模型大小需要足够内存,或GPU加速的配置方法。</think>以下是在Windows 11个人电脑上部署私有知识的分步指南,使用DeepSeek相关技术栈实现: --- ### **Step 1 - 环境准备** 1. **安装基础工具** - 下载Python 3.8+:<https://www.python.org/> - 安装CUDA Toolkit(如使用NVIDIA GPU):<https://developer.nvidia.com/cuda-toolkit> - 创建虚拟环境: ```bash conda create -n deepseek-env python=3.10 conda activate deepseek-env ``` 2. **安装核心** ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # GPU版 pip install transformers langchain faiss-cpu gradio sentence-transformers ``` --- ### **Step 2 - 模型获取** 1. **获取DeepSeek模型** - 访问官方平台(如ModelScope或Hugging Face)下载模型: ```bash git lfs install git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat ``` --- ### **Step 3 - 文档处理** 1. **文档预处理脚本** ```python from langchain.document_loaders import DirectoryLoader from langchain.text_splitter import RecursiveCharacterTextSplitter loader = DirectoryLoader('./docs/', glob="**/*.pdf") documents = loader.load() text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50 ) splits = text_splitter.split_documents(documents) ``` --- ### **Step 4 - 向量化存储** 1. **构建向量数据** ```python from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import FAISS embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-base-zh") vectorstore = FAISS.from_documents(splits, embeddings) vectorstore.save_local("faiss_index") ``` --- ### **Step 5 - 模型集成** 1. **加载本地模型** ```python from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "./deepseek-llm-7b-chat" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained(model_path) ``` 2. **构建问答链** ```python from langchain.chains import RetrievalQA qa = RetrievalQA.from_chain_type( llm=model, retriever=vectorstore.as_retriever(), chain_type="stuff" ) ``` --- ### **Step 6 - 界面部署** 1. **创建Gradio交互界面** ```python import gradio as gr def answer_question(question): docs = vectorstore.similarity_search(question, k=3) inputs = tokenizer(question, return_tensors="pt") outputs = model.generate(**inputs, max_length=500) return tokenizer.decode(outputs[0]) iface = gr.Interface( fn=answer_question, inputs="textbox", outputs="text", title="DeepSeek知识" ) iface.launch(server_port=7860) ``` --- ### **关键参数配置** | 组件 | 推荐配置 | 作用 | |-------|---------|-----| | Chunk Size | 500 tokens | 平衡上下文完整性 | | Top-K Retrieval | 3-5 | 控制参考文档数量 | | Temperature | 0.3 | 控制生成随机性 | | Max Length | 1024 | 限制响应长度 | --- ### **常见问题解决** 1. **CUDA内存不足** - 添加`device_map="auto"`加载模型: ```python model = AutoModelForCausalLM.from_pretrained(..., device_map="auto") ``` 2. **文档解析错误** - 安装补充解析器: ```bash pip install unstructured[local-inference] ``` --- ### **效果优化建议** 1. 使用P-Tuning微调模型(需至少16GB显存) 2. 添加Rerank层优化检索结果 3. 设置访问密码保护隐私数据 部署完成后,通过浏览器访问`http://localhost:7860`即可使用私有知识系统。实际部署时需根据硬件配置调整量化方案(如使用4-bit量化)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值