Проблема с моделью Llama 2-7B, производящая ограниченное количество токенов 511Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с моделью Llama 2-7B, производящая ограниченное количество токенов 511

Сообщение Anonymous »

Я столкнулся с проблемой с моделью Llama 2-7B, где выход постоянно ограничен только 511 токенами, хотя теоретически модель должна быть способна выдавать максимум 4096 токенов.Я попробовал установить для параметра max_tokens более высокие значения, например 3000, и рассчитал доступные токены, вычитая токены подсказки из общего количества токенов модели. лимит токенов (4096 токенов). Однако, несмотря на эти корректировки, я продолжаю получать выходные данные, ограниченные 511 токенами.
Вот фрагмент кода, который я использую для взаимодействия с моделью:

Код: Выделить всё

import psutil
import os
import warnings
from llama_cpp import Llama

# Suppress warnings
warnings.filterwarnings("ignore")

# Path to the model
model_path = "C:/Llama_project/models/llama-2-7b-chat.Q2_K.gguf"

# Load the model
llm = Llama(model_path=model_path)

# System message to set the behavior of the assistant
system_message = "You are a helpful assistant."

# Function to ask questions
def ask_question(question):
# Use user input for the question prompt
prompt = f"Answer the following question: {question}"

# Calculate the remaining tokens for output based on the model's 4096 token limit
prompt_tokens = len(prompt.split())  # Rough token count estimate
max_output_tokens = 4096 - prompt_tokens  # Tokens left for output

# Monitor memory usage before calling the model
process = psutil.Process(os.getpid())
mem_before = process.memory_info().rss / 1024 ** 2  # Memory in MB

# Get the output from the model with the calculated max tokens for output
output = llm(prompt=prompt, max_tokens=max_output_tokens, temperature=0.7, top_p=1.0)

# Monitor memory usage after calling the model
mem_after = process.memory_info().rss / 1024 ** 2  # Memory in MB

# Clean the output and return only the answer text
return output["choices"][0]["text"].strip()

# Main loop for user interaction
while True:
user_input = input("Ask a question (or type 'exit' to quit): ")

if user_input.lower() == 'exit':
print("Exiting the program.")
break

# Get the model's response
answer = ask_question(user_input)

# Print only the answer
print(f"Answer: {answer}")
Сведения о проблеме:
  • Модель: Llama 2-7B (версия Q2_K)
  • Ожидаемый результат: я ожидал ответа, близкого к максимальному лимиту токенов (3000 или более токенов).
  • Фактический результат: вывод ограничен 511 токенами, независимо от запроса длина.
Пробовал:
  • Установить max_tokens на 3000 или выше.
    Расчет доступных токенов путем вычитания длины запроса из общего лимита токенов модели.
Я ожидаю, что модель генерировать ответы, близкие к лимиту токена (в идеале ближе к 3000 токенов или более, в зависимости от ввода), но он продолжает выдавать ограниченное количество токенов 511.

Подробнее здесь: https://stackoverflow.com/questions/792 ... 511-tokens
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»