NER (распознавание именованных сущностей) с использованием LLM, таких как tranF5 или LLAMA2

Вопрос или проблема

Я пытаюсь выполнить NER (распознавание именованных объектов) с помощью крупных языковых моделей, таких как Trans-F5 или LLAMA2. До сих пор я нашел способы использования инженерии подсказок. Это означает, что нам нужно указать, что искать в тексте.
Можем ли мы дообучить и использовать эти LLM, применяя старые техники NER, такие как предоставление метки для сущности, а затем проводить фазу вывода для поиска значения сущности.
Любая ссылка на код будет очень полезной.

Ваш набор данных должен выглядеть примерно так для LLAMA2

{
  "instruction": "Что такое мир Warcraft",
  "context": "",
  "response": "Мир Warcraft — это массовая многопользовательская ролевая игра. Она была выпущена в 2004 году компанией Bizarre Entertainment"
}

https://www.philschmid.de/sagemaker-llama2-qlora

Вы можете использовать ссылку ниже для дообучения LAMA2 на AWS Sagemaker

Ответ или решение

Эффективное использование LLM для НРЕ: Настройка Trans-F5 и LLAMA2

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

1. Понимание NER и его интеграция с LLM

Распознавание именованных сущностей активно применяется в разных областях, таких как извлечение информации, автоматизированные переговоры и даже в поисковых системах. Традиционно NER использует аннотированные данные, где каждая сущность помечена соответствующим классом (например, PERSON, ORGANIZATION, LOCATION и т.д.). В отличие от этого, LLM могут обрабатывать текст и предоставлять контекстуальное понимание, что открывает новые горизонты для NER.

2. Настройка LLM с использованием старых техник NER

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

Пример формата данных:

Ваши данные должны иметь следующий вид, чтобы корректно использовать LLAMA2:

{
  "instruction": "What is world of warcraft",
  "context": "",
  "response": "World of warcraft is a massive online multiplayer role playing game. It was released in 2004 by Bizarre Entertainment"
}

3. Применение промптов и обучение

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

4. Код для fine-tuning на Sagemaker

Чтобы осуществить дообучение модели LLAMA2, вы можете воспользоваться AWS Sagemaker. Ниже приведен краткий пример кода на Python, который иллюстрирует процесс:

import boto3
import json

# Создание клиента рендеринга
sagemaker = boto3.client('sagemaker')

# Подготовка данных для обучения
training_data = [
    {
        "instruction": "Что такое мир в Warcraft?",
        "context": "",
        "response": "Мир Warcraft - это массовая многопользовательская ролевая игра, выпущенная в 2004 году, разработанная Bizarre Entertainment."
    }
]

# Сохраните данные в S3
s3_bucket = 'your-s3-bucket-name'
s3_key = 'training_data.json'

s3 = boto3.resource('s3')
s3.Object(s3_bucket, s3_key).put(Body=json.dumps(training_data))

# Определение параметров обучения
training_job_params = {
    'AlgorithmSpecification': {
        'TrainingImage': 'your-training-image',
        'TrainingInputMode': 'File'
    },
    'HyperParameters': {
        'epochs': '3',
        'train_batch_size': '8'
    },
    'RoleArn': 'your-sagemaker-execution-role',
    'InputDataConfig': [
        {
            'ChannelName': 'train',
            'DataSource': {
                'S3DataSource': {
                    'S3DataType': 'S3Prefix',
                    'S3Uri': f's3://{s3_bucket}/{s3_key}',
                    'S3DataType': 'S3Prefix'
                }
            },
            'ContentType': 'application/json',
            'InputMode': 'File',
        }
    ],
    'OutputDataConfig': {
        'S3OutputPath': f's3://{s3_bucket}/output/'
    },
    'ResourceConfig': {
        'InstanceType': 'ml.p3.2xlarge',
        'InstanceCount': 1,
        'VolumeSizeInGB': 30
    },
    'StoppingCondition': {
        'MaxRuntimeInSeconds': 3600
    },
    'TrainingJobName': 'LLAMA2-NER-training'
}

# Запуск обучения
sagemaker.create_training_job(**training_job_params)

Заключение

Использование LLAMA2 и Trans-F5 для НРЕ открывает новые возможности для повышения точности и эффективности обработки данных. Дообучение моделей с использованием наиболее актуальных данных, аннотированных с указанием сущностей, позволит вам не только достичь хороших результатов, но и адаптировать модель под конкретные задачи вашего бизнеса. Важно отметить, что успех будет зависеть от качества аннотированных данных и правильной настройки гиперпараметров.

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

Капча загружается...