首页 > 其他分享 >How do I increase max_new_tokens

How do I increase max_new_tokens

时间:2024-07-24 17:28:52浏览次数:16  
标签:do max tokens length kwargs import model

题意:怎样增加 max_new_tokens 的值

问题背景:

I'm facing this error while running my code:        运行代码时遇到如下错误:

ValueError: Input length of input_ids is 1495, but max_length is set to 20. This can lead to unexpected behavior. You should consider increasing max_length or, better yet, setting max_new_tokens.

ValueErrorinput_ids 的输入长度为 1495,但 max_length 被设置为 20。这可能导致意外的行为。你应该考虑增加 max_length 的值,或者更好的是,设置 max_new_tokens

I wanted the code to generate the query instead it says about the max length issue as basically I am using 8 bit quantized llama using vector embedding to develop a RAG chat bot

我希望代码能够生成查询,但它却提示了最大长度问题。实际上,我正在使用8位量化的llama模型,并利用向量嵌入来开发一个基于检索的增强型生成(RAG)聊天机器人

import os
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
from transformers import BitsAndBytesConfig, AutoTokenizer
from langchain_huggingface import ChatHuggingFace, HuggingFacePipeline
from time import time
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA

# Load PDF and split into chunks
def split_doc(file, chunk_size, chunk_overlap):
    text_splitter = CharacterTextSplitter(
        separator="\n\n",
        chunk_size=chunk_size,
        chunk_overlap=chunk_overlap,
        length_function=len
    )
    return text_splitter.split_documents(file)

loader = PyPDFLoader("/kaggle/input/report/report.pdf")
pages = loader.load()
docs = split_doc(pages, 700, 450)

# Configure and load the model
model_name = "NousResearch/Llama-2-7b-chat-hf"
bnb_config = BitsAndBytesConfig(load_in_8bit=True)
llm = HuggingFacePipeline.from_model_id(
    model_id=model_name,
    task="text-generation",
    model_kwargs={"trust_remote_code": True, "quantization_config": bnb_config}
)
chat_model = ChatHuggingFace(llm=llm)

# Set up embeddings and vector store
embedding_model_name = "sentence-transformers/all-mpnet-base-v2"
embedding_model_kwargs = {"device": "cuda"}
embeddings = HuggingFaceEmbeddings(model_name=embedding_model_name, model_kwargs=embedding_model_kwargs)
vectordb = Chroma.from_documents(documents=docs, embedding=embeddings, persist_directory="chroma_db")
retriever = vectordb.as_retriever()

# Set up the QA system
qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever,
    verbose=True
)

# Define the testing function
def test_rag(qa, query):
    print(f"Query: {query}\n")
    result = qa.run(query)
    print("\nResult: ", result)

query = "What were the main topics in this "
test_rag(qa, query)# get stuck here

问题解决:

thanks it helped i added the following details: using the pipeline_kwargs in huggingface.py file i was able to find the variable i could use although using this method will render the quantization method a bit useless as you will consume more memory upon increasing the tokens

“谢谢,这很有帮助。我添加了以下细节:通过在huggingface.py文件中使用pipeline_kwargs,我能够找到我可以使用的变量。然而,使用这种方法会使量化方法变得有点无用,因为当你增加tokens时,会消耗更多的内存。

llm = HuggingFacePipeline.from_model_id(
    model_id=model_name,
    task="text-generation",
    model_kwargs={
        "trust_remote_code": True,
        "quantization_config": bnb_config,
        "use_auth_token": auth_token
    },
    pipeline_kwargs={"max_new_tokens": 8096}# this part is how i reconfigured the tokens

)

标签:do,max,tokens,length,kwargs,import,model
From: https://blog.csdn.net/suiusoar/article/details/140667943

相关文章

  • Software-DM8-docker镜像
    Software-DM8-docker镜像达梦数据库达梦数据库管理系统DM8Docker镜像安装Docker安装dm8_20240613_x86_rh6_64_rq_ent_8.1.3.140_pack5.tar注意如果使用docker容器里面的disql,进入容器后,先执行source/etc/profile防止中文乱码。新版本Docker镜像中数据库默认......
  • docker destop 突然不能用了
    dockerdestop突然不能用了。报错如下图所示,感觉很奇怪。 1.尝试重装dockerdesktop,无用;2.尝试重新开启hperv,无用; 3,尝试命令 wsl--shutdown,4,尝试命令:wsl.exe--install--no-distribution 5,尝试命令:bcdedit/sethypervisorlaunchtypeauto。 操作......
  • 25 Docker网络管理_自定义网络
     欢迎来到@一夜看尽长安花博客,您的点赞和收藏是我持续发文的动力对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:[email protected]。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。​   专栏:java全栈C&C++Python......
  • Markdown学习
    Markdown学习标题一级标题:#加空格(ctrl+1)注:不打空格可以在设置里将严格模式取消二级标题:##加空格(ctrl+2)三级标题:###加空格(ctrl+3)以此类推字体粗体:句子两边加两个星号,“**”(ctrl+b)Hello,World!斜体:句子两边加一个星号,“*”(ctrl+i)Hello,World!下划线:句子左边输入“”​......
  • 求解!do...while 语句嵌套switch语句为何会出现死循环?
    这是我写的一段实现通讯录的代码voidmenu(){ printf("**************************************\n"); printf("*******1.Add2.Del*****\n"); printf("*******3.Search4.Modify*****\n"); printf("*******5.Show......
  • Windows使用NVM管理node.js
    NVM(NodeVersionManager)是一个开源的命令行工具,用于管理多个版本的Node.js在同一台计算机上。NVM允许开发者轻松地安装、切换和管理不同版本的Node.js,这对于在多个项目上工作或测试Node.js的不同特性时非常有用。在macOS或Linux上,通常通过curl或wget下载安......
  • NAS机友必知: 一个命令轻松搞定DockerHub被墙问题!
    最近因“不可控”之理由, DockerHub算是被全面封杀了,以前还只是污染了Web网站,现在连直接使用dockerpull都不能正常拉镜像了。如下,拉镜像一直卡在pulling阶段,重试数次后就会直接失败:这对于玩NAS的朋友来说是不可接受的(对于开发者来说简直是灾难,端午节没法过了),没了 Docker,NAS的可......
  • Lyndon 分解 & runs
    万成章在2022年集训队论文《浅谈与Lyndon理论有关的字符串组合问题》中做过详细介绍,由于笔者太菜,这里只做简单介绍,并且不做证明。Lyndon分解Lyndon串:对于字符串\(s\),如果\(s\)的字典序严格小于\(s\)的所有后缀的字典序,我们称\(s\)是Lyndon串。Lyndon分解:串\(s\)的Lyndon分解记......
  • 使用iptables管控docker容器
    docker与iptables说明某些项目考虑到安全问题,需要启用iptables来进行加固。根据官方文档介绍(https://dockerdocs.cn/network/iptables/):在Linux上,Docker操纵iptables规则以提供网络隔离。尽管这是实现的详细信息,并且您不应修改Docker在iptables策略中插入的规则,但是如果您想要......
  • Windows Defender SmartScreen 已阻止启动一个未识别的应用
    对于软件开发者或者软件开发公司来说,发布应用程序后会面临一个难题,那就是用户在下载此应用程序时,SmartScreen会弹出“WindowsDefenderSmartScreen已阻止启动个未识别的应用,运行此应用可能会导致您的电脑面临风险” 的警告,这种警告不利于用户信任,还有可能会减少用户下载率......