首页 > 其他分享 >LongWriter环境安装&推理测试

LongWriter环境安装&推理测试

时间:2024-09-02 11:50:48浏览次数:11  
标签:输出 模型 LongWriter 测试 长度 model 推理 SFT

​引子

一口气生成2万字,大模型输出也卷起来了!清华&智谱AI最新研究,成功让GLM-4、Llama-3.1输出长度都暴增。相同问题下,输出结果直接从1800字增加到7800字,翻4倍。大模型的生成内容一般都不会太长,这对于内容创作、问题回答等都存在影响,可能导致模型回答问题不全面、创造性能降低等。LongWrite由智谱AI创始人、清华大学教授李涓子和唐杰共同领衔。OK,让我们开始吧。

一、模型介绍

本项研究主要包括3方面工作。(1)分析文本生成长度限制因素(2)提出AgentWrite(3)扩展LLM输出窗口大小。首先,研究人员构建了一个测试工具LongWrite-Ruler。通过测试多个大模型,他们发现所有模型在生成超过2000字的文本时都遇到了困难。进一步分析用户和大模型的交互日志,研究人员发现只有超过1%的用户请求明确提到要生成超过2000字的文本。为此,他们改变了模型在监督式微调(SFT)阶段使用的数据集的最大输出长度。结果发现,模型的最大输出长度与SFT数据集中的最大输出长度呈显著正相关。所以得出结论,现有模型在输出长度上受限主要是因为SFT数据集中缺少长输出样本。即使模型在预训练阶段见过更长的序列,但是SFT阶段缺乏长文本样本,还是会影响输出长度。

为了克服这个限制,研究人员提出了AgentWrite。这是一个基于Agent的pipline。

二、环境安装

代码下载

git clone https://github.com/THUDM/LongWriter.git

下载模型

https://huggingface.co/THUDM/LongWriter-glm4-9b/tree/main

环境安装

docker run -it -v /datas/work/zzq/:/workspace --gpus=all pytorch/pytorch:2.4.0-cuda12.4-cudnn9-devel bash

cd /workspace/LongWriter/LongWriter-main

pip install -r requirements.txt -i Simple Index

pip install accelerate -i Simple Index

pip install tiktoken -i Simple Index

三、推理测试

测试代码如下:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("models", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("models", torch_dtype=torch.float16, trust_remote_code=True, device_map="auto")
model = model.eval()
query = "写一篇10000字的中国旅游指南"
print("start")
response, history = model.chat(tokenizer, query, history=[], max_new_tokens=32768, temperature=0.5)
print(response)

结果如下:

粘贴到Word中计算字数:

 

标签:输出,模型,LongWriter,测试,长度,model,推理,SFT
From: https://www.cnblogs.com/nick-algorithmer/p/18392422

相关文章

  • LIN总线CAPL函数—— 主节点波特率测试(ChkStart_LINMasterBaudrateViolation)
    ......
  • 单元测试 Mock不Mock?
    文章目录前言单元测试没必要?Mock不Mock?什么是Mock?Mock的意义何在?如何Mock?应该Mock什么?Mock编写示例总结前言前段时间,我们团队就单元测试是否采用Mock进行了一番交流,各有各的说法。本文就单元测试Mock不Mock给出我的观点,欢迎各位同仁提出不同的意见,共同探......
  • Unit测试OverflowException:达到最大重试次数10000次,仍未找到唯一值
    这个错误通常表示在进行单元测试时,你正在尝试查找一个唯一的值,但在达到最大重试次数(10000次)后仍未找到。这可能是由于以下原因之一导致的:1.数据问题:可能存在重复的数据或没有唯一的值可供查找。你可以检查测试数据,确保其中包含唯一的值。2.测试逻辑问题:可能存在错误的测试逻......
  • 自动化测试的终点是什么?
    作为自动化测试工程师,刚入门的时候很容易陷入工具和框架的汪洋大海里。从静态代码扫描到单元测试,再到接口测试,UI测试,性能测试,安全测试,测试数据管理,测试环境管理,测试报告,测试结果分析,测试结果可视化,测试结果回归,测试结果持续集成,每一个细分领域的工具都有很多。但是,工具之后呢?相......
  • Java性能测试:从理论到实践
    Java性能测试:从理论到实践大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!性能测试是验证软件应用是否满足预定性能要求的重要步骤。在Java中,性能测试通常涉及到对应用程序进行压力测试、负载测试和稳定性测试。本文将介绍Java性能测试的理论基础和实......
  • 测试小白入门-03测试理论知识看这一篇就够了
    文章目录前言一、软件开发过程模型瀑布开发模型(熟悉)快速原型模型(理解)螺旋模型(了解)二、测试模型测试V模型(代表性)测试W模型(中大型企业)测试H模型(了解)三、测试方法分类是否覆盖源代码是否运行是否覆盖源代码是否自动化其他四、编写测试用例的方法1.等价划分类2.边界值3.......
  • 【综合小项目】—— 爬取数据、数据处理、建立模型训练、自定义数据进行测试
    文章目录一、项目内容二、各步骤的代码实现1、爬取数据2、数据处理3、建立模型训练4、自定义数据进行预测一、项目内容1、爬取数据本次项目的数据是某购物平台中某个产品的优质评价内容和差评内容采用爬虫的selenium方法进行爬取数据内容,并将爬取的内容分别存放......
  • 58集团23校招测试工程师卷——多条件处理
    23.多人打车问题共有10个人需要打出租车,每辆出租车至少一人,最多4人,尽量平均人数,则按从多到少划分,每辆出租车分别为[4,3,3];请写一个通用算法,如果有m人需要打出租车,则按从多到少,每辆出租车该如何划分? 注:程序中需要按照下文的输入输出描述,进行对应的输入读取与相应格式......
  • 58集团23校招测试工程师卷——字符串处理
    Top5热词问题为了提高用户体验,后台要对用户的搜索词进行统计以方便后续做针对性的优化升级。统计策略如下:筛选出搜索词集合中的搜索次数排名前5的搜索词(不考虑搜索词数相同情况)。输入的搜索词数据格式:化妆品导购:51,奶茶店员:70,医药连锁:27,夜班8小时店员:38,店员:97,促销......
  • 58集团23校招测试工程师卷——考查队列
    编程题-操作系统先入先出算法实现1234567891011在操作系统的页面置换算法中,当需要淘汰一个页面的时候,可以针对先进入主存的页面先淘汰;现在针对这个算法请实现一个简易版的程序,实现在页面数达到内存上限时,通过先入先出的算法淘汰置换并输出最后保留在内存中的......