赞
踩
近期,Meta 宣布大语言模型 Llama2 开源,包含7B、13B、70B不同尺寸,分别对应70亿、130亿、700亿参数量,并在每个规格下都有专门适配对话场景的优化模型Llama-2-Chat。Llama2 可免费用于研究场景和商业用途(但月活超过7亿以上的企业需要申请),对企业和开发者来说,提供了大模型研究的最新利器。
目前,Llama-2-Chat在大多数评测指标上超过了其他开源对话模型,并和一些热门闭源模型(ChatGPT、PaLM)相差不大。阿里云机器学习平台PAI第一时间针对 Llama2 系列模型进行适配,推出全量微调、Lora微调、推理服务等场景最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。
Python环境3.9以上,GPU推荐使用A100(80GB),该资源比较紧俏,建议多刷新几次。
1、登入PAI并下载 Llama-2-7B-Chat
a. 登入PAI控制台 https://pai.console.aliyun.com/
b. 进入 PAI-DSW 创建实例后下载模型文件。运行如下代码,可以自动为您选择合适的下载地址,并将模型下载到当前目录。
- import os
- dsw_region = os.environ.get("dsw_region")
- url_link = {
- "cn-shanghai": "https://atp-modelzoo-sh.oss-cn-shanghai-internal.aliyuncs.com/release/tutorials/llama2/llama2-7b.tar.gz",
- "cn-hangzhou": "https://atp-modelzoo.oss-cn-hangzhou-internal.aliyuncs.com/release/tutorials/llama2/llama2-7b.tar.gz",
- "cn-shenzhen": "https://atp-modelzoo-sz.oss-cn-shenzhen-internal.aliyuncs.com/release/tutorials/llama2/llama2-7b.tar.gz",
- "cn-beijing": "https://atp-modelzoo-bj.oss-cn-beijing-internal.aliyuncs.com/release/tutorials/llama2/llama2-7b.tar.gz",
- }
- path = url_link[dsw_region]
- os.environ['LINK_CHAT'] = path
- !wget $LINK_CHAT
- !tar -zxvf llama2-7b.tar.gz
如果您的地区不在上述地区中,您可以自行选择与你地域最近的链接进行下载(不同地域不共享内网,记得将链接中的-internal去掉)。同一地域的数据下载速度快,不同地域之间也可以下载,但是速度比同一地域略慢。
如果您希望从ModelScope下载模型,请点击链接:https://modelscope.cn/models/modelscope/Llama-2-7b-chat-ms/summary
2、下载和安装环境
接着下载和安装所需要的环境。
- ! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/ColossalAI.tar.gz
- ! tar -zxvf ColossalAI.tar.gz
- ! pip install ColossalAI/.
- ! pip install ColossalAI/applications/Chat/.
- ! pip install transformers==4.30.0
- ! pip install gradio==3.11
3、下载示例训练数据
下载训练所需的数据,这里我们提供的一份创意生成数据,包括发言稿生成等内容。
您也可以参考该格式,自行准备所需数据。
- ! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/llama_data.json
- ! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/llama_test.json
您可以使用已经写好的训练脚本,进行模型训练。
! sh ColossalAI/applications/Chat/examples/train_sft.sh
模型训练完成后,下载我们提供的webUI demo,试玩微调完成的模型(注意模型地址替换为自己训练好的模型地址)。
- import gradio as gr
- import requests
- import json
- from transformers import AutoTokenizer, AutoModelForCausalLM
- #模型地址替换为自己训练好的模型地址
- tokenizer = AutoTokenizer.from_pretrained("/mnt/workspace/sft_llama2-7b",trust_remote_code=True)
- #模型地址替换为自己训练好的模型地址
- model = AutoModelForCausalLM.from_pretrained("/mnt/workspace/sft_llama2-7b",trust_remote_code=True).eval().half().cuda()
- def inference(text):
- from transformers import pipeline
- pipe = pipeline("text-generation", model=model, tokenizer=tokenizer,device='cuda:0', max_new_tokens=400)
- res=pipe(text)
- return res[0]['generated_text'][len(text):]
-
- demo = gr.Blocks()
- with demo:
- input_prompt = gr.Textbox(label="请输入需求", value="请以软件工程师的身份,写一篇入职的发言稿。", lines=6)
- generated_txt = gr.Textbox(lines=6)
- b1 = gr.Button("发送")
- b1.click(inference, inputs=[input_prompt], outputs=generated_txt)
- demo.launch(enable_queue=True, share=True)
如果希望将上述模型部署至PAI-EAS,您需要首先将训练完成的模型上传至OSS。
下列参数需要根据您自己的信息填写
- # encoding=utf-8
- import oss2
- import os
- AK='yourAccessKeyId'
- SK='yourAccessKeySecret'
- endpoint = 'yourEndpoint'
- dir='your model output dir'
- auth = oss2.Auth(AK, SK)
- bucket = oss2.Bucket(auth, endpoint, 'examplebucket')
- for filename in os.listdir(dir):
- current_file_path = dir+filename
- file_path = '需要上传地址'
- bucket.put_object_from_file(file_path, current_file_path)
接下来进行部署工作,步骤请参考【最佳实践三:Llama2 快速部署 WebUI】
参考资料:
点击立即免费试用云产品 开启云上实践之旅!
本文为阿里云原创内容,未经允许不得转载。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。