Почему HuggingFaceEndpoint не нужна ни конфигурация квантования, ни токенизатор, ни AutoModelForCausalLM?Python

Программы на Python
Ответить
Anonymous
 Почему HuggingFaceEndpoint не нужна ни конфигурация квантования, ни токенизатор, ни AutoModelForCausalLM?

Сообщение Anonymous »

Моей первоначальной целью было создать класс базовой цепочки, чтобы я мог в дальнейшем создавать экземпляр цепочки с помощью LLM по моему выбору (например, gpt-4o-mini или Meta-llama/Meta-Llama-3-8B< /code> и т. д.
Я заметил, что HuggingFacePipeline работает только локально.
Я искал альтернативы и нашел HuggingFaceEndpoint (старый класс HuggingFaceHub).
Почему HuggingFaceEndpoint не нужна конфигурация квантования или токенизатор?
Все примеры, которые я видел на носителе (например, Medium0, Medium1, Medium2, Medium3) и документации (например, Langchain HuggingFace Endpoint, Documentation HuggingFaceEndpoint, HuggingFace about Langchain) не задает никаких аргументов, которые можно было бы считать «важными» для HuggingFacePipeline (например, токенизатор и некоторые настройки битов и байтов).
Фрагмент кода, чтобы понять, о чем я думал что делать:
(ПРИМЕЧАНИЕ. Приведенный ниже код был создан как псевдокод, не пытайтесь запустить его, поскольку он, вероятно, не сработает)

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

class BaseAgentChain:

def __init__(self, model_name="gpt-4o-mini", temperature=0, system_prompt_shell=None, user_prompt_shell=None, tools=None, **agent_kwargs):
self.model_name = model_name
self.temperature = temperature
self.tools = tools if tools is not None else []

self.system_prompt = system_prompt_shell
self.user_prompt = user_prompt_shell
self.memory = ConversationBufferMemory()

self.agent_kwargs = agent_kwargs if agent_kwargs is not None else {}
self.task = agent_kwargs.get('task', None)
self.quant = agent_kwargs.get('quant_config', None)

# Initialize the LLM model
try:
print(f"Initializing BaseAgent with model: {model_name} and temperature: {temperature}")
self.llm = self._set_llm()
print("Model initialized successfully.")
except Exception as e:
print(f"Error initializing model: {e}")
raise RuntimeError(f"Failed to initialize the model: {e}")

def _set_llm(self):
try:
available_llm_apis = os.getenv("AVAILABLE_LLM_APIS", "openai").split(',')
print(f"Current available LLM APIs as LLM sources to BaseAgentChain: {available_llm_apis}")

source_by = os.getenv("LLM_SOURCE", "openai")
print(f"Initializing model `{self.model_name}` with `{source_by}`")

if source_by == 'openai':
llm = ChatOpenAI(
model=self.model_name,
temperature=self.temperature,
openai_api_key=os.getenv('OPENAI_API_KEY')
)
return llm

elif source_by == 'hugging_face':
from transformers import (
AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline
)

HF_TOKEN = os.getenv('HF_TOKEN')

tokenizer = AutoTokenizer.from_pretrained(
self.model_name,
use_auth_token=HF_TOKEN
)

quant_config = BitsAndBytesConfig(**self.quant) if self.quant else None

model = AutoModelForCausalLM.from_pretrained(
self.model_name,
device_map="auto",
quantization_config=quant_config,
use_auth_token=HF_TOKEN
)

pipe = pipeline(
self.task,
model=model,
tokenizer=tokenizer,
max_new_tokens=128
)

llm = HuggingFacePipeline(pipeline=pipe)
return llm

else:
raise ValueError(f"Unsupported LLM source: {source_by}")

except Exception as e:
raise RuntimeError(f"LLM was not defined. Error: {e}")
Я ожидал найти что-нибудь о том, как настроить квантование с помощью HuggingFaceEndpoint или, может быть, почему ему не нужен токенизатор (или, по крайней мере, пример руководства о том, как запустить его через удаленный сервис, чтобы Я мог понять, что нужно, чтобы использовать эти фильмы с открытым исходным кодом в производстве).

Подробнее здесь: https://stackoverflow.com/questions/793 ... er-nor-aut
Ответить

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

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

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

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

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