美文网首页
ChatGLM试用

ChatGLM试用

作者: 梅西爱骑车 | 来源:发表于2024-03-08 22:11 被阅读0次

    在PAI平台https://pai.console.aliyun.com/的“快速开始”页面部署大模型最简单。

    快速开始
    找到ChatGLM,进入详情页,进行部署,注意选中试用资源。
    模型部署按钮
    试用活动
    部署成功。

    Running

    web页面进行交互


    测试问答,速度很快。



    还可以点击langchain标签,上传本地文件到大语言模型,然后进行问答。



    上传文件后,记得点击按钮“vectorstore knowledge”来向量化文档。

    根据上传文档内容进行测试:
    荣誉测试
    最高荣誉判断

    API方式进行推理inference

    PAI-EAS支持使用通用公网对服务进行公网地址调用,通用公网调用又包括使用官方的Python SDK、Java SDK及自行实现调用逻辑三种方式。本文介绍详细介绍每种调用方式的实现方法。
    在PAI-EAS部署模型服务后,系统会自动生成一个公网调用的服务地址。您可以在PAI EAS模型在线服务页面,单击待调用服务服务方式列下的调用信息,查看公网访问地址调用文档链接和Token。通过该调用信息可以进行调用测试,示例如下。



    执行如下curl,在Windows可能返回错误“Authorization failed.curl: (3) URL rejected: Bad hostname”,可以在Linux服务器执行如下命令:
    curl http://quickstart-chatglm.13151033***14358.cn-hangzhou.pai-eas.aliyuncs.com/ -H 'Authorization: MTI2NTg2MjkwNzY4Zjk1NGQ3NmMwNGE0O*******yZmE1Ng==' -d '2024年春节是哪天?'
    返回信息:
    {"response":"2024年春节是2024年1月22日(农历己亥年正月初一)。","history":[["2024年春节是哪天?","2024年春节是2024年1月22日(农历己亥年正月初一)。"]],"usage":{"usage":null,"finish_reason":"stop"}}
    使用python代码流式输出:
    import argparse
    import json
    from typing import Iterable, List
    
    import requests
    
    
    def clear_line(n: int = 1) -> None:
        LINE_UP = '\033[1A'
        LINE_CLEAR = '\x1b[2K'
        for _ in range(n):
            print(LINE_UP, end=LINE_CLEAR, flush=True)
    
    
    def post_http_request(prompt: str,
                          system_prompt: str,
                          history: list,
                          host: str,
                          authorization: str,
                          max_new_tokens: int = 2048,
                          temperature: float = 0.95,
                          top_k: int = 1,
                          top_p: float = 0.8,
                          langchain: bool = False,
                          use_stream_chat: bool = False) -> requests.Response:
        headers = {
            "User-Agent": "Test Client",
            "Authorization": f"{authorization}"
        }
        if not history:
            history = [
                (
                    "2024年春节是哪天?",
                    "正月初一"
                )
            ]
        pload = {
            "prompt": prompt,
            "system_prompt": system_prompt,
            "top_k": top_k,
            "top_p": top_p,
            "temperature": temperature,
            "max_new_tokens": max_new_tokens,
            "use_stream_chat": use_stream_chat,
            "history": history
        }
        if langchain:
            pload["langchain"] = langchain
        response = requests.post(host, headers=headers,
                                 json=pload, stream=use_stream_chat)
        return response
    
    
    def get_streaming_response(response: requests.Response) -> Iterable[List[str]]:
        for chunk in response.iter_lines(chunk_size=8192,
                                         decode_unicode=False,
                                         delimiter=b"\0"):
            if chunk:
                data = json.loads(chunk.decode("utf-8"))
                output = data["response"]
                history = data["history"]
                yield output, history
    
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--top-k", type=int, default=4)
        parser.add_argument("--top-p", type=float, default=0.8)
        parser.add_argument("--max-new-tokens", type=int, default=2048)
        parser.add_argument("--temperature", type=float, default=0.95)
        parser.add_argument("--prompt", type=str, default="2024年多少天?")
        parser.add_argument("--langchain", action="store_true")
        args = parser.parse_args()
    
        prompt = args.prompt
        top_k = args.top_k
        top_p = args.top_p
        use_stream_chat = True
        temperature = args.temperature
        langchain = args.langchain
        max_new_tokens = args.max_new_tokens
    
        host = "http://quickstart-chatglm.1315103301214358.cn-hangzhou.pai-eas.aliyuncs.com/"
        authorization = "MTI2NTg2MjkwNzY4Zjk1NGQ3NmMwNGE0OWM4NDZkOThhZjUyZmE1Ng=="
    
        print(f"Prompt: {prompt!r}\n", flush=True)
        system_prompt = "Act like you are programmer with \
                    5+ years of experience."
        history = []
        response = post_http_request(
            prompt, system_prompt, history,
            host, authorization,
            max_new_tokens, temperature, top_k, top_p,
            langchain=langchain, use_stream_chat=use_stream_chat)
    
        for h, history in get_streaming_response(response):
            print(
                f" --- stream line: {h} \n --- history: {history}", flush=True)
    

    相关文章

      网友评论

          本文标题:ChatGLM试用

          本文链接:https://www.haomeiwen.com/subject/vqcqodtx.html