Этот репозиторий содержит демонстрации IBM watsonx, платформы искусственного интеллекта и данных IBM, созданной для бизнеса.
Пример приложения AI в этом репозитории использует следующие основные компоненты:
В качестве примера использован сценарий обслуживания клиентов телекоммуникационной компании. Агенты-люди разговаривают с клиентами, чтобы решить их проблемы. Человеческие агенты поддерживаются цифровыми агентами, чтобы максимально автоматизировать необходимые исправления.
Вот стенограмма разговора с клиентом, у которого возникла проблема с маршрутизатором Wi-Fi:
John (Teltop Customer Care Agent): Hello, this is John from Teltop customer care. How
can I assist you today?
Mary (Disappointed Subscriber): Hi John, it's Mary again. I've been having a nightmare
with your service. My home Wi-Fi is acting up, and the TV service over fiber is
terrible.
John: I'm sorry to hear about the troubles you're facing at home, Mary. Let's address
these issues. Can you please provide me with your account number or the phone number
associated with your account?
Mary: Sure, it's 123-555-1234.
[...]
John: Mary, it appears there are some issues with your router. We need to update the
router software.
В этом примере программное обеспечение маршрутизаторов можно обновлять удаленно и автоматически. Если это удается сделать успешно, письма отправляются клиентам.
Транскрипция телефонных звонков может быть выполнена с помощью службы преобразования речи в текст. Актив охватывает следующие три шага, которые выполняются последовательно. Для обновления маршрутизаторов и отправки почты запускаются инструменты.
Давайте рассмотрим шаг (2) более подробно. Если сводка стенограммы содержит «обновление маршрутизатора» в качестве корректирующего действия, агент понимает, что ему необходимо вызвать инструмент с номером телефона клиента в качестве входных данных.
Agent UpdateRouterIfNecessary LLM Output:
{
generated_text: 'Question: Update the router for Mary (123-555-1234) based on the
transcript summary.n' +
'Thought: I need to update the router for Mary (123-555-1234) based on the
transcript summary, so I will use the RouterUpdate tool.n' +
'Tool Name: RouterUpdaten' +
'Tool Caption: Updating router software for Mary (123-555-1234)n' +
'Tool Input: {"phoneNumber":"123-555-1234"}n' +
'Tool Output: ',
generated_token_count: 4465,
input_token_count: 1271,
stop_reason: 'not_finished'
}
Агенты были реализованы с помощью Bee Agent Framework на TypeScript. Платформа была создана IBM Research и доступна с открытым исходным кодом. В следующем фрагменте показано определение инструмента маршрутизации, которое вводится в приглашение при вызове больших языковых моделей.
export class RouterUpdateTool extends Tool <
RouterUpdateToolOutput , RouterUpdateToolOptions , RouterUpdateToolRunOptions > {
name = "RouterUpdate" ;
description = "Updates the software of routers remotely for a subscriber " +
"with a certain phone number." ;
inputSchema ( ) {
return z . object ( {
phoneNumber : z
. string ( { description : `Phone number of a subscriber, for example '123-456-7890'` } )
. min ( 1 )
. max ( 40 ) ,
} ) ;
}
Вместо того, чтобы галлюцинировать выходные данные инструмента, агент останавливает поток из LLM после «Вывод инструмента:» и вместо этого запускает инструмент.
Agent UpdateRouterIfNecessary (tool_input) ? : {"phoneNumber":"123-555-1234"}
Input to Router Update tool - phoneNumber: 123-555-1234
Agent UpdateRouterIfNecessary (tool_output) ? : {"success":"true",
"text":"Router has been updated"}
Существует три разных потока, которые реализуют один и тот же сценарий.
Агентское приложение можно запускать как автономное приложение TypeScript, например, локально в целях разработки. Кроме того, watsonx Orchestrate можно использовать для вызова трех шагов и передачи контекста между ними.
Если выбран вариант «Скрыть эту форму от пользователя», весь процесс выполняется, например, в чат-клиенте Orchestrate или через API.
Подводя итог, можно сказать, что более крупную модель LLama 3.1 70b можно использовать на watsonx.ai. Чтобы добиться более быстрого ответа и сэкономить затраты на запуск моделей, можно выполнить точную настройку меньших моделей.
InstructLab — это инициатива с открытым исходным кодом, возглавляемая Red Hat и IBM Research. Помимо возможности точной настройки генеративных моделей ИИ, он также поддерживает генерацию синтетических данных, поэтому требуется меньше реальных данных.
Например, InstructLab может генерировать больше образцов транскрипций (контекстов) на основе нескольких реальных образцов, определенных в файлах yaml.
version : 3
task_description : >-
Summarization of phone call transcripts between human agents
and clients of a telecommunication service provider about
technical issues.
created_by : nheidloff
seed_examples :
- context : >-
John (Teltop Customer Care Agent): Hello, this is John from Teltop customer
care. How can I assist you today?nnMary (Disappointed Subscriber): Hi
John, it'''s Mary. I'''ve been having a nightmare with your service.
My home Wi-Fi is acting up, and the TV service over fiber is terrible.
nnJohn: I'm sorry to hear about the troubles you're facing at home, Mary.
Let's address these issues. Can you please provide me with your account number
or the phone number associated with your account??nnMary: Sure, it'''s
123-555-1234. [...]
nnJohn: Mary, it appears there are some issues with your router. We need
to update the router software. [...]
question: >-
Summarize the transcript of the call. Identify the agent and the
subscriber. Add any specific issues mentioned by the subscriber. Add any
corrective actions taken as directed by the agent. Please mention if the
issue is resolved. Mention any follow-up actions and timelines. List the
phone number of the subscriber at the end.
answer: >-
**Agent:** Miken**Subscriber:** Saran [...]
**Corrective Actions:** Router software update [...]
**Subscriber's Phone Number:** 123-555-1234
В следующем фрагменте показан пример вывода. Аналогично, InstructLab может генерировать и оценивать резюме (ответы).
[Start of Context]
Raj (Customer Care Agent): Hello, this is Raj from customer care. How can I assist
you today?
Samantha (Customer): Hi Raj, I'm having trouble with my internet connection. It's
been really slow lately [cut ... cut]
[End of Context]
Пользовательские модели фундаментов и модели из HuggingFace можно импортировать и развернуть на watsonx.ai.
Для оценки базовых моделей watsonx.governance предоставляет механизмы мониторинга моделей с использованием различных готовых, а также пользовательских показателей.
git clone https://github.com/IBM/watsonx-ai-platform-demos
cd watsonx-demos/applications/application
cp .env.template .env
# define WATSONX_API_KEY and WATSONX_PROJECT_ID
yarn install
yarn start:appOneLLMTwoAgents
Дополнительную информацию см. в документации приложения.
Демонстрации этого репозитория были реализованы командой IBM DACH CSM совместно с Tech Sales.