PyLMKit(6):大模型使用(API型和本地开源模型)

日期:2023-12-6

PyLMKit目前集成了LLM模型有两种类型:

  • API付费调用型
  • 本地开源模型下载部署

1.API型LLM模型使用教程

1.1.申请 API KEY

根据你想使用的大模型的官网,注册账号,并申请API KEY,如果需要付费调用,那么还需要进行充值或开通相应服务。

1.2.配置 API KEY

(1)一个方便的方法是创建一个新的.env文件,并在其中配置所有的API密钥信息,从而方便地使用不同的模型。.env文件的格式如下:

python 复制代码
openai_api_key = ""  # OpenAI

QIANFAN_AK = ""  # 百度-千帆
QIANFAN_SK = ""

DASHSCOPE_API_KEY = ""  # 阿里-通义

spark_appid = ""  # 科大讯飞-星火
spark_apikey = ""
spark_apisecret = ""
spark_domain = "generalv3"  # generalv2

zhipu_apikey = ""  # 清华-智谱AI

baichuan_api_key = ""  # 百川
baichuan_secret_key = ""

hunyuan_app_id = ""  # 腾讯-混元
hunyuan_secret_id = ""
hunyuan_secret_key = ""

加载.env文件的方法如下(建议将.env文件放置在与您运行的.py文件相同的路径下)。

python 复制代码
from dotenv import load_dotenv

# load .env
load_dotenv()

(2)另一种方法是通过os.environ进行配置,下面是一个例子:

python 复制代码
import os


# openai
os.environ['openai_api_key'] = ""

# 百度
os.environ['qianfan_ak'] = ""
os.environ['qianfan_sk'] = ""

1.3.模型调用

PyLMKit支持两种调用方式:

  • 普通模式:invoke(query)
  • 流式模式:stream(query)

其中,query表示用户输入内容,简单例子如下:

python 复制代码
from pylmkit.llms import ChatQianfan  # 百度-千帆
from pylmkit.llms import ChatSpark  # 讯飞-星火
from pylmkit.llms import ChatZhipu  # 清华-智谱
from pylmkit.llms import ChatHunyuan  # 腾讯-混元
from pylmkit.llms import ChatBaichuan  # 百川
from pylmkit.llms import ChatTongyi  # 阿里-通义
from pylmkit.llms import ChatOpenAI  # OpenAI
from dotenv import load_dotenv


# 加载 .env
load_dotenv()
# 加载模型
model = ChatQianfan()

# 普通模式
res = model.invoke(query="如何学习python?")
print(res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(i)

2.本地开源LLM模型部署和调用

2.1.开源模型下载

本案例采用一个很小的模型作为例子,让大多数人都能成功运行这个Demo。这个Demo在CPU环境也能成功运行,并且内存占用小,模型名称为 Qwen/Qwen-1_8B-Chat,更多

模型名称,可以去魔搭社区去找相应的模型,链接:魔搭社区-文本生成

预先安装 modelscope 依赖包

bash 复制代码
pip install modelscope

下载指定开源模型

python 复制代码
from pylmkit.llms import LocalLLMModel

LocalLLMModel(model_path='Qwen/Qwen-1_8B-Chat',  # 模型名称
              tokenizer_kwargs={"revision": 'master'},  
              model_kwargs={"revision": 'master'},
              language='zh',  # zh 表示使用国内环境下载,速度快
)

下载好的效果如下:

2.2.拷贝文件夹到指定位置

将下载模型及文件拷贝到自己想要的位置。一般采用上述下载方式,模型都会下载缓存到 C 盘,缓存的位置一般在:C:\Users\你的用户名\.cache\modelscope\hub

将刚刚下载的qwen/Qwen-1_8B-Chat文件夹剪切保存到 D:/mycode_llm/ (这里举个例子,可以自定义)路径下,主要避免文件太大占满 C 盘。

2.3.安装该开源模型的依赖库

这一步骤很重要,一方面要保证你的CUDA环境配置正确、内存足够,即硬件资源得够(当然,CPU环境也可以跑一些模型);另一方面则需要到开源模型的github或者根据其它教程,安装依赖包和推理加速等依赖文件。

一般在下载的模型文件夹里,会有一个README.md文件,这是一个关于模型基本信息和安装的说明书,不懂安装依赖库的同学可以详细参照着这个教程来安装,比如Qwen/Qwen-1_8B-Chat文件夹内容截图如下:

这个步骤做好了,下一步骤才能正确运行模型,不然可能会遇到大量BUG,那么这个时候就需要一个一个排查和解决。

2.4.加载本地模型并使用

python 复制代码
from pylmkit.llms import LocalLLMModel


model = LocalLLMModel(model_path='D:/mycode_llm/qwen/Qwen-1_8B-Chat',  # 前面保存的模型文件路径
                      tokenizer_kwargs={"revision": 'master'},
                      model_kwargs={"revision": 'master'},
                      language='zh'
                      )

# 普通模式
res = model.invoke(query="如何学习python?")
print(">>>invoke ", res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(">>>stream ", i)

效果如下

相关推荐
Jackilina_Stone2 小时前
【AI】简单了解AIGC与ChatGPT
人工智能·chatgpt·aigc
草莓屁屁我不吃5 小时前
AI大语言模型的全面解读
人工智能·语言模型·自然语言处理·chatgpt
营赢盈英6 小时前
Azure OpenAI and token limit
ai·chatgpt·asp.net·azure·openai api
营赢盈英7 小时前
TypeError: expected string or buffer - Langchain, OpenAI Embeddings
langchain·azure·embeddings·openai api·rag
AI大模型知识分享12 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
草莓屁屁我不吃14 小时前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼14 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界15 小时前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区15 小时前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源15 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费