Обертка LLM, развернутая в Azure Databricks

Я развернул модель LLM на блоках данных Azure. Я могу получить к нему доступ через API блоков данных:

Https://adb-17272728282828282.1.azuredatabricks.net/serving-endpoints/my-code-llama/invocations

Я знаю, что langchain напрямую поддерживает Databricks, но можно ли сказать, что оберните кластер databricks в оболочку mlflow/openai или что-то в этом роде, чтобы я мог использовать его в langchain следующим образом:

Llm = ChatOpenAI(
   openai_api_base = "http://my-url/API"
   openai_api_key = "7282"
   model_name= "my-code-llama"
   max_tokens =1000,
   streaming=True,
   callbacks= [StreamingStdOutCallbackHandler()]
)

Пытаюсь сделать это, поскольку существует множество ограничений, если я просто использую оболочку langchain Databricks напрямую. Я совсем новичок, поэтому поддержка была бы очень кстати!

с какими ограничениями вы сталкиваетесь в оболочке langchain Databricks. Добавьте более подробную информацию о вашей ошибке и ограничениях.

JayashankarGS 19.03.2024 05:51

Вы можете использовать блоки данных, обслуживающие конечную точку, непосредственно в ChatOpenAI. Вы это пробовали?

JayashankarGS 19.03.2024 07:55

Потоковая передача @JayashankarGS, например, не поддерживается, когда я использую оболочку langchain Databricks. Как использовать конечную точку Databricks с ChatOpenAI? Это выдало мне ошибки, в которых говорилось, что конечная точка не найдена. У вас есть пример кода?

Photon 19.03.2024 09:45

Я предоставил решение. пожалуйста, проверьте это

JayashankarGS 19.03.2024 09:54

Вы можете использовать потоковую передачу в оболочке langchain databricks. Попробуйте это chunks = [] llm = Databricks(endpoint_name = "databricks-mpt-7b-instruct") async for chunk in llm.astream("hello. tell me something about yourself"): chunks.append(chunk) print(chunk, end = "|", flush=True)

JayashankarGS 19.03.2024 11:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
397
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ниже приведены требования для упаковки конечной точки обслуживания модели в Databricks:

  • Зарегистрированный LLM, развернутый в конечной точке обслуживания модели Databricks.
  • Разрешение CAN QUERY для конечной точки.

Установите последнюю версию langchain в библиотеке кластера и перезапустите кластер.

Используйте код ниже.

from langchain.llms import Databricks

llm = Databricks(endpoint_name = "databricks-mpt-7b-instruct")
llm("How are you?")

Выход:

Если вы хотите использовать эту конечную точку непосредственно в langchain, попробуйте код ниже.

Установите langchain-openai, как показано выше.

Примечание. Обязательно используйте модель правильного типа задачи. Ниже я использовал модель (databricks-llama-2-70b-chat) для задачи chat.

from langchain_openai import ChatOpenAI, OpenAI
from langchain.callbacks import StreamingStdOutCallbackHandler

chat_llm = ChatOpenAI(
   openai_api_base = "https://<xxxxxx>.azuredatabricks.net/serving-endpoints",
   openai_api_key = "dapi-xxxxx",
   model_name= "databricks-llama-2-70b-chat",
   max_tokens =1000,
   streaming=True,
   callbacks= [StreamingStdOutCallbackHandler()]
)

chat_llm.invoke("What is mlflow?")

Выход:

Если вы хотите обслуживать это в пользовательской конечной точке, вам нужно использовать langserve при развертывании в облаке.

Дополнительную информацию можно найти в этой документации.

У меня есть базовая модель, работающая на вкладке «Обслуживание», и у меня есть URL-адрес. Вы упомянули о загрузке langchain на вкладке «Вычисления». Как это связано с моделью? Мне не нужно было прикасаться к вкладке вычислений, когда я обслуживал базовую модель.

Photon 21.03.2024 05:10

Я попросил установить langchain на вкладке «Библиотеки» в разделе «Конфигурация вычислений», которая необходима для кода.

JayashankarGS 21.03.2024 05:58

Пакеты по умолчанию в среде выполнения блоков данных могут быть не последней версией, поэтому я попросил их установить.

JayashankarGS 21.03.2024 05:58

Вы также можете использовать этот код локально с последними пакетами langchain, но вам необходимо настроить конечную точку и ключ env vars.

JayashankarGS 21.03.2024 06:00

Другие вопросы по теме