通义千问(1.8B和7B测试都能用)模型部署

通义千问(1.8B-int4和7B-int4测试都能用)模型部署

官方文档链接:

https://modelscope.cn/models/qwen/Qwen-1_8B-Chat/summary

1. 环境配置

这里我列几个主要的环境和版本

python                    3.8.18
gradio                    4.8.0
modelscope                1.9.5
pytorch                   2.1.0
tensorflow                2.13.0
transformers              4.32.0

依赖项:

安装transformer库:

pip install transformers==4.32.0 accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed -i https://pypi.tuna.tsinghua.edu.cn/simple

安装flash-attention库,(官方推荐安装)

git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention && pip install .
# 下方安装可选,安装可能比较缓慢。
# pip install csrc/layer_norm
# pip install csrc/rotary

其它的包基本都没啥太大影响,就不一一举例了。

2. 模型下载

from modelscope.hub.snapshot_download import snapshot_download

#如果需要其他版本的,修改路径即可
model_dir = snapshot_download('qwen/Qwen-1_8B-Chat', cache_dir='/home/sc/vscode/qwen1.8b/model', revision='master')

可以下载任意版本的,-int4版本的也行

3. 模型调用

这是一段测试代码,用于测试下载的模型能否正常翻译:

from modelscope import AutoModelForCausalLM, AutoTokenizer, GenerationConfig

tokenizer = AutoTokenizer.from_pretrained("./model/qwen/Qwen-1_8B-Chat", revision='master', trust_remote_code=True)

# use bf16
# model = AutoModelForCausalLM.from_pretrained("./model/qwen/Qwen-1_8B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# use fp16
# model = AutoModelForCausalLM.from_pretrained("./model/qwen/Qwen-1_8B-Chat", device_map="auto", trust_remote_code=True, fp16=True).eval()
# use cpu only
# model = AutoModelForCausalLM.from_pretrained("./model/qwen/Qwen-1_8B-Chat", device_map="cpu", trust_remote_code=True).eval()
# use auto mode, automatically select precision based on the device.
model = AutoModelForCausalLM.from_pretrained("./model/qwen/Qwen-1_8B-Chat", revision='master', device_map="auto", trust_remote_code=True).eval()

# 第一轮对话 1st dialogue turn
response, history = model.chat(tokenizer, "你好", history=None)
print(response)

# 第二轮对话 2nd dialogue turn
response, history = model.chat(tokenizer, "给我讲一个年轻人奋斗创业最终取得成功的故事。", history=history)
print(response)

# 第三轮对话 3rd dialogue turn
response, history = model.chat(tokenizer, "给这个故事起一个标题", history=history)
print(response)

4. 模型部署(基于gradio)

这是基于gradio 部署,后续会考虑部署Flask或者FastAPI

from modelscope import  AutoTokenizer,AutoModelForCausalLM
import gradio as gr
from loguru import logger

