日期: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)
效果如下