手把手教你多种方式体验Qwen2最强开源大模子

打印 上一主题 下一主题

主题 975|帖子 975|积分 2925

前几天看到消息openai将开始限制来自非支持国家和地区的API流量,目前OpenAI的API已向161个国家和地区开放,中国本地和中国香港未包罗此中。这对于中国使用openai的用户来说算是彻底断了念想,好在国内大模子近些日来迅猛发展,前段时间刚开源的阿里Qwen2蝉联开源大模子榜首,已经和chatgpt半斤八两,这篇文章告急介绍怎样多方式体验Qwen2。
1.Qwen2介绍+在线使用

qwen2官网介绍:https://qwenlm.github.io/zh/blog/qwen2/
在线体验:


  • https://opencompass.org.cn/arena
  • https://huggingface.co/spaces/Qwen/Qwen2-72B-Instruct
告急亮点:


  • 5个尺寸的预训练和指令微调模子, 包罗Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B以及Qwen2-72B;
  • 在中文英语的基础上,训练数据中增长了27种语言相关的高质量数据;
  • 多个评测基准上的领先表现;
  • 代码和数学能力显著提升;
  • 增大了上下文长度支持,最高到达128K tokens(Qwen2-72B-Instruct)。
在2个评估数据集上举行验证:
M-MMLU: 来自Okapi的多语言常识理解数据集
MGSM:包罗德、英、西、法、日、俄、泰、中和孟在内的数学评测。
结果均反映了Qwen2指令微调模子突出的多语言能力。
优化点:
通义千问技术博客披露,在Qwen1.5系列中,只有32B和110B的模子使用了GQA。这一次,全部尺寸的模子都使用了GQA,以便让用户体验到GQA带来的推理加快和显存占用降低的优势。针对小模子,由于embedding参数量较大,研发团队使用了tie embedding的方法让输入和输出层共享参数,增长非embedding参数的占比。
上下文长度方面,全部的预训练模子均在32K tokens的数据上举行训练,研发团队发现其在128K tokens时依然能在PPL评测中取得不错的表现。然而,对指令微调模子而言,除PPL评测之外还需要举行大海捞针等长序列理解实验。在使用YARN这类方法时,Qwen2-7B-Instruct和Qwen2-72B-Instruct均实现了长达128K tokens上下文长度的支持。
目前在多项权威榜单和测评中,Qwen2-72B成为开源模子排行榜第一名。
2. 当地部署



  • 当地部署:使用 llama.cpp 和 Ollama 等框架在 CPU 和 GPU 被骗地运行 Qwen 模子的说明。
  • Docker:预先构建的 Docker 镜像可用于简化部署。
  • ModelScope:推荐中国大陆用户使用,支持下载查抄点并高效运行模子。
  • 推理框架:使用 vLLM 和 SGLang 部署 Qwen 模子举行大规模推理的示例。
2.1 Ollama 使用

Ollama下载:https://ollama.com/download

官网下载安装成功,打开终端安装:ollama run qwen2:7b

安装成功,测试使用,使用qwen2-7B写一个冒泡排序,速率感人

2.2 vllm部署

参考:deployment/vllm
使用 [vLLM]来部署 Qwen。它使用简单,速率快,具有最先进的服务吞吐量、使用 PagedAttention 高效管理注意键值内存、连续批处理输入请求、优化的 CUDA 内核等。
安装环境cuda11.8:
  1. pip install vLLM>=0.4.0
  2.    
  3. pip install ray
复制代码
Qwen2 代码支持的模子也受 vLLM 支持。vLLM 最简单的用法是离线批量推理:
  1. from transformers import AutoTokenizer
  2. from vllm import LLM, SamplingParams
  3. # Initialize the tokenizer
  4. tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-7B-Instruct")
  5. # Pass the default decoding hyperparameters of Qwen2-7B-Instruct
  6. # max_tokens is for the maximum length for generation.
  7. sampling_params = SamplingParams(temperature=0.7, top_p=0.8, repetition_penalty=1.05, max_tokens=512)
  8. # Input the model name or path. Can be GPTQ or AWQ models.
  9. llm = LLM(model="Qwen/Qwen2-7B-Instruct")
  10. # Prepare your prompts
  11. prompt = "Tell me something about large language models."
  12. messages = [
  13.     {"role": "system", "content": "You are a helpful assistant."},
  14.     {"role": "user", "content": prompt}
  15. ]
  16. text = tokenizer.apply_chat_template(
  17.     messages,
  18.     tokenize=False,
  19.     add_generation_prompt=True
  20. )
  21. # generate outputs
  22. outputs = llm.generate([text], sampling_params)
  23. # Print the outputs.
  24. for output in outputs:
  25.     prompt = output.prompt
  26.     generated_text = output.outputs[0].text
  27.     print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
复制代码
使用 vLLM 可以轻松构建兼容 OpenAI-API 的 API 服务,可以将其部署为实现 OpenAI API 协议的服务器。默认情况下,它会在 启动服务器。您可以使用和参数http://localhost:8000指定地址。运行以下下令:–host–port
  1. python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2-7B-Instruct
复制代码
使用创建聊天接口 与Qwen举行交流:
  1. curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  2.     "model": "Qwen/Qwen2-7B-Instruct",
  3.     "messages": [
  4.     {"role": "system", "content": "You are a helpful assistant."},
  5.     {"role": "user", "content": "Tell me something about large language models."}
  6.     ]
  7.     }'
复制代码
或者使用python客户端:
  1. from openai import OpenAI
  2. # Set OpenAI's API key and API base to use vLLM's API server.
  3. openai_api_key = "EMPTY"
  4. openai_api_base = "http://localhost:8000/v1"
  5. client = OpenAI(
  6.     api_key=openai_api_key,
  7.     base_url=openai_api_base,
  8. )
  9. chat_response = client.chat.completions.create(
  10.     model="Qwen/Qwen2-7B-Instruct",
  11.     messages=[
  12.         {"role": "system", "content": "You are a helpful assistant."},
  13.         {"role": "user", "content": "Tell me something about large language models."},
  14.     ]
  15. )
  16. print("Chat response:", chat_response)
复制代码
3. 云端部署

阿里云百炼于近期应用、模子双引擎全新升级,兼容LlamaIndex等开源框架,更具开放性的应用框架,更极致生态化的模子服务,降低推理成本,加快大模子应用落地
官网链接:https://www.aliyun.com/product/bailian


按照上面的教程选择部署模子
根据自己的需求举行选择,收费尺度:
billing-for-alibaba-cloud-model-studio
4. 总结

对比几种使用方式:
部署方式在线使用当地部署云端部署优点易于访问,无需复杂设置、成本效益,按需付出,主动更新,使用最新模子数据隐私,数据当地存储定制性高,可按需优化<控制性强,完全控制模子运行和维护可扩展性,易于资源扩展专业支持,包罗技术支持和维护,机动性,快速调整资源和服务缺点依靠网络,需要稳定网络数据隐私风险,数据需上传定制性有限,控制能力受限硬件要求高,需强大GPU成本高,初始投资大维护要求,需技术能力成本题目,持续的云服务费用数据隐私风险,数据需上传网络依靠,服务可用性依靠网络 大模子的在线使用、当地部署和云端部署各有其优缺点:
综合考虑,选择哪种部署方式取决于组织的具体需求、资源和优先级。例如,对于重视数据隐私和定制性的场景,当地部署可能更符合;而对于需要快速扩展和专业技术支持的场景,云端部署可能更有优势。在线使用则适合对成本敏感且不需要高度定制的用例。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表