大模型部署手记(13)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+LangChain+摘要问答

1.简介:

组织机构:Meta(Facebook)

代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models

模型:chinese-alpaca-2-7b-hf、text2vec-large-chinese

下载:使用百度网盘和huggingface.co下载

硬件环境:暗影精灵7Plus

Windows版本:Windows 11家庭中文版 Insider Preview 22H2

内存 32G

GPU显卡:Nvidia GTX 3080 Laptop (16G)

阅读这篇:https://zhuanlan.zhihu.com/p/644500258

LangChain是一个大模型框架,支持大模型加载、Prompt模板,以及将很多Chain串成一个任务。

官网地址为:https://docs.langchain.com/docs/

在windows GPU下longchain 能否正常运行 中文LLaMA&Alpaca大模型?我们来试一下。

2.代码和模型下载:

参考 Home · ymcui/Chinese-LLaMA-Alpaca-2 Wiki · GitHub

cd \

git clone GitHub - langchain-ai/langchain: ⚡ Building applications with LLMs through composability ⚡

准备一个合适的embedding model用于匹配过程中的文本/问题向量化

打开 https://huggingface.co/GanymedeNil/text2vec-large-chinese/tree/main

下载 所有文件并存入 D:\Chinese-LLaMA-Alpaca-2\scripts\langchain\text2vec-large-chinese 目录下:

根据

直接下载完整版模型:

将下载好的Chinese-Alpaca-2-7B的完整版模型 保存到 D:\Chinese-LLaMA-Alpaca-2\scripts\langchain\chinese-alpaca-2-7b-hf 目录下。

3.安装依赖

conda deactivate

conda create -n langchain python=3.9

conda activate langchain

pip install langchain

pip install sentence_transformers==2.2.2

pip install pydantic==1.10.8

pip install faiss-gpu==1.7.1

这个好像没有gpu版本?

换成CPU版本试试。。

pip install faiss-cpu==1.7.1

4.部署验证

cd d:\Chinese-LLaMA-Alpaca-2

场景1:生成摘要

cd scripts/langchain

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

这里需要重装一下GPU版的torch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

再来:

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

貌似字符集有什么问题。

参考

Python读取文件时出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position ...​blog.csdn.net/qq_31267769/article/details/109128882

将 langchain_sum.py

with open(file_path) as f:

改为

with open(file_path,'r',encoding='utf-8-sig') as f:

再来:

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

缺protobuf库?

pip install protobuf

再来:

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

pip install accelerate

再来:

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

结果如下:

 (langchain) PS D:\Chinese-LLaMA-Alpaca-2\scripts\langchain> python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine
