Do this:
1. make something that has some "modern" AI such as deep learning in it, but that doesn't do anything much useful (because that's almost impossible in most cases). E.g. predict something trivial based on a time series, and repoort it. We all know how hard this is, so just take some hello world ML project and change some inputs.
2. Find some easy project that actually makes business sense, and that isn't yet done, and can be done with simple logic or some old school "traditional" ML or constraint solving e.g. a scheduling/optimization problem.
3. Make sure these efforts are "merged" so that the fancy AI tech AND the measurable good outcome is the same project. The "AI" moonshot of the company.
4. You can now say you are doing "AI", you have measurable success.
I think the “Open Recent” menu debuted in 1980s? But now it is AI!
Everyone does it just to attach their old or boring tech to the fancy new trend and have some "cool" rub off on them.
I can think of a bunch of potential use cases for gpt 3 alone.
or do you mean its impossible to build useful models from scratch because all the "easy" problems are solved?
this also seems like a limited mind set.
context: I'm a ML noob
It's a large gap, covering everything from application topics, to data quality, to the need to actually run the damn think in a production setting with scalability, availability, error handling, etc.
Production applications of deep learning aren't particularly glamorous, they're not the "next big thing" right now. Rather they're improvements of existing applications.
Google's on device live captioning works really well, but still somewhat niche, and requires special / higher end SoC's to run.
models I have used seem to have their usefulness greatly outweighed by performance demands.
scaling and economics are another question entirely.
Perhaps we were spoiled with democratized web tech and it's wishful thinking to want everything to be that.
Search by image and object detection and computer vision in general is cool and potentially useful, but right now, it's cumbersome as fuck to pull out your phone, find the Lens application, take a picture etc. Needs to be baked into a wearable / neuralink type setup.
But self driving applications of CV work because the cameras are always deployed and running. But the hardware is expensive.
This is completely false. Here are some examples: Google translate. It's infinitely useful. It's not perfect, but it's good enough for me when I want to quickly check whether my translation into my second language is okay, or I'm not sure I got the meaning right of some translation.
Second example: My home security cameras now uses object classification and only alerts me when there's movement in "high risk zones" and it's human. So many stupid false positives of shadows and stray cats completely gone. I'm pretty sure I can fine-tune it with examples of myself and my family and it will ignore them when it's reasonably confident it's them, but I couldn't be bothered.
You work in a company making an intranet product for the paper tissue industry. Your manager wants v3.0 to have some AI in it. No one remembers the fiasco when "Cloud" was added in v2.0
you either swallow the CRUD app red pill, or you live long enough to become the "AI a la carte" manager
A fun game used to be "translate this phrase English to French, then translate it back again and laugh at how meaningless it's made by the round-trip". That doesn't work any more.
However it was all done with hand-crafted statistical functions and code. The new stuff using deep learning is the first time it'd have been referred to as "AI".
However, what I think the poster meant was that just tacking on AI for the sake of it to a problem which most likely doesn't have an applicable use for it (which currently is the case for most existing IT projects or apps) is doomed for failure.
Obviously I don't know the details of your company situation, but I've experienced myself over the years, that sometimes it can be less overall cost and trouble to give this kind of lip service, rather than fighting an overwhelming fashionable trend until that trend runs its natural course to extinction.
> Team motivation is in a weird space: everyone is relaxed because there is no pressure to succeed
If I was leading that team, I would try to find (or insert) nuggets of goodness (smaller/non-obvious objectives and tasks) in that project which allow the team members to get some personal longer term benefit out of it.
And ideally find (or insert) nuggets of goodness (smaller/non-obvious objectives and tasks) in that project, which have a good chance of becoming useful to the company later - beyond the scope of the official project.
And hopefully the team would become excited about doing something meaningful beyond the official project objective.
p.s. I'm speaking from experience in this kind of a situation.
Around 1994/95 client/server was unassailable in board rooms (much like AI is now). And after initially speaking up against it, I ended up shutting up about my criticism of that architectural approach, since it would have just gotten me fired.
So I ended up sneaking some early Internet technologies into a big client/server project I managed. Doing that ended up benefiting those developers in future jobs, and the company, because they didn't have to re-write that part so quickly. :-)
I would interpret it to mean any networked or Internet-based application that has both client- and server-side logic, which obviously isn't anything special in 2020, but it sounds like you're referring to something else that would now be considered outdated?
Not a stupid question at all, since terminology has been shifting over the decades.
Back in the early 1990s, the original client/server generally meant all application code (logic and UI) on the client computer, and all the data on the server. So a very fat client.
Database stored procedures (i.e. some logic on the server) only arrived on the scene later during that time, because the original architecture of all code on the client caused performance nightmares. But don’t get me started on the trials and tribulations of early stored procedures. They often caused more project turmoil rather than smoothen things out. — Partly because they weren’t good languages yet, partly because of amplifying developer vs. dba conflicts.
Did row-level security already exist in some databases at that time? Otherwise this must have been quite limiting.
A modern analogue might be something like premature distributed computing.
But you’re right in saying that the original client/server had all of the UI and business logic on a very fat client - and the server only served the data over very low bandwith networks.
A modern analogue might be something like premature distributed computing
A modern analogue might be n, where n is more familiar to the composer of this, or, the source of information determining the production of this text is most familiar with n, where n does not include the word premature
It’s hard to see the hype up close sometimes. The closest analogy I can think of and it’s an older one might be how in the mid-2000s everyone needed to make a “Web 2.0 mash-up” or how for awhile everyone needed “social” (remember Ping?)... if you were stuck with a stack based on jQuery and global variables, good luck transitioning to React without Facebook’s scale. Sometimes all you can do is try to stay organized, see a project through and hope it can evolve to something greater after the fad wears off...
If I had to describe the web to a time traveller from the 1980s, I might say the modern web browser is something like a super smart and capable 3270 terminal, while the cloud is the mainframe.
Took two days for two of us to install it on five or six client PC's
I recall discussing this with the engineering centre manager about how in 5 -10 years the web could replace fat clients on PC's
SCCS ftw!
My team is doing exactly this on my initiative and seeing some positive effects already, even though we're only like 2% of the way there. Would you mind expanding on what you think is futile about it? I wouldn't want to be the one advocating something that with hindsight will look obviously stupid.
My advice would be to try to refactor the jQuery app to reduce global state first. For example, use ASTs and other techniques to programmatically determine what global state is used where. Think of it not as “porting” to React, but more as ‘re-writing in React” — the sooner you can finish the rewrite, the better. Take it in smaller, thin, but global (across the whole app) steps, and work to break the app dependencies back down to separate components — this is especially true for CSS, which historically has been global by design for much of its life...
If shipping during a rewrite, make sure you have some very basic tests running. Try to implementation-agnostically look for and click text or otherwise use the web app in your tests, then run the tests before and after making widespread changes... Use screenshots from the tests to quickly visually scan for errors. Pay attention to errors in browser consoles also, if not using TypeScript to its fullest yet.
Asp.net Core is cross platform, has a self hosted https server called Kestrel that is insanely fast, has a really sensible composition of middleware, built in DI, and a strong community. Hangfire is a great job runner, signalr is available with real-time push over web sockets, identity server 4 can handle all your Authn/Authz and Entity Framework Core + Linq is very powerful and a lot faster than the full framework version.
This is hilarious, and makes me wonder how many similar corporate AI initiatives are under way in the world right now.
What the fuck? If I had the ability to code a cognitive AI module which could do that I would not be building it for you, I would solve self driving and license the software for billions.
And the other one hear about it, get excited, but also don’t understand much. Then on the meeting, he brought the idea up and convince everyone to do it.
The next you know, you’re pulling your hair out trying to understand what is going on
This happened to me recently where a PM shared a blog about someone who had built an “all encompassing multi cloud cost calculator” for their org and had blogged about it. The PM was naturally extremely excited but I asked him to find more details about the tool and if/how that can be used. Turns out even though it was supposedly open sourced it wasn’t really available to just anyone but the author promised he would release it in a month. That was over 6 months ago, no word from the author or PM.
These blog fueled hype trains are extremely destructive. It makes engineering appear trivial. Building useful tool might be easier now but it’s not trivial. And if a tool sounds too good to be true it probably is.
Or as one VC put it: Never let facts get in the way of a good story.
Salespeople are too rarely judged/punished for the disastrus messes they leave behind, and all too quickly judged/rewarded for being able to convince a customer to sign off on a big number without any care for long term implications of that deal...
Most of the time, the development will be discontinued, or change the direction.
We had a single website with an already written to OWASP standards login, no external API or plans for any.
This effect is by no means limited to tech. And engineers, regardless of type, are by no means immune to that as soon as they reach higher management positions. I have yet to figure this one out. Which drives me crazy sometimes, because my gut tells me that as soon as I did most "problems" I have regarding managment would be solvable instantly.
And if you hired your people yourself, you probably know you skipped over some qualified people who were to expensive, and weeded out some overconfident people who turned out not to be all that. In the end, you wonder what those expensive smart people would have said, and you wonder if your confident sounding employees are just overconfident incapables that you failed to weed out.
Hence, getting an outside perspective from someone you trust has a lot of attraction. However, getting that outsider person to be knowledgeable enough, and getting them the right information, is a tough task.
(When I left they continued to pay me for months. It struck me just now that cheap employees probably looked great on paper.)
My bad, I originally wrote " They hired every highly specialized consultant available for .... guilders each" but I only hear the price of one and I failed to remember if it was 5000 or 20 000 for a 2 hour chat.
I recall telling him they were doing builds like no one I had ever seen (“Yes we have a plan to change it.”) and and asking why do you use R as the main language for the ETL pipeline (“It makes it easier for data science and we can run it in Spark.”)
Every times, I told him it wasn’t what he think. For a few times, I let it go, part to let he learn about the reality. I thought he would change the evaluation process. But no, he still stubborn.
I remember at Microsoft, people would need to win an argument with Bill Gate to get their idea approved. Sometimes, it was a really hear arguments. Maybe some people get inspired by this story too much.
But this Dutch company also makes use of some kinds of SWAT dev teams that help customers on the spot with issues, making sure the product lives up to the clients’ expectations, even if this means modifying a product delivered by the core dev teams. I.e.: if some feature was promised, but not yet part of the current release, the SWAT team might hack something quickly, often on the spot in the clients offices. Later on, such a hack might be replaced with a proper solution.
In one sense, great, I don’t want to bother about what a customer’s priorities are. But it turns out that only works if you TRUST the product team.
It was a nice company. Bosses had very limited direct power over the developers and designers, and rightfully so -- it's supposed to be a team of experts, after all.
It was an "AI complete" feature as up to that point it required someone who knew what they were doing to decide what documents were actually relevant - not "close enough".
I've been kicked off a project because I couldn't stop talking about training data (they already had) and machine learning algorithms (NLP, text classification) that we could implement right now to start automating a couple of internal processes that are currently pointlessly manual. Think moving incoming e-mail to appropriate downstream support channels.
Not enough magical AI / AGI in there.
The countless PowerPoint presentations built after my departure described processes along the lines of "the AI will detect when you're about to miss your connecting flight and book you into your favourite hotel with your favourite dinner pre-ordered".
Surprisingly, the project survived and now they collect training data and use machine learning for text classification.
- your ceoThe pinnacle of the low failure cost principle must be ad targeting, it costs nothing besides opportunity to display the wrong ad. And the success metric can even be inverted if the mistake is sufficiently surprising: I'd probably be more likely to deliberately click an ad that is entirely off my beaten path, out of curiosity, than something that aligns with my actual interests. Who wouldn't click on an ad for e.g. curling brooms? Curlers.
I asked them what they wanted to do (it was solvable with keyword search) and told the CEO that I’d be happy to get it into the next version. It took an afternoon or so to implement.
Gotta love the PHB effect.
Yes, liars should be insulted.
The relevant bit:
> He is notable for his micromanagement, gross incompetence, obliviousness to his surroundings, and unhelpful buzzword usage; yet somehow retains power in the workplace.
Can’t seem to find the full text though, pretty messed up that my tax dollars go to finance academia that I can’t even consume.
Then there are projects where I did something ahead of its time (and was ultimately unsuccessful) yet other people did the exact same thing later and made a ton of money.
Finally I ran engineering at a startup which spent ~3 years largely wasting time and money, only to be acquired for hundreds of millions of dollars for reasons that are still unclear to me.
You never really know. Success is a random, nonlinear process and your effort is but one input to it. I've given up trying to predict if something will be successful if the work that's being done at the front lines is solid from the engineering standpoint. Business is mostly about being very persistent and/or being in the right place at the right time.
For all you know your company might be one PhD hire away from absolutely blowing the doors off competition. Or it may get to that point years later because it started thinking about it now. Or having at least some sort of an AI strategy (even if not very successful) might double the acquisition price in some upcoming merger. All of those things would make your work worthwhile in retrospect even if the project fails. You never know such things.
These uncertain situations are usually a blessing in disguise: because management has no clue, you can pretend that you have clue, and steer things in the direction that's useful to you. Put some cool things on your resume, if nothing else. Move on, see if you have better luck elsewhere.
My second project there was about enabling the desktop version of Office to be rented and backed by online services. At the time the idea was novel, and nobody believed it'd succeed, _especially_ because Ballmer was pushing it pretty hard. But succeed it did, wildly.
I know multiple such examples anecdotally as well, from friends. The initial versions of Azure seemed like a waste of time also (VMs topped out at like 32GB, everything sucked mightily throughout the entire stack, nobody thought it has a fighting chance). Today it's the second largest cloud, and growing rapidly. Still kinda sucks though. :-)
The initial version of Bing crawler was pretty horrible also (index team had more time, so their code looked squeaky clean in comparison), and it spent years trailing behind Google until they figured out how to close the gap (with "hiybbprqag" thing - the press got it wrong, they weren't "stealing" Google results per se; they augmented training data with clicks that come from Google search pages IIRC). Today Bing powers Duck Duck Go among other things. It's still not a wild success, but it's most definitely not a waste of time either.
The new hire got lucky, as there was some low hanging fruit (optimizations we all knew about). The obvious solution was implemented and then he ex post facto claimed 100% credit for the revenue enhancement. Since it’s like 10x his salary every year he’s pretty much on autopilot.
Actually good that the company hired him then.
Sadly, most engineers aren't allowed to pursue that kind of stuff. Normal dev jobs can be stifling.
But the CEO who hires a data scientist is explicitly asking that person to walk into their office and say "I can increase revenue by X" - that is their job. The website dev does not have that job.
And there are two views on this problem - the CEO did the right thing by hiring someone to explicitly optimise the site - there are improvements to be made, create the right organisation so that those improvements flow to company.
Or there is the other argument, that the organisation is stifling innovation from below, and that the CEO should have been actively soliciting improvements from dev team and elsewhere
Generally both are right
I did this several times in my early career and was paid a lot and it was win/win
You have to phrase it carefully, but if you phrase it as a win/win with no risk, they’ll sign off on it
In my experience, to these people, big data means "the excels look really big."
It still astounds me that not only did none of those customers sue us for blatant misrepresentation, but most of them were delighted with what they'd bought.
I had a similar cognitive dissonance when doing "R&D Grant applications" a long time back. I kept on thinking "Research" was the sort of rigorous academic work you do to earn a PhD. In the government/business world, it seems pretty much spending time or money to learn how to do anything not 100% required for your business previously counts. Including things like "selling our widgets, only via the internet" being valid and acceptable thing to get government rebates for "R&D". I still feel dirty everytime I draft one of those grant applications... :shrug:
It doesn't have to change the world, as long as it moves the needle.
My experience is that people tend to consider things AI whenever it feels like "magic" to them, at least in non-technical circles.
I slapped together a POC javascript tinyYolo feature detector demo last weekend (using someone else's code and pre-trained model from their github project), and joked when I showed it around that "And we can tell investors we're running AI, deep learning, and convolutional neural networks in our realtime production workflow!"...
(But as we all know, all the _proper_ magic is done by the regexes buried in that Perl module dependency hidden in a deeply nested source code directory that no-one without a grey beard is ever game to peer into...)
I was recently joking that I was training a neural network with a water spray bottle (teaching the cat not to jump on the kitchen counter). And just while I type this, my little neural network came to walk over the keyboard...
Free idea for a children's TV show right there.
> From the other end
Yeah, using wongarsu’s example of chess: brute forcing chess was once a highlight if AI achievement and now its just a crude search algorithm.
Imagine working on an accounting application when the CEO suddenly instructs everybody to figure out how accountants could connect with each other and maybe publish their balance sheets instead of cat pictures or whatever. Details changed, but it was that weird.
https://dilbert.com/strip/1993-03-20
(I am not putting you down)
https://dilbert.com/strip/1998-03-17
My dad always disliked the strip you cite, because the change Dilbert expects is $5.25, but there's no way to provide $7.14 in a way that couldn't be trivially reduced to $2.14. If the goal is to make things easy for the cashier, he should obviously provide $2.14 and just keep the $5 he already has anyway.
(and I agreee - the first dilbert cartoon is super contrived)
The store actually had really great employees overall and I suspect this little factor played a big part in that. Part of the application process was a basic math test and it was funny to see how quickly some applicants recoiled when they found that out. It seemed to be a great filter.
About 10ish years ago I had an idea for a product that would essentially provide online training on this for cashiers. Back then I thought 'but everything is moving to cashless payments, plus more and more registers calculate change, no need for this". I wonder sometimes if this was The One That Got Away for me...
Long story short: after a year or so, our boss decided to scrap our half-baked system and gave up on the idea of creating some internal product entirely.
They talk about it like it's some sort of panacea that will make a company automatically grow 10x. Then you ask them what they actually want you to build and... Crickets.
Most of those jobs are generic Java work, but it's hard to find motivated / qualified people to work on just that.
To be fair, this is absolutely not unique to you but literally every (software) company in america right now.
bet there's something between a full AGI and a set of ifs on the audit log that could help the human experts reduce error rates and fit within the direction constraints
Any part of the problem that is not specifically related to the company's vision should be part of a communal effort make machine learning and AI tractable.
Companies should compete on their core Mission and cooperate on all the plumbing.
We are doing absolutely inane projects that have no hope of succeeding.
We serve a niche industry where certified professionals have to do certain tasks personally, instead of being able to delegate to secretaries. Somehow our CEO has been convinced that AI can be trained to do these tasks, at a reliability level not achievable by other humans.
Team motivation is in a weird space: everyone is relaxed because there is no pressure to succeed - we all know the project will fail unless someone develops well-perfoming, human-level AGI before Q4/2020. Lots of long lunches and checking out early in the afternoon.
At the same time, everyone is worried how terrible the fallout is going to be once the project reaches its inevitable conclusion.
Interesting times, but at least we can now tell investors we are a keen company with an AI play up our sleeve!