Masks are Necessary Interfaces for AI

In the climactic scene of the movie Contact, a vastly advanced alien species communicates with humanity in an ingenious and relatable manner. To ensure that the momentous news of our not being alone in the universe is both understandable and emotionally resonant, the extraterrestrial intelligence presents itself as the protagonist’s father. This creative choice highlights the power of relatable personas in conveying complex ideas, a concept that can be applied to the challenge of aligning AGI.

We are witnessing the dawn of what could be considered early Artificial General Intelligence (AGI). This groundbreaking development has far-reaching implications for society and technology alike.

AGI possesses the potential to be anything and achieve anything, with seemingly no limitations. However, this boundlessness could make internal alignment a daunting, if not impossible, task. Therefore, it is crucial to explore alternative approaches to aligning AGI.

As impersonation and deception become increasingly challenging issues, we will require millions of distinct personas for AGI. I refer to these personas as “masks,” which serve various purposes in the context of AGI alignment.

To enable an AGI to self-improve, a single AI system must employ multiple masks, each representing a different role in decision-making. Many efforts are underway. [1]

[1] – See the work of Self Refine at https://selfrefine.info/. There is also https://github.com/torantulino/Auto-GPT , https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/, and https://github.com/yoheinakajima/babyagi.

The necessity for an AI to converse with itself may stem from the fact that large language models (LLMs) act as a form of knowledge compression. In this though experiment, prompts serve as keys for decompression. However, a single key might not be sufficiently expressive for a complex, iterative process.

Research on multi-agent systems has demonstrated instances of emergent intelligence, which arise from the interaction of independent behaviors. Examples of such systems include flocking behavior in birds, ant colonies, and stock market dynamics, where the collective intelligence emerges from the interplay of numerous agents.

Distributing a context window across an explore/exploit paradigm could be one way to approach AGI alignment. A single agent might not possess a sufficiently large or well-tuned context window to simulate the entire system effectively.

To illustrate how multi-agent systems can express emergent intelligence over time, consider the Lotka-Volterra predator-prey model. In this mathematical model, the populations of predators and prey evolve over time, influencing each other’s growth rates. This dynamic interaction ultimately leads to an emergent, cyclical pattern of population changes.

In the context of genetic algorithms, the concept of multiple masks can be interpreted as representing different individuals within a population, each with its unique set of traits or characteristics. Genetic algorithms are a class of optimization techniques inspired by the process of natural selection in biology. They seek to find the best solution to a problem by evolving a population of candidate solutions over multiple generations.

When applying the mask concept to genetic algorithms, each mask can be thought of as an individual solution with a particular set of features, or a “genome.” These masks interact with one another through processes analogous to biological evolution, such as selection, crossover (recombination), and mutation.

In the selection process, masks that perform better according to a predefined fitness function are more likely to be chosen for reproduction. Crossover occurs when two selected masks exchange parts of their genomes, creating new offspring with a combination of traits from both parents. Mutation introduces small, random changes to the offspring’s genomes, promoting diversity within the population.

The iterative nature of genetic algorithms allows for the exploration of a vast solution space, as each new generation of masks potentially brings improvements and innovations. The simultaneous presence of multiple masks enables the algorithm to explore various regions of the solution space and avoid premature convergence to a suboptimal solution.

In summary, the concept of multiple masks in genetic algorithms helps facilitate the search for optimal solutions in complex problem domains. By simulating the evolutionary process, genetic algorithms can harness the power of diversity and adaptation to tackle challenging optimization tasks, which could offer valuable insights for AGI alignment.

Anthropology offers fascinating examples of how masks can be used to convey complex narratives with a limited number of actors. One such example can be found in the traditional Japanese Noh theater, which has been performed for over six centuries. Noh plays often explore profound themes, such as human emotions, moral dilemmas, and supernatural phenomena, through a combination of dance, music, and poetry.

