核心内容摘要
《斗罗大陆》:唐三与朱竹清胸襟之距的细腻洞察与情感升华
今天开始将开å�¯ç³»åˆ—AI应用开å�‘课程主è¦�基äº�LangChain框æ�¶åŸºäº�å®�战项目手把手教大家如何将AI这一新时代的基础设施应用到自己开å�‘åº”ç”¨ä¸æ�¥ã€‚当下在AI应用开å�‘领域LangChain框æ�¶å�¯ä»¥è¯´æ˜¯å”¯ä¸€é€‰æ‹©ã€‚然而上手å¦ä¹ çš„å°�ä¼™ä¼´ä»¬å¤§å¤šè¢«æ‹¦åœ¨äº†ç¬¬ä¸€æ¥æ²¡æœ‰å�¯ä¾›ä½¿ç”¨çš„AI大模å�‹åº•座没有å�¯ä¾›å®�验的ç�¯å¢ƒè¿›è¡Œå®�æ“�。而å�„大å�‚商比如OpenAIæ��供的API需è¦�付费ä¸�说ä»�注册ã€�开通到使用都有诸多的ä¸�便和é™�åˆ¶ã€‚å› æ¤å¦‚何在本地或者ç§�有网络ä¸éƒ¨ç½²å’Œä½¿ç”¨AI大模å�‹æˆ�为了一个亟待解决的挑战。本文将以Baichuan
B-Chat-4bits为例介�如何进行AI大模��有部署,用�LangChain开��验��。本次课程�纲如下今天主��大模�部署的部分。基础�境�境�置�安装
python
8�以上版本官网安装�� 地�https://www.python.org/
pytorch
12�以上版本��
0�以上版本官网安装�� 地�https://pytorch.org/get-started/locally/
建议使用CUDA
1
4å�Šä»¥ä¸Šæ ¹æ�®æ˜¾å�¡åŒ¹é…�英伟达æ�¨è��驱动进行暗转 地å�€https://developer.nvidia.com/cuda-
-download-archive
建议使用linux�境安装本文示例基�linux�境演示
å�‡å®šä»¥ä¸‹åŠ¨ä½œæ‰§è¡Œçš„å½“å‰�目录为/aidev模å�‹ä¸‹è½½è¦�在LangChainå¼€å�‘ç�¯å¢ƒä¸éƒ¨ç½²AI大模å�‹é¦–先需è¦�下载模å�‹æ–‡ä»¶å’Œé…�置文件。Baichuan
B-Chat-4bits模å�‹å·²ç»�ä¸Šä¼ åˆ°äº†huggingface这个知å��çš„AI模å�‹åº“䏿ˆ‘们å�¯ä»¥é€šè¿‡ä»¥ä¸‹æ¥éª¤æ�¥ä¸‹è½½å®ƒä»�huggingface上下载模å�‹å�Šé…�置文件模å�‹ä¸‹è½½é“¾æ�¥å¦‚下https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits在模å�‹é¡µé�¢ä¸ç‚¹å‡»å�³ä¸Šè§’çš„Download按钮选择Download files选项。apt-get -y install -qq aria2 aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/config.json -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o config.json aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/configuration_baichuan.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o configuration_baichuan.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/generation_config.json -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o generation_config.json aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/generation_utils.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o generation_utils.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/handler.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o handler.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/modeling_baichuan.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o modeling_baichuan.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/resolve/main/pytorch_model.bin -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o pytorch_model.bin aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/quantizer.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o quantizer.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/requirements.txt -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o requirements.txt aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/special_tokens_map.json -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o special_tokens_map.json aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/tokenization_baichuan.py -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o tokenization_baichuan.py aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/resolve/main/tokenizer.model -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o tokenizer.model aria2c --console-log-levelerror -c -x 16 -s 16 -k 1M https://huggingface.co/baichuan-inc/Baichuan
B-Chat-4bits/raw/main/tokenizer_config.json -d /content/baichuan-inc/Baichuan
B-Chat-4bits -o tokenizer_config.json基础�赖安装下载好模�文件和�置文件�主目录为/aidev文件目录为baichuan-inc/Baichuan
B-Chat-4bits备注å��ç»å�¯åŠ¨æ¨¡å�‹ä¼šé»˜è®¤åŠ è½½æ¤ç›®å½•请按æ¤å‘½å��我们还需è¦�安装一些基础的ä¾�赖库以便äº�在LangChainå¼€å�‘ç�¯å¢ƒä¸è¿�行模å�‹ã€‚我们å�¯ä»¥é€šè¿‡ä»¥ä¸‹æ¥éª¤æ�¥å®‰è£…#pip安装模å�‹è¿�行的ä¾�èµ–requirment.txt文件 pip install -r baichuan-inc/Baichuan
B-Chat-4bits/requirements.txtè¿™æ ·å°±å®Œæˆ�了基础ä¾�赖库的安装。模å�‹æµ‹è¯•安装好基础ä¾�赖库å��我们å�¯ä»¥å…ˆæµ‹è¯•一下模å�‹æ˜¯å�¦èƒ½å¤Ÿæ£å¸¸è¿�行。我们å�¯ä»¥é€šè¿‡ä»¥ä¸‹æ¥éª¤æ�¥æµ‹è¯•基äº�官方示例创建模å�‹å¯¹è±¡å¹¶è°ƒç”¨å¯¹è¯�方法在当å‰�目录å�³/aidevä¸åˆ›å»ºä¸€ä¸ªå��为app.py的文件并输入以下内容import torch from transformers import AutoModelForCausalLM, AutoTokenizer from transformers.generation.utils import GenerationConfig tokenizer AutoTokenizer.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits, use_fastFalse, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits, device_mapauto, torch_dtypetorch.bfloat16, trust_remote_codeTrue) model.generation_config GenerationConfig.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits) messages [] messages.append({role: user, content: 解释一下“温故而知新â€�}) response model.chat(tokenizer, messages) print(response)å�¯ç”¨æµ‹è¯•python app.pyè¿�行效æ�œå¦‚下图所示基äº�FastAPI创建模å�‹è®¿é—®æ�¥å�£ç¤ºä¾‹æµ‹è¯•好模å�‹å��我们已ç»�æ�Œæ�¡äº†ä¸�大模å�‹å¯¹è¯�的入å�£å�¯ä»¥è¿›ä¸€æ¥åŸºäº�FastAPI创建一个模å�‹è®¿é—®æ�¥å�£è¿™æ ·å°±å�¯ä»¥è®©å¤–部的应用或者用户通过网络æ�¥è°ƒç”¨æˆ‘们部署在LangChainå¼€å�‘ç�¯å¢ƒä¸çš„AI大模å�‹ã€‚我们å�¯ä»¥é€šè¿‡ä»¥ä¸‹æ¥éª¤æ�¥åˆ›å»ºå®‰è£…uvicornpip install uvicorn在当å‰�目录å�³/aidevä¸åˆ›å»ºä¸€ä¸ªå��为api.py的文件并输入以下内容from fastapi import FastAPI from fastapi import HTTPException from pydantic import BaseModel import torch from transformers import AutoModelForCausalLM, AutoTokenizer from transformers.generation.utils import GenerationConfig tokenizer AutoTokenizer.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits, use_fastFalse, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits, device_mapauto, torch_dtypetorch.bfloat16, trust_remote_codeTrue) model.generation_config GenerationConfig.from_pretrained(baichuan-inc/Baichuan
B-Chat-4bits) app FastAPI() # This defines the data json format expected for the endpoint, change as needed class RequestItem(BaseModel): message: str app.post(/generate/) async def generate_text(request_item: RequestItem): try: # 在这里处��收到的 JSON 请求 reqStr request_item.message messages [] messages.append({role: user, content: reqStr}) response model.chat(tokenizer,messages) return {generated_text: response} except Exception as e: raise HTTPException(status_code500, detailstr(e))�动��uvicorn app:app --host
0.
0.