Open Source: Patent Land Mines?

--

Do we have large companies releasing open source software while taking out related patents? When they grant the source license, what about the patents? It all depends…

Source: DALL-E Robot hunting land mines

I helped author and file patents for my clients and myself (“patent strategy” is one of the strengths of my development company MentorTek). I have also served as an expert witness in a couple of cases related to IP infringement as well. So, while I am not an attorney, I know enough about the process to be concerned.

Disclaimer: I am not a patent or intellectual property attorney. If what I discuss below concerns you, please consult one.

I started a project as a journey to explore the use of AI. The purpose is to integrate several technologies, producing a framework for creating clones or “digital twins” (first of myself). I am combining several AI concepts to improve learning characteristics and using ChatGPT as a “design” partner.

I will document this journey when I am ready and expect to release anything productive from it using a permissive open source license.

The documentation will take the form of a log to make sure that all ideas for it are placed into public domain before the source code. I have always been concerned to what degree we are all at unknown risks when using open source. Especially open source provided by the really big companies.

Since the journey I am on involves using ChatGPT to help with the fairly complex architecture design, I went on a side trip to get “his” thoughts about this open source subject. I asked ChatGPT about that same issue. First, I had him restate the MIT license (generic version here) and then posed this prompt.

Source: ChatGPT
Source: ChatGPT

ChatGPT echoes that the MIT and Apache 2.0 licenses are conveying rights associated with the copyright of an item (see yellow highlights above). But the response also outlines the hazards related to any underlying patents. The MIT license doesn’t convey any rights associated with patents, while the Apache 2.0 license does partially. It conveys protection against patents held by the contributors, but not any other third parties that may hold related patents.

This underscores that there may be some potential land mines.

On a positive note, ChatGPT reminds us (see blue highlights) that “usually” once an idea is the subject of public disclosure it becomes “prior art”. That can block or invalidate patents that are filed after the disclosure. As defined in this Wikipedia article:

“A public disclosure is any non-confidential communication which an inventor or invention owner makes to one or more members of the public, revealing the existence of the invention and enabling an appropriately experienced individual (“person having ordinary skill in the art”) to reproduce the invention. A public disclosure may be any form of non-confidential communication. For example an academic poster, presentation to a symposium/conference, website article, book chapter, academic journal article, or even an unguarded conversation in a car park.”

So, it is hard to attack using a patent that was filed after public disclosure of the novelty associated with that patent. The act of publishing the code under a copyright license doesn’t protect against the author having inadvertently or purposely based the work on the ideas covered by a prior patent. It may prevent the underlying ideas from being patented “after the fact”.

Remember my main concern: release software into the public domain (via a source license) while preventing someone else from getting patents to thwart that license.

The code itself can disclose the novel ideas, but sometimes more extensive documentation that overtly highlights them is probably safer. The code may only hint at them and, without a better description, it may be too easy to get around the interpretation of those hints.

Note that there is a one year “grace period” such that after you publically disclose your invention, you may still file a patent application using that same idea. There is a bit of complexity around that: see “Inventor grace period: when is it too late to file a US patent after disclosing incention?”) and other pitfalls highlighted in “The Not-So-Amazing Grace Period Under the AIA”. That last one speaks to issues that can occur if someone else looks at your source code and documentation to come up with their own description and patent of a very similar idea.

Good and bad news. At least more than likely no one else will file on your idea if you document it well enough. But, on the other hand, if you are using newly released source code in your project, there is no assurance the source code creators won’t file a patent within the next few months of the release. For the MIT license that may be more of an issue than for an Apache 2.0 license.

In that AI project I mentioned above, I am using ChatGPT as my “partner” for both architecture design and, eventually, code. This may make the whole subject of “patent land mines” worse since that tool is notorious for leveraging prior art intellectual property.

So, what does it take to make sure you are on solid ground? Well, it turns out it takes a lot.

If you visit one of the simple search pages on the United States patent office website, you will get a form similar to this:

Source: uspto.gov

The “search” dropdowns provide these options:

Source: uspto.gov

Now comes the interesting part. You can select “Assignee name” and then enter “microsoft” in the “For” text box:

Source: uspto.gov

You will get a response that starts off similar to this:

Source: uspto.giv

Which tells us several interesting things. The search found over 88K matches (blue highlight) . This represents the number of documents in the uspto.gov database where Microsoft is the assignee (meaning owned by Microsoft). You can also see that for each document we get columns for a title, a publication date, and the ability to download a pdf copy of the document.

These documents represent patent application filings as well as issued patents, so the actual number of patents represented is a little more complicated. But it is a daunting number for just one of the large companies we have to consider under this subject.

