Закажи экспресс-аудит своего дела онлайн всего за 199 ₽
и получи рекомендации по улучшению - Жми сюда !

Ограничения для программ магистратуры в области права: измерение «галлюцинаций» и многословия в ИИ.

В данной статье обсуждается, как внедрить инфраструктуру для измерения и контроля чрезмерно подробных ответов LLM.

Ограничения для программ магистратуры в области права: измерение «галлюцинаций» и многословия в ИИ.

# Введение

Крупные языковые модели (КГМ) склонны использовать в своих ответах «цветистый», а иногда и чрезмерно многословный язык. Задайте простой вопрос, и, скорее всего, вас завалят абзацами излишне подробной, восторженной и сложной прозы. Такое поведение обусловлено их обучением, поскольку они оптимизированы для того, чтобы быть максимально полезными и вести диалог.

К сожалению, многословие — это серьезный аспект, который следует скрывать, и можно утверждать, что оно часто коррелирует с повышенной вероятностью серьезной проблемы: галлюцинаций . Чем больше слов в ответе, тем выше вероятность отклониться от обоснованных знаний и скатиться к «искусству вымысла».

В целом, для предотвращения этой двусторонней проблемы необходимы надежные механизмы защиты, начиная с проверок детализации. В этой статье показано, как использовать библиотеку Textstat на Python для измерения читаемости и выявления чрезмерно сложных ответов до того, как они достигнут конечного пользователя, заставляя модель уточнять свой ответ.

# Настройка бюджета сложности с помощью Textstat

Библиотека Textstat на Python может использоваться для вычисления таких показателей, как автоматический индекс читабельности (ARI); она оценивает уровень сложности, необходимый для понимания текста, например, ответа модели. Если этот показатель сложности превышает допустимый порог — например, 10,0, что соответствует уровню чтения 10-го класса, — автоматически запускается цикл повторного запроса, требующий более краткого и простого ответа. Эта стратегия не только избавляет от витиеватых выражений, но и может помочь снизить риск возникновения иллюзий, поскольку в результате модель более строго придерживается основных фактов.

# Реализация конвейера LangChain

Давайте посмотрим, как реализовать описанную выше стратегию и интегрировать её в конвейер LangChain , который можно легко запустить в блокноте Google Colab. Вам понадобится API-токен Hugging Face , который можно получить бесплатно по адресу https://huggingface.co/settings/tokens. Создайте новый «секрет» с именем HF_TOKEN в меню слева в Colab, щелкнув значок «Секреты» (он выглядит как ключ). Вставьте сгенерированный API-токен в поле «Значение», и всё готово!

Для начала установите необходимые библиотеки:

!pip install textstat langchain_huggingface langchain_community

Приведенный ниже код является специфичным для Google Colab, и вам может потребоваться внести в него соответствующие изменения, если вы работаете в другой среде. Он ориентирован на восстановление сохраненного API-токена:

from google.colab import userdata # Получаем токен API Hugging Face, сохраненный в секретах вашей сессии Colab HF_TOKEN = userdata.get('HF_TOKEN') # Проверяем восстановление токена, если HF_TOKEN не найден: print(«ПРЕДУПРЕЖДЕНИЕ: Токен 'HF_TOKEN' не найден. Это может привести к ошибкам.») else: print(«Токен Hugging Face успешно загружен.»)

В приведенном ниже фрагменте кода мы выполняем несколько действий. Во-первых, он настраивает компоненты для локальной генерации текста с помощью предварительно обученной модели Hugging Face — а именно distilgpt2. После этого модель интегрируется в конвейер LangChain.

import textstat from langchain_core.prompts import PromptTemplate # Импорт необходимых классов для локальных конвейеров Hugging Face from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline from langchain_community.llms import HuggingFacePipeline # Инициализация бесплатного, локально совместимого LLM для генерации текста model_id = «distilgpt2» tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id) # Создание конвейера генерации текста pipe = pipeline( «text-generation», model=model, tokenizer=tokenizer, max_new_tokens=100, device=0 # Использовать GPU, если доступно, иначе по умолчанию будет использоваться CPU ) # Оборачивание конвейера в HuggingFacePipeline llm = HuggingFacePipeline(pipeline=pipe)

Далее реализуется наш основной механизм измерения и управления детализацией. Следующая функция генерирует краткое изложение переданного ей текста (предполагается, что это ответ LLM) и пытается гарантировать, что краткое изложение не превысит пороговый уровень сложности. Обратите внимание, что при использовании соответствующего шаблона запроса для получения текстовых резюме можно использовать модели генерации, такие как distilgpt2, хотя качество таких резюме может не соответствовать качеству более сложных моделей, ориентированных на суммирование. Мы выбрали эту модель из-за ее надежности при локальном выполнении в ограниченной среде.

