Сергей поясни пожалуйста как формируется связь между фразой на русском языке в промпте и вызовом опредеденного метода с декоратором @tool? Модель переводит фразу на английский и пытается найти тул с нужным именем?
Тут все довольно просто. При создании инструментов нужно четко и подробно описывать, что и как инструмент делает, когда его вызывать. Эту информацию надо поместить в docstring этого инструмента (докстринги - это строки, идущие после объявления функции, класса или модуля). Обычно докстринги используются для того, чтобы человеку було понятнее, что делает та или иная функция, а здесь это пояснение для ИИ. Сведения в виде названий инструментов, описаний, аргументы и тип возвращаемых значений становятся частью промпта агента. При этом языковой модели не особо важно, на каком языке составлено описание. Гигачат с русским и английским точно справится.
@tool def read_note(file_name: str) -> str: '''Возвращает содержимое заметки в ответ на заданное имя файла. \ Если имя указано неправильно, вернет сообщение об ошибке. \ Имя файла заметки имеет вид "Тема заметки N.txt". ''' Из этих строчек сформируется специальный кусочек промпта для агента. Тут есть все, что нужно: название (как обратиться), что инструмент делает, что ему надо передать, а также что ожидается получить в ответ.
Проверил. Действительно, вылезает ошибка. 24 мая разработчики выпустили версию гигачейна 0.2.0. Если при установке указать более старую версию, то все нормально работает: !pip install -q gigachain==0.1.17
Тут была какаято проблема с зависимостями. Я снес у себя в проекте директорию venv потом заново создал venv и проинсталлил последние версии gigachain и gigachain-community. Версия gigachain при этом 0.2.6. И код с bind_tools заработал
Штука крутая,но я тестировал гигачат для генерации текстов, но сплошная беда с цензурой. Цензурят вообще все самое обсуждаемое, самое интересное. Очень жаль, надеюсь скоро будет русские нейронки без цензуры, где хотя бы слова - "Половой контакт" можно было ввести В общем... разочарование
Да, есть такая проблема. Но разработчиков можно понять, лучше перестраховаться, чем допустить генерацию недопустимого контента. Если говорить про доступ к модели по API, то попробуйте так: GigaChat(credentials=auth, model='GigaChat-preview', verify_ssl_certs=False, profanity_check=False ) Параметр profanity_check отвечает за включение/отключение цензора. Должно стать получше, но некоторые темы все равно не пропускает.
@@trashchenkovполно же других нейронок. А от Сбера, то, что Грефу принадлежит - слуге Шваба и врагу народа, укравшему все народные деньги Сбербанка и желающего народ в неведении и рабстве держать, на деньги же народа - сомнительное удовольствие и польза в пользовании😅
Не понимаю программистов-агитаторов. Зачем мне обучать языковые модели , которые не принадлежат мне? Зачем воспитывать чужих детей (их мозги, их естественные нейросети, языковые модели), если можешь воспитывать своих? Зачем мне финансировать чужую собственность (Сбербанк, Google и др.)? Спрашиваю как бизнесмен, собственник (и родитель).
Вопрос в общем и целом справедливый, но нужно прояснить некоторые моменты. Тогда станет понятнее, что ответы на этот вопрос могут быть разные)). Обучить большую языковую модель с нуля на сегодняшний день могут только крупные компании. Это дорого, требует серьезного оборудования и штат квалифицированных специалистов. На эту тему отсылаю к видео, там в начале про это Andrej Karpathy очень хорошо рассказывает ua-cam.com/video/zjkBMFhNj_g/v-deo.html Можно брать готовые языковые модели, которые опенсорсные, запускать их на собственном железе, дообучать под свои задачи, если нужно, и использовать. Так делают многие бизнесы, которые не хотят передавать свои данные сторонним компаниям. Но это тоже требует определенных ресурсов и квалификации. Использование доступа к готовым языковым моделям по API, как например к GigaChat, это еще одна опция. Она позволяет не брать на себя издержки по обслуживанию софта и оборудования. То есть это как бы языковая модель как услуга. Если речь не идет о работе с какими-то чувствительными данными, то это приемлемый вариант. Более того, значительная часть примеров кода может с минимальными изменениями быть использована как для доступа к моделям по API, так и к запускаемым локально моделям. Если возвращаться к Вашим аналогиям, то можно ездить на личном автомобиле, можно пользоваться общественным транспортом. Аналогия с детьми более сложная, но есть люди, которые работают учителями или берут приемных детей. Видимо для них есть какая-то мотивация участвовать в воспитании чужих детей)))
Добрый день, на ваших запросах языковая модель не обучается. А в бизнесе эти технологии имеют очень крутое применение, я допустим сейчас делаю бота, который будет общаться с клиентом в чате авито, отвечая на запросы по наличию, аналогам, доставке и оформлению заказа. В данном видео очень примитивная демонстрация возможностей.
Потому что мы социальные животные и в принципе ни одну серьезную задачу в одиночку выполнить не можем? И средний уровень общества влияет на нашу ежедневную жизнь и те блага и сервисы которые мы можем получить? Мы по нашей системе взаимодействия и создания нового скорее муравьи а не коты например .. один человек может очень мало получить и сделать за свою жизнь, чем если работает в команде в социуме в обществе.
Сергей поясни пожалуйста как формируется связь между фразой на русском языке в промпте и вызовом опредеденного метода с декоратором @tool? Модель переводит фразу на английский и пытается найти тул с нужным именем?
Тут все довольно просто. При создании инструментов нужно четко и подробно описывать, что и как инструмент делает, когда его вызывать. Эту информацию надо поместить в docstring этого инструмента (докстринги - это строки, идущие после объявления функции, класса или модуля). Обычно докстринги используются для того, чтобы человеку було понятнее, что делает та или иная функция, а здесь это пояснение для ИИ.
Сведения в виде названий инструментов, описаний, аргументы и тип возвращаемых значений становятся частью промпта агента. При этом языковой модели не особо важно, на каком языке составлено описание. Гигачат с русским и английским точно справится.
@tool
def read_note(file_name: str) -> str:
'''Возвращает содержимое заметки в ответ на заданное имя файла. \
Если имя указано неправильно, вернет сообщение об ошибке. \
Имя файла заметки имеет вид "Тема заметки N.txt".
'''
Из этих строчек сформируется специальный кусочек промпта для агента. Тут есть все, что нужно: название (как обратиться), что инструмент делает, что ему надо передать, а также что ожидается получить в ответ.
@@trashchenkov спасибо
Я догадывался что этот docstring обязателен но нигде явно про это не упоминалось. Теперь буду знать
Споткнулся на "llm_with_tools = giga.bind_tools(tools)", которая вызывает ошибку: NotImplementedError. Может кто знает как исправить?
Проверил. Действительно, вылезает ошибка. 24 мая разработчики выпустили версию гигачейна 0.2.0. Если при установке указать более старую версию, то все нормально работает:
!pip install -q gigachain==0.1.17
Сергей спасибо. После этого уточнения заработало
Тут была какаято проблема с зависимостями. Я снес у себя в проекте директорию venv потом заново создал venv и проинсталлил последние версии gigachain и gigachain-community. Версия gigachain при этом 0.2.6. И код с bind_tools заработал
Возможно где то сидели остатки langchain
Штука крутая,но я тестировал гигачат для генерации текстов, но сплошная беда с цензурой. Цензурят вообще все самое обсуждаемое, самое интересное. Очень жаль, надеюсь скоро будет русские нейронки без цензуры, где хотя бы слова - "Половой контакт" можно было ввести
В общем... разочарование
Да, есть такая проблема. Но разработчиков можно понять, лучше перестраховаться, чем допустить генерацию недопустимого контента. Если говорить про доступ к модели по API, то попробуйте так:
GigaChat(credentials=auth,
model='GigaChat-preview',
verify_ssl_certs=False,
profanity_check=False
)
Параметр profanity_check отвечает за включение/отключение цензора. Должно стать получше, но некоторые темы все равно не пропускает.
@@trashchenkov Благодарю
@@trashchenkovполно же других нейронок. А от Сбера, то, что Грефу принадлежит - слуге Шваба и врагу народа, укравшему все народные деньги Сбербанка и желающего народ в неведении и рабстве держать, на деньги же народа - сомнительное удовольствие и польза в пользовании😅
Не понимаю программистов-агитаторов. Зачем мне обучать языковые модели , которые не принадлежат мне? Зачем воспитывать чужих детей (их мозги, их естественные нейросети, языковые модели), если можешь воспитывать своих? Зачем мне финансировать чужую собственность (Сбербанк, Google и др.)? Спрашиваю как бизнесмен, собственник (и родитель).
Вопрос в общем и целом справедливый, но нужно прояснить некоторые моменты. Тогда станет понятнее, что ответы на этот вопрос могут быть разные)).
Обучить большую языковую модель с нуля на сегодняшний день могут только крупные компании. Это дорого, требует серьезного оборудования и штат квалифицированных специалистов. На эту тему отсылаю к видео, там в начале про это Andrej Karpathy
очень хорошо рассказывает ua-cam.com/video/zjkBMFhNj_g/v-deo.html
Можно брать готовые языковые модели, которые опенсорсные, запускать их на собственном железе, дообучать под свои задачи, если нужно, и использовать. Так делают многие бизнесы, которые не хотят передавать свои данные сторонним компаниям. Но это тоже требует определенных ресурсов и квалификации.
Использование доступа к готовым языковым моделям по API, как например к GigaChat, это еще одна опция. Она позволяет не брать на себя издержки по обслуживанию софта и оборудования. То есть это как бы языковая модель как услуга. Если речь не идет о работе с какими-то чувствительными данными, то это приемлемый вариант. Более того, значительная часть примеров кода может с минимальными изменениями быть использована как для доступа к моделям по API, так и к запускаемым локально моделям.
Если возвращаться к Вашим аналогиям, то можно ездить на личном автомобиле, можно пользоваться общественным транспортом. Аналогия с детьми более сложная, но есть люди, которые работают учителями или берут приемных детей. Видимо для них есть какая-то мотивация участвовать в воспитании чужих детей)))
Добрый день, на ваших запросах языковая модель не обучается. А в бизнесе эти технологии имеют очень крутое применение, я допустим сейчас делаю бота, который будет общаться с клиентом в чате авито, отвечая на запросы по наличию, аналогам, доставке и оформлению заказа. В данном видео очень примитивная демонстрация возможностей.
Потому что мы социальные животные и в принципе ни одну серьезную задачу в одиночку выполнить не можем? И средний уровень общества влияет на нашу ежедневную жизнь и те блага и сервисы которые мы можем получить? Мы по нашей системе взаимодействия и создания нового скорее муравьи а не коты например .. один человек может очень мало получить и сделать за свою жизнь, чем если работает в команде в социуме в обществе.