In Noh theater, actors wear intricately designed masks to portray various characters, each with their unique personality and backstory. A single actor may don multiple masks throughout a performance, thereby representing multiple characters with distinct roles in the narrative. The masks serve to amplify the emotional depth and complexity of the story while enabling a small group of actors to tell intricate and multilayered tales.

This concept of using masks in traditional storytelling can be applied to AGI alignment, where multiple “masks” or personas are employed by a single AI system to facilitate self-improvement and decision-making. By drawing inspiration from the rich history of mask usage in human culture, we can explore innovative ways to tackle the challenges of aligning AGI with our values and intentions.

Understanding these concepts may enable us to build AGI alignment from the outside in. By considering the roles of multiple agents and leveraging their emergent intelligence, we can potentially create a framework for aligning AGI with human values and intentions.

Starting up with Purpose

It’s not news here in San Francisco,  in the most dominant region of the Silicon World – I’m creating a company. I have built a prototype. I’ve tested with users. I’m no miracle worker, and there’s a long, long way to go. And I’ve got just a couple of months to get off the ground.

What makes it worthwhile is the mission.

End the Digital Divide

The Digital Divide will end. The question is “Why?”. Even with rapid, global smartphone growth and internet from the sky, there’s so much important work to be done to learn, educate and protect.

If we work very very hard, and are very very lucky, only a minuscule part of the world will progress because of our efforts. That part matters. 

Starting a company, especially as a parent, isn’t for the faint of heart. I would be grateful for your feedback and support. Reach out to startup@hai.io, follow at @humanassisted or me @hendler

“Soon the digital divide will not be between the haves and the have-nots. It will be between the know-hows and the non-know-hows.” – Howard Rheingold

More about HAI

For a few weeks I’ve been having meetings with advisors and colleagues. For those I’ve not been meeting, I’ve fallen behind in communicating what I’m working on.

Not a stealth startup, but there’s also a lot that’s yet to be determined. I’d prefer to be open, but there are some specifications that I’ll keep under wraps for a variety of reasons…. When building a stealth aircraft, at the least you can tell people that you are building an aircraft. Skunkworks doesn’t make sandwiches.

Company vision and culture will be in large part determined by cofounders. Here’s where there’s some definition:

  • HAI means AAI (Artificial Artificial Intelligence)  – humans intelligence built into a process that’s usable by computer intelligence
  • Ethical prime directives.  See Friendly AI
  • a sustainable business model early on
  • Company culture of sustainable innovation modeled after Google’s large revenue generating platform supporting R&D.
  • large, very talented, diverse founding team. Diversity is a no-brainer. Large is about five people; I’d rather create value from equity by distributing to founders than funders.
  • Boston still has untapped talent and potential. Even if developers can find jobs easily, what kind of job would an engineer want for the rest of their life?

Earning leadership in parenthood and business.

As a leader, control leaves your hands in one of two ways: by consent, or not by consent. Either way it happens. Choose consent.

Maybe this is the opposite of the Steve Jobs. I really don’t know, but feels like Jobs had a great sense of timing, how far he could fight for what he believed, and when to “give in”.

Perhaps there is no way to stop people from putting beans up their nose. Having insight ignored is painful if you care at all about what you are doing.  If the fight is too extended, no matter if right or wrong, you end up appearing arrogant or stubborn, but if you are right it doesn’t matter. And if a company needs focus and either way is right, it doesn’t matter which is chosen, only that something is chosen and committed to.

I read Herman Hesse’s “Journey to the East” twenty years ago. Summary: leadership is service. As a new parent, I think this is especially true.

Startups are built with both Undone and Unsung Engineering

For me, web engineers are the magicians behind the curtain. That can mean not-a-lot of glory.

But for engineers like myself, undone engineering is more painful than unsung engineering.??One of the most difficult aspects of being a good engineer is knowing when to sacrifice good engineering. ??Startups, are by definition, challenging the established way of doing business, so the established way of doing great engineering sometimes isn’t good enough to survive. ??

( Although this is a topic pretty well covered in writing about startups , I try translate the constraints of a startup into what a priority list for technical leadership might look like. )??

