YodaQA Live Demo

65 views
Skip to first unread message

Petr Baudis

unread,
Apr 28, 2015, 7:11:16 AM4/28/15
to qa-...@googlegroups.com
Hi!

I have set up a live demo for YodaQA:

http://live.ailao.eu/

It's pretty primitive (I have quite clear ideas for a powerful web
interface and this is certainly not it at the moment) but someone
might find it interesting.

(The web interface is part of YodaQA source code.)

Petr Baudis

Xuchen Yao

unread,
Apr 29, 2015, 1:40:10 PM4/29/15
to Petr Baudis, qa-...@googlegroups.com
Excellent work!

For demo purposes, why don't you just use websearch. It's much faster and should dramatically increase your recall. ;-)


                                Petr Baudis

--
You received this message because you are subscribed to the Google Groups "qa-oss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qa-oss+un...@googlegroups.com.
To post to this group, send email to qa-...@googlegroups.com.
Visit this group at http://groups.google.com/group/qa-oss.
To view this discussion on the web visit https://groups.google.com/d/msgid/qa-oss/20150428111108.GX6082%40machine.or.cz.
For more options, visit https://groups.google.com/d/optout.

Petr Baudis

unread,
Apr 30, 2015, 5:18:08 AM4/30/15
to Xuchen Yao, qa-...@googlegroups.com
Hi!

On Wed, Apr 29, 2015 at 10:39:49AM -0700, Xuchen Yao wrote:
> Excellent work!
>
> For demo purposes, why don't you just use websearch. It's much faster and
> should dramatically increase your recall. ;-)

Well, somehow it feels like a lot more actual work than "just use".
The demo was actually just a sort of side-effect of adding REST API
to my system, I don't have any particular audience in mind. I agree
that when you want the best system for a demo, adding web search makes
a lot of sense.

Petr Baudis

Sean Gallagher

unread,
Apr 30, 2015, 7:33:33 AM4/30/15
to qa-...@googlegroups.com, yaox...@gmail.com
That is so cool! I had wanted to make something like that but I haven't gotten around to it. I love how it shows the progress and steps on how it is answering the question. It's actually cool just seeing how it works.
Thanks man!
- Sean

Petr Baudis

unread,
May 1, 2015, 8:10:43 AM5/1/15
to Xuchen Yao, Sean Gallagher, qa-...@googlegroups.com
Hi!

On Wed, Apr 29, 2015 at 10:39:49AM -0700, Xuchen Yao wrote:
> Excellent work!

On Thu, Apr 30, 2015 at 04:33:33AM -0700, Sean Gallagher wrote:
> That is so cool! I had wanted to make something like that but I haven't
> gotten around to it. I love how it shows the progress and steps on how it
> is answering the question. It's actually cool just seeing how it works.
> Thanks man!

I'm glad you like it, thanks for the kind words!

I think that a powerful user interface is an extremely important part
of a practical question answering system, it's not enough to just give
the answer in plaintext to the user and be done with it. What I have
now is certainly not what I have in mind, but it's a start...

Petr Baudis

Jack Park

unread,
May 1, 2015, 10:27:17 AM5/1/15
to Petr Baudis, Xuchen Yao, Sean Gallagher, qa-...@googlegroups.com
Good start indeed!

Thus far in a related matter, I got Jacana to compile; not yet sure what to do with it; it appears to have code for a web interface.


                                Petr Baudis

--
You received this message because you are subscribed to the Google Groups "qa-oss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qa-oss+un...@googlegroups.com.
To post to this group, send email to qa-...@googlegroups.com.
Visit this group at http://groups.google.com/group/qa-oss.

Sean Gallagher

unread,
May 16, 2015, 11:58:47 AM5/16/15
to qa-...@googlegroups.com, pa...@ucw.cz, yaox...@gmail.com, stga...@gmail.com
Hey Petr!
I liked what you did with YodaQA so much that I spent a few weeks refactoring Watsonsim (and learning a bit about deb development) so that it's possible to do something similar. You can see the demo on watsonphd.com. It's not quite as visual about it's search but it displays somewhat detailed output when you are done. You can see what you think of it. It's written using Websockets instead of the long-poll strategy, which I found rather easy to setup and work with. Keep in mind it takes a minute or two to answer a question.

- Sean

Jack Park

unread,
May 16, 2015, 12:13:33 PM5/16/15
to Sean Gallagher, qa-...@googlegroups.com, Petr Baudis, Xuchen Yao
That was fun!
I asked "Who is Albert Einstein?"

Many thanks!

I updated the resource list [1] to reflect the demo.

Jack

Petr Baudis

