DevOps-Model-14B-Chat
? Hugging Face • ? ModelScope
DevOps-Model 是一个开发运维大模型,主要致力于在 DevOps 领域发挥实际价值。目前,DevOps-Model 能够帮助工程师回答在 DevOps 生命周期中遇到的问题。欢迎访问我们 Github 获取更多信息 DevOps-Model
DevOps-Model-14B-Chat 是我们经过高质量 DevOps 语料训练基于 Qwen-14B 加训然后再经过对齐的 Chat 版本模型,我们的 Chat 模型在开源和 DevOps 领域相关的评测数据上可以取得同规模模型中的最佳效果。同时我们也开源了经过加训后的 DevOps-Model-14B-Base 模型,和 7B 参数量的DevOps-Model-7B-Base 和 DevOps-Model-7B-Chat 。
同时我们也在搭建 DevOps 领域专属的评测基准 DevOpsEval),用来更好评测 DevOps 领域模型的效果。
模型评测
我们先选取了 CMMLU 和 CEval 两个评测数据集中和 DevOps 相关的一共六项考试。总计一共 574 道选择题,具体信息如下:
评测数据集 | 考试科目 | 题数 |
---|---|---|
CMMLU | Computer science | 204 |
CMMLU | Computer security | 171 |
CMMLU | Machine learning | 122 |
CEval | College programming | 37 |
CEval | Computer architecture | 21 |
CEval | Computernetwork | 19 |
我们分别测试了 Zero-shot 和 Five-shot 的结果,我们的 DevOps-Model-14B-Chat 模型可以在测试的同规模的开源 Chat 模型中取得最高的成绩,后续我们也会进行更多的测试。
模型 | 模型大小 | Zero-shot 得分 | Five-shot 得分 |
---|---|---|---|
DevOps-Model-14B-Chat | 14B | 74.04 | 75.96 |
Qwen-14B-Chat | 14B | 69.16 | 70.03 |
Baichuan2-13B-Chat | 13B | 52.79 | 55.23 |
快速使用
我们提供简单的示例来说明如何利用 ? Transformers 快速使用 Devops-Model-14B-Chat 模型
要求
- python 3.8 及以上版本
- pytorch 2.0 及以上版本
- 建议使用CUDA 11.4及以上
依赖项安装
下载模型后,直接通过以下命令安装 requirements.txt 中的包就可以
cd path_to_download_model
pip isntall -r requirements.txt
模型推理示例
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
tokenizer = AutoTokenizer.from_pretrained("path_to_DevOps-Model-14B-Chat", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("path_to_DevOps-Model-14B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 指定 generation_config
model.generation_config = GenerationConfig.from_pretrained("path_to_DevOps-Model-14B-Chat", trust_remote_code=True)
# 第一轮对话
resp, hist = model.chat(query='你是谁', tokenizer=tokenizer, history=None)
print(resp)
# 我是 DevOps-Model,一个由蚂蚁金服平台技术事业群风险智能团队和北京大学联合研发的人工智能机器人,可以与您进行自然语言交互,帮助您解答各种问题。
# 第二轮对话
resp2, hist2 = model.chat(query='Java 中 HashMap 和 Hashtable 有什么区别', tokenizer=tokenizer, history=hist)
print(resp2)
# HashMap 和 Hashtable 都是 Java 中常用的哈希表实现,它们的区别在于 Hashtable 是线程安全的,而 HashMap 不是。Hashtable 中的方法都是同步的,因此在多线程环境下使用 Hashtable 是安全的,而 HashMap 中的方法没有同步机制,因此在多线程环境下使用 HashMap 需要手动加锁来保证线程安全。此外,Hashtable 中的键和值都不能为 null,而 HashMap 中的键和值都可以为 null。
# 第三轮对话
resp3, hist3 = model.chat(query='线程安全代表什么', tokenizer=tokenizer, history=hist2)
print(resp3)
# 线程安全指的是在多线程环境下,程序能够正确地处理并发访问的情况,不会出现数据不一致、死锁等问题。线程安全的程序在多线程环境下可以保证数据的一致性和正确性,避免出现并发问题。在 Java 中,线程安全可以通过同步机制来实现,例如使用 synchronized 关键字或者使用线程安全的类。
免责声明
由于语言模型的特性,模型生成的内容可能包含幻觉或者歧视性言论。请谨慎使用 DevOps-Model 系列模型生成的内容。 如果要公开使用或商用该模型服务,请注意服务方需承担由此产生的不良影响或有害言论的责任,本项目开发者不承担任何由使用本项目(包括但不限于数据、模型、代码等)导致的危害或损失。
致谢
本项目参考了以下开源项目,在此对相关项目和研究开发人员表示感谢。
评论