def safe_summarize(text_input, complexity_budget=10.0): print(«n— Начало процесса создания сводки —«) print(f»Длина входного текста: {len(text_input)} символов») print(f»Целевой бюджет сложности (оценка ARI): {complexity_budget}») # Шаг 1: Создание первоначальной сводки print(«Создание первоначальной исчерпывающей сводки…») base_prompt = PromptTemplate.from_template( «Предоставьте исчерпывающую сводку по следующему: {текст}» ) chain = base_prompt | llm summary = chain.invoke({«text»: text_input}) print(«Сгенерировано первоначальное резюме:») print(«————————-«) print(summary) print(«————————-«) # Шаг 2: Измерение читаемости ari_score = textstat.automated_readability_index(summary) print(f»Первоначальная оценка ARI: {ari_score:.2f}») # Шаг 3: Применение ограничения сложности, если ari_score > complexity_budget: print(«Превышен бюджет! Первоначальное резюме слишком сложное.»») print(«Запускается механизм упрощения…») simplification_prompt = PromptTemplate.from_template( «Следующий текст слишком многословен. Перепишите его кратко » «используя простой словарь, убрав витиеватые выражения:nn{text}» ) simplify_chain = simplification_prompt | llm simplified_summary = simplify_chain.invoke({«text»: summary}) new_ari = textstat.automated_readability_index(simplified_summary) print(«Сгенерировано упрощенное резюме:») print(«————————-«) print(simplified_summary) print(«————————-«) print(f»Пересмотренный показатель ARI: {new_ari:.2f}») summary = simplified_summary else: print(«Первоначальное резюме находится в пределах допустимой сложности. Упрощение не требуется.») print(«— Процесс создания резюме завершен —«) return summary

Обратите внимание также, что в приведенном выше коде для оценки сложности текста рассчитываются показатели ARI.

В заключительной части примера кода проверяется ранее определенная функция, ей передается пример текста и устанавливается уровень сложности 10,0, после чего выводятся окончательные результаты.

# 1. Предоставление очень многословного, сложного примера текста sample_text = «»» Неразрывно связанные перестановки когнитивных вычислительных массивов в области больших языковых моделей часто приводят к каскаду излишне запутанных лексических структур. Эта склонность к многословию, хотя и кажется признаком глубокой эрудиции, часто затемняет основную семантическую информацию, делая сгенерированный дискурс значительно менее доступным для обычного человека. «»» # 2. Вызов функции print(«Запуск конвейера суммирования…n») final_output = safe_summarize(sample_text, complexity_budget=10.0) # 3. Печать окончательного результата print(«n— Окончательное сводное резюме —«) print(final_output)

Полученные в результате сообщения могут быть довольно длинными, но вы заметите незначительное снижение показателя ARI после вызова предварительно обученной модели для суммаризации. Однако не стоит ожидать чудесных результатов: выбранная модель, хотя и легковесная, не очень хорошо справляется с суммаризацией текста, поэтому снижение показателя ARI будет довольно скромным. Вы можете попробовать использовать другие модели, например google/flan-t5-small, чтобы посмотреть, как они работают при суммаризации текста, но имейте в виду — эти модели будут более ресурсоемкими и сложными в запуске.

# Завершение

В этой статье показано, как реализовать инфраструктуру для измерения и контроля чрезмерно многословных ответов LLM путем вызова вспомогательной модели для их обобщения перед утверждением уровня сложности. Во многих сценариях галлюцинации являются побочным продуктом высокой многословности. Хотя представленная здесь реализация сосредоточена на оценке многословности, существуют также специальные проверки, которые можно использовать для измерения галлюцинаций, такие как проверки семантической согласованности, кросс-кодировщики вывода естественного языка (NLI) и решения LLM в качестве судьи.

Иван Паломарес Карраскоса — лидер, писатель, спикер и консультант в области искусственного интеллекта, машинного обучения, глубокого обучения и магистратуры. Он обучает и направляет других в применении ИИ в реальном мире.

Источник: www.kdnuggets.com

✅ Найденные теги: Магистратуры, новости, Области, Ограничения, Права, Программ

Добавить комментарий

Нет других записей в этой рубрике.

Новости других рубрик

Архив рубрики ~Лента новостей~: Агенты искусственного интеллекта незаметно создают хаос и инженерные сбои, которые предприятия пока не отслеживают. Архив рубрики ~Лента новостей~: 3 известные интересные задачи на логику Архив рубрики ~Лента новостей~: Студент из колледжа останавливает высокоскоростные поезда с помощью ноутбука и радио Архив рубрики ~Лента новостей~: Тонкая настройка Claude Code и ChatGPT Codex для маркетолога: убрать подтверждения и не сжечь рекламный бюджет Архив рубрики ~Лента новостей~: Раскройте свой творческий потенциал с помощью новых моделей и инструментов генеративного медиаконтента. Архив рубрики ~Лента новостей~: Разбудите свой творческий потенциал с помощью новых моделей и инструментов генеративного медиа. Архив рубрики ~Лента новостей~: Конец бесплатного кремния: как Google AI Studio превратилась из рая для инженеров в симулятор смены аккаунтов Архив рубрики ~Лента новостей~: Микробиота бонобо: социальные связи важнее диеты