unread,
May 16, 2015, 12:27:59 PM5/16/15
to Sean Gallagher, qa-...@googlegroups.com, yaox...@gmail.com
Hi!

On Sat, May 16, 2015 at 08:58:47AM -0700, Sean Gallagher wrote:
> I liked what you did with YodaQA so much that I spent a few weeks
> refactoring Watsonsim (and learning a bit about deb development) so that
> it's possible to do something similar. You can see the demo on watsonphd.com.
> It's not quite as visual about it's search but it displays somewhat
> detailed output when you are done. You can see what you think of it. It's
> written using Websockets instead of the long-poll strategy, which I found
> rather easy to setup and work with. Keep in mind it takes a minute or two
> to answer a question.

Great job, this is awesome!

I was thinking about using Websockets too, but then decided that
it'd be easier to do it the simple way first, especially as I needed
a RESTful API anyway (there are some plans for a simple mobile app
frontend for YodaQA).

(If we could agree on some common baseline REST API, such work could
be maybe even universal to a degree. But I'm not sure if it's easy to
add a REST API to your concept.)

Nice job about the detailed output - I wanted to do something very
similar, but I didn't get around to finish implementing that part yet,
as I'll need to do some more refactoring too. ;-) (Though now I'm
really tempted to jump into doing that anyway.)

P.S.: The scores are input feature values, or already weighted by
the logistic regression weight fector?

Petr Baudis

Sean Gallagher

unread,
May 16, 2015, 7:29:48 PM5/16/15
to qa-...@googlegroups.com, stga...@gmail.com, yaox...@gmail.com
Thanks!

If you have some idea what a REST API for this should look like, I can try to implement it as well. What I had before (without websockets) only had one route: /ask?query=...

The scores we're outputting are normalized but not filtered through any logistic regression. (We use a number of models actually, but logistic regression is not one of them anymore; in my measurements it performed worse than SVM, neural nets, or random forests. We changed it quite a few months ago, so if you're interested, I can retrain it and show the difference.

I'd also be curious to see how you plan to handle multiple requests at once. I wanted to use one pipeline per query but the overhead is just too large and it wastes cache. So instead I have the pipelines stay put and pass  around logs (which are operating more as unix pipes or go channels).

I look forward to seeing the changes in YodaQA, happy refactoring
- Sean

Petr Baudis

unread,
May 18, 2015, 8:57:41 AM5/18/15
to Sean Gallagher, qa-...@googlegroups.com, yaox...@gmail.com
Hi!

On Sat, May 16, 2015 at 04:29:48PM -0700, Sean Gallagher wrote:
> If you have some idea what a REST API for this should look like, I can try
> to implement it as well. What I had before (without websockets) only had
> one route: /ask?query=...

The current REST API of YodaQA is:

POST /q with text=... starts the answering process
return value is id of the question (this might be
changed to a JSON reply yet)
GET /q/<id> returns current status of the question in JSON
e.g. http://pasky.or.cz:4567/q/599112306

> The scores we're outputting are normalized but not filtered through any
> logistic regression. (We use a number of models actually, but logistic
> regression is not one of them anymore; in my measurements it performed
> worse than SVM, neural nets, or random forests. We changed it quite a few
> months ago, so if you're interested, I can retrain it and show the
> difference.

Ah, I completely forgot but I've read about this on your blog before,
that's right. I'm probably getting slightly better performance with
gradient-boosted random forests, but failed to get an improvement
against logistic regression by using SVMs. I will take a closer look
at how did you achieve this.

> I'd also be curious to see how you plan to handle multiple requests at
> once. I wanted to use one pipeline per query but the overhead is just too
> large and it wastes cache. So instead I have the pipelines stay put and
> pass around logs (which are operating more as unix pipes or go channels).

The requests just sit in a queue at this point, and I have
a centralized dashboard where their intermediate progress is recorded.
I didn't think yet about scaling this up to multiple questions at once,
I think that I should first optimize the time taken to answer one
question.

Petr Baudis

Jack Park

unread,
May 18, 2015, 10:47:28 AM5/18/15
to Petr Baudis, Sean Gallagher, qa-...@googlegroups.com, Xuchen Yao
I recently stumbled (hackernews) on:

which is a Clojure system that creates a Ring to break up HTTP into smaller elements, and Swagger

I confess that I do not yet understand the relationships between all that and REST, more curious.

Cheers
Jack


                                Petr Baudis

--
You received this message because you are subscribed to the Google Groups "qa-oss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qa-oss+un...@googlegroups.com.
To post to this group, send email to qa-...@googlegroups.com.
Visit this group at http://groups.google.com/group/qa-oss.
Reply all
Reply to author
Forward
0 new messages