在BigQuant AIStudio里玩转 ChatGLM
由jliang创建,最终由jliang 被浏览 608 用户
AIStudio
AIStudio 是BigQuant的AI模型和量化策略开发环境,可以使用独立的GPU研究环境,也可以使用FAI分布式算力集群。
ChatGLM
ChatGLM是清华开源的模型,在中文上有不错的表现。其中ChatGLM-6B是一个开源的、支持中英双语问答的对话语言模型,并针对中文进行了优化。该模型基于GLM架构,具有62亿参数。
为了学习方便,我们这里使用其中的int4版本 chatglm-6b-int4,这个版本占用资源很少,速度快。
使用AIStudio GPU
BigQuant提供GPU算力,精确到分钟计费(4.6宽币/分钟,大概是 0.046 RMB/分钟)。这里我们切换到 G0,一个GPU就够了。现在注册平台会送宽币。
安装依赖包
打开AIStudio命令行终端(快捷键 ctrl + `)
pip3 install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels
加载模型
BigQuant平台已经提供了 ChatGLM-6B和ChatGLM-6B-INT4模型,可以直接 DataSource mount 使用。
这里我们加载 ChatGLM-6B-INT4,使用GPU
import dai
mnt = dai.DataSource("chatglm_6b_int4").mount()
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained(mnt.path, trust_remote_code=True)
model = AutoModel.from_pretrained(mnt.path, trust_remote_code=True).half().cuda()
model = model.eval()
与ChatGLM对话
问中国的大学,能基本理解语义
response, history = model.chat(tokenizer, f"中国最好一所大学是?", history=history)
print(response)
ChatGLM生成量化策略代码
table_fields = ",".join(dai.DataSource("cn_stock_bar1d").metadata["schema"].keys())
table_desc = f"cn_stock_bar1d({table_fields})"
response, history = model.chat(tokenizer, f"你是一个专业的量化研究员,使用BigQuant人工智能量化投资平台开发因子和策略。BigQuant平台提供股票行情表 {table_desc},计算每天价格最高的股票,使用SQL实现", history=[])
print(response)
这里测试了一个非常简单的情况,查询价格最高的股票,在prompt里提供了BigQuant平台数据表结构,效果不太好。
和ChatGPT 4还是有比较大的差距
代码
https://bigquant.com/experimentshare/9faa81bc9fea4105821e8d416555a681
\