At a high level, the way this process works is that someone can file a provisional patent application, which buys them a year to amend it to a nonprovisional application. The date of the filing of the provisional establishes your “priority date” besides other features listed on the uspto site:

Courtesy: uspto.gov

This priority date is important if you want to figure out if they created something before you did (or before the release of some open source software that relates to what you did).

One complicated example might be one of Microsoft’s that shows up on that first search page (of over 88K entries total) with patent number 11,748,324 (“REDUCING MATCHING DOCUMENTS FOR A SEARCH QUERY”). That document indicates the date of the patent as Sept 5, 2023 (very recent). If you created a similar idea a couple of years ago and put it into practice, you might feel safe? This patent was based on an application filed on Jun 15, 2022. But there’s a catch. The filing is a continuation of a prior patent application that was filed on June 17, 2016 and whose provisional was filed on June 23, 2015 and became an issued patent 11,392,568 on July 19, 2022. So this intellectual property seemed to be “percolating” since mid-2015. Now, do you feel safe?

Since my real interest here lay in open source code that may or may not relate to some underlying patent, I took one of Microsoft’s patents titled “TRAINING NEURAL NETWORK ACCELERATORS USING MIXED PRECISION DATA FORMATS” and noticed that their priority date is around December 2018. This is about the time that the ONNX Runtime was released via GitHub by Microsoft under the MIT license. This software supports “model optimizations” that include “Quantize ONNX models” and “Float16 and mixed precision models”. That 2018 patent abstract starts with “Technology related to training a neural network accelerator using mixed precision data formats is disclosed…” and then goes on to talk about “quantized-precision floating-point format”and “block floating-point format”.

I have admit I have no idea whether the open source ONNX runtime code is related to that patent without a lot more digging, but there does appear to be code related to the generation of something similar to their description of the block floating-point format. The only point here is that it takes some real digging to figure this out. The “interested student” can look at code like this from the runtime and then read that patent to see what you think.

Besides Microsoft’s 88K patent documents, Amazon has 20K, and we have Google with 35K to look through since all of these companies release open source code.

They are getting enormous numbers of patents issued and creating an equally large moat against the small companies that cannot afford to follow suit. The open source code all of us release (including those guys) may or may not be violating one or more of the patents in these huge portfolios. I know I am going to release the code that I create for my AI journey using the MIT license. But that has no effect on the potential for patent infringement.

It’s funny. While I was working on my new “invention” which is related to creating a framework to clone my “skills”, I had a thought in passing. If I could generalize that enough, others could use my clone and/or create their own and offer it up in some kind of ecosystem — again, a thought only in passing. Well, the patent searches I did for this article showed me that Microsoft filed for a provisional patent called “MARKETPLACE FOR CONVERSATIONAL BOT SKILLS” on December 17, 2019 that was issued as a full patent on August 29, 2023.

Umph… Now there is a land mine. Well, I see how to differentiate my approach from theirs, should I choose to pursue that further.

But to avoid a land mine, it helps to see it buried right under your feet. Otherwise, you will just step on it.

I should point out that there are oft discussed downsides to performing patent searches, depending on your goals. There is a fairly deep article on this subject here (“Risks and Benefits of Patent Searching”). The two main interesting risks highlighted were “duty to disclose ” (DTD) and “willful infringement” (WI).

A pretty in-depth discussion of those is available in that article and those phrases are also great search terms to pull up a lot more information. But the short story is that DTD applies to you mostly if you intend to file a patent yourself, while WI applies to you anytime you put into practice some creation of yours.

When you file a patent, part of that filing includes your responsibility to disclose to the patent office any related prior art that you know about. In other words, you have a “duty to disclose” things that the patent office might use to decide whether to invalidate your filing. Failure to do that properly is then called “inequitable conduct” and can get your filing and/or patent thrown out at some point.

When you put your idea into practice (create new software or hardware products, etc), you are kind of always at risk of violating someone’s existing patent. If you do that and get sued, the court can award the owner of the patent damages. That risk is always there. But, if you knew you were violating their patent (did it on purpose) then the court can decide you are guilty of “willful infringement” allowing it to award “enhanced damages” (sometimes as much as double or triple what the award would have been).

The article I mentioned above has some data showing that only a very small percentage of patent infringement final decisions are based on willful determination as a result of patent searches (about 10 in 10,000). They give the impression that most of those were against only very large company defendants. Nonetheless, you will undoubtedly hear from your patent attorney to be careful.

So we have established that there are tons of potential patent land mines out there to stumble onto (around 100K just from three large companies). This article (“Microsoft Calls a Truce in the Linux Patent Wars”), reinforces the danger here.

