利用模型进行prompt设计主要思路是通过魔搭社区对应模型访问,实现本地设计prompt的功能,实现效果展示:
internlm模型:
internlm本地访问
chatglm模型:
chatglm本地访问
qwen模型:
qwen本地访问
以internlm模型为例进行本地api调用,其他模型类似
internlm大模型基本知识
InternLM 是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。通过单一的代码库,它支持在拥有数千个 GPU 的大型集群上进行预训练,并在单个 GPU 上进行微调,同时实现了卓越的性能优化。在1024个 GPU 上训练时,InternLM 可以实现近90%的加速效率。
主要思路是通过魔搭社区对应模型访问,实现本地设计prompt的功能,实现效果展示:
添加图片注释,不超过 140 字(可选)
利用魔搭社区现有的交互界面
打开浏览器搜索魔搭社区或者利用网址modelscope.cn/search?sear…
添加图片注释,不超过 140 字(可选)
进入交互界面后的图形如下:
添加图片注释,不超过 140 字(可选)
在这里你可以实现和模型在线聊天功能,如果要实现代码功能需要点击红色框框部分use via api
添加图片注释,不超过 140 字(可选)
这样就能得到api的调用地址modelscope.cn/api/v1/stud…
通过anaconda实现本地访问大模型
安装python相关库
在anaconda prompt里面执行以下命令: pip install gradio_client
安装执行时所需依赖
建议先创建python虚拟环境,创建和运行:
conda create -n xx python ==3.11 #创建python虚拟环境xx,python版本设置为3.11
conda activate xx # 激活python虚拟环境xx
在anaconda的jupyter实现代码
需要新建gradio_client.ipynb(对名字可能有严格要求)的源文件,然后在jupyter里面打开该文件
添加图片注释,不超过 140 字(可选)
导入所用依赖
from gradio_client import Client
import json
函数初始化
定义一个名字为call_internlm_chat7b函数,用来完成模型的调用,模型输入为input_,输出为模型对于输入的输出
def call_internlm_chat7b(input_):
"""
input_: 当前输入
return: 当前输出
"""
client = Client("https://modelscope.cn/api/vl/studio/AI-ModelScope/Internlm-chat-7b/gradio/")
result = client.predict(input_,fn_index=0)
with open(result[1],'r',encoding='utf-8') as f:
data = json.load(f)
return data[-1][-1] # 返回data变量的最后一个元素的最后一个元素
初步体验
call_internlm_chat7b('你好')
添加图片注释,不超过 140 字(可选)
这样你就可以设计属于自己的prompt了
internlm完整代码如下:
from gradio_client import Client
import json
def call_internlm_chat7b(input_):
"""
input_: 当前输入
return: 当前输出
"""
client = Client("https://modelscope.cn/api/v1/studio/AI-ModelScope/Internlm-chat-7b/gradio/")
result = client.predict(input_, fn_index=0)
with open(result[1], 'r', encoding='utf-8') as f:
data = json.load(f)
return data[-1][-1]
# 使用函数与ChatGLM6B模型进行交互
response = call_internlm_chat7b("你好")
print(response)
chatglm模型代码:
from gradio_client import Client
import json
def chat_with_chatglm6b(input_text):
# 创建Gradio客户端
client = Client("https://modelscope.cn/api/v1/studio/AI-ModelScope/ChatGLM6B-unofficial/gradio/")
# 使用Gradio客户端与ChatGLM6B模型进行交互
result = client.predict(input_text, None, fn_index=0)
# 获取模型的响应
file_path = result[1]
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
# 提取需要的信息
output = data[-1][-1]
return output
# 使用函数与ChatGLM6B模型进行交互
response = chat_with_chatglm6b("你好")
print(response)
qwen模型代码:
from gradio_client import Client
import json
def chat_with_qwen_14b(input_text):
# 创建Gradio客户端
client = Client("https://modelscope.cn/api/v1/studio/qwen/Qwen-14B-Chat-Demo/gradio/")
# 使用Gradio客户端与Qwen-14B-Chat-Demo模型进行交互,将 JSON 文件路径设为 None
result = client.predict(input_text, None, fn_index=0)
# 获取模型的响应
file_path = result[1]
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
# 提取需要的信息
output = data[-1][-1]
return output
# 使用函数与Qwen-14B-Chat-Demo模型进行交互
response = chat_with_qwen_14b("你好")
print(response)
本文只部署了三种模型的api,其他模型可以参考本文完成api调用