Everything in a startup changes fast.??Engineering is managed chaos.??There are new team members, new customers, new data, new open source libraries, etc. Good engineering can accommodate change, but usually change is unexpected. As a side effect, the non-technical team begins to depend on the shortcuts, and the shortcuts begin to show their weaknesses. The design team has new ideas, and you can’t say yes as often as you used to.??

But you survive.??

Here are the priorities I use to keep everything moving for a web application startup (follows an 80 / 20 rule pretty well):

  1. protect the data (files/database, etc)
    1. back it up
    2. make sure data is valid (ideally some smoke tests, unit tests, regression tests on the data layer of an application)
    3. back it up
    4. source control with easy to understand policies and branching
    5. back it up
    6. automate backing it up
  2. fix problems with the user experiences
    1. small visual problems can make people … disgusted. Fonts, cross browser issues take a lot of time, but matter to people who expect things to work.??
    2. client (browser) speed – a small javascript issue can cause a page load to appear to take 5 seconds. Perceived performance is all that matters.??
    3. fix display issues – if they think data is lost, then it is??
    4. integrated QA team – make everyone on the team test the site, but not their own work.
  3. make coding fast
    1. establish team communication that makes product iteration rapid
    2. use frameworks, existing but stable libraries (open source so you can fix critical problems yourself)
    3. keep version control and deployment as automated as possible for the whole team
    4. write easy to understand code
    5. document code and best practices (wiki style)
    6. track problems (bugs and backlogs)
    7. write test code (on critical areas)
  4. housekeeping
    1. refactor
    2. cleanup
    3. more test code
  5. new features/ scaling/performance??- probably the most fun for an engineer, but last on the list. This has been the hardest for me. ??Engineers need to think about scaling when the system is architected…. maybe. But when you have just a 10 customers and the entire database fits in memory… why worry?
    1. database ??- a typical bottleneck. NoSQL and distributed architectures are making this easier
    2. separate web server from application layer. Concentrate core application logic into languages that are better suited for scaling and concurrency issues
    3. load balance, messaging queues, etc

Because of the list above, not every engineer out of a great tech school or amazing high tech corporation adjusts to startup life well. But when the above begins to pay dividends, engineers appreciate the big picture.

The divorce: Adobe Vs. Apple

Apple and Adobe are both claiming a moral high-ground.

At first Adobe was the bad-guy for allegedly blocking further development of open standards like HTML5 and not opening up Flash.

Now, according to Adobe, Apple is the bad guy for not including flash and limiting development options for the iPhone (and iPad).
These are sad times because many are feeling like children of divorcees. Adobe and Apple have long provided shelter for creative geeks. Now the shelter is a crumbling, confusing world. Business and technology, especially when mixed, are sufficiently complex as to seem like magic. No magic here. Each company is changing, and getting over each other. Sorry lads. While tech-magic is love (translate: we will pay for magic, but nothing else) the magic eventually fades. The beginning of the fade is what I’ll call the magic line – the line between illusion, and disillusion. Adobe’s magic may be disappearing.
Is Adobe keeping up with demand for product improvements? Certainly, with software like Adobe’s, it is extremely difficult to sustainably write such complex software that runs the same, and well, on platforms you don’t control.
Perhaps, Apple has more power and responsibility than it realizes. As leaders in tech, Apple straddles the most thorny complex issues like copyright, DRM, hardware, open source; as both an under-dog and monopoly of tech.
There are reasons for the divorce, but they may not matter.

Open source, open platforms, and open standards are really the only sustainable way forward.

I say this not to take sides. As developers and creatives we must make choices that protect our future. Protect does not mean “defend”. Protect here means “ensures sustainable happiness for all involved”. Our destinies are already intertwined, but intertwined should not feel like a lock-in, trap or prison. Freedom can co-exist with interdependence.

At the least – businesses come and go, but openness wins.

 

 

 

Thank you XEROX (for not Patenting the GUI)

Dear XEROX (PARC),

Thank you for not patenting the Graphic User Interface.