From early 2000's until October 2018, Microsoft claimed that various Linux-related technologies infringed on its patents and they had a history of suing the alleged violators. As you can see in the article, the good news relating to that is they eventually joined the Open Invention Network, effectively licensing all of its patents that relate to specifically (and only) Linux to all members of the group. It was reported in 2007 that Microsoft held 235 patents that it claimed were violated by Linux and it was going after royalties (see here for the “Microsoft takes on the free world” article from CNN for more details on that).

So, they reconsidered about Linux but it looks like this only benefits other OIN members specifically for matters related to Linux and leaves the rest of the mess open for interpretation. The OIN license agreement is here. Basically, if you join OIN, you agree to license your patents that relate to Linux in return for protection against being sued by other OIN members (again, related to Linux only).

It is interesting that Microsoft released the ONNX runtime under the MIT license rather than Apache 2.0 , preserve their right to sue should any of their myriad of patents apply.

This article (“The Anti-Patent: An Alternative Approach to Patents and Open Source”) written by F. Chau & Associates, brings up another method attempting to protect IP from being patented. As they point out, filing a provisional patent and then subsequently abandon it is fairly cheap. Their article teaches why that approach may be a stronger option than creating public disclosures.

Summary:

  • There is danger out there with using open source licenses (even though we will all continue to do so). Be informed.
  • When we create software to release as an open source, there are things we probably should do to help protect our license users.
  • Consider doing a better job of pulling out and documenting any novel ideas to at least create public disclosure. Don’t rely on the code.
  • If you think your ideas are novel enough, consider filing a provisional patent application as protection for your users — it may help even if you abandon it as a method to establish your prior art claim if attacked.
  • If you can afford the additional complexity, consider releasing with the Apache 2.0 license, or similar, that conveys patents as well as copyright.
  • As employees or consultants to companies, be concerned about the open source licenses we get them tied into. Those that pursue patent violations aren’t going after the open source contributors. They are going after the companies that make money building successful products using the open source code (for obvious reasons).

Consulting with legal counsel is worthwhile when making these decisions, especially about which license to offer (or use). There are downsides to any approach, so it’s a “picking the lessor of evils” game — somewhat specific to your situation.

Open source code and its relationship to patents has been complicated enough, but I can imagine how much fun we will have digging into the new open source models and techniques for using them tied to neural networks and what patents are behind them. I noticed that the infamous LLAMA 2 open source model license seems to avoid any reference to patents.

Just to get a sample of some patents in this area, I did a quick search and found some interesting titles:

  • AUTOMATED GENERATION OF MACHINE LEARNING MODELS (Microsoft)
  • ASSESSING SIMILARITY BETWEEN EMBEDDINGS PRODUCED USING A DISTRIBUTED TRAINING FRAMEWORK (Microsoft)
  • USING CHAINS OF THOUGHT TO PROMPT MACHINE-LEARNED MODELS PRE-TRAINED ON DIVERSIFIED OBJECTIVES (Google)
  • SYSTEMS AND METHODS FOR A CONVERSATIONAL FRAMEWORK OF PROGRAM SYNTHESIS (Salesforce)
  • COMPUTER-GENERATED CONTENT BASED ON TEXT CLASSIFICATION, SEMANTIC RELEVANCE, AND ACTIVATION OF DEEP LEARNING LARGE LANGUAGE MODELS (Rohirrim )
  • AUGMENTING MACHINE LEARNING LANGUAGE MODELS USING SEARCH ENGINE RESULTS (Google via DeepMind)
  • INTELLIGENT QUERY AUTO-COMPLETION SYSTEMS AND METHODS (Inuit)
  • LANGUAGE MODEL PREDICTION OF API CALL INVOCATIONS AND VERBAL RESPONSES (Google — I guess we can let OpenAI and Google fight over this one)

This was a very small sample of a fairly large sset of hits on just the “large language model” phrase. We are all being taught the wonderful nature of Chain of Thought reasoning, embeddings, using the GPT to make API calls, etc.

People are quickly knocking out applications to take advantage of those concepts and more, thanks in part to the proliferation of third-party libraries that support them. There may be danger to the creators of these applications if they actually start to make money or raise a bunch of capital and thus fail to stay “under the radar”.

I am guessing due diligence for any new startup investors in this field should include worrying about this.

As I promised, we will keep an eye on this and report further while we also continue to try to walk through this IP quicksand with our own projects.

I indicated we would be building a new AI framework and documenting that process as we go. For those that follow us, you will see that we will also keep this patent research and discussion alive too.

I already followed the “anti-patent” idea discussed above myself and filed a provisional for the framework itself and will soon file one on my ideas for the “skills marketplace” improvements.

More on that framework and marketplace later as well as an interesting discussion of the effect of publishing improvements on others prior patents.

--

--