怎么样推广网站,不花钱的做网站,100 款软件app免费下载大全,做网站运营很累吧系列文章目录
参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1#xff0c;验证pytorch版本时提示以下问题#xff1a;错误2#xff0c;验证pytorch版本时提示以下问题#xff1a;错误3#xff0c;有时候还会提示你有一些…系列文章目录
参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1验证pytorch版本时提示以下问题错误2验证pytorch版本时提示以下问题错误3有时候还会提示你有一些库没有安装使用pip安装即可。 1.transformers库安装使用pip安装 2.模型下载3.模型调用 三、模型结构四、总结 前言与调用
从Transformer架构的出现到GPT与BERT系列再到GPT3.5、文心的发布再到Llama、Qwen、gemma、deepseek等开源。
一、Hugging Face的Transformers 这是一个强大的Python库专为简化本地运行LLM而设计。其优势在于自动模型下载、提供丰富的代码片段以及非常适合实验和学习。然而它要求用户对机器学习和自然语言处理有深入了解同时还需要编码和配置技能。
二、Llama.cpp 基于C的推理引擎专为Apple Silicon打造能够运行Meta的Llama2模型。它在GPU和CPU上的推理性能均得到优化。Llama.cpp的优点在于其高性能支持在适度的硬件上运行大型模型如Llama 7B并提供绑定允许您使用其他语言构建AI应用程序。其缺点是模型支持有限且需要构建工具。
三、Llamafile 由Mozilla开发的C工具基于llama.cpp库为开发人员提供了创建、加载和运行LLM模型所需的各种功能。它简化了与LLM的交互使开发人员能够轻松实现各种复杂的应用场景。Llamafile的优点在于其速度与Llama.cpp相当并且可以构建一个嵌入模型的单个可执行文件。然而由于项目仍处于早期阶段不是所有模型都受支持只限于Llama.cpp支持的模型。
四、Ollama 作为Llama.cpp和Llamafile的用户友好替代品Ollama提供了一个可执行文件可在您的机器上安装一个服务。安装完成后只需简单地在终端中运行即可。其优点在于易于安装和使用支持llama和vicuña模型并且运行速度极快。然而Ollama的模型库有限需要用户自己管理模型。
五、vLLM 这是一个高吞吐量、内存高效的大型语言模型LLMs推理和服务引擎。它的目标是为所有人提供简便、快捷、经济的LLM服务。vLLM的优点包括高效的服务吞吐量、支持多种模型以及内存高效。然而为了确保其性能用户需要确保设备具备GPU、CUDA或RoCm。
六、TGIText Generation Inference 由HuggingFace推出的大模型推理部署框架支持主流大模型和量化方案。TGI结合Rust和Python旨在实现服务效率和业务灵活性的平衡。它具备许多特性如简单的启动LLM、快速响应和高效的推理等。通过TGI用户可以轻松地在本地部署和运行大型语言模型满足各种业务需求。经过优化处理的TGI和Transformer推理代码在性能上存在差异这些差异体现在多个层面
并行计算能力TGI与Transformer均支持并行计算但TGI更进一步通过Rust与Python的联合运用实现了服务效率与业务灵活性的完美平衡。这使得TGI在处理大型语言模型时能够更高效地运用计算资源显著提升推理效率。
创新优化策略TGI采纳了一系列先进的优化技术如Flash Attention、Paged Attention等这些技术极大地提升了推理的效率和性能。而传统的Transformer模型可能未能融入这些创新优化。
模型部署支持TGI支持GPTQ模型服务的部署使我们能在单卡上运行启用continuous batching功能的更大规模模型。传统的Transformer模型则可能缺乏此类支持。
尽管TGI在某些方面优于传统Transformer推理但并不意味着应完全放弃Transformer推理。在特定场景下如任务或数据与TGI优化策略不符使用传统Transformer推理可能更合适。当前测试表明TGI的推理速度暂时逊于vLLM。TGI推理支持以容器化方式运行为用户提供了更为灵活和高效的部署选项。
七、DeepSpeed 微软精心打造的开源深度学习优化库以系统优化和压缩为核心深度优化硬件设备、操作系统和框架等多个层面更利用模型和数据压缩技术极大提升了大规模模型的推理和训练效率。DeepSpeed-Inference作为DeepSpeed在推理领域的扩展特别针对大语言模型设计。它巧妙运用模型并行、张量并行和流水线并行等技术显著提升了推理性能并降低了延迟。
本博客尝试只使用Hugging Face的Transformers库调用模型看看能否实现简洁的调用。
一、部署要求
部署要求
二、实现步骤
0.深度学习环境
深度学习环境搭建参考往期博文
因为LLM使用的环境可能会更新更高所以使用的基础环境如下
NVIDIA-SMI 525.60.11
cuda 12.1.0
cudnn 8.9.2根据cuda版本选择对应的pytorch、torchvision、python环境。
以下版本截止2024年4月29日 直接选择最新的那一档cuda12.1Python3.10PyTorch2.2.0torchvision0.17.0。
使用anaconda安装以下内容安装方式参考往期博文
python 3.10
PyTorch 2.2.0
torchvision 0.17.0错误1验证pytorch版本时提示以下问题
OSError: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory修改环境变量配置文件
gedit ~/.bashrc在~/.bashrc文件末尾另起一行添加
export LD_LIBRARY_PATH/home/xxx/anaconda3/lib:$LD_LIBRARY_PATH更新环境变量配置文件
source ~/.bashrc查看是否更新成功
echo $LD_LIBRARY_PATH
# 输出必须带有/home/xxx/anaconda3/lib才算成功错误2验证pytorch版本时提示以下问题
OSError: libcudart.so.12: cannot open shared object file: No such file or directory1、确认CUDA和cudnn是否正确安装版本是否对应。
# 查看当前cuda的版本
nvcc --version
#查看cudnn版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 22、如果确定安装了对应版本的CUDA和cudnn查看 ~/.bashrc环境变量是否正确包含了 对应的库文件路径。
export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH/usr/local/cuda/bin:$PATH3、如果安装了CUDA和cudnn确定版本正确成功链接那么移动或者重写 ~/.bashrc环境变量中的CUDA和cudnn库文件路径然后更新。
错误3有时候还会提示你有一些库没有安装使用pip安装即可。 1.transformers库安装
使用pip安装
huggingface的Transformers库要求的深度学习环境版本如下:
Python 3.8
Flax 0.4.1 / PyTorch 1.11 / TensorFlow 2.6建议尽量在anaconda虚拟环境中安装Transformers库。
首先创建一个3.10版本的虚拟环境并激活
conda create -n your_env_name python3.10
source activate your_env_name然后在虚拟环境中安装Flax 0.4.1或PyTorch 1.11或TensorFlow 2.6神经网络算法库选择其中之一
具体安装方法参考往期博文
最后安装Transformers库
# transformers 4.43.0
pip install transformers提示成功安装Transformers库和大部分依赖库但有个别依赖库安装失败比如Pillow库
单独安装Pillow库
pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn如果还提示却别的库也是这样安装就好。
查看虚拟环境中的库
conda list2.模型下载
大部分模型都可以在huggingface网站下载直接点击Clone repository选项选择git方式下载
Llama-3.2-1B模型huggingface下载地址 git clone https://huggingface.co/meta-llama/Llama-3.2-1B用这种方法下载不仅需要上外网而且下载速度还会比较慢除此之外有一些模型下载使用还需要向官方申请许可比如
这里使用一些取巧的方法
使用国内阿里的大模型平台modelscope魔搭网站下载
Llama-3.2-1B模型modelscope下载地址modelscope直接点击模型文件点击下载模型 它会提供一些不同的下载命令 这里直接使用modelscope库下载
# 先安装modelscope库
pip install modelscope# 不加–local_dir选项会使得模型保存在临时文件(/home/xxx/.cache/modelscope/hub)中不方便查找
modelscope download --model LLM-Research/Llama-3.2-1B# 加上–local_dir选项使得模型保存在指定文件夹文件(/home/xxx/LLM-Research/Meta-Llama-3.2-1B-Instruct)中方便查找
modelscope download --model LLM-Research/Llama-3.2-1B --local_dir /home/xxx/Llama-3.2-1B这样在绕过许可证的同时也能避免外网问题快速下载。 3.模型调用
使用以下代码可以简单调用这个模型
from transformers import AutoModelForCausalLM, AutoTokenizerdef load_model_and_tokenizer(model_directory):从本地目录加载模型和分词器。tokenizer AutoTokenizer.from_pretrained(model_directory)# 添加特殊的填充令牌tokenizer.add_special_tokens({pad_token: [PAD]})model AutoModelForCausalLM.from_pretrained(model_directory)# model.half()return model, tokenizerdef generate_text(model, tokenizer, prompt, max_new_tokens):使用提供的模型和分词器生成文本。# 编码输入提示inputs tokenizer(prompt, return_tensorspt, paddingTrue, truncationTrue)input_ids inputs[input_ids]attention_mask inputs[attention_mask]# 生成文本output model.generate(input_idsinput_ids,attention_maskattention_mask,max_new_tokensmax_new_tokens,pad_token_idtokenizer.eos_token_id,no_repeat_ngram_size2,repetition_penalty1.5,top_k50,top_p0.95,temperature1.0,do_sampleTrue,num_return_sequences1,num_beams2, # 设置 num_beams 1early_stoppingTrue)# 解码生成的文本generated_text tokenizer.decode(output[0], skip_special_tokensTrue)return generated_textdef chat_with_model(model, tokenizer, max_new_tokens):与模型进行聊天对话。print(Chat with the model! Type exit to end the conversation.)prompt You are an Intelligent Traffic Rules QA Assistant, and when user ask you questions, you will provide me with traffic knowledge.Next, user will ask you questions, please answer them.\n# once_input input(User1:)## if once_input.lower() exit:# print(Assistant: Goodbye! Stay safe on the roads!)# exit()## input_to_model prompt \nUser2: once_input \nAssistant## response generate_text(model, tokenizer, input_to_model, max_new_tokens)print(111, prompt)while True:user_input input(User3: )if user_input.lower() exit:print(Assistant: Goodbye! Stay safe on the roads!)breakinput_to_model prompt user_input \nAssistant# 更新对话历史# 生成模型的回答response generate_text(model, tokenizer, input_to_model, max_new_tokens)print(response)def main():model_directory /LLM/Llama-3.2-1B/max_new_tokens 100 # 生成新 token 的最大数量# 加载模型和分词器model, tokenizer load_model_and_tokenizer(model_directory)# 确保模型处于评估模式model.eval()# 开始聊天对话chat_with_model(model, tokenizer, max_new_tokens)if __name__ __main__:main()
简单问答 三、模型结构
未完待续。。。
四、总结
一方面Meta-Llama-3.2-1B太小很多回答都是胡言乱语另一方面对模型的调用只依靠了一个Hugging Face的Transformers库实际的使用体验相当不好想要更好的体验可能需要在更工程化的框架下去调用模型比如ollama等。
这篇博客记录于2024年Meta-Llama-3.2发布不久看见有1B的模型就心血来潮测试了一下测试完后因为工作忙碌就忘记发布了直到24年年末的deepseekV3以及今年过年时的R1如此出圈爆火打算年后回来测试一下才发现这篇博客被遗忘了。
后续有时间会继续更新学习有关llama的模型结构。 文章转载自: http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn http://www.morning.czwed.com.gov.cn.czwed.com http://www.morning.xesrd.com.gov.cn.xesrd.com http://www.morning.yprjy.cn.gov.cn.yprjy.cn http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.mpyry.cn.gov.cn.mpyry.cn http://www.morning.nzdks.cn.gov.cn.nzdks.cn http://www.morning.mltsc.cn.gov.cn.mltsc.cn http://www.morning.kbfzp.cn.gov.cn.kbfzp.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn http://www.morning.srtw.cn.gov.cn.srtw.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.vuref.cn.gov.cn.vuref.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.smmby.cn.gov.cn.smmby.cn http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn http://www.morning.fcrw.cn.gov.cn.fcrw.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.rpljf.cn.gov.cn.rpljf.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn http://www.morning.fksdd.cn.gov.cn.fksdd.cn http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.pylpd.cn.gov.cn.pylpd.cn http://www.morning.xyhql.cn.gov.cn.xyhql.cn http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn http://www.morning.sfwcb.cn.gov.cn.sfwcb.cn http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn http://www.morning.gchqy.cn.gov.cn.gchqy.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.jngdh.cn.gov.cn.jngdh.cn http://www.morning.gsjzs.cn.gov.cn.gsjzs.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.nylbb.cn.gov.cn.nylbb.cn http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn http://www.morning.clybn.cn.gov.cn.clybn.cn http://www.morning.zqcdl.cn.gov.cn.zqcdl.cn http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.lthpr.cn.gov.cn.lthpr.cn http://www.morning.gkxyy.cn.gov.cn.gkxyy.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.kjmws.cn.gov.cn.kjmws.cn http://www.morning.tyjp.cn.gov.cn.tyjp.cn http://www.morning.lwdzt.cn.gov.cn.lwdzt.cn http://www.morning.sxwfx.cn.gov.cn.sxwfx.cn http://www.morning.knwry.cn.gov.cn.knwry.cn http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn http://www.morning.rwbh.cn.gov.cn.rwbh.cn http://www.morning.hxpsp.cn.gov.cn.hxpsp.cn http://www.morning.ncfky.cn.gov.cn.ncfky.cn http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn http://www.morning.gbpanel.com.gov.cn.gbpanel.com http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.nmngq.cn.gov.cn.nmngq.cn http://www.morning.zztkt.cn.gov.cn.zztkt.cn http://www.morning.hhmfp.cn.gov.cn.hhmfp.cn http://www.morning.mkccd.cn.gov.cn.mkccd.cn http://www.morning.dpfr.cn.gov.cn.dpfr.cn http://www.morning.grbp.cn.gov.cn.grbp.cn http://www.morning.xnzmc.cn.gov.cn.xnzmc.cn