💾 Добавим памяти LLM'ке! 🦙
Вы получаете таблицу с вопросами, ответить на некоторые из них возможно только если знаешь предыдущие. Вам нужно получить ответы на все вопросы с помощью LLM, добавив память для хранения контекста. Но не забудьте очищать память после завершения каждой серии вопросов, чтобы не запутать модель ещё больше контекстом не по теме.
Что делать? Ответьте на вопросы из датафрейма
Что на входе?
Датасет
с вопросами в столбце question
и номером диалога в столбце
dialogue_id
.
Загрузка файлов с помощью кода
import pandas as pd
df = pd.read_csv("https://stepik.org/media/attachments/lesson/1084404/dial_df.csv")
Что на выходе? csv
файл, содержащий три столбца
- dialogue_id
, question
, answer
.
В качестве ответа на каждый из вопросов нужно дать одно число.
Замечание: Ваше решение будет зачтено, если в нём будет минимум 15 правильных ответов.
Начать решать можно в этом ноутбуке!
Вдруг кто-то хочет opensource: QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/Meta-Llama-3-8B-Instruct.Q6_K.gguf 6.6 GB
даёт 17 из 18. На вопросе про восьмитысячники глючит, пишет что это понятие из математики. вопрос лучше переформулировать чтобы было понятно, что речь идет про горы.
@Igor_Khmelkov, А как ты запустил? локально скачал? есть ноутбук решения?
@Дмитрий_Блинов, запускал локально через чат в LM Studio 0.2.23. И к стати можно память не очищать, всё работает. Можно попробовать с кодом, там есть встроенный локальный сервер, имитирующий API OpenAI. Пример кода оттуда:
# Chat with an intelligent assistant in your terminal from openai import OpenAI # Point to the local server client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio") history = [ {"role": "system", "content": "You are an intelligent assistant. You always provide well-reasoned answers that are both correct and helpful."}, {"role": "user", "content": "Hello, introduce yourself to someone opening this program for the first time. Be concise."}, ] while True: completion = client.chat.completions.create( model="model-identifier", messages=history, temperature=0.7, stream=True, ) new_message = {"role": "assistant", "content": ""} for chunk in completion: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) new_message["content"] += chunk.choices[0].delta.content history.append(new_message) print() history.append({"role": "user", "content": input("> ")})
@Igor_Khmelkov, Спасибо большое, очень важная информация для меня