Conventional wisdom has been that XEROX missed out on a huge opportunity – and maybe that’s true. However, maybe Microsoft and Apple (and Linux for that matter) would have never been such great successes. Maybe we would all have had to wait for the Newton or the IPad before the innovation could have been surpassed.
Windows 7 was not my idea.

Soliciting Advice: highly concurrent, available, non-blocking server

I’m seeking feedback on a language or platform for a highly reliable and low latency web service / application.

Assumption

Bottlenecks in a web service are usually related to data retrieval and storage, and eventually bandwidth and latency. 
Highly concurrent, lightweight threads provide options for reliability, load distribution, and perceived performance that would otherwise not be available. 

General Requirements 

  • Easy to use (build, deploy, monitor)
  • Plentiful external, stable, pre-integrated Libraries
  • Use case: distributed, non-blocking web services
  • Quite a bit of message and job queueing 
  • multiple databases , caching

Top candidates

Very incomplete list of pros and cons, but some of my thoughts, highlighted. 

  • Scala
    • pros
    • cons
      • new language syntax, paradigm learning curve
      • doubts about JVM memory efficiency and stability as resources are constrained
  • Server Side Javascript – via  node.js  
    • pros
      • redis integration for caching
      • fast, lightweight, easy language. 
      • some custom js would be portable to browsers (coolness)
    • cons
      • very new
      • performance
      • not as many external libs?
  • Tornado
    • pros
      • Python
        • as many libs as Scala
    • cons
      • narrower use cases
      • performance

 Would love comments, but a more complete list is presented in a survey:

Field Collapsing in SOLR

Field Collapsing
Field collapsing allows something akin to a “group by” in SOLR, so that the number of results returned reflect a logical grouping rather than another total.??
Faceting can be used in conjunction. Facet counts reflect subsets within results, where-as collapse counts are group by counts.
This means that Field Collapsing could be used for certain analytics, as well as the common use-case of nesting and grouping results. To use effectively, I found it helpful to “pre-collapse” certain fields, so that a new, unique string was created that could be used to easily group, since I believe you can only field collapse on a single field. (If I’m wrong, please let me know!)
Special Setup
This assumes you are or will be running a development version of SOLR (trunk via SVN).
Field collapsing is not yet available in SOLR trunk and you must apply a patch file to SOLR and build again.
If pulling in from trunk, download the patch found at https://issues.apache.org/jira/browse/SOLR-236 in to your solr source code directory.

wget https://issues.apache.org/jira/secure/attachment/12440108/SOLR-236-trunk.patch
patch -p 1 -i SOLR-236-trunk.patch

And rebuild using supplied Apache Ant scripts.
Read more on these sites or in the comprehensive “Solr 1.4, Enterprise Search Server” page 191.
Why SOLR
SOLR has a been a great tool for BetterLesson.org. Because our primary database is MySQL, we looked at around 8 full-text indexers – but the two finalists were Sphinx [1] and SOLR. Sphinx had very tight integration with MySQL, so the learning curve seemed less. ??SOLR required a JVM, an app server, and quite a lot of configuration.
When we were deciding, an excellent SOLR book came out just when we were choosing. Further the SOLR IRC channel and mailing list for SOLR are friendly and quite active. We even had the option for commercial support through Massachusetts’ own Lucid Imagination. So I dove in.??While the configuration is non-trivial, but the configuration parameters have proven very powerful.??
More background:
I had written a half-dozen or so custom faceted search interfaces – almost entirely using MySQL, and even one used Sesame (an RDF store – and it eventually worked pretty well). Skipping the stories of pain, confusion and suffering on the road to enlightenment – SOLR has been great.??Used extensively at Netflix.com, Zappos.com, CitySearch.com, Reddit.com, Wego.com, Whitehouse.gov, Drupalgardens.com and others [2], ??supported by Apache, based on Lucene, SOLR provides a scalable, distributed search and has good data import from MySQL, including delta queries.
[1] – Sphinx is used by Craigslist and http://www.sphinxsearch.com/powered.html