首页 > 其他分享 >LangChain调用本地模型

LangChain调用本地模型

时间:2023-12-04 15:44:05浏览次数:45  
标签:调用 torch LangChain cuda 本地 import device path model

学习LangChain参考

https://python.langchain.com.cn/docs/get_started/quickstart

调用本地下载的模型参考

https://blog.csdn.net/qq_43692950/article/details/131743987

在Jupyter Notebook中试验的代码(注意Jupyter不会释放GPU显存)

from langchain import PromptTemplate, LLMChain
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
from transformers import AutoModel, pipeline
from langchain import HuggingFacePipeline
from langchain import PromptTemplate


model_path = "E:\\work\\AI\\GPT\\llama_model_4bit"
if torch.cuda.is_available():
    print(torch.cuda.device_count())
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print(device)
else:
    print('没有GPU')
    
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
if model_path.endswith("4bit"):
    model = AutoModelForCausalLM.from_pretrained(
            model_path,
            load_in_4bit=True,
            torch_dtype=torch.float16,
            device_map='auto'
        )
elif model_path.endswith("8bit"):
        model = AutoModelForCausalLM.from_pretrained(
            model_path,
            load_in_8bit=True,
            torch_dtype=torch.float16,
            device_map='auto'
        )
else:
    model = AutoModelForCausalLM.from_pretrained(model_path).half().cuda()
    
pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    max_length=512,
    top_p=1,
    repetition_penalty=1.15
)
llama_model = HuggingFacePipeline(pipeline=pipe)

template = '''
#context# 
You are a good helpful, respectful and honest assistant.You are ready for answering human's question and always answer as helpfully as possible, while being safe.
Please ensure that your responses are socially unbiased and positive in nature. 
#question# 
Human:What is a good name for a company that makes {product}?"
'''
prompt = PromptTemplate(
    input_variables=["product"],
    template=template
)
chain = LLMChain(llm=llama_model, prompt=prompt)
chain.run("running shoes")
'#answer# \nA great name for a shoe-making company could be "Sprint" or "Runners Edge". These names convey speed and agility, which are important qualities for a running shoe brand to have. Additionally, they are easy to remember and pronounce, making them ideal for marketing purposes. '

 

标签:调用,torch,LangChain,cuda,本地,import,device,path,model
From: https://www.cnblogs.com/scarecrow-blog/p/17875127.html

相关文章

  • 从Hugging Face下载模型到本地并调用
    不同的模型需要的显存不同,下载前先查一下自己GPU能支持什么模型 1.用如下脚本可以下载HuggingFace上的各种模型,网址 https://huggingface.co/modelsdownload.py#coding=gbkimporttimefromhuggingface_hubimportsnapshot_download#huggingface上的模型名称repo_id......
  • 解决云电脑无法使用本地终端连接的USB设备
    本文分享自天翼云开发者社区《解决云电脑无法使用本地终端连接的USB设备》,作者:2****m云计算技术的广泛应用已经改变了我们对计算资源的使用方式。云电脑作为云计算的一个重要应用场景,提供了一种将计算资源从本地转移到云端的解决方案。通过云电脑,用户可以在任何地方使用云服务提......
  • Windows本地用户管理
     配置用户及用户组1、创建用户进入Powershell后,输入netuser查看当前存在的用户输入创建用户的命令:netuserappadminP@ssword/fullname:”一般用户”/comment:”堡垒机用户”/add2、将用户加入到Administrators用户组使用netlocalgroup查看用户组使用netlocalgro......
  • (万字长文)手把手教你认识学会LangChain
    什么LangChainLangChain:一个让你的LLM变得更强大的开源框架LangChain六大主要领域管理和优化prompt。不同的任务使用不同prompt,如何去管理和优化这些prompt是langchain的主要功能之一。链,初步理解为一个具体任务中不同子任务之间的一个调用。数据增强的生成,数据增强生成涉及特定类......
  • Docker本地部署私人Firefox火狐浏览器并远程访问(宝藏教程)
    Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软InternetExplorer浏览器垄断地位的浏览器之一。在Docker中打开Firefox意味着我们将在一个Docker容器中运行Firefox浏览器。这对于一些特殊的测试场景非常有用,例如需要在不同版本的浏览器中......
  • 【python笔记】subprocess,调用外部程序
    importsubprocesssubprocess.run("notepad")将会打开记事本。如果当前路径下有个叫test.txt,而想用记事本打开这个文本文件:importsubprocesssubprocess.run(["notepad","test.txt"])执行cmd命令:importsubprocesscmd="echoI'mhandsome"subpro......
  • Maven的安装与配置本地仓库,镜像源,环境变量。
    参考视频:黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程【小飞非系列】最新Maven实战教程-项目实战构建利器一.下载Maven安装包注意安装maven前要先安装jdk环境:JDK11版本安装包下载地址1.下载安装包,存放在没有中文的路径中Maven安装包下载地址2.将压......
  • idea本地连接oracle数据库的配置设置
    先粘贴连接成功的截图:为什么要先贴图,主要是想重点来说一下这里面红框参数如何设置。我想先说一下我的环境背景:服务器环境:虚拟机,linux:centOS7.5,oracle19c(具体版本:19.3.0.0),连接服务器客户端工具:mobaxterm接下来我一个一个说上面的参数应该如何设置:host:就是我的idea连接的虚......
  • 【文档翻译】__cdecl/__stdcall/__fastcall?解开神秘的调用约定!
    本文档译自www.codeproject.com的文章"CallingConventionsDemystified",作者NemanjaTrifunovic,原文参见此处引言-Introduction在学习Windows编程的漫长、艰难而美妙的旅途中,你可能会对函数声明前出现的奇怪说明符感到好奇,比如__cdecl、__stdcall、__fastcall、WINAP......
  • 本地 SAP UI5 应用部署到远端 ABAP 系统,幕后英雄 ABAP_REPOSITORY_SRV
    SAPODataService是一种基于HTTP的数据访问协议,它支持全功能的CRUD操作(创建、读取、更新和删除),并且支持查询和导航。OData协议的主要优势是其基于标准的HTTP协议,并且使用标准的HTTP动词,如GET、POST、PUT、DELETE等进行数据操作。这意味着任何支持HTTP的平台或设备......