[HN Gopher] Flashlight: Fast and flexible machine learning in C++
___________________________________________________________________
Flashlight: Fast and flexible machine learning in C++
Author : andyxor
Score : 58 points
Date : 2021-04-16 18:34 UTC (3 hours ago)
(HTM) web link (ai.facebook.com)
(TXT) w3m dump (ai.facebook.com)
| angry_octet wrote:
| The name has unfortunate verbal similarities with a well known
| sex toy, especially when different accents are considered. I am
| actually astounded they went ahead with this name.
| a-dub wrote:
| you do realize that the recently introduced sex toy was both
| named and designed to resemble flashlights, right?
|
| that said, interesting decision to ditch the scripting
| language. when i think of these sorts of things, immediately
| think that embedding or supporting a scripting language makes a
| ton of sense. i'm curious what the thinking was to just go full
| c++? i suppose they just decided that modern c++ was easy
| enough and this was better for simplifying production?
| whoopdedo wrote:
| And yet millions of electric torches are sold in the United
| States each year without confusion.
|
| (Although not, let's be honest, without amusement.)
| angry_octet wrote:
| I'd just choose a name with a greater Hamming distance from
| sexual harassment.
| whimsicalism wrote:
| Now that I think about it... Docker does sound a bit like
| Dick-er.
| cultofmetatron wrote:
| theres also "docking." a sex act between two men of which
| the details I'll let you refer to google at your own
| discretion.
| whimsicalism wrote:
| We really are an innovative species!
| aspaviento wrote:
| Until your super chaste name is used for something related
| with sex.
| eptcyka wrote:
| The sex toy came after flashlight the portable light
| source.
| igorkraw wrote:
| Is this not a thing in the US?
| https://en.wikipedia.org/wiki/Flashlight
|
| I assume they are going for "batteries included" connections?
| Narew wrote:
| Flashlight vs torch (pytorch). ^^
| angry_octet wrote:
| Yes, I could see the construction, I just can't think why
| they wouldn't anticipate the problems it could cause down
| the track.
| cozzyd wrote:
| Wait until people accidentally an ML model?
| jcelerier wrote:
| the whole model !
| whimsicalism wrote:
| What? Nobody in their right mind thinks "fleshlight"
| immediately upon hearing the word "flashlight"
|
| Is this some sort of performance art comment?
| kyawzazaw wrote:
| I don't see such a significant problem.
| josefx wrote:
| As a non native english speaker I knew the word
| flashlight years before I knew that you could use torch
| to mean the same thing (and not just a burning stick).
| Websters even seems to claim that this is mostly a
| British thing.
| whimsicalism wrote:
| Nobody calls flashlights torches in the US.
| snovv_crash wrote:
| You spend too much time on the internet.
| andrew_v4 wrote:
| Really? In North American english, a flashlight is a handheld
| light, there is no thought of the toy you're referring to when
| it is mentioned. That "light" got its name as a play on
| flashlight. It's funny to see that now become the primary
| connotation in some peoples minds.
| CharlesW wrote:
| > _In North American english, a flashlight is a handheld
| light, there is no thought of the toy you 're referring to
| when it is mentioned._
|
| Sample size of 1, but this North American immediately thought
| "oh no, how unfortunate" on seeing the headline. (Admittedly,
| I do listen to more podcasts than the average person.)
| angry_octet wrote:
| Well this observation has produced a furious negative reaction,
| which I suspect is of both puritanical and chauvinist origin.
|
| Perhaps because I can't see very well I had uncertainty when
| reading the article title. But unless you're quite innocent
| (i.e. not a user of the internet) I don't see how you could
| avoid knowing about such devices. Knowing many programmers, I
| also know that they span the full spectrum from Bible-studies
| to BDSM (though that might be a horseshoe), and many are prone
| to juvenile humour which can become sexually toned. So I know
| that someone will use it in this context. When you become a
| manager you choose to avoid creating such problems. Some of you
| probably see this tone policing -- you are correct, suck it up.
|
| For those who don't understand what Hamming distance is:
| https://en.m.wikipedia.org/wiki/Hamming_distance
| randshift wrote:
| I'm going to venture a guess and say it's more likely that
| people will associate this with millions upon millions of
| flashlights that have been sold in the United States, rather
| than whatever it is you're talking about.
| dynamite-ready wrote:
| Does anyone else think that C++ makes more sense for ML work than
| Python? I'd been thinking so for years. Both for
| deployment/performance and data wrangling purposes.
| whimsicalism wrote:
| In general, I think languages with static typing are
| preferable.
|
| C++ seems ideal for me right now because it is the only other
| language with a somewhat mature stack (perhaps Julia as well,
| but I haven't played too much around with that).
| eigenspace wrote:
| Julia is dynamically typed FYI. However, I find that usually
| when people say they want a statically typed language, they
| don't actually want static typing (which is just a
| restriction of language semantics), but instead they want a
| language with a powerful type system that does work for them.
|
| In this case, julia absolutely is worth checking out. It does
| static analysis on it's intermediate representation to
| automatically identify and isolate statically inferrable
| regions of programs and then stitches them together if it
| ever encounters any dynamism.
|
| Julia's type system is extremely powerful and expressive and
| can do a lot of things that are incredibly difficult in fully
| static languages precisely because it does _allow_ dynamism.
| codebolt wrote:
| Absolutely. In 2010 I used FANN for my Msc thesis research, and
| found it pretty easy to make my own little training sim for
| stock price data on top of it. Haven't done any ML work since,
| but I always scratched my head over how Python became the most
| popular language for this domain.
| dwrodri wrote:
| This seems really cool, but I don't get why they would pour work
| into this while simultaneously building a C++ front-end for
| PyTorch[1]. Per the blog post, both frameworks have the goal of
| empowering ML researchers to iterate on ML models in such a way
| that it becomes easier to reason about performance than it would
| be talking to a bunch of dynamically linked object files behind
| an interpreter.
|
| Facebook is a huge company with lots of money, but production-
| ready ML frameworks are a HUGE undertaking. I don't get how tech
| companies can be simultaneously recruiting and doing interviews
| year-round, paying huge salaries and then putting them under a
| layer of management that thinks two different C++ ML frameworks
| with the same goals is a good idea.
|
| Facebook's work on Tensor Comprehensions, Halide (not originally
| FB but they have contributed heavily), Glow, and PyTorch all
| contributed to the ML space by offering alternatives (with
| innovative UX/technical differences) to the Tensorflow ecosystem.
| Not all of these contributions had novelty, but I respect FB's
| choice to work on something for the sole purpose of not having
| it's direction beholden to the whims of Alphabet (see: Swift for
| Tensorflow).
|
| I just don't see what this adds which FB isn't already working on
| within a different project. What am I missing?
|
| 1 = https://pytorch.org/cppdocs/
| coliveira wrote:
| Have you ever thought that it is not good for a big company
| like FB to be dependent on a single language/technology? This
| is the reason why these companies will invest in multiple
| solutions in different languages.
| UncleOxidant wrote:
| I tend to agree. If they said they had cleaned up the C++
| backend that PyTorch uses and are releasing it separately on
| it's own with some usability enhancements as Flashlight, I
| could see that - they wouldn't have to maintain some other new
| thing. But this is apparently a completely separate thing.
| whimsicalism wrote:
| Flashlight is much lower level and gives more fine-grained
| performance control. For instance, I don't think there is
| really any way to do real-time speech recognition that is fast
| with PyTorch because of how it is architected.
|
| From my understanding, Tensor Comprehensions and Halide are
| both very tentative research projects.
|
| > not having it's direction beholden to the whims of Alphabet
| (see: Swift for Tensorflow).
|
| I don't think this is an accurate recreation of the history
| that led to FB working on pytorch.
| dwrodri wrote:
| This is a very interesting claim. I find it credible because
| it stands to reason that projects like DeepSpeed[1] and
| TorchScript[2] wouldn't need to exist if inference
| performance of research PyTorch models was satisfactory for
| production, but often case it isn't.
|
| It appears as though Flashlight is built on ArrayFire. I
| haven't seen how gradients are managed in arrayfire-ml, but
| perhaps it is the case that the autograd implementation in
| PyTorch was a bottleneck and this is a ground up approach.
|
| Editing as I didn't address your second point. I can neither
| confirm or deny the motivations for creating Torch being
| related to FB's desire to depend on an Alphabet-managed
| codebase. I know there are lots of reasons why programmers
| prefer the UX of the PyTorch Python API (I do as well), and
| there are probably other reasons I can't recall off the top
| of my head. I am only saying that PyTorch is contributing to
| the ML ecosystem already by the sole virtue that it isn't a
| Google product.
|
| [1] = https://github.com/microsoft/DeepSpeed [2] =
| https://pytorch.org/docs/stable/jit.html
| ipsum2 wrote:
| PyTorch is based off of Torch, which was first released in
| 2002, predating TensorFlow by 13 years.
|
| https://en.wikipedia.org/wiki/Torch_(machine_learning)
| liuliu wrote:
| Torch (Lua) predates TensorFlow and is Lecun's pet project
| for a few years at that point already. But Lua as a
| language is unpopular at a time. PyTorch would be a welcome
| addition then. But even if no PyTorch (nor Caffe2) in an
| alternative timeline, I would imagine FB would be stuck
| with Lua Torch for quite some time.
| suyash wrote:
| Wonder why they didn't leverage TorchScript ? However this is a
| welcome news in ML Community. Would love to see this library
| break away from NVIDIA CUDA dependency and optimize for Apple M1
| chips
| whimsicalism wrote:
| I wish Flashlight had a way to easily export models to other
| frameworks.
| suyash wrote:
| that can be done is they support ONNX
| machineko wrote:
| Building flashlights was so frustrating on WSL for me take ~3/4h
| and still cuda wasn't working.
| drtournier wrote:
| Flashlight vs. Scikitlearn ...
| kyawzazaw wrote:
| flashlight is such a common word used for an appliance. I would
| never think of anything else upon hearing this. Millions of
| people I assume as well.
| tmotwu wrote:
| So is Torch? A much more common word to refer to a flashlight.
| wdpk wrote:
| Anyone has experience with the JIT in arrayfire?
| https://arrayfire.com/performance-improvements-to-jit-in-arr...
|
| Many interesting features in this framework, autograd looks neat
| too.
|
| I guess the deployment in real world C++ apps will be easier than
| PyTorch or Tensorflow, especially at the edge in scenarios with
| little or no network access.
| hnachraf wrote:
| Great work by the team, I like that they re-used ArrayFire
| instead of Yet Another Tensor Library feels refreshing to use
| native code again to build ML Pipelines for these kind of tasks.
___________________________________________________________________
(page generated 2021-04-16 22:00 UTC)