0
点赞
收藏
分享

微信扫一扫

360Zhinao2-7B:360推出自研360智脑大模型的升级版

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

🚀 快速阅读

  1. 模型升级:360Zhinao2-7B是360智脑7B参数的升级版,采用全新的多阶段训练方式和更优质的数据处理策略。
  2. 功能强大:模型支持语言理解与生成、聊天能力、数学逻辑推理等多项功能,适用于多种商业场景。
  3. 技术领先:在国内外同尺寸开源模型中,360Zhinao2-7B在中文能力、IFEval指令遵循7B和复杂数学推理能力方面均排名第一。

正文(附运行示例)

360Zhinao2-7B是什么

360Zhinao2-7B:360推出自研360智脑大模型的升级版_开源

360Zhinao2-7B是360自研的AI大模型360智脑7B参数升级版,涵盖基础模型及多种上下文长度的聊天模型。该模型是继360Zhinao1-7B之后的重要更新,基于采用全新的多阶段训练方式和更优质的数据处理策略,提升中英文通用能力,增强模型的数学逻辑推理能力。

在国内外同尺寸开源模型中,360Zhinao2-7B在中文能力、IFEval指令遵循7B和复杂数学推理能力方面均排名第一。模型的长文本微调能力在各个长文本benchmark上也位列第一梯队。

360Zhinao2-7B的主要功能

  • 语言理解与生成:能理解和生成中文和英文文本,适用于多种语言处理任务。
  • 聊天能力:提供强大的聊天功能,支持生成流畅、相关且准确的对话回复。
  • 多上下文长度支持:具有不同上下文长度的聊天模型,能处理从4K到360K不同长度的对话历史。
  • 数学逻辑推理:在数学问题解答和逻辑推理方面表现出色,能处理复杂的数学问题。
  • 多语言支持:除中文,模型也支持英文,能在不同语言的数据集上进行训练和推理。
  • 商业应用:支持免费商用,适用于教育、医疗、智能客服等多个商业场景。

360Zhinao2-7B的技术原理

  • 大规模预训练:采用两阶段训练方法,首先进行大规模的无差别数据训练,然后增加高质量数据的比例,进行第二阶段训练。
  • 大量数据训练:模型训练涉及10T(万亿)个token的第一阶段训练和100B(百亿)个token的第二阶段训练。
  • Transformer架构:基于Transformer架构,一种深度学习模型,广泛应用于自然语言处理任务。
  • 自注意力机制:模型使用自注意力机制处理输入序列中的每个元素,让模型能理解单词或短语之间的复杂关系。
  • 上下文建模:聊天模型支持不同长度的上下文,能根据对话历史生成回复,要求模型具备良好的上下文建模能力。
  • 优化策略:采用余弦退火等学习率调度策略,优化训练过程;采用BF16(Brain Floating Point 16)等混合精度训练技术,提高训练效率和减少内存使用。

如何运行 360Zhinao2-7B

依赖安装

  • python >= 3.8
  • pytorch >= 2.0
  • transformers >= 4.37.2
  • CUDA >= 11.4

pip install -r requirements.txt

可选安装Flash-Attention 2以提高性能和减少内存占用。

FLASH_ATTENTION_FORCE_BUILD=TRUE pip install flash-attn==2.3.6

🤗 Transformers

基础模型推理示例

from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers.generation import GenerationConfig

MODEL_NAME_OR_PATH = "qihoo360/360Zhinao2-7B-Base"

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_NAME_OR_PATH, 
    trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME_OR_PATH,
    device_map="auto",
    trust_remote_code=True)

generation_config = GenerationConfig.from_pretrained(
    MODEL_NAME_OR_PATH,
    trust_remote_code=True)

inputs = tokenizer('中国二十四节气\n1. 立春\n2. 雨水\n3. 惊蛰\n4. 春分\n5. 清明\n', return_tensors='pt')
inputs = inputs.to(model.device)

pred = model.generate(input_ids=inputs["input_ids"], generation_config=generation_config)
print("outputs:\n", tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))

聊天模型推理示例

from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers.generation import GenerationConfig

MODEL_NAME_OR_PATH = "qihoo360/360Zhinao2-7B-Chat-4K"

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_NAME_OR_PATH, 
    trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME_OR_PATH,
    device_map="auto",
    trust_remote_code=True)

generation_config = GenerationConfig.from_pretrained(
    MODEL_NAME_OR_PATH,
    trust_remote_code=True)

messages = []
#round-1
messages.append({"role": "user", "content": "介绍一下刘德华"})
response = model.chat(tokenizer=tokenizer, messages=messages, generation_config=generation_config)
messages.append({"role": "assistant", "content": response})
print(messages)

#round-2
messages.append({"role": "user", "content": "他有什么代表作?"})
response = model.chat(tokenizer=tokenizer, messages=messages, generation_config=generation_config)
messages.append({"role": "assistant", "content": response})
print(messages)

🤖 ModelScope

基础模型推理示例

from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig

MODEL_NAME_OR_PATH = "qihoo360/360Zhinao2-7B-Base"

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_NAME_OR_PATH, 
    trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME_OR_PATH,
    device_map="auto",
    trust_remote_code=True)

generation_config = GenerationConfig.from_pretrained(
    MODEL_NAME_OR_PATH,
    trust_remote_code=True)

inputs = tokenizer('中国二十四节气\n1. 立春\n2. 雨水\n3. 惊蛰\n4. 春分\n5. 清明\n', return_tensors='pt')
inputs = inputs.to(model.device)

pred = model.generate(input_ids=inputs["input_ids"], generation_config=generation_config)
print("outputs:\n", tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))

聊天模型推理示例

from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig

MODEL_NAME_OR_PATH = "qihoo360/360Zhinao2-7B-Chat-4K"

tokenizer = AutoTokenizer.from_pretrained(
    MODEL_NAME_OR_PATH, 
    trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME_OR_PATH,
    device_map="auto",
    trust_remote_code=True)

generation_config = GenerationConfig.from_pretrained(
    MODEL_NAME_OR_PATH,
    trust_remote_code=True)

messages = []
#round-1
messages.append({"role": "user", "content": "介绍一下刘德华"})
response = model.chat(tokenizer=tokenizer, messages=messages, generation_config=generation_config)
messages.append({"role": "assistant", "content": response})
print(messages)

#round-2
messages.append({"role": "user", "content": "他有什么代表作?"})
response = model.chat(tokenizer=tokenizer, messages=messages, generation_config=generation_config)
messages.append({"role": "assistant", "content": response})
print(messages)

资源

  • 项目官网:<https://ai.360.com>
  • GitHub 仓库:<https://github.com/Qihoo360/360zhinao2>
  • HuggingFace 模型库:<https://huggingface.co/collections/qihoo360/360zhinao2>
  • arXiv 技术论文:<https://arxiv.org/abs/2405.13386>

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

举报

相关推荐

0 条评论