Search This Blog

Showing posts with label AI. Show all posts
Showing posts with label AI. Show all posts

Saturday, 8 June 2024

Generative AI and cybersecurity: governance, risk, compliance and management

This is a quick summary of a much longer substack: https://solresol.substack.com/p/generative-ai-and-cybersecurity-governance and a ~40 minute video: https://youtu.be/jHFa_08_Y9E

The world of AI is rapidly evolving. AI researchers are divided on whether superhuman intelligence can be achieved by scaling up current technology or if fundamental breakthroughs are still needed. 

Key AI Concepts for Cybersecurity Professionals:

  1. AI Alignment: Controlling AI systems that may become smarter than humans.
  2. Explainable AI: Understanding why AI programs make certain decisions.
  3. Agentic AI: AI systems that can perform actions autonomously.
  4. Prompt Injection: A major security concern in AI systems.

Impact on Management:

  1. Distinguishing between genuine understanding and AI-generated artifacts.
  2. Using AI for performance improvement plans and automation.
  3. Dealing with potential fraud and impersonation using AI.
  4. Monitoring AI-driven automation by employees.
  5. Adapting to increased use of speech recognition and document management.

Corporate Governance and Responsible AI Use:

Pre-2022, AI governance focused on controlling the training process. Post-2022, governance must shift to maximizing benefits while managing risks. Key challenges include prompt injection, hallucination, and lack of moral sense in AI systems. Blocking AI usage may lead to data leaks to less reputable companies. Organizations must embrace AI while implementing proper guardrails.

Required Capabilities for AI Governance:

  1. Observatory: Monitoring AI usage and its impacts.
  2. Reward Giving: Incentivizing staff to automate tasks responsibly.
  3. Expansion: Propagating new ideas and methods for AI use.
  4. Financial: Balancing AI costs with staffing savings.
  5. Cybersecurity: Defending against new attack vectors.
  6. HR Responsiveness: Managing job role changes due to AI automation.

Key Processes:

  1. Audit/Discovery/Inventory Management: Identifying new AI activities.
  2. Incident Response: Handling prompt injection attacks and rogue employee actions.
  3. Rapid Iteration on Education and Training: Keeping staff up-to-date on AI capabilities.

Regulation:

Few regulations currently exist for generative AI usage. China requires AI systems to act in the benefit of social harmony. Japan allows training models on copyrighted works, potentially leading to faster AI adoption. India requires registration for AI model training, hindering the development of language models. The USA has proposed limitations on large-scale AI training.

Wednesday, 3 May 2017

Chatbots that get smarter at #AtlassianSummit

I’m in Barcelona at the moment, at AtlasCamp giving a talk about helpdesk chatbots that get smarter.

It’s easy to write a dumb chatbot. It’s much harder to write a smart one that responds sensibly to everything you ask it. Some famous examples: if a human mentions Harrison Ford, they a probably not talking about a car.
There are three different kinds of chatbot, and they are each progressively harder to get write.
  1. The simplest chatbots are just a convenient command-line interface: in Slack or Hipchat, there are usually “slash” commands. Developers will set up a program that wakes up to “/build” whenever it is entered into a room that pulls the latest sources out of git, compiles it and shows the output of the unit tests. Since this is a very narrow domain, it’s easy to get right, and as it is for the benefit of programmers, it’s always cost-effective to spend some programmer time improving anything that isn’t any good.
  2. The next simplest are ordering bots, that control the conversation by never letting the user deviate from the approved conversational path. If you are ordering a pizza, the bot can ask you questions about toppings and sizes until it has everything it needs. Essentially this is just a replacement for a web form with some fields, but in certain markets (e.g. China) where there are near-universal chat platforms this can be quite convenient.
  3. The hardest are bots that don’t get to control the conversation, and where the user might ask just about anything.