def load_model():
    global tokenizer, model
    tokenizer = AutoTokenizer.from_pretrained("./model/qwen/Qwen-1_8B-Chat-Int4", revision='master', trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained(
        "./model/qwen/Qwen-1_8B-Chat-Int4", revision='master',
        device_map="auto",
        trust_remote_code=True
    ).eval()

def predict(input, chatbot, history):
    chatbot.append((input,""))
    response, history = model.chat(tokenizer, input, history)
    chatbot[-1] = (input, response)
    yield chatbot, history

def reset_user_input():
    return gr.update(value='')

# def reset_state():
#     model.clean_history()
#     return []

if __name__ == "__main__":
    load_model()
    with gr.Blocks() as demo:
        gr.HTML("""<h1 align="center">qwen1.8b</h1>""")
        chatbot = gr.Chatbot()
        with gr.Row():
            with gr.Column(scale=4):
                with gr.Column(scale=12):
                    user_input = gr.Textbox(show_label=False, placeholder="Input...", lines=10)
                with gr.Column(min_width=32, scale=1):
                    submitBtn = gr.Button("Submit", variant="primary")
            # with gr.Column(scale=1):
            #     emptyBtn = gr.Button("Clear History")
        
        history = gr.State([])
        past_key_values = gr.State(None)

        submitBtn.click(predict, [user_input, chatbot, history],[chatbot, history], show_progress=True)
        submitBtn.click(reset_user_input, [], [user_input])
        # emptyBtn.click(reset_state, outputs=[chatbot, history, past_key_values], show_progress=True)

    
    demo.queue().launch(share=False, inbrowser=True, server_name='0.0.0.0')
 
<think>嗯,用户让我介绍阿里的Qwen大模型,首先我需要确认自己对这个模型的了解程度。记得Qwen是阿里巴巴推出的一个大型语言模型,可能属于他们的通义系列。用户可能想了解它的特点、应用场景、技术细节,或者是其他大模型的比较。 首先,我应该回忆一下Qwen的发布时间,是2023年左右吧?然后它的不同版本,比如有不同参数量的模型,比如1.8B、7B、14B、72B,甚至可能有更大的版本。这些不同规模的模型适用于不同的场景,比如移动端、服务器端或者研究用途。 接下来,技术上的特点。Qwen可能采用了Transformer架构,支持长文本理解多语言能力。另外,可能支持插件扩展,比如联网搜索、图像处理等,类似于其他大模型如GPT-4的功能。多模态的支持也很重要,可能包括文本、图像、音频等多模态输入输出。 然后要提到它的开源情况,部分版本是否已经开源,比如在Hugging Face或者ModelScope上可以获取。这对于开发者来说很重要,因为开源模型可以促进更多的应用创新。 应用场景方面,可以列举企业服务、智能客服、内容生成、数据分析等。阿里巴巴内部的应用案例,比如在电商、物流、云计算中的使用,可能也是用户关心的点。 另外,用户可能想知道Qwen相比其他模型如ChatGPT、文心一言有什么优势。可能需要强调其在中文语境下的优化,对阿里巴巴生态系统的整合,或者在某些技术指标上的领先。 还要注意用户可能的深层需求,比如是否适合商业应用,是否需要付费,或者如何接入使用。可能需要提到阿里云提供的API服务或者定制化解决方案。 需要避免过于技术化的术语,保持解释的通俗易懂。同时,确保信息的准确性,比如参数规模、开源协议、支持的模态等,都需要确认最新的资料,避免过时的信息。 可能还需要提到训练数据、模型性能,比如在权威评测中的表现,处理复杂任务的能力,比如数学推理、代码生成等。 最后,总结Qwen在行业中的地位,以及阿里巴巴通过该模型推动AI生态发展的策略。这部分可以展示Qwen的战略意义,而不仅仅是技术细节。 检查是否有遗漏的重要信息,比如安全性合规性,或者模型的可控性,比如支持用户自定义微调,这对于企业用户来说可能很重要。 现在把这些点组织成连贯的回答,确保结构清晰,信息全面,同时用中文口语化表达,避免生硬的技术术语堆砌。</think>阿里的Qwen大模型是阿里巴巴集团推出的先进AI大模型系列,属于“通义”产品线,旨在提供多场景、多模态的智能服务。以下是其核心特点应用介绍: ### 1. **多版本覆盖,灵活适配** - **参数规模多样**:提供1.8B、7B、14B、72B等不同参数量的版本,小模型适合移动端或边缘计算,大模型则适用于复杂任务。 - **开源开放**:部分版本(如Qwen-7B、Qwen-14B)已开源,开发者可通过ModelScope或Hugging Face平台获取,促进社区协作创新。 ### 2. **技术亮点** - **多模态能力**:支持文本、图像、音频处理,例如图文答、语音转写等,扩展应用边界。 - **长上下文理解**:可处理长达数万token的文本,适合长文档分析、多轮对话等场景。 - **插件生态**:支持联网搜索、代码执行、图像生成等插件,增强实时信息获取与交互功能。 ### 3. **应用场景** - **企业服务**:智能客服(如淘宝客服自动化)、数据分析(阿里云企业BI工具)、文档处理(合同解析、报告生成)。 - **内容创作**:营销文案、视频脚本生成,辅助设计师进行AI绘图。 - **教育科研**:编程教学(代码生成与纠错)、学术论文摘要提炼。 ### 4. **竞争优势** - **中文优化**:针对中文语法文化场景深度训练,理解成语、古诗等更准确。 - **阿里生态整合**:与支付宝、菜鸟物流、天猫等业务无缝对接,提升内部效率。 - **性能领先**:在MMLU、C-Eval等评测中,Qwen-72B曾超越部分国际同类模型的中文表现。 ### 5. **开发者支持** - **微调工具链**:提供QLoRA等轻量级微调方案,企业可基于私有数据定制模型。 - **云服务集成**:通过阿里云PAI平台可一键部署,降低AI应用门槛。 ### 示例场景 - **电商场景**:Qwen可分析用户评论生成产品改进建议,或自动生成商品详情页文案。 - **医疗领域**:结合医学文献,辅助医生快速检索治疗方案(需合规框架内使用)。 ### 总结 Qwen大模型体现了阿里在AI基础设施领域的布局,通过开源与商业化结合的策略,推动行业智能化。对于企业用户,它提供从API调用到私有化部署的全套解决方案;对于开发者,开源模型工具链支持快速实验与创新。其持续迭代(如Qwen2版本)也值得关注,未来在多模态推理能力上或有更大突破。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值