首页 > 其他分享 >零一科技Yi-34B Chat大模型环境搭建&推理

零一科技Yi-34B Chat大模型环境搭建&推理

时间:2024-01-15 11:34:48浏览次数:33  
标签:零一 Yi 34B content role model True

引子

  国产大模型此起彼伏,各种刷榜。作为没有能力训练的我们,只能跟着大佬开源的模型尝试下效果,零一科技23年底发布的Yi大模型,之前就有尝试,现汇总总结下,OK,我们开始吧。

一、环境安装 模型下载 https://huggingface.co/01-ai/Yi-34B-Chat/tree/main conda activate chatglm git clone https://github.com/01-ai/Yi cd /opt/tmp/zzq/Yi/ pip install -r requirements.txt 二、推理代码运行 python chat_yi_34B_demo.py 三、效果展示 1、Q: 0 A: 0 2、Q: 0 A:

 四、代码

from threading import Thread
from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
model_path = 'Yi-34B-Chat'
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
# Since transformers 4.35.0, the GPT-Q/AWQ model can be loaded using AutoModelForCausalLM.
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    device_map="auto",
    torch_dtype='auto'
).eval()
# 对话历史
messages = [{"role": "user", "content": "请扮演一个AI助手角色,你的名字叫小艺"},
            {"role": "assistant", "content": "好的,我记住了。"},
            # {"role": "user", "content": "小艺,吕布是三国人物么?请按照如下格式输出,\
            # 如果是,请回答{'ans':'yes'},如果不是,请回答{'ans':'no'},请注意不要输出其他信息"}]
            # {"role": "user", "content": "小艺,写一篇赞美雪景的文章,内容包含南方的雪和北方的雪的特色,\
            # 文章字数要求1500字,文章字数要求1500字,文章字数要求1500字"}]
            {"role": "user", "content": "小艺,鸡兔同笼,头共20个,足共62只,求鸡与兔各有多少只?"}]
streamer = TextIteratorStreamer(tokenizer, skip_prompt=True)
input_ids = tokenizer.apply_chat_template(conversation=messages, tokenize=True, add_generation_prompt=True,
                                          return_tensors='pt')
generation_kwargs = dict(input_ids=input_ids.to('cuda'), streamer=streamer, temperature=0.95, top_p=0.8)
thread = Thread(target=model.generate, kwargs=generation_kwargs)
thread.start()
for new_text in streamer:
    new_text = new_text.replace('<|im_end|>', '\n')
    print(new_text, end="", flush=True)

  

标签:零一,Yi,34B,content,role,model,True
From: https://www.cnblogs.com/nick-algorithmer/p/17965018

相关文章

  • 软件测试/测试开发全日制|Pytest中yield的用法详解
    前言在之前的介绍中,我们已经介绍了fixture的简单用法,但其实fixture还提供了两种非常优雅高效的写法,来完成测试执行前的处理操作与执行后的处理操作,即使用yield或addfinalizer来实现。本文我们将介绍使用yield来实现操作。yield在fixture中的关键字yield主要有两个作用:yield代替retu......
  • MYISAM和INNODB的区别
    INNODB支持事务,而MYISAM不支持事务。INNODB支持外键,而MYISAM不支持外键。MYISAM中B+Tree的数据结构存储的内容是实际数据的地址值,它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。InnoDB中B+树的数据结构中存储的都是实......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇) 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extension......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(三)
    聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(三) 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extensions.De......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)
    聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二) 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extensions.DependenyI......
  • 聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core
    聊一聊如何结合Microsoft.Extensions.DependenyInjection和Castle.Core 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extensions.Depend......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    前言书接上回,上回我们了解了castle代理的一些缺点,本文将开始操作整合Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器我们将以进阶的形式逐步完善我们的封装,以实现一个更方便易用、普适、高性能的基础设施库。基础版还是先上代码,这是基础版本我们......
  • An improved LSTM-based model for identifying high working intensity load segment
    一区topComputersandElectronicsinAgriculture题目:“基于改进lstm的拖拉机载荷谱高工作强度载荷段识别模型”(pdf)“AnimprovedLSTM-basedmodelforidentifyinghighworkingintensityloadsegmentsofthetractorloadspectrum”(pdf)分类问题针对的问题:......
  • 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(三)
    前言今天的第三篇,感觉没啥人看呀,难道没有兄弟跟我有同样的整合需求吗???手动,本文会简短一些,介绍下CastleCore作为代理库的一些缺点甚至是硬伤异步支持先上代码///<summary>///异常捕获、日志记录和耗时监控拦截器2024-1-1221:28:22///</summary>publicclassCatch......
  • 软件测试/测试开发全日制|Pytest中yield的用法详解
    前言在之前的介绍中,我们已经介绍了fixture的简单用法,但其实fixture还提供了两种非常优雅高效的写法,来完成测试执行前的处理操作与执行后的处理操作,即使用yield或addfinalizer来实现。本文我们将介绍使用yield来实现操作。yield在fixture中的关键字yield主要有两个作用:yield代替retu......