Support bots are examples of that last kind: users could ask the helpdesk just about anything, and the support bot needs to respond intelligently.
I did a quick survey and found at least 50 startups trying to write helpdesk bots of various kinds. It’s a lucrative market, because if you can even turn 10% of helpdesk calls into a chat with a bot, that can mean huge staff cost savings. I have a customer with over 150 full-time staff on their servicedesk -- there are millions of dollars of savings to be found.
Unfortunately, nearly every startup I’ve seen has completely failed to meet their objectives, and customers who are happy with their investments in chatbots are actually quite rare.
I’ve seen three traps:
  • Several startups have lacked the courage to believe in their own developers. There’s a belief that Microsoft, Facebook, Amazon, IBM and Google have all the answers, and that if we leverage api.ai or wit.ai or lex or Watson or whatever they’ve produced this month that there’s just a simple “helpdesk knowledge and personality” to put on top of it, like icing on a cake. Fundamentally, this doesn’t work: for very soud commercial reasons the big players are working on technology for bots that replace web forms and with that bias comes a number of limiting assumptions.
  • A lot of startups (and larger companies) believe that if you just scrape enough data from the intranet -- analyse every article in Confluence for example -- that you will be able to provide exactly the right answer to the user. Others take this further and try to scrape public forums as well. This doesn’t work because firstly, users often can’t explain their problem very well, so there’s not enough information up front even to understand what the user wants; and secondly... have you actually read what IT people put into their knowledge repositories?
  • There are a lot of different things that can go wrong, and a lot of different ways to solve a problem. If you try to make your support chatbot fully autonomous, able to answer anything, you will burn through a lot of cash handling odd little corner cases that may never happen again.
The most promising approach I’ve seen was one taken by a startup that I was working with late last year. When they decided to head in another direction, I bought the source code back off them.
The key idea is this: if our support chatbot can’t answer every question -- as indeed it never will -- then there has to be a way for the chatbot to let a human being respond instead. If a human being does respond, then the chatbot should learn that that is how it should have responded. If the chatbot can learn, then we don’t need to do any up-front programming at all, we can just let the chatbot learn from past conversations. Or even have the chatbot be completely naive when it is first turned on.
The challenge is that in a support chat room, it’s often hard to disentangle what each answer from the support team is referring to. There are some techniques that I’ve implemented (e.g. disentangling based on temporal proximity, @ mentions and so on). A conversative approach is to have a separate bot training room where only cleanly prepared conversations happen. Taking this approach means that we substitute expensive highly-paid programmers writing code to handle conversations and replace them with an intern writing some text chats.
It’s actually not that hard to find an intern who just wants to spend all day hanging out in chat rooms.
Whatever approach you take, you will end up with a corpus of conversations: lots of examples of users asking something, getting a response from support, clarifying what they want, and then getting an answer.
Predicting the appropriate thing to say next becomes a machine learning problem: given a new, otherwise unseen data blob, predict which category it belongs to. The data blobs are all the things that have been said so far in the dialog, and the category is whatever it is that a human support desk agent is most likely to have said as a response.
There is a rich mine of research articles and a lot of well-understood best practice about how to do machine learning problems with natural language text. Good solutions have been found in support vector machines, LTSM architectures for deep neural networks, word2vec embedding of sentences.
It turns out that techniques from the 1960s work well enough that you can code up a solution in a few hours. I used a bag-of-words model combined with logistic regression and I get quite acceptable results. (At this point, almost any serious data scientist or AI guru should rightly be snickering in the background, but bear with me.)
The bag-of-words model says that when a user asks something, you can ignore the structure and grammar of what they’ve written and just focus on key words. If a user mentions “password” you probably don’t even need to know the rest of the sentence: you know what sort of support call this is. If they mention “Windows” the likely next response is almost always “have you tried rebooting it yet?”
If you speak a language with 70,000 different words (in all their variations, including acronyms), then each message you type in a chat gets turned into an array of 70,000 elements, most of which are zeroes, with a few ones in it corresponding to the words you happen to have used in that message.
It’s rare that the first thing a support agent says is the complete and total solution to a problem. So I added a “memory” for the user and the agent. What did the user say before the last thing that they said? I implemented this by exponential decay. If your “memory” vector was x and the last thing you said was y then when you say z I’ll update the memory vector to (x/2 + y/2). Then after your next message, it will become (x/4 + y/4 + z/2). Little by little the things you said a while ago become less important in predicting what comes next.
Combining this with logistic regression, essentially you assign a score for how strong each word is in each context as a predictor. The word “password” appearing in your last message would score highly for a response for a password reset, but the word “Windows” would be a very weak predictor for a response about a password reset. Seeing the word “Linux” even in your history would be a negative strength predictor for “have you tried rebooting it yet” because it would be very rare for a human being to have given that response.
You train the logistic regressor on your existing corpus of data, and it calculates the matrix of strengths. It’s a big matrix: 70,000 words in four different places (the last thing the user said, the last thing the support agent said, the user’s memory, and the support agent’s memory) gives you 280,000 columns, and each step of each dialog you train it on (which may be thousands of conversations) is a row.
But that’s OK, it’s a very sparse matrix and modern computers can train a logistic regressor on gigabytes of data without needing any special hardware. It’s a problem that has been well studied since at least the 1970s and there are plenty of libraries to implement it efficiently and well.
And that is all you have to do, to make a surprisingly successful chatbot. You can tweak how confident the chatbot needs to be before it speaks up (e.g. don’t say anything unless you are 95% confident that you will respond the way that a support agent will). You can dump out the matrix of strengths to see why the chatbot chose to give an answer when it gets it wrong. If it needs to learn something more or gets it wrong, you can just give it another example to work with.
It’s a much cheaper approach than hiring a team of developers and data scientists, it’s much safer than relying on any here-today-gone-tomorrow AI startup, and it’s easier to support than a system that calls web APIs run by a big name vendor.
If you come along to my talk on Friday you can see me put together the whole system on stage in under 45 minutes.