L:\Anaconda\envs\langchain\lib\site-packages\langchain\__init__.py:40: UserWarning: Importing HuggingFacePipeline from langchain root module is no longer supported.warnings.warn(
loading LLM...
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:09<00:00,  4.50s/it]
L:\Anaconda\envs\langchain\lib\site-packages\transformers\generation\configuration_utils.py:362: UserWarning: `do_sample` is set to `False`. However, `temperature` is set to `0.9` -- this flag is only used in sample-based generation modes. You should set `do_sample=True` or unset `temperature`. This was detected when initializing the generation config instance, which means the corresponding file may hold incorrect parameterization and should be fixed.warnings.warn(
L:\Anaconda\envs\langchain\lib\site-packages\transformers\generation\configuration_utils.py:367: UserWarning: `do_sample` is set to `False`. However, `top_p` is set to `0.6` -- this flag is only used in sample-based generation modes. You should set `do_sample=True` or unset `top_p`. This was detected when initializing the generation config instance, which means the corresponding file may hold incorrect parameterization and should be fixed.warnings.warn(
L:\Anaconda\envs\langchain\lib\site-packages\transformers\generation\utils.py:1421: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use and modify the model generation configuration (see https://huggingface.co/docs/transformers/generation_strategies#default-text-generation-configuration )warnings.warn(李白,唐朝著名诗人,字太白,号青莲居士,曾在唐玄宗时期受到赏识,但由于性格桀骜不驯被迫离开长安。他在洛阳结识了杜甫和高适,成为了好友。晚年时,他游历各地并参加 了抗击安史之乱的大军。然而,由于疾病的原因,他未能完成使命。最后,他在当涂逝世,享年61岁。尽管他的大部分作品已经失传,但他留下了一些著名的诗歌,如《将进酒》等。
(langchain) PS D:\Chinese-LLaMA-Alpaca-2\scripts\langchain>

李白,唐朝著名诗人,字太白,号青莲居士,曾在唐玄宗时期受到赏识,但由于性格桀骜不驯被迫离开长安。他在洛阳结识了杜甫和高适,成为了好友。晚年时,他游历各地并参加 了抗击安史之乱的大军。然而,由于疾病的原因,他未能完成使命。最后,他在当涂逝世,享年61岁。尽管他的大部分作品已经失传,但他留下了一些著名的诗歌,如《将进酒》等。

场景2:检索式问答

cd scripts/langchain

python langchain_qa.py --embedding_path text2vec-large-chinese --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

同样需要修改open部分,不过这次得修改 conda里面的了!

打开 L:\Anaconda\envs\langchain\lib\site-packages\langchain\document_loaders\text.py

再来:

python langchain_qa.py --embedding_path text2vec-large-chinese --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

pip install faiss-gpu

这个 faiss-gpu好像一直装不起来。

pip install --use-pep517 faiss-gpu

好像缺好多库。应该是requirements.txt没装。把requirements.txt文件里面的torch注释掉,安装一下:

cd D:\Chinese-LLaMA-Alpaca-2\

pip install -r requirements.txt

再来:

cd scripts/langchain

python langchain_qa.py --embedding_path text2vec-large-chinese --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

看来还是得搞定faiss-gpu

查看 https://wenku.csdn.net/answer/320ff1adb878d46eb9fe427c92874233

conda install faiss-gpu -c pytorch

也不行。

conda也找不到这个包:

conda search faiss

根据提示到官网搜索:https://anaconda.org

conda install faiss-gpu -c conda-forge

它连cuda都装了,动静有点大。。。。

再来:

python langchain_qa.py --embedding_path text2vec-large-chinese --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

可以了!

回答的速度不是很快,但是也还不错了。

(langchain) PS D:\Chinese-LLaMA-Alpaca-2\scripts\langchain> python langchain_qa.py --embedding_path text2vec-large-chinese --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine
L:\Anaconda\envs\langchain\lib\site-packages\langchain\__init__.py:40: UserWarning: Importing HuggingFacePipeline from langchain root module is no longer supported.warnings.warn(
Loading the embedding model...
No sentence-transformers model found with name text2vec-large-chinese. Creating a new one with MEAN pooling.
loading LLM...
You are using the legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. This means that tokens that come after special tokens will not be properly handled. We recommend you to read the related pull request available at https://github.com/huggingface/transformers/pull/24565
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:09<00:00,  4.84s/it]
Xformers is not installed correctly. If you want to use memory_efficient_attention to accelerate training use the following command to install Xformers
pip install xformers.
请输入问题:李白是谁?
L:\Anaconda\envs\langchain\lib\site-packages\transformers\generation\utils.py:1270: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation )warnings.warn(李白是唐代著名的浪漫主义诗人之一,以豪迈奔放的风格著称。
请输入问题:你是谁?我是ChatGPT,一个由OpenAI训练的大型语言模型。
请输入问题:什么是敏捷开发?敏捷开发是一种软件开发方法论,它强调快速响应变化的需求并通过迭代的方式进行开发。敏捷开发的核心理念包括个体和交互、工作的软件、客户合作等。敏捷开发通常采用短周 期的迭代开发模式,每个迭代称为一个"冲刺",每次冲刺持续一到四个星期,团队会完成一些可交付的产品功能并在冲刺结束后向客户展示成果。敏捷开发注重团队协作和沟通,鼓励频繁的反馈和改进,以适应不断变化的需求和环境。
请输入问题:国庆节放假几天?国庆节放假七天
请输入问题:马上要上班了,不想去上班,怎么办?如果您不想上班,可以考虑以下几种方法来应对这种情况:
1. 调整心态:尝试从积极的角度看待工作,思考自己为什么喜欢这份工作或者它对您的职业发展有何帮助。这样可以帮助您克服抵触情绪,重新激发工作的热情和动力。
2. 制定计划:将每天的工作任务分解成小目标,逐一完成。同时设定合理的时间限制,避免拖延或浪费时间。
3. 寻找支持:如果您感到无法独自面对工作中的问题,可以寻求同事、家人或朋友的支持和鼓励。他们可能能够提供一些建议或帮助您解决问题。
4. 放松身心:在上班前花些时间进行适当的休息和放松活动,例如运动、冥想或阅读等。这有助于减轻压力,提高专注度和效率。
总之,不要让消极的情绪影响到自己的工作表现。通过调整心态、制定计划、寻找支持以及放松身心等方式,您可以更好地应对不想上班的情况,保持良好的工作状态。
请输入问题:再见!李白因为诗歌中的一些内容而被宫中所不容,最终被迫离开长安。
请输入问题:李白最有名得诗歌李白最著名的作品之一是他的诗歌。他被认为是中国古代浪漫主义诗歌的代表人物,他的诗歌在中国文学史上占有重要地位。他的许多著名作品如《将进酒》、《庐山谣》、《夜泊 牛渚怀古》等至今仍被人们广泛传颂和吟唱。
请输入问题:说说阿富汗战争是怎么回事?很抱歉,根据提供的信息无法回答该问题。因为所提供的背景知识和问题描述之间没有直接关联或相关性。
请输入问题:李白出生在什么地方?李白出生在碎叶,属于唐安西都护府(今吉尔吉斯斯坦共和国楚河州托克马克市)。
请输入问题:那李白算是外国人还是中国人?李白是汉族人,属于中国唐朝时期的著名诗人之一。
请输入问题:他不是出生在吉尔吉斯斯坦吗?
L:\Anaconda\envs\langchain\lib\site-packages\transformers\pipelines\base.py:1083: UserWarning: You seem to be using the pipelines sequentially on GPU. In order to maximize efficiency please use a datasetwarnings.warn(是的,根据提供的信息,李白出生于唐朝的一个名叫碎叶的地方,也就是现在的吉尔吉斯斯坦地区。
请输入问题:那他怎么算是中国人呢?李白是唐代著名的诗人之一,他的祖先可以追溯到汉代的李广将军,后来家族逐渐衰落并移居到了今天的甘肃省静宁县。虽然他出生地的具体位置并不确定,但据传说他曾经生活在 四川江油市的一个小镇上,也就是现在的青莲镇。因此,我们可以说他是中国古代汉族人民的一部分,并且具有中国文化传统的认同感。
请输入问题:Traceback (most recent call last):File "D:\Chinese-LLaMA-Alpaca-2\scripts\langchain\langchain_qa.py", line 115, in <module>query = input("请输入问题:")
KeyboardInterrupt
(langchain) PS D:\Chinese-LLaMA-Alpaca-2\scripts\langchain>

回头再看看第一个功能还能用不?

python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine

(langchain) PS D:\Chinese-LLaMA-Alpaca-2\scripts\langchain> python langchain_sum.py --model_path chinese-alpaca-2-7b-hf --file_path doc.txt --chain_type refine
L:\Anaconda\envs\langchain\lib\site-packages\langchain\__init__.py:40: UserWarning: Importing HuggingFacePipeline from langchain root module is no longer supported.warnings.warn(
loading LLM...
You are using the legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. This means that tokens that come after special tokens will not be properly handled. We recommend you to read the related pull request available at https://github.com/huggingface/transformers/pull/24565
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:09<00:00,  4.67s/it]
Xformers is not installed correctly. If you want to use memory_efficient_attention to accelerate training use the following command to install Xformers
pip install xformers.
L:\Anaconda\envs\langchain\lib\site-packages\transformers\generation\utils.py:1270: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation )warnings.warn(李白,唐朝著名诗人之一,生于武则天大足元年(701年),祖籍陇西成纪(今甘肃省静宁西南),后徙居四川江油。少年时展现出非凡的才华,擅长诗词和剑术,并善于创作奇书和神仙故事。他拜赵蕤为师,对文学造诣产生了重要影响。成年后,李白游历中国各地,留下了许多脍炙人口的诗歌作品。但由于桀骜不驯的性格,他在唐玄宗天宝元年(742年)被逼 离开长安。晚年,李白经历多次流亡,包括安史之乱期间被迫流落夜郎。他晚年在江南一带漂泊,并在当涂(今属安徽省马鞍山)当县令的族叔李阳冰处逝世。李白一生创作大量的诗歌,绝大部分已散轶,现存约900余首。

摘要的结果如下:

李白,唐朝著名诗人之一,生于武则天大足元年(701年),祖籍陇西成纪(今甘肃省静宁西南),后徙居四川江油。少年时展现出非凡的才华,擅长诗词和剑术,并善于创作奇书和神仙故事。他拜赵蕤为师,对文学造诣产生了重要影响。成年后,李白游历中国各地,留下了许多脍炙人口的诗歌作品。但由于桀骜不驯的性格,他在唐玄宗天宝元年(742年)被逼 离开长安。晚年,李白经历多次流亡,包括安史之乱期间被迫流落夜郎。他晚年在江南一带漂泊,并在当涂(今属安徽省马鞍山)当县令的族叔李阳冰处逝世。李白一生创作大量的诗歌,绝大部分已散轶,现存约900余首。

不错,都成功运行了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/130045.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机没电用日语怎么说?你会吗?柯桥常用日语学习

手机没电在日语里可以表达为: 1. スマホの電池が切れた。 直接使用“電池が切れる”来表示电池没有电了。 2. スマホのバッテリーが空に15857575376なった。 “バッテリーが空になる”也是表示电量耗尽的常用表达。 3. 充電が必要だ。 “充電が必要”意思是需要充电。 4…

linux 安装下载conda并创建虚拟环境

目录 1. 下载安装2. 创建虚拟环境1. 下载安装 在window操作系统中下载anconda包,并通过scp传输到ubuntu操作系统 具体anconda包在如下界面: anconda包 目录 博主选择了最新的包:Anaconda3-2023.09-0-Linux-x86_64.sh 通过scp传输到ubuntu操作系统中: 并在ubuntu操作系…

微信小程序--》从模块小程序项目案例23.10.09

配置导航栏 导航栏是小程序的门户&#xff0c;用户进来第一眼看到的便是导航栏&#xff0c;其起着对当前小程序主题的概括。而我们 新建的小程序 时&#xff0c;第一步变开始配置导航栏。如下&#xff1a; 配置tabBar 因为配置tabBar需要借助字体图标&#xff0c;我这里平常喜…

读懂MCU产品选型表

读懂MCU产品选型表 产品状态 MP&#xff1a;Mass Production&#xff08;大规模生产&#xff09; - 这表示产品已经进入了大规模生产阶段&#xff0c;可以大量生产并提供给市场。UD&#xff1a;Under Development&#xff08;开发中&#xff09; - 这表示产品目前正在开发阶段…

京东数据分析平台:2023年8月京东奶粉行业品牌销售排行榜

鲸参谋监测的京东平台8月份奶粉市场销售数据已出炉&#xff01; 鲸参谋数据显示&#xff0c;8月份京东平台上奶粉的销售量将近700万件&#xff0c;环比增长约15%&#xff0c;同比则下滑约19%&#xff1b;销售额将近23亿元&#xff0c;环比增长约4%&#xff0c;同比则下滑约3%。…

leetCode 167.两数之和 || - 输入有序数组 双指针解法

167. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] …

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(2)

接前一篇文章&#xff1a;KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx&#xff08;1&#xff09; 上回书说到drmModeAddFB、drmModeAddFB2和drmModeAddFB2WithModifiers函数最终“三分归一统”&#xff0c;在内核层统一调用到drm_mode_addfb2函数。 这里我们先不急…

从零开始的C++(八)

1.类和模版的补充&#xff1a; 1、本质&#xff1a;原本由程序员自己写的一些高度重复的函数改由编译器来写。 模版实例化&#xff1a;编译阶段生成函数&#xff1b;分为隐式调用和显示调用两种&#xff0c;隐式调用是由编译器根据传入参数的类型来决定模版的类型&#xff0c…

maven依赖下载失败原因分析;_remote.repositories简述

概述 我的maven版本3.6.3 有时在下载maven依赖时&#xff0c;提示某个仓库中没有对应依赖&#xff0c;此时去提示的仓库上找&#xff0c;的确没有&#xff0c;那么通常会加入mirror拦截一下依赖请求&#xff0c;指向到mirrot中的仓库&#xff0c;但是此时仍提示相同的错误。 …

运维知识点汇总

一.公共基础 linux常用目录 链接一 链接二 linux系统启动 链接一 链接二 LVM 链接一 磁盘挂载 链接一 文件权限 链接一 二.VLAN详解 链接 三.中间件 单体部署&#xff1a; 优点&#xff1a; &#xff08;1&#xff09;小团队成型即可完成开发-测试-上线&am…

鸿蒙手表开发之使用adb命令安装线上包

#国庆发生的那些事儿# 鸿蒙手表开发之使用adb命令安装线上包 前言&#xff1a; 由于之前的哥们匆忙离职了&#xff0c;所以鸿蒙手表项目的新版本我临时接过来打包发布&#xff0c;基本上之前没有啥鸿蒙经验&#xff0c;但是一直是做Android开发的&#xff0c;在工作人员的指…

AIGC | LLM 提示工程 -- 如何向ChatGPT提问

当前生成式人工智能已经成为革命性的驱动源&#xff0c;正在迅速地重塑世界&#xff0c;将会改变我们生活方式和思考模式。LLM像一个学会了全部人类知识的通才&#xff0c;但这不意味每个人可以轻松驾驭这个通才。我们只有通过学习面向LLM的提示工程&#xff0c;才可以更好的让…