Итак, я новичок в использовании любых LLM. Ниже приведен код, который я использовал в своем ноутбуке Jupyter для запуска запроса на преобразование двоичного числа в десятичное. Однако по поводу «Ламы 3» я получал совершенно неправильные ответы.
!pip install -r requirements.txt
import json
import torch
from transformers import (AutoTokenizer,
AutoModelForCausalLM,
BitsAndBytesConfig,
pipeline)
config_data = json.load(open("config.json"))
HF_TOKEN = config_data["HF_TOKEN"]
model_name = "meta-llama/Meta-Llama-3-8B"
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type = "nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
tokenizer = AutoTokenizer.from_pretrained(model_name, use_auth_token=HF_TOKEN)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
use_auth_token=HF_TOKEN
)
text_generator = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
)
def convert_to_decimal(html_input):
prompt = (f"I'm giving you a input as a binary number"
f"I need you to convert the binary number to its decimal equivalent. "
f"Do not give any explanation or add any further text. "
f"Only provide the transformed output once. "
f"Don't add any other text except the output. "
f"For input '101', the output is '5'.\n\n"
f"{html_input}")
response = text_generator(prompt, max_new_tokens=20, temperature=0.2, return_full_text=False)
generated_text = response[0]['generated_text'].strip()
return generated_text
html_input = "1011"
output = convert_to_decimal(html_input)
print(output)
Это мой код, который я пытался использовать, я продолжал получать результат как 1101 1110 1111..... пока не будет достигнуто максимальное количество токенов. Любая помощь приветствуется относительно того, где я ошибаюсь.
Ладно, ты новичок.
Так что LLM являются статическим продолжением данного текста, имейте это в виду.
Изначально у нас были LSTM, которым удавалось предсказать следующее слово в строке, а при зацикливании для создания предложений они быстро создавали бессмысленный текст. Их консистенция в лучшем случае составляла 1 алину. Позже были изобретены большие языковые модели, обученные на гораздо более крупных текстах и типичных текстовых комбинациях вопросов и ответов.
LLM удается увидеть более крупные закономерности в данном тексте.
Но имейте в виду, что по сути это все равно продолжение шаблона.
Вы спрашиваете о математике, а студенты магистратуры не преуспевают в математике.
Они могут конвертировать голландский язык в английский, итальянский и т. д., но математика им недоступна.
Математика следует правилам и идеям, которым нелегко обучиться.
Чаще всего LLM даже не может определить длину своего ответа.
Так что они своего рода идиоты-ученые, они в чем-то преуспевают, но совершенно плохи в других задачах, например, в абстрактных расчетах.
если вам просто нужен двоичный ответ на Python, вы будете более эффективны, если сделаете это непосредственно в Python:
def DecimalToBinary(num):
if num >= 1:
DecimalToBinary(num // 2)
print(num % 2, end = '')
Напомним, что все нейронные сети являются оценщиками, они не точны. Они действуют больше похоже на нечеткую логику (это следующий шаг).
Возможно, если вы хотите узнать больше о нейронных сетях, начните с основ и попробуйте решить проблему Kaggle Titanic: https://www.kaggle.com/competitions/titanic
А может лучше для начала https://www.kaggle.com/competitions/digit-recouncer
Есть также конкурсы по выявлению рака и т. д., да ладно, я думаю, большинство людей начинают с kaggle.
Вероятно, это работает, структура слов примерно такая же, как и временные формы. у него есть базовое понимание времени, у него есть данные обучения из такого количества исходных текстов, что он понимает, как язык ведет себя в прошлом и настоящем, особенно английский. Некоторые другие языки, такие как голландский, не всегда корректны, но голландский (я сам голландец) имеет немного расплывчатый язык, и мы привыкаем ко всем исключениям, которые есть в нашем языке, и к нестрогим правилам. Он также понимает тон вопроса.
На самом деле я пытался реализовать подсказку для преобразования времени предложения с помощью Llama 3. Есть ли у вас какие-либо подсказки, как действовать?
напишите это сообщение в прошедшем времени: я собираюсь на работу
попробуйте на groq.com там тоже используется лама
Ну, я хочу, чтобы это было в коде, так как мне, вероятно, позже придется вводить большие файлы. Что касается кода, я получаю всевозможные странные ответы, но на groq он каким-то образом работает.
возможно, начнем с последней версии lmstudio, она содержит несколько простых примеров.
Давайте продолжим обсуждение в чате.
А как насчет немного другой задачи, например, преобразования времени предложения? Как это будет работать?