Wednesday, 7 December 2016

Artificial Intelligence (#AI) development in Sydney around #Atlassian and #JIRA

Well, it's boastful to say it, but we just received a nice little certificate from Craig Laundy (assistant federal minister for innovation) and Victor Dominello (NSW state minister for innovation). It says "Best Industry Application of AI/Cognitive" for the Automated Estimator of Effort and Duration.

Actually, we were just highly commended, and it was stratejos that won, but what is interesting about all this is: the whole AI/Cognitive category just went to artificial intelligence JIRA plug-ins.

Firstly, Atlassian has won the enterprise. When 100% of the top-tier startups targeting large organisations are developing for your platform exclusively, it's only a matter of time.

Secondly, AI is hot technology in Sydney with political capital. We think of Silicon Valley as being the centre of the universe for this, but I've never seen US Federal and Californian state senators getting together to express their commitment as we saw in this award.

Thirdly, this means you really should try out AEED: http://www.queckt.com/

Sunday, 5 April 2015

Favourite movie AI challenge from @xdotai: R2D2, who is actually the real hero of the series

http://x.ai/ are running a competition to find everyone's favourite movie AI, which makes sense for a company that develops an AI bot for being the perfect valet and secretary to arrange meetings across companies.

Their challenge is to come up with a favourite AI character. With 6 movies devoted to R2D2 (not counting any fan-made ones) and numerous other appearances, we get a glimpse into the "life" of a lone, brave super-intelligent AI who chose to side with the biological entities against the overwhelming forces of the droids, computers, androids and other AIs who are programmed to destroy the biologicals.

Because, yes, the Star Wars double trilogy is about R2D2 committing to rescuing biologicals from their own dumb mistakes and self-imposed predicaments. The fact that we even think it's a movie about Luke, Vader, Han Solo or Leia just shows how biased we are towards seeing stories to be about human beings.

So let's review:

  • In episode 1, we meet R2D2 when the humans are about to be killed. No-one can save them except for a robot. R2D2 goes out into space with the near certain danger of being destroyed and saves them all. This is the prelude which establishes the routine: R2D2 rescues the incompetent biologicals again and again. But R2D2 gets mostly ignored after this -- not even worthy of consideration -- until the Battle of Naboo. The biologicals are losing badly to the droid army, of course, who would have been unstoppable were it not for R2D2 coming in on the side of the humans and taking Anakin up in a starfighter (where R2D2 is presumably doing most of the flying and actual work).
  • In episode 2, the human beings are at it again. Jedi falling in love is bad news -- that much power mixed in with emotion is a bad combination. Robots can function without emotions, humans can't, so R2D2 takes note. It sees the secret wedding between Padme and Anakin, and therefore the impending doom of a powerful Jedi. Presumably it is R2D2 who gets Quarsh Panaka on to it to do something about it, but the humans again manage to stuff this up and let Palpatine create a monster.
  • In episode 3, R2D2 tries to thwart Vader's plans to assassinate the council, but unfortunately is ordered to stay in the ship. Presumably R2D2 can't disobey this order, but who knows what it does behind the scenes to try to stop the disaster. Again, faced with impossible odds against real foes -- super battle droids -- R2D2 triumphs, but no-one notices. Still, at the end of episode 3 only two characters are trusted to know the locations of Luke Skywalker and Leia Organa -- R2D2 and Chewbacca.
  • In episode 4, R2D2 is tasked with picking up Obi-Wan and taking the death star plans to Yavin. The human beings (i.e. Leia) couldn't do it, so it's up to the robots. Never mind that the robots land in the wrong location, R2D2 quickly gets to Luke and Obi-Wan via the Jawas and the sandpeople, a task that none of the humans could do anywhere near as easily or as quickly. Anyway, a robot's gotta do what a robot's gotta do, so R2D2 gets the death star plans delivered, presumably tells everyone what the flaw is and then gets the best human pilot into place to take the shot. 
  • In episode 5, R2D2 goes to Dagobah, where it defeats a giant serpent-like creature that could easily have killed Luke. Then onto Bespin, where R2D2 faces off against the whole AI capabilities of a city and wins, which would have been unnoticed by the biologicals except for the fact that their lives were saved. Then R2D2 repairs a hyperdrive system (because the biologicals couldn't) and gets everyone off the planet.
  • In episode 6, again Luke Skywalker -- the most capable and powerful of all the biologicals in the series -- calls on R2D2 to help him in his plan. If R2D2 can sneak in a light-sabre without any alerting or monitoring system noticing, surely it could have brought in anything -- a thermonuclear weapon, poison gases capable of killing all of Jabba's biologicals -- but no, R2D2 chooses to work with side with the rebel humans and lets them do it their way even though R2D2 could do no-doubt complete the rescue without assistance. Then on to Endor, where R2D2 sacrifices itself in order to open some blast doors that the biologicals couldn't have opened by themselves. R2D2 gets repaired rather than being recycled, which is about the only nice thing that the biologicals do for R2D2 in the whole series.

In none of these situations was R2D2 under any real obligation to choose the path that it did. For example, if in cloud city R2D2 had just given up and let the rebel biologicals die then no-one would have chased up R2D2 for revenge. R2D2 would presumably have registered itself with the cloud city's computer system as available for work and no-one would have even noticed. R2D2 could equally well have hopped on the next space ship leaving the planet and gone off anywhere at all.

Adding in cameo appearences Star Trek (being blown into space), ET (repairing a ship while it is being taken off) and Raiders of the Lost Ark (where whatever R2D2 did, it was worthy of an inscription), R2D2 is the great unsung hero

We can only hope that we can develop AIs with the same moral sense and responsibility to the betterment of biological life. 


Saturday, 7 March 2015

#AlchemyAPI bought by IBM for #Watson -- it's obvious whom IBM will buy next

Every time I start getting enthusiastic about an artificial intelligence company's products, IBM buys them for Watson.

Last year I blogged about the code I had written to make a Google App Engine mail handler which displayed summaries of emails by keywords and sentiment. Today I've discovered that AlchemyAPI (who provided a lot of the smarts) have just been bought by IBM.

Earlier last year I was working with Cognea (and a few other chatbot companies) trying to get a service desk agent that could outperform human beings at a mega-sized organisation -- where even handling helpdesk text chats and email was a job handled by a large team. The part I was looking after (routing of incident tickets and predicting failed changes) turned into Queckt (AEED).

Yes, well, anyway, Cognea got bought last year too.

So here's my next prediction: IBM buys x.ai

Two reasons:
  1. I'm a big fan of x.ai's work, so based on past experience they will be bought out by someone sooner or later. If IBM doesn't, someone else will.
  2. Lotus has an integrated calendar and mail system. It's in large organisations with busy executives who could be served very well by an (AI) agent who could organise meetings on their behalf. x.ai only need to plug-in a new back-end calendar service and a new fetch-from-a-Domino-server mail client. Then Notes actually has a useful feature that might stop customers slipping away to Google Apps and Office365.
On the other hand, not every company with artificial intelligence products gets bought by IBM. For example, IFOST hasn't. ;-)

Here are some of the things we've done:

  • Smart systems monitoring: automatic anomaly detection for events on CPU, memory and I/O; detection of log files without human intervention and then determining which messages are important or trivial; prediction of future capacity exhaustion.
  • Intra-oral dental image analysis
  • Improving ITIL ticket handling by 30% using vocabulary detection
  • Identifying student learning disabilities by timing analysis

Let me know if you are interested in any of these. I'll make sure we're not bought out by IBM!